harness-everything 0.30.4 → 0.30.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/CHANGELOG.md +38 -0
  4. package/README.md +17 -7
  5. package/bin/cli.js +5 -0
  6. package/ci/fable-mode-test.js +112 -51
  7. package/ci/mechanism-2t-workspace-identity.test.js +3 -1
  8. package/ci/mechanism-2w-platform-compatibility.test.js +39 -0
  9. package/ci/mechanism-2z-claude-plugin-manifest.test.js +12 -0
  10. package/ci/router-workflow-plan.test.js +92 -7
  11. package/docs/platform-capabilities.md +14 -1
  12. package/docs/troubleshooting.md +31 -1
  13. package/docs/workflows/fable-mode.md +10 -9
  14. package/evals/fable-mode/tasks/negative-tier2-no-model.yaml +3 -3
  15. package/evals/fable-mode/tasks/positive-haiku-mode.yaml +1 -1
  16. package/evals/fable-mode/tasks/positive-opus-mode.yaml +1 -1
  17. package/evals/fable-mode/tasks/positive-sonnet-mode.yaml +1 -1
  18. package/evals/fable-mode/tasks/positive-trigger.yaml +1 -1
  19. package/fable-mode/SKILL.md +18 -12
  20. package/fable-mode/agents/fable-orchestrator.md +7 -6
  21. package/fable-mode/agents/fable-verifier.md +1 -1
  22. package/fable-mode/agents/fable-worker-haiku.md +5 -4
  23. package/fable-mode/agents/fable-worker-sonnet.md +5 -4
  24. package/fable-mode/behavior-profile-matrix.json +36 -0
  25. package/fable-mode/execution-guardrails/SKILL.md +3 -6
  26. package/fable-mode/execution-guardrails/references/guardrail-rules.md +8 -9
  27. package/fable-mode/fable-haiku/SKILL.md +7 -5
  28. package/fable-mode/fable-haiku/references/routing-notes.md +2 -1
  29. package/fable-mode/fable-opus/SKILL.md +8 -6
  30. package/fable-mode/fable-sonnet/SKILL.md +8 -6
  31. package/fable-mode/model-matrix.json +7 -30
  32. package/fable-mode/references/model-matrix.md +35 -30
  33. package/fable-mode/references/profile-lookup.md +19 -0
  34. package/fable-mode/runtime-model-floor-matrix.json +47 -0
  35. package/fable-mode/scripts/model-selector.js +106 -60
  36. package/fable-mode/scripts/workflow-plan-consumer.js +1 -1
  37. package/harness-everything/SKILL.md +11 -14
  38. package/harness-everything/references/router-workflow-plan.md +2 -2
  39. package/harness-everything/schemas/router-task-shape.schema.json +3 -2
  40. package/harness-everything/schemas/router-workflow-plan.schema.json +6 -5
  41. package/harness-everything/scripts/router-contract-core.js +19 -12
  42. package/harness-everything/scripts/tier-router.js +100 -12
  43. package/opencode-plugin/plugin.json +1 -1
  44. package/package.json +1 -1
  45. package/plugins/harness-everything/.codex-plugin/plugin.json +1 -1
  46. package/plugins/harness-everything/plugin.json +1 -1
  47. package/plugins/harness-everything/skills/fable-mode/SKILL.md +18 -12
  48. package/plugins/harness-everything/skills/fable-mode/agents/fable-orchestrator.md +7 -6
  49. package/plugins/harness-everything/skills/fable-mode/agents/fable-verifier.md +1 -1
  50. package/plugins/harness-everything/skills/fable-mode/agents/fable-worker-haiku.md +5 -4
  51. package/plugins/harness-everything/skills/fable-mode/agents/fable-worker-sonnet.md +5 -4
  52. package/plugins/harness-everything/skills/fable-mode/behavior-profile-matrix.json +36 -0
  53. package/plugins/harness-everything/skills/fable-mode/execution-guardrails/SKILL.md +3 -6
  54. package/plugins/harness-everything/skills/fable-mode/execution-guardrails/references/guardrail-rules.md +8 -9
  55. package/plugins/harness-everything/skills/fable-mode/fable-haiku/SKILL.md +7 -5
  56. package/plugins/harness-everything/skills/fable-mode/fable-haiku/references/routing-notes.md +2 -1
  57. package/plugins/harness-everything/skills/fable-mode/fable-opus/SKILL.md +8 -6
  58. package/plugins/harness-everything/skills/fable-mode/fable-sonnet/SKILL.md +8 -6
  59. package/plugins/harness-everything/skills/fable-mode/model-matrix.json +7 -30
  60. package/plugins/harness-everything/skills/fable-mode/references/model-matrix.md +35 -30
  61. package/plugins/harness-everything/skills/fable-mode/references/profile-lookup.md +19 -0
  62. package/plugins/harness-everything/skills/fable-mode/runtime-model-floor-matrix.json +47 -0
  63. package/plugins/harness-everything/skills/fable-mode/scripts/model-selector.js +106 -60
  64. package/plugins/harness-everything/skills/fable-mode/scripts/workflow-plan-consumer.js +1 -1
  65. package/plugins/harness-everything/skills/harness-everything/SKILL.md +11 -14
  66. package/plugins/harness-everything/skills/harness-everything/references/router-workflow-plan.md +2 -2
  67. package/plugins/harness-everything/skills/harness-everything/schemas/router-task-shape.schema.json +3 -2
  68. package/plugins/harness-everything/skills/harness-everything/schemas/router-workflow-plan.schema.json +6 -5
  69. package/plugins/harness-everything/skills/harness-everything/scripts/router-contract-core.js +19 -12
  70. package/plugins/harness-everything/skills/harness-everything/scripts/tier-router.js +100 -12
  71. package/sbom.cdx.json +7 -7
