|
| 1 | +# Full reference of all available options: fab config reference |
1 | 2 | agent: |
2 | | - spawn_command: claude --dangerously-skip-permissions --effort xhigh -n "$(basename "$(pwd)")" |
3 | | - # agent.tiers — per-stage model override (optional). A "tier" is a named |
4 | | - # {model, effort} profile. fab-kit owns the FIXED, non-overridable stage→tier |
5 | | - # mapping below; you override only WHAT EACH TIER MEANS (model + effort). |
6 | | - # Omit any tier (or the whole tiers: block) to use fab-kit's built-in default. |
7 | | - # Resolved per stage by `fab resolve-agent <stage>` at sub-agent dispatch time. |
8 | | - # See docs/specs/stage-models.md. |
9 | | - # |
10 | | - # FIXED stage→tier mapping (fab-owned, NOT overridable — shown for reference): |
11 | | - # thinking: intake, review (generative judgment) |
12 | | - # doing: apply, review-pr, hydrate (execution that must not err) |
13 | | - # fast: ship (speed on near-mechanical work) |
14 | | - # |
15 | | - # fab-kit's built-in default profiles (today): |
16 | | - # thinking: { model: claude-opus-4-8, effort: xhigh } |
17 | | - # doing: { model: claude-opus-4-8, effort: high } |
18 | | - # fast: { model: claude-sonnet-4-6, effort: low } |
19 | | - # |
20 | | - # Override shape (uncomment + edit any tier; an omitted field inherits the |
21 | | - # default for that tier; an empty model means "inherit the session model"; |
22 | | - # values are passed through verbatim — fab does no provider validation): |
23 | | - # tiers: |
24 | | - # doing: { model: claude-sonnet-4-6, effort: medium } # example: run doing cheaper |
| 3 | + # agent.tiers.<tier>.spawn_command — per-stage CLI dispatch (optional, opt-in). |
| 4 | + # PRESENT on a tier → that tier's stages are dispatched by RUNNING this command |
| 5 | + # (cross-harness, e.g. codex); ABSENT → native Agent-tool dispatch (default). |
| 6 | + # INDEPENDENT of agent.spawn_command above (which opens whole agent SESSIONS): |
| 7 | + # there is NO fallback from a tier to agent.spawn_command. {model}/{effort} |
| 8 | + # placeholders are substituted at resolve time (the {model} always the FULL |
| 9 | + # model ID, never an alias). See: fab config reference. |
25 | 10 | checklist: |
26 | | - extra_categories: [] |
27 | | -fab_version: 2.6.6 |
| 11 | + extra_categories: [] |
| 12 | +# providers — named agent invocation grammars. Each provider MAY carry a |
| 13 | +# session_command (opens an interactive session: fab operator / fab batch / |
| 14 | +# fab agent) and/or a dispatch_command (runs one headless stage task via fab |
| 15 | +# dispatch, which pipes the stage prompt to the command's STDIN; ABSENT → |
| 16 | +# native Agent-tool dispatch). The two are NOT merged. {model}/{effort} |
| 17 | +# placeholders are substituted from the resolved tier profile; a plain Claude |
| 18 | +# command has --model/--effort appended instead. Provider names are opaque, |
| 19 | +# user-chosen strings. See: fab config reference. |
| 20 | +# |
| 21 | +# claude is the built-in default (session_command shown live). codex and gemini |
| 22 | +# are a commented starter TEMPLATE — uncomment and adapt to add that provider. |
| 23 | +# Anything whose uncommenting changes default behavior ships commented: claude's |
| 24 | +# dispatch_command (flips claude native→headless CLI dispatch) and the opt-in |
| 25 | +# codex/gemini blocks. |
| 26 | +# |
| 27 | +# Per-provider notes (kept out of the blocks below so uncommenting a whole block |
| 28 | +# yields valid YAML — strip the leading '# ' from every line of a block): |
| 29 | +# claude.dispatch_command — claude -p reads the prompt from stdin; uncommenting |
| 30 | +# runs claude's stages as headless CLI processes instead of native sub-agents. |
| 31 | +# codex — codex exec reads the prompt from stdin. Substitute a current model ID |
| 32 | +# for {model} (e.g. gpt-5.3-codex); {model}/{effort} come from the tier. |
| 33 | +# gemini — no {effort} (the gemini CLI has no reasoning-effort flag) and no -p: |
| 34 | +# gemini's -p takes prompt TEXT (appended after stdin), whereas fab dispatch |
| 35 | +# pipes the prompt to stdin, which gemini reads as the prompt in non-TTY mode. |
| 36 | +providers: |
| 37 | + claude: |
| 38 | + session_command: claude --dangerously-skip-permissions --effort xhigh -n "$(basename "$(pwd)")" |
| 39 | + # dispatch_command: 'claude -p --dangerously-skip-permissions --model {model} --effort {effort}' |
| 40 | + # codex: |
| 41 | + # session_command: 'codex -m {model} -c model_reasoning_effort={effort}' |
| 42 | + # dispatch_command: 'codex exec -m {model} -c model_reasoning_effort={effort}' |
| 43 | + # gemini: |
| 44 | + # session_command: 'gemini -m {model}' |
| 45 | + # dispatch_command: 'gemini -m {model}' # no {effort} flag; no -p (fab dispatch pipes the prompt to stdin) |
| 46 | +fab_version: 2.13.4 |
28 | 47 | project: |
29 | | - description: Go CLI for quick repo operations — locate, open, list, and clone repos from hop.yaml. |
30 | | - name: hop |
| 48 | + description: Go CLI for quick repo operations — locate, open, list, and clone repos from hop.yaml. |
| 49 | + name: hop |
31 | 50 | source_paths: |
32 | | - - cmd |
33 | | - - internal |
| 51 | + - cmd |
| 52 | + - internal |
| 53 | +# Glob/pathspec patterns identifying test files. Used by the true-impact |
| 54 | +# breakdown to attribute lines to tests vs. implementation (impl = total − tests). |
| 55 | +# Language-specific — no kit default. Patterns are :(glob) magic pathspecs, so |
| 56 | +# `**` matches across directories and `*` does NOT match `/`. Anchor to your |
| 57 | +# language's test convention rather than a bare substring (a substring like |
| 58 | +# `*test*` miscounts production code such as `attestation.go` or `latest.go`). |
| 59 | +# When absent/empty, the breakdown collapses to a single total line. |
| 60 | +# |
| 61 | +# Examples (uncomment/adapt the line for your stack): |
| 62 | +# - "**/*_test.go" # Go — `_test.go` suffix |
| 63 | +# - "**/test_*.py" # Python (pytest) — `test_` prefix |
| 64 | +# - "**/*.spec.ts" # JS/TS (Jest/Vitest) — `.spec` infix |
| 65 | +# - "**/*.test.ts" # JS/TS — `.test` infix |
| 66 | +# - "**/src/test/**" # Java/Kotlin (Maven/Gradle) — test source root |
| 67 | +test_paths: |
| 68 | + - "**/*_test.go" |
34 | 69 | true_impact_exclude: |
35 | | - - fab/ |
36 | | - - docs/ |
| 70 | + - fab/ |
| 71 | + - docs/ |
0 commit comments