@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.
- package/README.md +14 -22
- package/bin/__tests__/codex-hooks-ownership.test.js +2 -2
- package/bin/__tests__/codex-hooks.test.js +0 -36
- package/bin/__tests__/codex-native.test.js +46 -88
- package/bin/__tests__/develop-contract.test.js +26 -57
- package/bin/__tests__/docs-sync-on-demand.test.js +93 -0
- package/bin/__tests__/grok-envelope.test.js +0 -56
- package/bin/__tests__/hook-payload.test.js +4 -6
- package/bin/__tests__/legacy-authority-decoupled.test.js +159 -0
- package/bin/__tests__/legacy-hooks-retired.test.js +221 -0
- package/bin/__tests__/omp-bridge.test.js +20 -17
- package/bin/__tests__/omp-hooks.test.js +0 -19
- package/bin/__tests__/optional-skill-inventory.test.js +112 -4
- package/bin/__tests__/orca-session.test.js +0 -2
- package/bin/__tests__/package-inventory.test.js +100 -541
- package/bin/__tests__/runtime-dir.test.js +0 -3
- package/bin/__tests__/runtime-schema.test.js +3 -2
- package/bin/__tests__/skill-routing-source.test.js +27 -15
- package/bin/__tests__/spec-narrowing.test.js +0 -27
- package/bin/__tests__/specs-v2-execution-closeout.test.js +4 -69
- package/bin/__tests__/ui-ux-skill.test.js +101 -0
- package/bin/__tests__/usage-hook-retired.test.js +114 -0
- package/bin/__tests__/validator-grounding.test.js +9 -28
- package/bin/phases/codex-runtime.js +24 -0
- package/bin/phases/omp-runtime.js +22 -0
- package/package.json +1 -1
- package/src/claude/CLAUDE.md +3 -10
- package/src/claude/agents/brainstormer.md +7 -3
- package/src/claude/agents/code-auditor.md +35 -50
- package/src/claude/agents/debugger.md +5 -79
- package/src/claude/agents/deployer.md +3 -5
- package/src/claude/agents/docs-keeper.md +2 -7
- package/src/claude/agents/implementer.md +6 -9
- package/src/claude/agents/inspector.md +2 -3
- package/src/claude/agents/project-manager.md +7 -15
- package/src/claude/agents/researcher.md +9 -3
- package/src/claude/agents/spec-maker.md +11 -11
- package/src/claude/hooks/__tests__/fixtures/statusline-default.golden +1 -1
- package/src/claude/hooks/__tests__/spec-gate.test.js +74 -3
- package/src/claude/hooks/__tests__/spec-state-touched.test.js +134 -0
- package/src/claude/hooks/__tests__/state.test.js +68 -0
- package/src/claude/hooks/__tests__/statusline.test.js +140 -11
- package/src/claude/hooks/agent.cjs +2 -1
- package/src/claude/hooks/lib/context.cjs +0 -89
- package/src/claude/hooks/lib/hook-payload.cjs +2 -2
- package/src/claude/hooks/rules.cjs +2 -1
- package/src/claude/hooks/session.cjs +0 -1
- package/src/claude/hooks/spec-gate.cjs +17 -28
- package/src/claude/hooks/spec-state.cjs +95 -1
- package/src/claude/hooks/state.cjs +21 -2
- package/src/claude/migration-manifest.json +30 -15
- package/src/claude/rules/ai-dev-rules.md +1 -1
- package/src/claude/rules/hook-protocols.md +8 -15
- package/src/claude/rules/manage-docs.md +9 -23
- package/src/claude/rules/orchestrator.md +3 -4
- package/src/claude/rules/review-audit-self-decision.md +3 -3
- package/src/claude/rules/skill-domain-routing.md +1 -3
- package/src/claude/rules/skill-workflow-routing.md +4 -5
- package/src/claude/rules/state-sync.md +3 -12
- package/src/claude/rules/workflow.md +10 -18
- package/src/claude/runtime.schema.json +5 -3
- package/src/claude/scripts/generate-skill-catalog.cjs +7 -6
- package/src/claude/scripts/provenance.cjs +23 -5
- package/src/claude/scripts/spec-receipt.cjs +24 -7
- package/src/claude/scripts/spec-resolver.cjs +1 -2
- package/src/claude/scripts/validate-spec-output.cjs +5 -32
- package/src/claude/settings/settings.json +1 -32
- package/src/claude/skills/{question → ask}/SKILL.md +9 -75
- package/src/claude/skills/brainstorm/SKILL.md +43 -131
- package/src/claude/skills/code-review/SKILL.md +48 -17
- package/src/claude/skills/code-review/references/spec-compliance-review.md +2 -3
- package/src/claude/skills/code-review/references/verification-gate.md +22 -27
- package/src/claude/skills/debug/SKILL.md +29 -149
- package/src/claude/skills/develop/SKILL.md +27 -36
- package/src/claude/skills/develop/references/parallel-waves.md +0 -8
- package/src/claude/skills/develop/references/quality-gate.md +15 -13
- package/src/claude/skills/docs/SKILL.md +2 -2
- package/src/claude/skills/docs/references/update-workflow.md +1 -1
- package/src/claude/skills/fix/SKILL.md +153 -0
- package/src/claude/skills/{hotfix → fix}/references/diagnosis-protocol.md +2 -2
- package/src/claude/skills/{hotfix → fix}/references/parallel-patterns.md +2 -2
- package/src/claude/skills/{hotfix → fix}/references/prevention-gate.md +3 -3
- package/src/claude/skills/{hotfix → fix}/references/review-cycle.md +1 -1
- package/src/claude/skills/git/SKILL.md +48 -9
- package/src/claude/skills/git/references/commit-protocols.md +35 -16
- package/src/claude/skills/git/references/worktree-blueprint.md +42 -6
- package/src/claude/skills/orca/SKILL.md +9 -8
- package/src/claude/skills/research/SKILL.md +2 -0
- package/src/claude/skills/scout/SKILL.md +61 -0
- package/src/claude/skills/{inspect → scout}/references/internal-inspection.md +26 -10
- package/src/claude/skills/specs/SKILL.md +22 -29
- package/src/claude/skills/specs/references/review.md +8 -6
- package/src/claude/skills/specs/references/templates.md +34 -41
- package/src/claude/skills/sync/SKILL.md +8 -15
- package/src/claude/skills/sync/references/rebind-and-audit.md +59 -0
- package/src/claude/skills/sync/references/sync-protocols.md +4 -13
- package/src/claude/skills/test/SKILL.md +22 -3
- package/src/claude/skills/test/references/execution-strategy.md +83 -0
- package/src/claude/skills/test/references/failure-triage.md +1 -1
- package/src/claude/skills/ui-ux/LICENSE +21 -0
- package/src/claude/skills/ui-ux/SKILL.md +497 -0
- package/src/claude/skills/ui-ux/references/brand-tokens.md +90 -0
- package/src/claude/skills/ui-ux/references/budgets.md +113 -0
- package/src/claude/skills/ui-ux/references/checklist.md +271 -0
- package/src/claude/skills/ui-ux/references/components/accordion.md +246 -0
- package/src/claude/skills/ui-ux/references/components/avatar.md +153 -0
- package/src/claude/skills/ui-ux/references/components/banner.md +43 -0
- package/src/claude/skills/ui-ux/references/components/breadcrumb.md +201 -0
- package/src/claude/skills/ui-ux/references/components/button.md +142 -0
- package/src/claude/skills/ui-ux/references/components/card.md +113 -0
- package/src/claude/skills/ui-ux/references/components/charts.md +376 -0
- package/src/claude/skills/ui-ux/references/components/chat.md +132 -0
- package/src/claude/skills/ui-ux/references/components/choice-controls.md +369 -0
- package/src/claude/skills/ui-ux/references/components/comment-thread.md +17 -0
- package/src/claude/skills/ui-ux/references/components/description-list.md +116 -0
- package/src/claude/skills/ui-ux/references/components/empty-state.md +98 -0
- package/src/claude/skills/ui-ux/references/components/file-upload.md +107 -0
- package/src/claude/skills/ui-ux/references/components/inline-edit.md +128 -0
- package/src/claude/skills/ui-ux/references/components/input.md +161 -0
- package/src/claude/skills/ui-ux/references/components/list-row.md +56 -0
- package/src/claude/skills/ui-ux/references/components/loading.md +198 -0
- package/src/claude/skills/ui-ux/references/components/logo.md +147 -0
- package/src/claude/skills/ui-ux/references/components/otp-input.md +43 -0
- package/src/claude/skills/ui-ux/references/components/quantity-input.md +100 -0
- package/src/claude/skills/ui-ux/references/components/range-slider.md +16 -0
- package/src/claude/skills/ui-ux/references/components/small-controls.md +340 -0
- package/src/claude/skills/ui-ux/references/components/sortable-header.md +86 -0
- package/src/claude/skills/ui-ux/references/components/tag-input.md +14 -0
- package/src/claude/skills/ui-ux/references/components/timeline.md +38 -0
- package/src/claude/skills/ui-ux/references/components/tree.md +30 -0
- package/src/claude/skills/ui-ux/references/design-process.md +650 -0
- package/src/claude/skills/ui-ux/references/layouts/app-kanban.html +303 -0
- package/src/claude/skills/ui-ux/references/layouts/app.md +1369 -0
- package/src/claude/skills/ui-ux/references/layouts/form.md +430 -0
- package/src/claude/skills/ui-ux/references/layouts/overlay.md +552 -0
- package/src/claude/skills/ui-ux/references/layouts/pricing.md +204 -0
- package/src/claude/skills/ui-ux/references/locked-rules.md +35 -0
- package/src/claude/skills/ui-ux/references/principles.md +408 -0
- package/src/claude/skills/ui-ux/references/refactor.md +245 -0
- package/src/claude/skills/ui-ux/references/responsive.md +195 -0
- package/src/claude/skills/ui-ux/references/review.md +528 -0
- package/src/claude/skills/ui-ux/references/rules-color.md +623 -0
- package/src/claude/skills/ui-ux/references/rules-form.md +235 -0
- package/src/claude/skills/ui-ux/references/rules-state.md +680 -0
- package/src/claude/skills/ui-ux/references/rules-type.md +369 -0
- package/src/claude/skills/ui-ux/references/styles.md +311 -0
- package/src/claude/skills/ui-ux/references/system.md +219 -0
- package/src/claude/skills/ui-ux/references/tailwind-v4-traps.md +237 -0
- package/src/claude/skills/ui-ux/references/tokens.css +362 -0
- package/src/claude/skills/ui-ux/scripts/lint-skill.mjs +216 -0
- package/src/claude/skills/ui-ux/scripts/package.json +9 -0
- package/src/claude/skills/ui-ux/scripts/probe.mjs +4447 -0
- package/src/claude/skills/ui-ux-pro-max/SKILL.md +1 -1
- package/src/claude/status.cjs +149 -144
- package/src/codex/AGENTS.md +8 -13
- package/src/codex/hooks/agent.cjs +2 -1
- package/src/codex/hooks/lib/spec-receipt.cjs +2 -2
- package/src/codex/hooks/lib/spec-utils.cjs +0 -7
- package/src/codex/hooks/rules.cjs +2 -1
- package/src/codex/hooks/session.cjs +0 -2
- package/src/codex/hooks/spec-gate.cjs +7 -18
- package/src/codex/hooks.json +0 -20
- package/src/codex/rules/state-sync.md +3 -12
- package/src/common/AGENTS.md +2 -2
- package/src/omp/extensions/cafekit-bridge.mjs +6 -6
- package/src/claude/hooks/__tests__/completion-authority.test.js +0 -990
- package/src/claude/hooks/__tests__/semantic-review-authority.test.js +0 -259
- package/src/claude/hooks/completion-authority-check.cjs +0 -56
- package/src/claude/hooks/completion-authority-state.cjs +0 -527
- package/src/claude/hooks/completion-authority.cjs +0 -163
- package/src/claude/hooks/semantic-review-authority.cjs +0 -154
- package/src/claude/hooks/task-scaffold-guard.cjs +0 -114
- package/src/claude/hooks/usage.cjs +0 -197
- package/src/claude/skills/delegate/SKILL.md +0 -124
- package/src/claude/skills/delegate/references/codex-delegation.md +0 -71
- package/src/claude/skills/delegate/references/grok-delegation.md +0 -84
- package/src/claude/skills/hotfix/SKILL.md +0 -289
- package/src/claude/skills/inspect/SKILL.md +0 -142
- package/src/claude/skills/loop/SKILL.md +0 -114
- package/src/claude/skills/loop/references/bounded-loop-protocol.md +0 -104
- package/src/claude/skills/loop/references/metric-and-guard-contract.md +0 -76
- package/src/claude/skills/route/SKILL.md +0 -94
- package/src/claude/skills/route/references/agent-timing.md +0 -46
- package/src/claude/skills/route/references/chaining-patterns.md +0 -53
- package/src/claude/skills/route/references/task-taxonomy.md +0 -48
- package/src/codex/hooks/completion-authority-check.cjs +0 -67
- package/src/codex/hooks/completion-authority-state.cjs +0 -527
- package/src/codex/hooks/completion-authority.cjs +0 -109
- package/src/codex/hooks/semantic-review-authority.cjs +0 -130
- package/src/codex/hooks/task-scaffold-guard.cjs +0 -63
- /package/src/claude/skills/{question → ask}/templates/question.md +0 -0
- /package/src/claude/skills/{hotfix → fix}/references/escalation-tactics.md +0 -0
- /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.
|
|
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",
|
package/src/claude/CLAUDE.md
CHANGED
|
@@ -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
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
|
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.
|
|
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
|
|
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
|
-
|
|
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
|
|
101
|
-
- 🔴 **Critical** —
|
|
102
|
-
- 🟠 **High** —
|
|
103
|
-
- 🟡 **Medium** —
|
|
104
|
-
- 🔵 **Low** —
|
|
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
|
|
118
|
-
- **PASS_WITH_WARNINGS:**
|
|
119
|
-
- **FAIL:** findings are actionable and map to a file/task/surface; report findings under FAIL.
|
|
120
|
-
- **BLOCKED:**
|
|
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,
|
|
151
|
-
|
|
|
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
|
|
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
|
|
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
|
-
-
|
|
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
|
-
##
|
|
102
|
-
|
|
103
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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.
|
|
12
|
-
`task-NN-*.md
|
|
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.
|
|
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
|
|
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
|
-
|
|
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.
|
|
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`
|
|
39
|
-
Dependencies, and Verification Plan.
|
|
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
|
-
- **
|
|
35
|
-
acceptance criteria in the plan. New scope evidence returns to
|
|
36
|
-
- **
|
|
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
|
-
- **
|
|
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
|
|
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
|
|
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
|
|
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:
|
|
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.
|
|
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
|
|
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
|
|
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,
|
|
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
|
|
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
|
|
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
|
|
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,
|
|
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
|
-
|
|
104
|
-
|
|
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
|
-
[0m
|
|
1
|
+
[0m◆ TestModel [32m◑ 53%[0m
|