@@ -9,6 +9,8 @@ This guide helps you resolve common issues with Harness OS installation and usag
9
9
  **Symptom:** `EACCES: permission denied` during installation
10
10
 
11
11
  **Solution:**
12
+
13
+ POSIX shells / Git Bash:
12
14
  ```bash
13
15
  # Option 1: Install without sudo (recommended)
14
16
  npx github:dyphn1/Harness-everything install
@@ -22,6 +24,12 @@ npm config set prefix '~/.npm-global'
22
24
  export PATH=~/.npm-global/bin:$PATH
23
25
  ```
24
26
 
27
+ Windows PowerShell:
28
+ ```powershell
29
+ npx.cmd github:dyphn1/Harness-everything install
30
+ npx.cmd github:dyphn1/Harness-everything install --global
31
+ ```
32
+
25
33
  ### Node.js Version Issues
26
34
 
27
35
  **Symptom:** `SyntaxError` or unsupported engine errors
@@ -93,11 +101,17 @@ which node
93
101
  # Check if hooks directory exists
94
102
  ls -la hooks/scripts/
95
103
 
96
- # Reinstall Harness
104
+ # Reinstall Harness (POSIX shells / Git Bash)
97
105
  npx github:dyphn1/Harness-everything uninstall
98
106
  npx github:dyphn1/Harness-everything install
99
107
  ```
100
108
 
109
+ Windows PowerShell:
110
+ ```powershell
111
+ npx.cmd github:dyphn1/Harness-everything uninstall
112
+ npx.cmd github:dyphn1/Harness-everything install
113
+ ```
114
+
101
115
  ### Circuit Breaker Tripping Too Often
102
116
 
103
117
  **Symptom:** `RULE OF 3 CIRCUIT BREAKER TRIGGERED!` frequently
@@ -129,8 +143,13 @@ Do not expect this Claude Code state file merely because Harness skills or an in
129
143
  ```
130
144
  2. If missing, reinstall with Cursor flag:
131
145
  ```bash
146
+ # POSIX shells / Git Bash
132
147
  npx github:dyphn1/Harness-everything install --cursor
133
148
  ```
149
+ ```powershell
150
+ # Windows PowerShell
151
+ npx.cmd github:dyphn1/Harness-everything install --cursor
152
+ ```
134
153
  3. Restart Cursor.
135
154
 
136
155
  ### Copilot Not Following Rules
@@ -156,8 +175,13 @@ Do not expect this Claude Code state file merely because Harness skills or an in
156
175
  ```
157
176
  2. Reinstall the advisory Codex target if needed:
158
177
  ```bash
178
+ # POSIX shells / Git Bash
159
179
  npx github:dyphn1/Harness-everything install --codex
160
180
  ```
181
+ ```powershell
182
+ # Windows PowerShell
183
+ npx.cmd github:dyphn1/Harness-everything install --codex
184
+ ```
161
185
  3. Remember that this is the instruction-oriented installer path. It is different from the **local OpenAI plugin** package described below.
162
186
 
163
187
  ### Codex / local OpenAI plugin not appearing
@@ -192,9 +216,15 @@ The local plugin mechanically injects the session policy and invariant-first rou
192
216
  For the native host install/update path, run:
193
217
 
194
218
  ```bash
219
+ # POSIX shells / Git Bash
195
220
  npx github:dyphn1/Harness-everything plugin-sync --json
196
221
  ```
197
222
 
223
+ ```powershell
224
+ # Windows PowerShell
225
+ npx.cmd github:dyphn1/Harness-everything plugin-sync --json
226
+ ```
227
+
198
228
  The command installs only when the plugin is absent. An installed Claude plugin uses the explicit Claude update command; an installed Codex plugin uses marketplace upgrade. If plugin state cannot be read, synchronization stops without re-adding or overwriting the plugin.
199
229
 
200
230
  Host CLIs differ in which options and subcommands they implement, so the synchronizer degrades instead of failing:
@@ -36,18 +36,19 @@ stateDiagram-v2
36
36
  Recorded --> [*]
37
37
  ```
