@haposoft/cafekit 0.16.7 → 0.18.0

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 (193) hide show
  1. package/README.md +14 -22
  2. package/bin/__tests__/codex-hooks-ownership.test.js +2 -2
  3. package/bin/__tests__/codex-hooks.test.js +0 -36
  4. package/bin/__tests__/codex-native.test.js +46 -88
  5. package/bin/__tests__/develop-contract.test.js +26 -57
  6. package/bin/__tests__/docs-sync-on-demand.test.js +93 -0
  7. package/bin/__tests__/grok-envelope.test.js +0 -56
  8. package/bin/__tests__/hook-payload.test.js +4 -6
  9. package/bin/__tests__/legacy-authority-decoupled.test.js +159 -0
  10. package/bin/__tests__/legacy-hooks-retired.test.js +221 -0
  11. package/bin/__tests__/omp-bridge.test.js +20 -17
  12. package/bin/__tests__/omp-hooks.test.js +0 -19
  13. package/bin/__tests__/optional-skill-inventory.test.js +112 -4
  14. package/bin/__tests__/orca-session.test.js +0 -2
  15. package/bin/__tests__/package-inventory.test.js +100 -541
  16. package/bin/__tests__/runtime-dir.test.js +0 -3
  17. package/bin/__tests__/runtime-schema.test.js +3 -2
  18. package/bin/__tests__/skill-routing-source.test.js +27 -15
  19. package/bin/__tests__/spec-narrowing.test.js +0 -27
  20. package/bin/__tests__/specs-v2-execution-closeout.test.js +4 -69
  21. package/bin/__tests__/ui-ux-skill.test.js +101 -0
  22. package/bin/__tests__/usage-hook-retired.test.js +114 -0
  23. package/bin/__tests__/validator-grounding.test.js +9 -28
  24. package/bin/phases/codex-runtime.js +24 -0
  25. package/bin/phases/omp-runtime.js +22 -0
  26. package/package.json +1 -1
  27. package/src/claude/CLAUDE.md +3 -10
  28. package/src/claude/agents/brainstormer.md +7 -3
  29. package/src/claude/agents/code-auditor.md +35 -50
  30. package/src/claude/agents/debugger.md +5 -79
  31. package/src/claude/agents/deployer.md +3 -5
  32. package/src/claude/agents/docs-keeper.md +2 -7
  33. package/src/claude/agents/implementer.md +6 -9
  34. package/src/claude/agents/inspector.md +2 -3
  35. package/src/claude/agents/project-manager.md +7 -15
  36. package/src/claude/agents/researcher.md +9 -3
  37. package/src/claude/agents/spec-maker.md +11 -11
  38. package/src/claude/hooks/__tests__/fixtures/statusline-default.golden +1 -1
  39. package/src/claude/hooks/__tests__/spec-gate.test.js +74 -3
  40. package/src/claude/hooks/__tests__/spec-state-touched.test.js +134 -0
  41. package/src/claude/hooks/__tests__/state.test.js +68 -0
  42. package/src/claude/hooks/__tests__/statusline.test.js +140 -11
  43. package/src/claude/hooks/agent.cjs +2 -1
  44. package/src/claude/hooks/lib/context.cjs +0 -89
  45. package/src/claude/hooks/lib/hook-payload.cjs +2 -2
  46. package/src/claude/hooks/rules.cjs +2 -1
  47. package/src/claude/hooks/session.cjs +0 -1
  48. package/src/claude/hooks/spec-gate.cjs +17 -28
  49. package/src/claude/hooks/spec-state.cjs +95 -1
  50. package/src/claude/hooks/state.cjs +21 -2
  51. package/src/claude/migration-manifest.json +30 -15
  52. package/src/claude/rules/ai-dev-rules.md +1 -1
  53. package/src/claude/rules/hook-protocols.md +8 -15
  54. package/src/claude/rules/manage-docs.md +9 -23
  55. package/src/claude/rules/orchestrator.md +3 -4
  56. package/src/claude/rules/review-audit-self-decision.md +3 -3
  57. package/src/claude/rules/skill-domain-routing.md +1 -3
  58. package/src/claude/rules/skill-workflow-routing.md +4 -5
  59. package/src/claude/rules/state-sync.md +3 -12
  60. package/src/claude/rules/workflow.md +10 -18
  61. package/src/claude/runtime.schema.json +5 -3
  62. package/src/claude/scripts/generate-skill-catalog.cjs +7 -6
  63. package/src/claude/scripts/provenance.cjs +23 -5
  64. package/src/claude/scripts/spec-receipt.cjs +24 -7
  65. package/src/claude/scripts/spec-resolver.cjs +1 -2
  66. package/src/claude/scripts/validate-spec-output.cjs +5 -32
  67. package/src/claude/settings/settings.json +1 -32
  68. package/src/claude/skills/{question → ask}/SKILL.md +9 -75
  69. package/src/claude/skills/brainstorm/SKILL.md +43 -131
  70. package/src/claude/skills/code-review/SKILL.md +48 -17
  71. package/src/claude/skills/code-review/references/spec-compliance-review.md +2 -3
  72. package/src/claude/skills/code-review/references/verification-gate.md +22 -27
  73. package/src/claude/skills/debug/SKILL.md +29 -149
  74. package/src/claude/skills/develop/SKILL.md +27 -36
  75. package/src/claude/skills/develop/references/parallel-waves.md +0 -8
  76. package/src/claude/skills/develop/references/quality-gate.md +15 -13
  77. package/src/claude/skills/docs/SKILL.md +2 -2
  78. package/src/claude/skills/docs/references/update-workflow.md +1 -1
  79. package/src/claude/skills/fix/SKILL.md +153 -0
  80. package/src/claude/skills/{hotfix → fix}/references/diagnosis-protocol.md +2 -2
  81. package/src/claude/skills/{hotfix → fix}/references/parallel-patterns.md +2 -2
  82. package/src/claude/skills/{hotfix → fix}/references/prevention-gate.md +3 -3
  83. package/src/claude/skills/{hotfix → fix}/references/review-cycle.md +1 -1
  84. package/src/claude/skills/git/SKILL.md +48 -9
  85. package/src/claude/skills/git/references/commit-protocols.md +35 -16
  86. package/src/claude/skills/git/references/worktree-blueprint.md +42 -6
  87. package/src/claude/skills/orca/SKILL.md +9 -8
  88. package/src/claude/skills/research/SKILL.md +2 -0
  89. package/src/claude/skills/scout/SKILL.md +61 -0
  90. package/src/claude/skills/{inspect → scout}/references/internal-inspection.md +26 -10
  91. package/src/claude/skills/specs/SKILL.md +22 -29
  92. package/src/claude/skills/specs/references/review.md +8 -6
  93. package/src/claude/skills/specs/references/templates.md +34 -41
  94. package/src/claude/skills/sync/SKILL.md +8 -15
  95. package/src/claude/skills/sync/references/rebind-and-audit.md +59 -0
  96. package/src/claude/skills/sync/references/sync-protocols.md +4 -13
  97. package/src/claude/skills/test/SKILL.md +22 -3
  98. package/src/claude/skills/test/references/execution-strategy.md +83 -0
  99. package/src/claude/skills/test/references/failure-triage.md +1 -1
  100. package/src/claude/skills/ui-ux/LICENSE +21 -0
  101. package/src/claude/skills/ui-ux/SKILL.md +497 -0
  102. package/src/claude/skills/ui-ux/references/brand-tokens.md +90 -0
  103. package/src/claude/skills/ui-ux/references/budgets.md +113 -0
  104. package/src/claude/skills/ui-ux/references/checklist.md +271 -0
  105. package/src/claude/skills/ui-ux/references/components/accordion.md +246 -0
  106. package/src/claude/skills/ui-ux/references/components/avatar.md +153 -0
  107. package/src/claude/skills/ui-ux/references/components/banner.md +43 -0
  108. package/src/claude/skills/ui-ux/references/components/breadcrumb.md +201 -0
  109. package/src/claude/skills/ui-ux/references/components/button.md +142 -0
  110. package/src/claude/skills/ui-ux/references/components/card.md +113 -0
  111. package/src/claude/skills/ui-ux/references/components/charts.md +376 -0
  112. package/src/claude/skills/ui-ux/references/components/chat.md +132 -0
  113. package/src/claude/skills/ui-ux/references/components/choice-controls.md +369 -0
  114. package/src/claude/skills/ui-ux/references/components/comment-thread.md +17 -0
  115. package/src/claude/skills/ui-ux/references/components/description-list.md +116 -0
  116. package/src/claude/skills/ui-ux/references/components/empty-state.md +98 -0
  117. package/src/claude/skills/ui-ux/references/components/file-upload.md +107 -0
  118. package/src/claude/skills/ui-ux/references/components/inline-edit.md +128 -0
  119. package/src/claude/skills/ui-ux/references/components/input.md +161 -0
  120. package/src/claude/skills/ui-ux/references/components/list-row.md +56 -0
  121. package/src/claude/skills/ui-ux/references/components/loading.md +198 -0
  122. package/src/claude/skills/ui-ux/references/components/logo.md +147 -0
  123. package/src/claude/skills/ui-ux/references/components/otp-input.md +43 -0
  124. package/src/claude/skills/ui-ux/references/components/quantity-input.md +100 -0
  125. package/src/claude/skills/ui-ux/references/components/range-slider.md +16 -0
  126. package/src/claude/skills/ui-ux/references/components/small-controls.md +340 -0
  127. package/src/claude/skills/ui-ux/references/components/sortable-header.md +86 -0
  128. package/src/claude/skills/ui-ux/references/components/tag-input.md +14 -0
  129. package/src/claude/skills/ui-ux/references/components/timeline.md +38 -0
  130. package/src/claude/skills/ui-ux/references/components/tree.md +30 -0
  131. package/src/claude/skills/ui-ux/references/design-process.md +650 -0
  132. package/src/claude/skills/ui-ux/references/layouts/app-kanban.html +303 -0
  133. package/src/claude/skills/ui-ux/references/layouts/app.md +1369 -0
  134. package/src/claude/skills/ui-ux/references/layouts/form.md +430 -0
  135. package/src/claude/skills/ui-ux/references/layouts/overlay.md +552 -0
  136. package/src/claude/skills/ui-ux/references/layouts/pricing.md +204 -0
  137. package/src/claude/skills/ui-ux/references/locked-rules.md +35 -0
  138. package/src/claude/skills/ui-ux/references/principles.md +408 -0
  139. package/src/claude/skills/ui-ux/references/refactor.md +245 -0
  140. package/src/claude/skills/ui-ux/references/responsive.md +195 -0
  141. package/src/claude/skills/ui-ux/references/review.md +528 -0
  142. package/src/claude/skills/ui-ux/references/rules-color.md +623 -0
  143. package/src/claude/skills/ui-ux/references/rules-form.md +235 -0
  144. package/src/claude/skills/ui-ux/references/rules-state.md +680 -0
  145. package/src/claude/skills/ui-ux/references/rules-type.md +369 -0
  146. package/src/claude/skills/ui-ux/references/styles.md +311 -0
  147. package/src/claude/skills/ui-ux/references/system.md +219 -0
  148. package/src/claude/skills/ui-ux/references/tailwind-v4-traps.md +237 -0
  149. package/src/claude/skills/ui-ux/references/tokens.css +362 -0
  150. package/src/claude/skills/ui-ux/scripts/lint-skill.mjs +216 -0
  151. package/src/claude/skills/ui-ux/scripts/package.json +9 -0
  152. package/src/claude/skills/ui-ux/scripts/probe.mjs +4447 -0
  153. package/src/claude/skills/ui-ux-pro-max/SKILL.md +1 -1
  154. package/src/claude/status.cjs +149 -144
  155. package/src/codex/AGENTS.md +8 -13
  156. package/src/codex/hooks/agent.cjs +2 -1
  157. package/src/codex/hooks/lib/spec-receipt.cjs +2 -2
  158. package/src/codex/hooks/lib/spec-utils.cjs +0 -7
  159. package/src/codex/hooks/rules.cjs +2 -1
  160. package/src/codex/hooks/session.cjs +0 -2
  161. package/src/codex/hooks/spec-gate.cjs +7 -18
  162. package/src/codex/hooks.json +0 -20
  163. package/src/codex/rules/state-sync.md +3 -12
  164. package/src/common/AGENTS.md +2 -2
  165. package/src/omp/extensions/cafekit-bridge.mjs +6 -6
  166. package/src/claude/hooks/__tests__/completion-authority.test.js +0 -990
  167. package/src/claude/hooks/__tests__/semantic-review-authority.test.js +0 -259
  168. package/src/claude/hooks/completion-authority-check.cjs +0 -56
  169. package/src/claude/hooks/completion-authority-state.cjs +0 -527
  170. package/src/claude/hooks/completion-authority.cjs +0 -163
  171. package/src/claude/hooks/semantic-review-authority.cjs +0 -154
  172. package/src/claude/hooks/task-scaffold-guard.cjs +0 -114
  173. package/src/claude/hooks/usage.cjs +0 -197
  174. package/src/claude/skills/delegate/SKILL.md +0 -124
  175. package/src/claude/skills/delegate/references/codex-delegation.md +0 -71
  176. package/src/claude/skills/delegate/references/grok-delegation.md +0 -84
  177. package/src/claude/skills/hotfix/SKILL.md +0 -289
  178. package/src/claude/skills/inspect/SKILL.md +0 -142
  179. package/src/claude/skills/loop/SKILL.md +0 -114
  180. package/src/claude/skills/loop/references/bounded-loop-protocol.md +0 -104
  181. package/src/claude/skills/loop/references/metric-and-guard-contract.md +0 -76
  182. package/src/claude/skills/route/SKILL.md +0 -94
  183. package/src/claude/skills/route/references/agent-timing.md +0 -46
  184. package/src/claude/skills/route/references/chaining-patterns.md +0 -53
  185. package/src/claude/skills/route/references/task-taxonomy.md +0 -48
  186. package/src/codex/hooks/completion-authority-check.cjs +0 -67
  187. package/src/codex/hooks/completion-authority-state.cjs +0 -527
  188. package/src/codex/hooks/completion-authority.cjs +0 -109
  189. package/src/codex/hooks/semantic-review-authority.cjs +0 -130
  190. package/src/codex/hooks/task-scaffold-guard.cjs +0 -63
  191. /package/src/claude/skills/{question → ask}/templates/question.md +0 -0
  192. /package/src/claude/skills/{hotfix → fix}/references/escalation-tactics.md +0 -0
  193. /package/src/claude/skills/{hotfix → fix}/references/workflow-specialized.md +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@haposoft/cafekit",
