Skip to the content.

Response profiles: concise, Caveman-compatible, and composable

Response profiles are a presentation control for fak’s owned agent loop; caveman:medium is default-on and full is its explicit ablation. They let a user ask for shorter answers without changing tool authorization, work scope, tests, diagnostics, or evidence requirements. They compose independently with work profiles: Caveman can shape the response while Ponytail shapes implementation decisions, and neither selection implies the other.

Start here

List the supported selections and their status:

fak agent profiles
fak agent profiles --json

Persist a response profile through the existing console settings path, inspect its canonical value and source, or turn shaping off persistently:

fak console settings --set-default adapt.output-style=caveman:medium  # set
fak console settings --json                                           # show
fak console settings --set-default adapt.output-style=full             # disable

The settings file defaults to ~/.fak/console.json (or FAK_CONSOLE_FILE). fak agent --console-config FILE selects another settings file. Resolution is explicit: CLI --output-style wins over the persisted preference, which wins over the shipped caveman:medium default. Invalid and reserved values are refused before the owned loop starts. The JSON run report records output_style, output_style_source, and the content-derived output_style_witness; it does not expose the prompt fragment bytes.

Run with the recommended Caveman-compatible balance:

fak agent --output-style caveman:medium --task "Explain this failure and propose the smallest safe fix"

Disable all response shaping:

fak agent --output-style full  # ablate the default caveman:medium profile

caveman:medium is the default for the owned fak agent loop. full is the explicit ablation arm; harnesses that do not launch through fak agent remain unchanged.

Choosing an intensity

Selection Use it when What changes
caveman:low You want normal explanations with less filler Trims restatement and connective prose
caveman:medium You want concise, directly actionable answers Removes preamble/recap and keeps only needed explanation
caveman:high You want highly compressed operational output Essential content only; shortest safe response shape
native:low|medium|high You want the same intensity scale without the Caveman compatibility label Uses fak’s native profile family
full You want no steering, or need maximum narrative detail Adds no response-profile segment

The friendly caveman:medium spelling canonicalizes to caveman:native:medium. Captures keep the implementation slot so users can distinguish fak’s independently authored behavior from a future attributed upstream adapter.

Native versus original

The original-profile readout records source revision and digest, activation source, and the set FAK_STYLE=full disable command. Unknown original intensities fail closed. System safety, explicit user formatting, and preservation rules override imported instructions. fak never silently substitutes native behavior when a user asks for original.

What a response profile cannot change

A response profile cannot remove or weaken:

Unknown families, implementations, and intensities fail before the agent run. The selected canonical style, family, and intensity are recorded by the owned system-block seam, while the resident cache prefix stays unchanged.

Response shape is not work policy

Caveman response shape controls how the answer is written. Ponytail controls how implementation work is scoped. They are intentionally separate so users can eventually mix them:

response=caveman:native:medium
work=ponytail:native:high

fak agent and guarded Claude compose these axes independently. Both default to the native medium profiles; --output-style full / --output-profile full disables response shaping, while --work-profile standard disables Ponytail work policy.

External guarded harnesses

fak guard -- claude ... defaults to caveman:medium plus ponytail:medium and injects one composed governed fragment through Claude’s owned --append-system-prompt seam. This matches the owned fak agent posture without requiring configuration in the repository being worked on.

The axes remain independent: --output-profile full disables Caveman and --work-profile standard disables Ponytail. Explicit profile selections resolve before launch. The capture records both canonical profiles and digests, the composite digest, harness, activation seam, whether activation came from defaults, and the disable command.

Claude is currently the only witnessed external injection seam. Default launches of Codex, Cursor, and other wrapped commands remain byte-identical rather than claiming activation. Explicit non-off selections on an unsupported harness fail before child launch with PROFILE_UNSUPPORTED_HARNESS. Unknown response or work profiles likewise fail before launch.

Troubleshooting