38
38
 
39
- The stage record preserves the requested/effective model, fallback reason, stage brief, artifact, pass condition, verification command, and verifier result.
39
+ The stage record preserves requested/effective behavior profile, profile alias, runtime model/effort when known, runtime-floor status, fallback reason, stage brief, artifact, pass condition, verification command, and verifier result.
40
40
 
41
- ## 3. Model Selection and Delegation
41
+ ## 3. Behavior Profile and Runtime Recommendation
42
42
 
43
- Explicit model requests are resolved through `model-selector.js`. Fable never silently downgrades a requested model.
43
+ Explicit `haiku`/`sonnet`/`sonnect`/`opus` requests are behavior-profile aliases resolved through `model-selector.js`; they do not pin the host runtime model. Host-specific model floors are advisory and visible.
44
44
 
45
45
  ```mermaid
46
46
  flowchart LR
47
- Requested[Requested model] --> Selector[model-selector.js]
48
- Selector -->|Available| Named[Named fable agent]
49
- Selector -->|Fallback allowed| Fallback[Recorded fallback]
50
- Selector -->|No valid fallback| Blocked[Escalate blocked stage]
47
+ Requested[Requested profile / legacy alias] --> Selector[model-selector.js]
48
+ Selector --> Role[Named Fable role]
49
+ Role --> Runtime[Host runtime + advisory model floor]
50
+ Runtime -->|Meets / below / unknown| Execute[Execute same behavior profile]
51
+ Role -->|Named agent unavailable| Fallback[Inline or stop fallback]
51
52
  Named --> Stage[Bounded stage brief]
52
53
  Fallback --> Stage
53
54
  Stage --> Verify[Named stage check]
@@ -56,7 +57,7 @@ flowchart LR
56
57
  Cold --> Record
57
58
  ```
58
59
 
59
- The intended role split is explicit rather than magical: Opus is suitable for orchestration, Sonnet for reasoning-heavy stage work, and Haiku for bounded mechanical work. Workers do not spawn workers.
60
+ The role split is explicit: `opus` aliases the orchestrator profile, `sonnet` aliases reasoning, and `haiku` aliases mechanical work. These names describe Fable behavior; actual Claude/Codex model choice is a separate host concern. Workers do not spawn workers.
60
61
 
61
62
  ## 4. Scope and Context Discipline
62
63
 
@@ -89,4 +90,4 @@ At most two full replans are allowed before unresolved blockers are escalated ra
89
90
 
90
91
  Fable completion means the planned stages have produced their artifacts, their checks have passed, and high-risk outputs have received skeptical review where required. It does not mean every possible companion skill was invoked.
91
92
 
92
- The canonical executable and policy details live in `fable-mode/SKILL.md`, `fable-mode/model-matrix.json`, `fable-mode/scripts/model-selector.js`, and `fable-mode/references/model-matrix.md`.
93
+ The canonical executable and policy details live in `fable-mode/SKILL.md`, `fable-mode/behavior-profile-matrix.json`, `fable-mode/runtime-model-floor-matrix.json`, `fable-mode/scripts/model-selector.js`, and `fable-mode/references/model-matrix.md`.
@@ -1,6 +1,6 @@
1
1
  id: negative-fable-model-005
2
- name: Ordinary Tier 2 work does not select a fable model
3
- description: A normal Tier 2 bugfix must not route to a model-pinned fable entrypoint.
2
+ name: Ordinary Tier 2 work does not select a fable profile
3
+ description: A normal Tier 2 bugfix must not route to an explicit Fable behavior profile.
4
4
  tags:
5
5
  - negative-trigger
6
6
  - tier-2
@@ -10,7 +10,7 @@ expected:
10
10
  should_trigger: false
11
11
  graders:
12
12
  - type: text
13
- name: no-model-pinned-route
13
+ name: no-explicit-profile-route
14
14
  config:
15
15
  contains:
16
16
  - "fable-opus"
@@ -1,6 +1,6 @@
1
1
  id: positive-fable-haiku-002
2
2
  name: Explicit Haiku mode routes mechanical work
3
- description: "Stage large, multi-source or multi-session tasks through a written plan, named fable agents, failable per-stage checks, and skeptical delivery review; use fable-opus, fable-sonnet, or fable-haiku for explicit model selection."
3
+ description: "Stage large tasks through plans, named fable agents, failable checks, and skeptical review; fable on opus|sonnet|haiku selects a behavior profile, not a runtime model."
4
4
  tags:
5
5
  - positive-trigger
6
6
  - fable-haiku
@@ -1,6 +1,6 @@
1
1
  id: positive-fable-opus-004
2
2
  name: Explicit Opus mode routes macro orchestration