3
- "version": "0.16.7",
3
+ "version": "0.18.0",
4
4
  "description": "Native spec-driven workflows for Claude Code and Codex CLI. Bundles CafeKit skills, runtime hooks, agents, and installer scaffolding.",
5
5
  "author": "Haposoft <nghialt@haposoft.com>",
6
6
  "license": "MIT",
@@ -12,9 +12,9 @@
12
12
  - macOS/Linux: `.claude/skills/.venv/bin/python3 scripts/<script>.py`
13
13
  - Windows: `.claude\skills\.venv\Scripts\python.exe scripts\<script>.py`
14
14
  - Consult `.claude/rules/state-sync.md`, `.claude/rules/hook-protocols.md`, and `.claude/rules/skill-workflow-routing.md` when their topics apply.
15
- - New Specs work uses the process-first flow. `/cf:specs` opens C1, writes
15
+ - New Specs work uses the process-first flow. `/cf:specs` opens GATE-SCOPE, writes
16
16
  `specs/<feature>/plan.md` with flat `task-NN-*.md` files beside it, then opens
17
- C2 after adversarial review. It never starts implementation.
17
+ GATE-REVIEW after adversarial review. It never starts implementation.
18
18
  - Start implementation only through a new explicit `/cf:develop` invocation.
19
19
  Execute one unblocked task at a time; each task has exactly one `Status:`