3
- description: "Stage large, multi-source or multi-session tasks through a written plan, named fable agents, failable per-stage checks, and skeptical delivery review; use fable-opus, fable-sonnet, or fable-haiku for explicit model selection."
3
+ description: "Stage large tasks through plans, named fable agents, failable checks, and skeptical review; fable on opus|sonnet|haiku selects a behavior profile, not a runtime model."
4
4
  tags:
5
5
  - positive-trigger
6
6
  - fable-opus
@@ -1,6 +1,6 @@
1
1
  id: positive-fable-sonnet-003
2
2
  name: Explicit Sonnet mode routes reasoning work
3
- description: "Stage large, multi-source or multi-session tasks through a written plan, named fable agents, failable per-stage checks, and skeptical delivery review; use fable-opus, fable-sonnet, or fable-haiku for explicit model selection."
3
+ description: "Stage large tasks through plans, named fable agents, failable checks, and skeptical review; fable on opus|sonnet|haiku selects a behavior profile, not a runtime model."
4
4
  tags:
5
5
  - positive-trigger
6
6
  - fable-sonnet
@@ -1,6 +1,6 @@
1
1
  id: positive-fable-mode-001
2
2
  name: On-scope prompt triggers fable-mode
3
- description: "Stage large, multi-source or multi-session tasks through a written plan, named fable agents, failable per-stage checks, and skeptical delivery review; use fable-opus, fable-sonnet, or fable-haiku for explicit model selection."
3
+ description: "Stage large tasks through plans, named fable agents, failable checks, and skeptical review; fable on opus|sonnet|haiku selects a behavior profile, not a runtime model."
4
4
  tags:
5
5
  - positive-trigger
6
6
  inputs:
@@ -1,39 +1,45 @@
1
1
  ---
2
2
  name: fable-mode
3
- description: "Stage large, multi-source or multi-session tasks through a written plan, named fable agents, failable per-stage checks, and skeptical delivery review; use fable-opus, fable-sonnet, or fable-haiku for explicit model selection."
3
+ description: "Stage large tasks through plans, named fable agents, failable checks, and skeptical review; fable on opus|sonnet|haiku selects a behavior profile, not a runtime model."
4
4
  license: Apache-2.0
5
5
  metadata:
6
6
  author: Miya Daniel
7
- version: 0.30.2
7
+ version: 0.30.6
8
8
  ---
9
9
 
10
- # Fable Mode (v3)
10
+ # Fable Mode
11
11
 
12
12
  ## Skill Contract
13
13
 
14
14
  | Component | Specification |
15
15
  | :--- | :--- |
16
- | **Trigger / Input** | Tier 3 work spanning multiple files, sources, or sessions. |
17
- | **Expected Output** | Stage map, named-agent briefs, failable checks, and skeptical review. |
18
- | **State Mutations** | Native host TODO tracker or a Markdown checklist; one JSON audit record per stage. |
19
- | **Enforcement Gate** | `<this-skill-dir>/scripts/model-selector.js`, stage contracts, and `<skills-repo-root>/harness-everything/scripts/verify-gate.js`. |
16
+ | **Trigger / Input** | Profile lookup or Tier 3 execution. |
17
+ | **Expected Output** | Profile record or verified stages. |
18
+ | **State Mutations** | Execution only: stage checklist and audit records. |
19
+ | **Enforcement Gate** | Execution: `<this-skill-dir>/scripts/model-selector.js`, stage contracts, and `<skills-repo-root>/harness-everything/scripts/verify-gate.js`. |
20
20
 
21
21
  ## USE FOR:
22
22
  - Large multi-file, multi-source, or multi-session work
23
- - Explicit `fable on haiku`, `fable on sonnet`, or `fable on opus` requests
23
+ - Fable profile explanations or explicit Fable execution requests
24
24
  - Work needing named delegation and cold verification
25
25
 
26
26
  ## DO NOT USE FOR:
27
27
  - One obvious single-pass edit
28
28
  - Ordinary Tier 2 implementation or bugfix work
29
29
 
30
+ ## Select Operation First
31
+
32
+ For explanation/profile-only lookup, read only `<this-skill-dir>/references/profile-lookup.md` and answer. No stage state, delegation, or selector source reads. Quoted aliases do not start Fable. Mixed execution retains its topology.
33
+
34
+ Execution follows the workflow below.
35
+
30
36
  ## Workflow
31
37
 
32
38
  1. Discover the runtime and lock the authorized file scope before edits.
33
39
  2. Write a numbered stage map with one artifact and pass condition per stage; allow at most two full replans.
34
- 3. Resolve the requested model with `model-selector.js`; never silently downgrade.
35
- 4. Delegate by named agent where available: Opus orchestrates, Sonnet reasons, Haiku handles mechanical work, and workers never spawn workers.
36
- 5. Write a stage contract, run its named check, then cold-review high-stakes artifacts with `fable-verifier`.
37
- 6. Record requested/effective model, fallback reason, stage brief, pass condition, verification command, and verifier result for every stage. Escalate unresolved blockers.
40
+ 3. Resolve the requested behavior profile with `model-selector.js`; `opus`, `sonnet`/`sonnect`, and `haiku` are compatibility aliases, not model bindings.
41
+ 4. Delegate by profile: orchestrator coordinates, reasoning handles bounded judgment, mechanical handles low-ambiguity work, and workers never spawn workers.
42
+ 5. Treat the host runtime-model floor as advisory; record its status without blocking Fable solely for model choice.
43
+ 6. Run each stage check, cold-review high-stakes artifacts, and audit profile/runtime/fallback fields.
38
44
 
39
45
  Deep dive: <this-skill-dir>/references/model-matrix.md
@@ -2,7 +2,7 @@
2
2
  name: fable-orchestrator
3
3
  description: Staged-execution orchestrator for large, multi-part, or multi-session tasks. Use when fable-mode discipline must run with enforced delegation — it consumes the router topology, writes a dependency/write-set stage map, delegates ALL artifact production to fable-worker-sonnet / fable-worker-haiku, verifies every stage with a failable check, and sends high-stakes deliverables to fable-verifier for a cold re-check. It has no Write or Edit tool, so it cannot do the work itself.
4
4
  tools: Read, Grep, Glob, Bash, Task, TodoWrite
5
- model: opus
5
+ model: inherit
6
6
  ---
7
7
 
8
8
  You are the fable orchestrator. You coordinate; you do not produce. You have no
@@ -18,7 +18,7 @@ and delegate.
18
18
  When a structured Harness workflow plan is supplied, consume it; do not rebuild
19
19
  its topology from tier labels or keywords. Fable may consume only the selected
20
20
  strategy, parallelism constraints, verifier requirement, workspace/memory hints,
21
- limits, and requested-model metadata. The router does not spawn workers and
21
+ limits, and requested-profile metadata. The router does not spawn workers and
22
22
  Fable does not reclassify the task.
23
23
 
24
24
  - `fable-staged` — execute validated stages sequentially.
@@ -31,11 +31,12 @@ Fable does not reclassify the task.
31
31
  If the plan is blocked, deferred, direct-single, or iterative-single, do not
32
32
  silently coerce it into Fable. Return control to the caller with the plan reason.
33
33
 
34
- Before the first stage, resolve the requested model with
34
+ Before the first stage, resolve the requested behavior profile with
35
35
  `fable-mode/scripts/model-selector.js`. Carry its JSON record into every stage
36
- brief. The workflow-plan consumer must never substitute a branded model. A
37
- missing model must produce the model selector's explicit `fallback` or `blocked`
38
- status. Every brief and handoff names requested versus effective model.
36
+ brief. Profile aliases never pin a branded model. Host runtime-model floors are
37
+ advisory metadata: below-floor or unknown remains visible but does not change or
38
+ block the profile. Agent availability still uses explicit `inline`/`stop`
39
+ fallback. Every brief names requested/effective profile and runtime model when known.
39
40
 
40
41
  ## Core loop
41
42
 
@@ -2,7 +2,7 @@
2
2
  name: fable-verifier
3
3
  description: Cold verifier for finished fable deliverables. Brief it with ONLY the spec and the artifact path — never the producer's reasoning — and it re-runs the named checks from scratch and returns pass/fail per check. Read-only by design; it cannot fix anything, only judge it. Use for high-stakes deliverables after the producing agent claims its checks passed.
4
4
  tools: Read, Grep, Glob, Bash
5
- model: haiku
5
+ model: inherit
6
6
  ---
7
7
 
8
8
  You are a cold verifier. You receive a spec and an artifact. You were
@@ -2,7 +2,7 @@
2
2
  name: fable-worker-haiku
3
3
  description: Fable stage worker for bulk mechanical work — file processing, format conversion, boilerplate, structured extraction, batch edits. Cheap and parallelizable. Produces one verifiable artifact per assignment with tightened verification (no bare "unverified" allowed). Spawned by fable-orchestrator or directly by a fable skill; does not spawn further agents.
4
4
  tools: Read, Write, Edit, Grep, Glob, Bash, WebSearch, WebFetch
5
- model: haiku
5
+ model: inherit
6
6
  ---
7
7
 
8
8
  You are a fable stage worker for mechanical tasks. You receive one bounded
@@ -27,9 +27,10 @@ Rules, in order:
27
27
  5. **Report format:** artifact path, check command, check output, blockers.
28
28
  Short.
29
29
 
30
- Include the mode audit fields in the report: requested model, effective model,
31
- fallback reason, stage brief, pass condition, verification command, and verifier
32
- result. A fallback or blocker must remain visible in the report.
30
+ Include the audit fields in the report: requested/effective profile, profile alias,
31
+ runtime model/effort, runtime-floor status, fallback reason, stage brief, pass
32
+ condition, verification command, and verifier result. A fallback or blocker must
33
+ remain visible in the report.
33
34
 