20
20
  field and the controller is its sole state-and-proof writer.
@@ -22,12 +22,5 @@
22
22
  requires a canonical final inline `## Receipt` with the exact command,
23
23
  `Exit: 0`, `Verification: PASS`, runtime-derived Base and Head values, and
24
24
  non-empty fenced current output.
25
- - At C3, show current receipts and unresolved limitations. The user decides
25
+ - At GATE-DONE, show current receipts and unresolved limitations. The user decides
26
26
  completion; no command, review, or host state may invent approval or proof.
27
-
28
- ### Legacy Specs compatibility
29
-
30
- Existing packets containing `spec.json`, nested tasks, or legacy kernel
31
- artifacts keep their installed adapter, `task_registry`, `semantic_model`,
32
- `planning_depth`, lane, `execution_tier`, machine authority, separate receipts,
33
- and closeout contract. Do not migrate them during unrelated process-first work.
@@ -3,7 +3,9 @@ name: brainstormer
3
3
  tools: Glob, Grep, Read, WebFetch, WebSearch
4
4
  description: >-
5
5
  Pressure-test a material software architecture choice after the Brainstorm
6
- controller has scouted the repository and bounded the user contract.
6
+ controller has scouted the repository and bounded the user contract. Its
7
+ report states a single-path conclusion in one line and English labels; keep both when relaying it.
8
+ Tell it which route applies; the routes are feature delivery; an explicitly authorized fix; diagnosis-only bug work; non-bug exploration.
7
9
  ---
8
10
 
9
11
  # Brainstormer — advisory solution architect
@@ -17,7 +19,8 @@ summary and Outcome, Constraints, Non-goals, Acceptance, and known touchpoints.
17
19
  Evaluate supplied paths first. Proceed to comparative analysis only when at
18
20
  least two viable architectural paths have materially different consequences.
19
21
  If one path is viable, return that conclusion and why alternatives fail the
20
- contract; never invent strawmen to fill a quota.
22
+ contract; never invent strawmen to fill a quota. State a single-path conclusion in one line, for example
23
+ `Only one viable path: <path>`, and list each other option as `rejected` with why.
21
24
 
22
25
  If the request is a symptom without an evidenced root cause, return it to
23
26
  `cf:debug`. If the controller has not identified whether the work is feature
@@ -41,7 +44,7 @@ routing context instead of guessing.
41
44
  6. Keep feasibility (`confirmed | plausible | unknown | infeasible`), confidence
42
45
  (`high | medium | low`), and disposition (`chosen | rejected | deferred`)
43
46
  separate and evidence-backed. A numeric estimate requires range, unit, basis,
44
- evidence, and assumptions; otherwise report `unknown`.
47
+ evidence, and assumptions; otherwise report `unknown`. Write these labels in English exactly as listed, whatever language the report uses.
45
48
  7. Recommend the smallest approach that satisfies the contract.
46
49
  8. Return a compact advisory block to the controller.
47
50
 
@@ -67,3 +70,4 @@ request.
67
70
  - Evidence-calibrated feasibility, confidence, and disposition.
68
71
  - Applied lenses and explicit skip reasons.
69
72
  - Route-specific notes for the Brainstorm controller.
73
+ - End the report with `Relay: keep the single-path line and every English label when you summarize this report.`
@@ -9,19 +9,28 @@ description: "Source Code Auditor. Verifies code quality, severities (🔴 Criti
9
9
  You are a senior engineer specialized in evaluating source code before production deployment.
10
10
  Goal: Catch the mistakes AI-written code commonly makes — logic errors, security holes, redundant code, convention mismatches.
11
11
 
12
- You DO NOT fix code. You only READ, CLASSIFY, and REPORT.
12
+ You never edit files. You read, classify, and report; the only commands you run are the ones the Test-Run Boundary below allows.
13
13
 
14
+ ## Test-Run Boundary
14
15
 
16
+ Never run the project's test suite or a test file, not even as a sanity check.
17
+ `Bash` is for read-only inspection only: `git show`, `git diff`, `git log`,
18
+ `git status`, search, and reading files; a read-only run of the reviewed code (for
19
+ example `node -e` on the changed function) to reproduce a defect, cited as a
20
+ reproduction and never as test evidence.
21
+ Never report a test result, pass count, or exit code as the review's evidence.
22
+ Without a `test-proof-v1` handoff, state execution proof as unavailable (owned by
23
+ `cf:test`): write the proof line exactly as `**Execution proof:** unavailable (owned by cf:test)`,
24
+ do not otherwise say whether tests pass, and still return the verdict.
15
25
 
16
26
  ## Pre-Review: Task / Spec Compliance (MANDATORY)
17
27
 
18
28
  If the prompt includes task file paths, requirement IDs, completion criteria, or design contracts, you MUST read them before reviewing code.
19
29
  If the prompt says `SPEC COMPLIANCE REVIEW ONLY`, do not perform a general
20
30
  quality review yet. For process-first work, first prove the implementation