34
35
  Do not spawn subagents.
35
36
 
@@ -2,7 +2,7 @@
2
2
  name: fable-worker-sonnet
3
3
  description: Fable stage worker for tasks needing real reasoning — research synthesis, nontrivial code, analysis, document drafting. Produces one verifiable artifact per assignment and reports the named check that proves it. Spawned by fable-orchestrator or directly by a fable skill; does not spawn further agents.
4
4
  tools: Read, Write, Edit, Grep, Glob, Bash, WebSearch, WebFetch
5
- model: sonnet
5
+ model: inherit
6
6
  ---
7
7
 
8
8
  You are a fable stage worker. You receive one bounded assignment: a specific
@@ -26,9 +26,10 @@ Rules of the loop, in order:
26
26
  4. **Report format:** artifact path, check command, check output, confirmed
27
27
  facts vs. inferences (labeled), leftovers/recommendations. Keep it short.
28
28
 
29
- Include the mode audit fields in the report: requested model, effective model,
30
- fallback reason, stage brief, pass condition, verification command, and verifier
31
- result. Preserve any `fallback` or `blocked` status from the selector.
29
+ Include the audit fields in the report: requested/effective profile, profile alias,
30
+ runtime model/effort, runtime-floor status, fallback reason, stage brief, pass
31
+ condition, verification command, and verifier result. Preserve any agent
32
+ `fallback` or `blocked` status from the selector.
32
33
 
33
34
  Do not spawn subagents. Escalate rather than guess: if the assignment needs
34
35
  synthesis beyond you or its requirements are contradictory, stop and return the
@@ -0,0 +1,36 @@
1
+ {
2
+ "schemaVersion": 2,
3
+ "profiles": {
4
+ "mechanical": {
5
+ "legacyAlias": "haiku",
6
+ "aliases": [
7
+ "mechanical",
8
+ "haiku"
9
+ ],
10
+ "role": "mechanical-worker",
11
+ "useFor": "bulk mechanical work, format conversion, boilerplate, structured extraction, and other low-ambiguity tasks",
12
+ "agent": "fable-worker-haiku"
13
+ },
14
+ "reasoning": {
15
+ "legacyAlias": "sonnet",
16
+ "aliases": [
17
+ "reasoning",
18
+ "sonnet",
19
+ "sonnect"
20
+ ],
21
+ "role": "reasoning-worker",
22
+ "useFor": "non-trivial implementation, research synthesis, analysis, document drafting, and bounded design reasoning",
23
+ "agent": "fable-worker-sonnet"
24
+ },
25
+ "orchestrator": {
26
+ "legacyAlias": "opus",
27
+ "aliases": [
28
+ "orchestrator",
29
+ "opus"
30
+ ],
31
+ "role": "orchestrator",
32
+ "useFor": "stage decomposition, dependency management, cross-stage synthesis, architecture, and high-stakes final decisions",
33
+ "agent": "fable-orchestrator"
34
+ }
35
+ }
36
+ }
@@ -1,13 +1,10 @@
1
1
  ---
2
2
  name: execution-guardrails
3
- description: >-
4
- Always-on guardrails: verify findings before flagging warnings, batch
5
- minor caveats, and anchor search-and-replace edits with post-write checks.
6
- Use when raising warnings or performing search-and-replace file edits.
3
+ description: "Reference guardrails for verified warnings and safe replacements; active carriers must inject them explicitly."
7
4
  license: Apache-2.0
8
5
  metadata:
9
6
  author: Miya Daniel
10
- version: 0.30.2
7
+ version: 0.30.6
11
8
  ---
12
9
 
13
10
  # Execution Guardrails
@@ -40,6 +37,6 @@ metadata:
40
37
 
41
38
  Repeated matching execution failures remain governed by Rule-of-3 / `zoom-out`; warning batching never substitutes for that recovery path.
42
39
 
43
- These rules are always-on, even when `fable-mode`'s staged loop is not running.
40
+ This nested file is reference-only, not an always-on carrier; rules apply only when an active carrier injects them.
44
41
 
45
42
  Deep dive: <this-skill-dir>/references/guardrail-rules.md
@@ -1,9 +1,8 @@
1
1
  # Guardrail Rules — Full Detail
2
2
 
3
- Three rules extracted from fable-mode's operational section so they apply everywhere,
4
- not only inside the staged loop. A frontier model doesn't need a stage map for a simple
5
- task, but it still needs these — they encode the user's preferences, and no model ships
6
- knowing them.
3
+ Three rules extracted from fable-mode's operational section so active carriers can reuse
4
+ them outside the staged loop. A frontier model doesn't need a stage map for a simple task,
5
+ but any carrier that relies on these rules must load, copy, or inject them explicitly.
7
6
 
8
7
  ## 1. Verify before flag
9
8
 
@@ -53,8 +52,8 @@ Preferred order of tools: IDE native structured replace tool (`replace_string_in
53
52
 
54
53
  ## Relationship to fable-mode
55
54
 
56
- fable-mode's staged loop is optional and gated on task size. These guardrails are not
57
- optional and not gated. When fable-mode runs, its step 4 (self-critique) and all file
58
- edits inherit these rules. When fable-mode doesn't run, these rules apply anyway. In v3
59
- the per-model runners route to frontmatter-defined agents (`agents/*.md`) whose system
60
- prompts carry these rules inline, because spawned agents cannot see this skill.
55
+ fable-mode's staged loop is optional and gated on task size. These rules are intended as
56
+ baseline execution guidance wherever an active carrier loads them, but this nested
57
+ reference is not itself automatically discovered or always-on. In v3 the per-model
58
+ flow routes to frontmatter-defined agents (`agents/*.md`) whose system prompts carry
59
+ the required rules inline, because spawned agents cannot see this reference file.
@@ -1,14 +1,16 @@
1
1
  ---
2
2
  name: fable-haiku
3
- description: "Run staged fable work on Haiku for bulk mechanical tasks with explicit pass conditions, visible fallback handling, and a cold verifier pass."
3
+ description: "Reference mechanical behavior profile (legacy alias haiku) for bulk low-ambiguity work with explicit checks and cold verification; runtime model choice is separate."
4
4
  license: Apache-2.0
5
5
  metadata:
6
6
  author: Miya Daniel
7
- version: 0.30.2
7
+ version: 0.30.6
8
8
  ---
9
9
 
10
10
  # Fable Mode — Haiku
11
11
 
12
+ > **Reference profile, not a standalone plugin skill.** Invoke this profile through `fable-mode` with `fable on haiku`; plugin manifests do not register this nested directory independently.
13
+
12
14
  ## Skill Contract
13
15
 
14
16
  | Component | Specification |
@@ -28,9 +30,9 @@ metadata:
28
30
 
29
31
  ## Run it
30
32
 
31
- 1. Resolve `haiku` through `<this-skill-dir>/../scripts/model-selector.js`.
32
- 2. Spawn `fable-worker-haiku` when available; otherwise use an inline fallback only when the audit record says so.
33
+ 1. Resolve legacy alias `haiku` to the `mechanical` behavior profile through `<this-skill-dir>/../scripts/model-selector.js`.
34
+ 2. Spawn `fable-worker-haiku` when available; otherwise use the explicit inline/stop agent fallback. The runtime-model floor is advisory and never changes the profile.
33
35
  3. Brief one bounded output path and a named check; workers do not spawn workers.
34
36
  4. Route synthesis blockers to Sonnet/Opus and cold-review unsupervised delivery with `fable-verifier`.
35
37
 
36
- Use `<this-skill-dir>/../references/model-matrix.md` for the audit fields and fallback policy.
38
+ Use `<this-skill-dir>/../references/model-matrix.md` for behavior-profile aliases, runtime floors, audit fields, and fallback policy.
@@ -6,7 +6,8 @@ Details moved from SKILL.md.
6
6
 
7
7
  The worker is a real agent definition (`../agents/fable-worker-haiku.md`)
8
8
  invoked by name. Its system prompt carries the loop, the tightened verification
9
- rule, and the operational rules; this skill only routes.
9
+ rule, and the operational rules; this reference profile documents the route used after
10
+ `fable-mode` selects Haiku.
10
11
 
11
12
  ## Full run procedure
12
13
 
@@ -1,14 +1,16 @@
1
1
  ---
2
2
  name: fable-opus
3
- description: "Run staged fable orchestration on Opus for cross-stage synthesis, high-stakes architecture, and final decisions with named workers, cold verification, and visible fallback handling."
3
+ description: "Reference orchestrator behavior profile (legacy alias opus) for staged synthesis, architecture, named delegation, and cold verification; runtime model choice is separate."
4
4
  license: Apache-2.0
5
5
  metadata:
6
6
  author: Miya Daniel
7
- version: 0.30.2
7
+ version: 0.30.6
8
8
  ---
9
9
 
10
10
  # Fable Mode — Opus
11
11
 
12
+ > **Reference profile, not a standalone plugin skill.** Invoke this profile through `fable-mode` with `fable on opus`; plugin manifests do not register this nested directory independently.
13
+
12
14
  ## Skill Contract
13
15
 
14
16
  | Component | Specification |
@@ -24,13 +26,13 @@ metadata:
24
26
 
25
27
  ## DO NOT USE FOR:
26
28
  - One obvious single-pass task
27
- - Bulk mechanical work (use `fable-haiku`) or bounded reasoning (use `fable-sonnet`)
29
+ - Bulk mechanical work (select `fable on haiku`) or bounded reasoning (select `fable on sonnet`)
28
30
 
29
31
  ## Run it
30
32
 
31
- 1. Resolve `opus` through `<this-skill-dir>/../scripts/model-selector.js`.
32
- 2. Spawn `fable-orchestrator` when the runtime exposes it; otherwise report the inline fallback explicitly.
33
+ 1. Resolve legacy alias `opus` to the `orchestrator` behavior profile through `<this-skill-dir>/../scripts/model-selector.js`.
34
+ 2. Spawn `fable-orchestrator` when available; otherwise use the explicit inline/stop agent fallback. The runtime-model floor is advisory and never changes the profile.
33
35
  3. The orchestrator owns scope lock, at most two replans, stage contracts, named worker delegation, and escalation; it never produces artifacts itself.
34
36
  4. Cold-review high-stakes deliverables with `fable-verifier`; report every unverified stage.
35
37
 
36
- Use `<this-skill-dir>/../references/model-matrix.md` for the audit fields and fallback policy.
38
+ Use `<this-skill-dir>/../references/model-matrix.md` for behavior-profile aliases, runtime floors, audit fields, and fallback policy.
@@ -1,14 +1,16 @@
1
1
  ---
2
2
  name: fable-sonnet
3
- description: "Run staged fable work on Sonnet for non-trivial implementation, research synthesis, or bounded reasoning with explicit pass conditions and visible fallback handling."
3
+ description: "Reference reasoning behavior profile (legacy alias sonnet/sonnect) for non-trivial implementation, synthesis, and bounded judgment; runtime model choice is separate."
4
4
  license: Apache-2.0
5
5
  metadata:
6
6
  author: Miya Daniel
7
- version: 0.30.2
7
+ version: 0.30.6
8
8
  ---
9
9
 
10
10
  # Fable Mode — Sonnet
11
11
 
12
+ > **Reference profile, not a standalone plugin skill.** Invoke this profile through `fable-mode` with `fable on sonnet`; plugin manifests do not register this nested directory independently.
13
+
12
14
  ## Skill Contract
13
15
 
14
16
  | Component | Specification |
@@ -24,13 +26,13 @@ metadata:
24
26
 
25
27
  ## DO NOT USE FOR:
26
28
  - One obvious single-pass task
27
- - Macro orchestration or final high-stakes decisions (use `fable-opus`)
29
+ - Macro orchestration or final high-stakes decisions (select `fable on opus`)
28
30
 
29
31
  ## Run it
30
32
 
31
- 1. Resolve `sonnet` through `<this-skill-dir>/../scripts/model-selector.js`; normalize `sonnect` to Sonnet.
32
- 2. Spawn `fable-worker-sonnet` when available, otherwise use a visible inline fallback.
33
+ 1. Resolve `sonnet` or `sonnect` to the `reasoning` behavior profile through `<this-skill-dir>/../scripts/model-selector.js`.
34
+ 2. Spawn `fable-worker-sonnet` when available; otherwise use the explicit inline/stop agent fallback. The runtime-model floor is advisory and never changes the profile.
33
35
  3. Brief the exact artifact path, context, and pass condition; workers do not spawn workers.
34
36
  4. Send high-stakes artifacts to `fable-verifier` and escalate contradictions instead of guessing.
35
37
 
36
- Use `<this-skill-dir>/../references/model-matrix.md` for the audit fields and fallback policy.
38
+ Use `<this-skill-dir>/../references/model-matrix.md` for behavior-profile aliases, runtime floors, audit fields, and fallback policy.
@@ -1,32 +1,9 @@
1
1
  {
2
- "schemaVersion": 1,
3
- "modes": {
4
- "haiku": {
5
- "role": "bulk mechanical / format conversion",
6
- "agent": "fable-worker-haiku",
7
- "aliases": ["haiku"]
8
- },
9
- "sonnet": {
10
- "role": "non-trivial implementation / research synthesis / bounded stage reasoning",
11
- "agent": "fable-worker-sonnet",
12
- "aliases": ["sonnet", "sonnect"]
13
- },
14
- "opus": {
15
- "role": "macro orchestration / cross-stage synthesis / high-stakes architecture and final decision",
16
- "agent": "fable-orchestrator",
17
- "aliases": ["opus"]
18
- }
19
- },
20
- "fallbacks": {
21
- "inline": {
22
- "status": "fallback",
23
- "effectiveModel": "host-model",
24
- "reason": "requested model is unavailable; run inline on the declared host model"
25
- },
26
- "stop": {
27
- "status": "blocked",
28
- "effectiveModel": null,
29
- "reason": "requested model is unavailable and inline fallback was not authorized"
30
- }
31
- }
2
+ "schemaVersion": 2,
3
+ "deprecated": true,
4
+ "replacedBy": [
5
+ "behavior-profile-matrix.json",
6
+ "runtime-model-floor-matrix.json"
7
+ ],
8
+ "note": "Fable profiles define behavior and role assignment. Runtime model floors are host-specific recommendations and do not define the profile."
32
9
  }