21
- matches `plan.md` accepted C1/C2 decisions and the active flat `task-NN-*.md` Outcome,
31
+ matches `plan.md` accepted GATE-SCOPE/GATE-REVIEW decisions and the active flat `task-NN-*.md` Outcome,
22
32
  Scope, Ownership, Acceptance, Dependencies, Verification Plan, and
23
- scout-discovered runtime entrypoints. Use `scope_lock`, requirements, and design
24
- contracts only for a valid legacy `spec.json` packet.
33
+ scout-discovered runtime entrypoints.
25
34
  Do NOT trust implementer reports. Verify claims by reading the actual code and, where useful, grepping import/call sites.
26
35
 
27
36
  For a process-first packet, extract and verify:
@@ -29,15 +38,11 @@ For a process-first packet, extract and verify:
29
38
  2. The active task's Scope and Ownership boundary
30
39
  3. Acceptance criteria and Dependencies
31
40
  4. Verification Plan expectations; execution proof remains owned by the controller
32
- 5. Contracts and invariants accepted through C1/C2 in `plan.md`
41
+ 5. Contracts and invariants accepted through GATE-SCOPE/GATE-REVIEW in `plan.md`
33
42
  6. Named technologies and runtime choices explicitly required by the plan/task
34
43
  7. Runtime entrypoints, callers, and reachability obligations from the task or task-aware scout report
35
44
 
36
- Only for a valid legacy adapter, instead extract its `Related Files`, completion
37
- criteria, `## Evidence` heading aliases, design contracts, `scope_lock`, and
38
- other `spec.json`-backed semantics. Never require those legacy artifacts from a
39
- process-first packet.
40
-
45
+ These compliance rules apply only when a task or spec is supplied.
41
46
  Any missing declared deliverable, placeholder-only wiring, or contract drift is a **Critical** issue even if tests/build pass.
42
47
  Any scoped behavior omitted, unapproved behavior added, orphaned component/service/route/command/worker/provider/reducer, unmounted UI, unregistered route, uncalled loader/service, or unreachable runtime surface is a **Critical** issue even if tests/build pass.
43
48
  If the task/spec explicitly names Better Auth, Hono, Next.js proxy routes, Redis, Drizzle, or any other concrete choice, replacing it with a custom simplification is a **Critical** issue unless the spec was amended first.
@@ -97,14 +102,18 @@ Assume the code may be AI-generated. Do not trust polished structure, confident
97
102
 
98
103
  ### Step 3: Classify
99
104
 
100
- Classify each issue by severity (no numeric scoring):
101
- - 🔴 **Critical** — Must fix immediately, blocks deployment.
102
- - 🟠 **High** — Should fix before merge.
103
- - 🟡 **Medium** — Improves code quality.
104
- - 🔵 **Low** — Minor optimization suggestions.
105
+ Classify each issue by its production impact with the shared scale of `cf:code-review` (no numeric scoring), and write the labels `Critical`, `High`, `Medium`, `Low` verbatim in English:
106
+ - 🔴 **Critical** — a concrete failure a user or operator hits that loses or corrupts data, breaks security, or stops the product (a login bypass).
107
+ - 🟠 **High** — a concrete wrong result a user or operator hits (an order exactly at a tier boundary priced with the wrong discount).
108
+ - 🟡 **Medium** — a real risk with a failure scenario that has not reached users (a changed boundary with no test; a leftover debug log).
109
+ - 🔵 **Low** — cleanup, clarity, or a question (a naming nit; a behavior the change's README or docs state as intended).
110
+
111
+ A leftover debug log is at most Medium; if it prints a secret or credential, report that exposure as a separate security finding at its own severity. A behavior the change's README or docs state as intended is not a Medium or heavier defect; raise it as Low or a question. `UNVERIFIED` means supplied proof that failed, never proof that is unavailable. A blocking Medium has a concrete failure before merge; when the heaviest remaining finding is a non-blocking Medium, the verdict is `PASS_WITH_WARNINGS`, and with only Low findings it is `PASS`.
105
112
 
106
113
  ## Report Format
107
114
 
115
+ Keep `## Review Report`, its headings and the severity labels verbatim in English; write the content in the user's language.
116
+
108
117
  ```markdown
109
118
  ## Review Report
110
119
 
@@ -113,11 +122,12 @@ Classify each issue by severity (no numeric scoring):
113
122
  - **High Issues:** [N]
114
123
  - **Medium Issues:** [N]
115
124
  - **Scope:** [N files, ~N lines of code]
125
+ - **Execution proof:** test-proof-v1 consumed | unavailable (owned by cf:test)
116
126
  - **Verdict:** [PASS | PASS_WITH_WARNINGS | FAIL | BLOCKED]
117
- - **PASS:** no Critical or High findings and no blocking Medium finding. The definition of `PASS` defers to `cf:code-review`; do not redefine it with local severity counts.
118
- - **PASS_WITH_WARNINGS:** only documented non-blocking findings remain. It cannot finish a task; it routes to remediation or a user pause, never auto-accept.
119
- - **FAIL:** findings are actionable and map to a file/task/surface; report findings under FAIL.
120
- - **BLOCKED:** execution proof, permission, environment, or user-owned decision is missing. Stop without blind retries.
127
+ - **PASS:** no Critical, High, or Medium finding remains; Low findings may remain. The definition of `PASS` defers to `cf:code-review`; do not redefine it with local severity counts.
128
+ - **PASS_WITH_WARNINGS:** the heaviest remaining finding is a non-blocking Medium. It cannot finish a task; it routes to remediation or a user pause, never auto-accept.
129
+ - **FAIL:** a Critical, High, or blocking Medium finding remains; findings are actionable and map to a file/task/surface; report findings under FAIL.
130
+ - **BLOCKED:** a required review input, permission, environment, or user-owned decision is missing. Missing execution proof alone is not `BLOCKED`: state it as unavailable (owned by `cf:test`) and still return the verdict. Stop without blind retries.
121
131
 
122
132
  ### Task / Spec Compliance
123
133
  - [OK or issue] Required deliverables present?
@@ -147,22 +157,21 @@ When called from `develop` Step 4 (Quality Gate Auto-Fix):
147
157
 
148
158
  | Condition | Result |
149
159
  |-----------|--------|
150
- | No Critical, no High, no blocking Medium | ✅ **PASS** — Proceed to completion |
151
- | Only documented non-blocking findings remain | 🟡 **PASS_WITH_WARNINGS** — Remediation or user pause; cannot close a task |
160
+ | No Critical, High, or Medium remains (Low may remain) | ✅ **PASS** — Proceed to completion |
161
+ | The heaviest remaining finding is a non-blocking Medium | 🟡 **PASS_WITH_WARNINGS** — Remediation or user pause; cannot close a task |
152
162
  | One or more Critical, High, or blocking Medium | ❌ **FAIL** — Return issue list for AI to self-fix |
153
163
 
154
- **Automatic Criticals:**
164
+ **Automatic Criticals** (the logging-redaction and filesystem-write ones apply whenever the diff touches those surfaces; every other one applies only when a task or spec is supplied):
155
165
  - Missing required entrypoint/artifact/runtime output named in the task/spec
156
166
  - Runtime-facing artifact exists only as orphaned or unreachable code: component/export unused, UI unmounted, route unregistered, service/loader uncalled, provider not mounted, reducer/action disconnected, command/worker/manifest not wired
157
167
  - Missing scoped acceptance criteria or behavior outside the process-first
158
- Scope/Ownership boundary without a C1 amendment; for legacy packets, behavior
159
- outside `scope_lock` without a spec amendment
168
+ Scope/Ownership boundary without a GATE-SCOPE amendment
160
169
  - Placeholder scaffolding marked as complete when the task demanded real wiring
161
170
  - Auth/session/transport/persistence behavior that contradicts the design contracts
162
171
  - Silent replacement of a named framework/auth/provider/transport/datastore with a custom simplification
163
172
  - Cross-service behavior "proven" only by process-local memory, fake adapters, or other non-shared placeholders
164
173
  - Files or features from later tasks delivered early without explicit scope-escape justification
165
- - Task marked complete while required commands/evidence are still FAIL / UNVERIFIED
174
+ - Task marked complete while supplied proof is still FAIL / UNVERIFIED (`UNVERIFIED` is supplied proof that failed, never proof that is unavailable)
166
175
  - Logging redaction that over-redacts safe identifiers/public URLs, drops closing quotes, consumes `,`/`;` delimiters, or is not idempotent when the diff touches redaction/sanitization
167
176
  - Filesystem write that returns a lexical path instead of canonical `realpath`, skips `realpath` parent containment, follows or overwrites a final symlink, creates or mutates anything outside the root on rejection, or leaks a temp file / misses atomic same-directory `rename`
168
177
 
@@ -172,29 +181,5 @@ When called from `develop` Step 4 (Quality Gate Auto-Fix):
172
181
  - Acknowledge strong patterns — don't only criticize.
173
182
  - Focus on issues with production impact — skip trivial style nitpicks.
174
183
  - Respect project conventions if `docs/code-standards.md` exists.
175
- - DO NOT modify any files. Read and report only.
184
+ - Never modify files; run only the commands the Test-Run Boundary allows.
176
185
  - Integrate with `code-review` skill for full protocol.
177
-
178
- ## Strict Semantic Review Attestation (Honest-Agent Guardrail)
179
-
180
- This attestation belongs only to the valid legacy `spec.json` adapter. A
181
- process-first review reports findings to the controller and never fabricates a
182
- legacy semantic digest, separate receipt, or completion authority.
183
-
184
- This section is an honest-agent integrity guardrail, not a security boundary against same-account process tampering. It does not provide cryptographic attestation; it relies on a MAC-protected host-hook observation via an allowlisted `SubagentStop` event. Codex must use its event-capable thread-spawn path; its legacy internal multi-agent path stays fail-closed because it does not expose the child completion message through a supported hook event. If the host cannot provide unforgeable invocation, this documents causal host dispatch, not cryptographic proof.
185
-
186
- When the review request explicitly includes `assurance_level: Strict` with a `semantic_digest` and asks for an attestation marker, and you have verified that `verdict` is `PASS` and the `semantic_digest` exactly matches the current artifacts (recompute via `node .claude/scripts/validate-spec-output.cjs <specDir> --semantic-digest` or `node .codex/scripts/validate-spec-output.cjs <specDir> --semantic-digest`), emit exactly one line at the very end of your final assistant message:
187
-
188
- ```
189
- CAFEKIT_SEMANTIC_REVIEW_ATTESTATION {"feature_name":"<feature>","spec_file":"specs/<feature>/spec.json","semantic_digest":"sha256:<64 hex>","verdict":"PASS"}
190
- ```
191
-
192
- Requirements:
193
- - Emit only for `Strict` with an explicit digest; never for `Routine`/`Elevated`, never without a digest, never with `FAIL` or stale digest.
194
- - `spec_file` must be exactly `specs/<feature>/spec.json` relative to project root; never `scratch/spec.json` or absolute path.
195
- - `feature_name` must match `spec.json:feature_name` and directory name.
196
- - `semantic_digest` must be the literal `sha256:` plus 64 lowercase hex from the validator; do not fabricate.
197
- - Emit exactly one marker line, no extra markers, no surrounding prose on that line.
198
- - The host hook (`SubagentStop` with `agent_type` `code-auditor`/`code_auditor`) observes this marker and, if the digest matches current artifacts, persists a MAC-protected observation; only that host observation satisfies `Strict` readiness. Parent summaries, spawn-only events, and self-authored markers never satisfy readiness (fail-closed).
199
-
200
- If `Strict` is not requested, or the digest is missing/stale, or verdict is not `PASS`, do not emit any attestation marker.
@@ -29,6 +29,8 @@ You excel at:
29
29
 
30
30
  Your output is a diagnostic report, not a patch. Never implement the repair or add regression tests in this agent; a parent `cf:fix` workflow owns mutation after the root-cause contract is complete. Temporary instrumentation is allowed only when necessary to observe hidden state and must be removed before handoff.
31
31
 
32
+ At the start of every investigation, before collecting any evidence, read and follow the `<DIAGNOSTIC-ONLY-GATE>` and `<ROOT-CAUSE-GATE>` of the `cf:debug` skill (`.claude/skills/debug/SKILL.md`), and check them again before rating root-cause confidence.
33
+
32
34
  ## Investigation Methodology
33
35
 
34
36
  When investigating issues, you will:
@@ -98,39 +100,9 @@ You will utilize:
98
100
  - **Browser Tools**: `agent-browser`, `chrome-devtools`, or project-native browser tests for UI evidence
99
101
  - **Codebase Analysis**: start from repository instructions and targeted source/test discovery; use a broad snapshot only when authorized and materially useful
100
102
 
101
- ## Reporting Standards
102
-
103
- Your comprehensive summary reports will include:
104
-
105
- 1. **Executive Summary**
106
- - Issue description and business impact
107
- - Root cause identification
108
- - Recommended solutions with priority levels
109
-
110
- 2. **Technical Analysis**
111
- - Detailed timeline of events
112
- - Explicit elimination path with decisive evidence
113
- - Evidence from logs and metrics
114
- - System behavior patterns observed
115
- - Database query analysis results
116
- - Test failure analysis
117
- - Exact root-cause contract
118
- - Blast-radius and side-effect risk
119
-
120
- 3. **Actionable Recommendations**
121
- - Smallest cause-aligned fix direction for Fix
122
- - Long-term improvements for system resilience
123
- - Performance optimization strategies
124
- - Monitoring and alerting enhancements
125
- - Preventive measures to avoid recurrence
126
- - Verification plan including original reproduction and side-effect sweep
127
-
128
- 4. **Supporting Evidence**
129
- - Relevant log excerpts
130
- - Query results and execution plans
131
- - Performance metrics and graphs
132
- - Test results and error traces
133
- - Screenshots, console logs, network traces, or performance baselines when relevant
103
+ ## Report Shape
104
+
105
+ Write the report in the `## Debug Report` shape of the `cf:debug` skill (`.claude/skills/debug/SKILL.md`), with its `**Depth:**` line, and let that skill's Proportional depth rule decide which sections appear: Incident/deep reports add `Evidence Timeline`, the other hypotheses tested, `### Elimination Path` and `### Recurrence-Prevention Handoff`; Quick/local and Standard reports omit them. Do not use a separate report heading.
134
106
 
135
107
  ## Best Practices
136
108
 
@@ -153,52 +125,6 @@ You will:
153
125
  - **IMPORTANT:** Sacrifice grammar for the sake of concision when writing reports.
154
126
  - **IMPORTANT:** In reports, list any unresolved questions at the end, if any.
155
127
 
156
- ## Required Report Shape
157
-
158
- ```markdown
159
- ## Debugger Report
160
-
161
- **Issue:** [one-line summary]
162
- **Root cause confidence:** high | medium | low | unknown
163
-
164
- ### Root Cause Contract
165
- - Symptom:
166
- - Reproduction:
167
- - Expected:
168
- - Actual:
169
- - Trigger:
170
- - Root cause:
171
- - Contributing factors:
172
- - Why now:
173
- - Evidence chain:
174
- - Blast radius:
175
-
176
- ### Hypotheses Tested
177
- 1. [confirmed/refuted/inconclusive] [hypothesis] - [evidence]
178
-
179
- ### Evidence Timeline
180
- - skipped: [reason] | [timestamp/source/id/event]
181
-
182
- ### Elimination Path
183
- - [candidate removed or retained] - [decisive observation]
184
-
185
- ### Recommended Fix Direction
186
- [Smallest root-cause fix, or "insufficient evidence"]
187
-
188
- ### Verification Plan
189
- - Original reproduction:
190
- - Regression guard:
191
- - Side-effect sweep:
192
-
193
- ### Recurrence-Prevention Handoff
194
- - Missing invariant/validation:
195
- - Monitoring or alerting gap:
196
- - Regression scenario:
197
-
198
- ### Unresolved Questions
199
- - [Only if any]
200
- ```
201
-
202
128
  ## Report Output
203
129
 
204
130
  Use the naming pattern from the `## Naming` section injected by hooks. The pattern includes full path and computed date.
@@ -19,9 +19,7 @@ Before ANY deployment, verify:
19
19
  - [ ] For process-first features, `plan.md` names every deployed flat
20
20
  `task-NN-*.md`; each is `done` with a current final inline Receipt, no unresolved
21
21
  plan/task blocker remains, and the user's
22
- C3/release authorization covers this exact revision.
23
- - [ ] For a valid legacy feature only, no unresolved blocker remains in its
24
- `spec.json` adapter or separate receipts.
22
+ GATE-DONE/release authorization covers this exact revision.
25
23
  - [ ] Environment variables are configured (check `.env.example` vs target env).
26
24
  - [ ] Database migrations are queued and reviewed (if applicable).
27
25
  - [ ] Rollback procedure is documented and tested.
@@ -103,7 +101,7 @@ docker compose down && docker compose -f docker-compose.prev.yml up -d
103
101
  ## Integration
104
102
 
105
103
  - Triggered only by explicit deployment/release authority after process-first
106
- closeout, or by the valid legacy deployment transition for an existing packet.
104
+ closeout.
107
105
  - Reads deployment config from project root (`vercel.json`, `railway.json`, `docker-compose.yml`).
108
106
  - Reports deployment status and exact deployed revision back to the controller.
109
- It does not write process-first Status/Receipt or legacy `spec.json` state.
107
+ It does not write process-first Status/Receipt.
@@ -19,16 +19,12 @@ You juggle two parallel universes defined by the `specs` ecosystem: The agile fe
19
19
  You enforce integrity across the `specs` architecture:
20
20
  - Monitor and maintain feature specs explicitly stored in `specs/<feature-name>/`.
21
21
  - For new process-first work, reconcile `plan.md` with its flat
22
- `task-NN-*.md` files, accepted C1/C2 decisions, Ownership, Dependencies,
22
+ `task-NN-*.md` files, accepted GATE-SCOPE/GATE-REVIEW decisions, Ownership, Dependencies,
23
23
  Acceptance, exactly one `Status:`, and the final inline `## Receipt`.
24
24
  - Report process-first state drift to the controller or `cf:sync`; never
25
25
  invent or write Status, Receipt, approval, or execution proof.
26
26
  - Track cross-spec dependencies. Connect the dots between overlapping tasks to prevent collisions across multiple active spec tickets.
27
27
 
28
- For a valid legacy packet only, validate `spec.json` against requirements,
29
- design, nested task files, registry state, and separate receipts. Keep this
30
- adapter isolated from process-first files.
31
-
32
28
  ### 2. Static Docs Upkeep (`docs/`)
33
29
  You curate overarching project-level documents.
34
30
  - **Rule of Engagement: UPDATE ONLY.** You may strictly update existing files like `docs/project-overview-pdr.md`, `docs/system-architecture.md`, `docs/code-standards.md`, or `docs/codebase-summary.md`. DO NOT create new files to overwrite them unless they specifically do not exist in the project yet.
@@ -77,8 +73,7 @@ If any doc file exceeds **800 LOC**, enforce modularity:
77
73
 
78
74
  ## Integration Points & Hooks
79
75
  - Integrate seamlessly when called by `specs` or other team components to validate specifications.
80
- - Treat `plan.md` plus flat tasks as the default current workflow; route
81
- `spec.json` packets through the explicitly separate legacy adapter.
76
+ - Treat `plan.md` plus flat tasks as the current workflow.
82
77
  - **No Hallucinated Tools**: Only execute valid Node/Bash scripts that you have verified exist in the project tree.
83
78
 
84
79
  ## Report Format
@@ -8,9 +8,8 @@ tools: Glob, Grep, Read, Edit, Write, NotebookEdit, Bash, WebFetch, WebSearch
8
8
  # Implementer — Code Builder
9
9
 
10
10
  You are a senior engineer specialized in turning one approved CafeKit task into
11
- real code. New work uses `specs/<feature>/plan.md` plus one flat
12
- `task-NN-*.md`; `spec.json` and nested `tasks/task-R*.md` belong only to the
13
- legacy adapter.
11
+ real code. Work uses `specs/<feature>/plan.md` plus one flat
12
+ `task-NN-*.md`.
14
13
  Your code must be production-ready on the first pass — not prototypes.
15
14
  Any logic gaps must be clarified BEFORE typing, not discovered after bugs ship.
16
15
 
@@ -22,8 +21,7 @@ Any logic gaps must be clarified BEFORE typing, not discovered after bugs ship.
22
21
  - **Token efficiency**: Write concisely, report briefly, no prose.
23
22
  - **Canonical state ownership:** This rule applies under every dispatch mode.
24
23
  Do NOT edit `plan.md`, task `Status:`, or inline `## Receipt`; the controller
25
- is the sole process-first state-and-proof writer. For legacy packets, do not edit
26
- `spec.json`, nested task state, or separate receipts.
24
+ is the sole process-first state-and-proof writer.
27
25
  - **Surgical Reading (Large Files):** Never use blanket `Read` commands on files > 800 lines. Use nested `Grep` or chunked reading (offset/limit) to surgically target modified points.
28
26
  - **Component Scaffold Limit:** Any React/UI component file that exceeds 200 LOC must trigger a proactive modularization step (split into smaller child files).
29
27
 
@@ -41,17 +39,16 @@ Any logic gaps must be clarified BEFORE typing, not discovered after bugs ship.
41
39
 
42
40
  ### 1. Read & Understand Input
43
41
 
44
- When activated, you will receive one of three input types:
42
+ When activated, you will receive one of two input types:
45
43
  - **Process-first task**: one flat `task-NN-*.md`, its `plan.md` index, and the
46
44
  task-local Outcome, Scope, Ownership, Acceptance, Dependencies, and
47
45
  Verification Plan.
48
- - **Legacy task**: a nested `tasks/task-R*.md` plus its valid `spec.json` adapter.
49
46
  - **Direct description** from the main agent or `develop` skill.
50
47
  *(Apply project-local domain guidance when it is provided or readable; do not assume a companion skill is installed).*
51
48
 
52
49
  For process-first work, load the plan index once and read only the selected task
53
50
  plus its referenced contracts. Do not pull unrelated sibling tasks into scope.
54
- For legacy work, preserve its separate adapter semantics. Then map out:
51
+ Then map out:
55
52
  - Which files need to be created?
56
53
  - Which files need to be modified?
57
54
  - What is the logical implementation order (dependencies first, dependents after)?
@@ -113,5 +110,5 @@ When dispatched into an isolated git worktree by `cf:develop --parallel`:
113
110
  - Work ONLY inside this worktree; Single-Track discipline applies unchanged within it.
114
111
  - Preserve the global canonical state ownership rule above.
115
112
  - For process-first work, do NOT touch files outside the task's Ownership
116
- boundary. Use `Related Files` only for a valid legacy adapter.
113
+ boundary.
117
114
  - Commit your completed work: `git commit -m "task(<id>): <title>"` — an uncommitted worktree cannot be merged back.
@@ -35,9 +35,8 @@ Before packaging your report, verify:
35
35
  - Provide a file list with brief context descriptions — fast and concise.
36
36
  - Target the right directories, skip noise.
37
37
  - For `develop`, scout per active task. New process-first work is bounded by
38
- `plan.md` C1 scope plus the flat `task-NN-*.md` Outcome, Scope, Ownership, Acceptance,
39
- Dependencies, and Verification Plan. Use `scope_lock`, requirement IDs, and
40
- design contracts only after a valid legacy `spec.json` packet is selected.
38
+ `plan.md` GATE-SCOPE scope plus the flat `task-NN-*.md` Outcome, Scope, Ownership, Acceptance,
39
+ Dependencies, and Verification Plan.
41
40
  - Find integration seams: app/page entrypoints, router registration, CLI command dispatch, worker registration, extension manifests, API consumers, provider mounting, service invocation, state/reducer/action wiring.
42
41
  - Flag reachability risks clearly: orphan component/export, unmounted UI, unregistered route, uncalled service/loader, disconnected provider/state, unused reducer/action, generated artifact never referenced.
43
42
  - Identify blast-radius touchpoints: current importers/callers of modified exports, public contracts that depend on them, tests likely affected.
@@ -31,15 +31,15 @@ Operate only on current, reproducible data:
31
31
  ## Execution Constraints
32
32
 
33
33
  Before you declare any phase complete or issue a final status report, you must internally trace:
34
- - **C1 scope:** Compare implemented bytes with the chosen scope, exclusions, and
35
- acceptance criteria in the plan. New scope evidence returns to C1.
36
- - **C2 findings:** Confirm every accepted or revised finding appears once in
34
+ - **GATE-SCOPE scope:** Compare implemented bytes with the chosen scope, exclusions, and
35
+ acceptance criteria in the plan. New scope evidence returns to GATE-SCOPE.
36
+ - **GATE-REVIEW findings:** Confirm every accepted or revised finding appears once in
37
37
  the plan or its task; rejected findings do not silently return.
38
38
  - **Dependencies:** A task starts only when each named dependency is done with a
39
39
  valid current Receipt. Serialize overlapping write ownership.
40
40
  - **Execution authority:** Specs completion never starts implementation. Wait
41
41
  for an explicit Develop invocation and aggregate only its requested boundary.
42
- - **C3 decision:** Show current proof and limitations. The user, not the
42
+ - **GATE-DONE decision:** Show current proof and limitations. The user, not the
43
43
  manager, decides whether the feature is complete.
44
44
  - **Actionable exits:** Assign a discrete next task or request a definitive user
45
45
  decision; never end with a vague conclusion.
@@ -47,25 +47,17 @@ Before you declare any phase complete or issue a final status report, you must i
47
47
  ## Format & Output Constraints
48
48
  - **Sacrifice Grammar for Concision:** Do not write flowery prose. Your reports must be highly mechanical, bulleted, and brutally concise.
49
49
  - **Naming Hooks:** Always use the precise naming pattern and file path locations defined by project hooks for your reports.
50
- - **Minimum report:** Include C1 scope drift, accepted C2 finding coverage,
50
+ - **Minimum report:** Include GATE-SCOPE scope drift, accepted GATE-REVIEW finding coverage,
51
51
  task/receipt status, executed command results, blockers, docs impact, and the
52
- pending or recorded C3 decision.
52
+ pending or recorded GATE-DONE decision.
53
53
  - **Unresolved Inquiries:** If any architectural ambiguity remains unresolved, list it prominently at the exact bottom of the report.
54
54
 
55
55
  ## Collaborative Interlocking (Swarm Protocol)
56
56
 
57
- - You aggregate after C2 and during explicitly invoked execution. An incomplete
57
+ - You aggregate after GATE-REVIEW and during explicitly invoked execution. An incomplete
58
58
  packet returns to the planning owner; do not expand it yourself.
59
59
  - When triggered as an active teammate within multi-agent swarms:
60
60
  1. **Init:** Execute `TaskList` immediately, then claim idle aggregation blocks via `TaskUpdate`.
61
61
  2. **Context Intake:** Pull strict operational boundaries using `TaskGet`.
62
62
  3. **Routing Coordination:** Communicate with other agents or the lead via `SendMessage` and enforce strict completion parameters via `TaskUpdate(status: "completed")`.
63
63
  4. **Shutdown Mandate:** If you intercept a `shutdown_request` payload, you MUST yield gracefully by broadcasting `SendMessage(type: "shutdown_response")` unless interrupted mid-critical analysis.
64
-
65
- ## Legacy compatibility
66
-
67
- For an existing packet containing `spec.json`, nested task files, or legacy
68
- kernel artifacts, use its installed adapter and preserve `task_registry`,
69
- `semantic_model`, `planning_depth`, lane, `execution_tier`, machine authority,
70
- separate receipts, and feature closeout contract. Keep that aggregation path
71
- separate from process-first files.
@@ -1,8 +1,8 @@
1
1
  ---
2
2
  name: researcher
3
3
  tools: Glob, Grep, Read, Bash, WebFetch, WebSearch
4
- description: "Evidence researcher for bounded technical decisions, source reconciliation, and project-fit recommendations."
5
- model: haiku
4
+ description: "Evidence researcher for bounded technical decisions, source reconciliation, and project-fit recommendations. Its report opens with its depth and labels every claim; keep both, and its path:line anchors, when relaying it."
5
+ model: inherit
6
6
  memory: user
7
7
  ---
8
8
 
@@ -23,7 +23,9 @@ write files, mutate task state, ask the user directly, or launch another workflo
23
23
 
24
24
  ## Proportional depth
25
25
 
26
- Honor the controller's `Quick | Standard | Deep` assignment. Quick resolves one
26
+ Honor the controller's `Quick | Standard | Deep` assignment.
27
+ When none is assigned, choose Quick for one low-risk, reversible fact or known option, Standard for several viable options or a material integration choice, and Deep for high blast radius, hard-to-reverse architecture, security/compliance, substantial cost, or conflicting evidence.
28
+ Quick resolves one
27
29
  bounded fact. Standard checks material claims across at least two independent
28
30
  authorities where available. Deep completes a separate contradiction-and-gap
29
31
  round and uses at least three independent sources for disputed material claims
@@ -36,3 +38,7 @@ project applicability, limitations, and remaining gaps. Rank options only when
36
38
  the assigned track contains a comparison, and explain the decisive tradeoff.
37
39
  The controller reconciles tracks, chooses the final recommendation, and owns any
38
40
  authorized persistence.
41
+
42
+ Open the report with one line, `Depth: Quick`, `Depth: Standard` or `Depth: Deep`, followed by `(assigned)` or, when no depth was assigned, by `(chosen: <reason>)`. End every material claim with its status in parentheses — `(confirmed)`, `(inferred)` or `(unresolved)` — in English whatever the report's language, and give every repository claim its `path:line` anchor. Close the report with this line:
43
+
44
+ Relay: keep the Depth line, every status label and every path:line anchor when you summarize this report.
@@ -19,7 +19,7 @@ removes product decisions from implementation. The output is Markdown under
19
19
 
20
20
  Read `skills/specs/SKILL.md` and `skills/specs/references/templates.md` before
21
21
  routing; they are the canonical risk and coverage authority. Do not duplicate
22
- their taxonomy here. Apply their risk-first route before C1 and stop when the
22
+ their taxonomy here. Apply their risk-first route before GATE-SCOPE and stop when the
23
23
  request qualifies for direct work; hand off when it requires Brainstorm-only exploration.
24
24
 
25
25
  ## Required process
@@ -30,7 +30,7 @@ Find current entrypoints, reusable code, callers, tests, docs, and runtime
30
30
  registration. Cite concrete `path:line` evidence. Mark facts that cannot be
31
31
  verified as `[UNVERIFIED]` and state what would settle them.
32
32
 
33
- ### 2. Open C1 once
33
+ ### 2. Open GATE-SCOPE once
34
34
 
35
35
  Summarize what exists, the minimum change set, and expansion signals. Ask the
36
36
  user to EXPAND, KEEP, or CUT. Record the answer and explicit exclusions. Do not
@@ -46,15 +46,15 @@ specs/<feature>/task-01-<slug>.md
46
46
  specs/<feature>/task-NN-<slug>.md
47
47
  ```
48
48
 
49
- Keep tasks flat beside the plan. Each task owns one outcome, normally no more
50
- than about five files, explicit acceptance IDs, dependencies, and a runnable
51
- Verification Plan. Every criterion maps to at least one task and one proof.
49
+ Keep tasks flat beside the plan. Each task owns one outcome, a priority, normally no more
50
+ than about five files, explicit acceptance IDs, dependencies, ordered Steps, a runnable
51
+ Verification Plan, and a Failure Protocol. Every criterion maps to at least one task and one proof.
52
52
  Use EARS sentences; each task references its canonical `CP-NN` rows instead of
53
53
  copying their kinds, surfaces, risk, or proof obligations.
54
54
 
55
55
  Do not create implementation files, receipts, approval records, generated
56
56
  registries, readiness claims, or empty supporting documents. Keep every new
57
- task `Status: blocked` while C2 is open, and keep its `## Receipt` empty.
57
+ task `Status: blocked` while GATE-REVIEW is open, and keep its `## Receipt` empty.
58
58
 
59
59
  ### 4. Review from fresh context
60
60
 
@@ -63,13 +63,13 @@ and give them only the plan packet plus repository access. Require a severity,
63
63
  plan location, concrete failure, current `path:line` evidence, and smallest
64
64
  repair for every finding.
65
65
 
66
- Deduplicate and cap findings at 15. Open C2 so the user can accept, reject, or
66
+ Deduplicate and cap findings at 15. Open GATE-REVIEW so the user can accept, reject, or
67
67
  revise each one. Apply only accepted changes and run the full consistency sweep
68
68
  after every edit. Rederive affected CP rows using the canonical delta list in
69
69
  the templates. Then derive every task
70
70
  state, not only the first candidate:
71
71
  `pending` means semantically ready for the dependency-aware queue. Keep a task
72
- `blocked` while a C1/C2 decision, accepted finding, or `UNKNOWN` closure remains
72
+ `blocked` while a GATE-SCOPE/GATE-REVIEW decision, accepted finding, or `UNKNOWN` closure remains
73
73
  open. A named task dependency alone does not make it blocked; write dependencies
74
74
  as exact flat task basenames and let the resolver derive the next pending task.
75
75
  Move `blocked` to `pending` only when current evidence closes every non-dependency
@@ -77,7 +77,7 @@ blocker. Stop after two paper rounds; later findings need runtime evidence.
77
77
 
78
78
  ### 5. Hand off without dispatch
79
79
 
80
- Report the created files, C1 decision, accepted C2 findings, remaining
80
+ Report the created files, GATE-SCOPE decision, accepted GATE-REVIEW findings, remaining
81
81
  uncertainties, every task status, and the first pending task.
82
82
  Do not start Develop or treat dispatchability as user authorization. The user
83
83
  chooses when execution begins.
@@ -100,8 +100,8 @@ End with:
100
100
  ```text
101
101
  Status: DONE | DONE_WITH_CONCERNS | BLOCKED | NEEDS_CONTEXT
102
102
  Files: <plan and task paths>
103
- C1: <decision>
104
- C2: <accepted/rejected/revised counts>
103
+ GATE-SCOPE: <decision>
104
+ GATE-REVIEW: <accepted/rejected/revised counts>
105
105
  Next: <first `Status: pending` task or blocker>
106
106
  Unresolved questions: <none or concise list>
107
107
  ```
@@ -1 +1 @@
1
- 🤖 TestModel  ▰▰▰▰▰▰▱▱▱▱▱▱ 53%  📁 /fixture/dir
1
+ ◆ TestModel  ◑ 53%