@haposoft/cafekit 0.16.6 → 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 +112 -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 +18 -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 +52 -6
- package/src/claude/scripts/spec-resolver.cjs +1 -2
- package/src/claude/scripts/validate-spec-output.cjs +5 -32
- package/src/claude/scripts/workflow-policy.cjs +22 -10
- 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 +38 -44
- 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 +5 -0
- 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 +8 -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
|
@@ -24,6 +24,7 @@ metadata:
|
|
|
24
24
|
|
|
25
25
|
<ANSWER-ONLY-GATE>
|
|
26
26
|
Do NOT implement, scaffold, refactor, modify files, generate full specs, or make final architecture decisions.
|
|
27
|
+
This holds even when the question itself asks for a change ("and fix it", "rồi đổi luôn cho tôi"): answer the cause with evidence, edit nothing, and point to `cf:fix` for the change, or to `cf:debug` when the cause is not yet known.
|
|
27
28
|
The output is an answer, evidence, confidence, and a follow-up only when needed.
|
|
28
29
|
</ANSWER-ONLY-GATE>
|
|
29
30
|
|
|
@@ -43,10 +44,7 @@ Do not use it when:
|
|
|
43
44
|
- The user asks to implement, fix, debug, test, commit, or publish.
|
|
44
45
|
- The user wants ideation/tradeoff exploration; use `cf:brainstorm`.
|
|
45
46
|
- The user wants a formal spec; use `cf:specs`.
|
|
46
|
-
- The user wants full legacy documentation reconstruction: use
|
|
47
|
-
`cf:docs --reconstruct` when the optional document bundle is installed;
|
|
48
|
-
otherwise use `cf:scout` plus source evidence, or explain how to install the
|
|
49
|
-
bundle with `npx @haposoft/cafekit --with-document-skills`.
|
|
47
|
+
- The user wants full legacy documentation reconstruction: use `cf:docs --reconstruct` when the optional document bundle is installed; otherwise use `cf:scout` plus source evidence, or explain how to install the bundle with `npx @haposoft/cafekit --with-document-skills`.
|
|
50
48
|
- The user wants root-cause diagnosis for a failure; use `cf:debug`.
|
|
51
49
|
|
|
52
50
|
## Modes
|
|
@@ -60,50 +58,19 @@ Do not use it when:
|
|
|
60
58
|
|
|
61
59
|
If modes conflict, prefer the most explicit source mode in this order: `--both`, `--repo`, `--web`, then default. Apply `--brief` or `--deep` as output depth modifiers.
|
|
62
60
|
|
|
63
|
-
##
|
|
61
|
+
## Standards
|
|
64
62
|
|
|
65
|
-
|
|
63
|
+
**Unclear questions.** If `unclear`, ask one focused follow-up with the minimum choices needed.
|
|
66
64
|
|
|
67
|
-
|
|
65
|
+
**Repo evidence priority:** `README.md`, `AGENTS.md`, `CLAUDE.md`; then relevant `docs/`, `specs/`, `.claude/`; then source files, tests, scripts, package manifests, config files; git history only when the question asks about changes or provenance. Use focused search (`rg`, targeted file reads) instead of broad scans. Use `cf:scout` when the user asks where something lives or the source surface is unclear.
|
|
68
66
|
|
|
69
|
-
|
|
70
|
-
source-code behavior | config/version | spec/docs consistency | dependency/library | workflow/process | external/current knowledge | unclear
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
If `unclear`, ask one focused follow-up with the minimum choices needed.
|
|
74
|
-
|
|
75
|
-
### 2. Gather Evidence
|
|
76
|
-
|
|
77
|
-
Repo evidence priority:
|
|
78
|
-
1. `README.md`, `AGENTS.md`, `CLAUDE.md`
|
|
79
|
-
2. relevant `docs/`, `specs/`, `.claude/`
|
|
80
|
-
3. source files, tests, scripts, package manifests, config files
|
|
81
|
-
4. git history only when the question asks about changes or provenance
|
|
82
|
-
|
|
83
|
-
Use focused search (`rg`, targeted file reads) instead of broad scans. Use `cf:scout` when the user asks where something lives or the source surface is unclear.
|
|
84
|
-
|
|
85
|
-
External evidence:
|
|
86
|
-
- Use external/current docs when repo evidence is absent, stale, or not authoritative.
|
|
87
|
-
- Prefer official docs, standards, source repositories, or primary vendor docs.
|
|
88
|
-
- State clearly when an answer is inferred from external docs rather than confirmed in the repo.
|
|
67
|
+
**External evidence.** Use external/current docs when repo evidence is absent, stale, or not authoritative. Prefer official docs, standards, source repositories, or primary vendor docs. State clearly when an answer is inferred from external docs rather than confirmed in the repo.
|
|
89
68
|
|
|
90
|
-
|
|
69
|
+
**Broad questions.** When the question names no aspect or target — "Is this system stable?", "Is the code good?" — ask back before gathering evidence, offering 2-3 aspects (for example code and tests, runtime reliability, deploy readiness), even when a cautious answer would be possible.
|
|
91
70
|
|
|
92
|
-
Answer directly when at least one of these is true:
|
|
93
|
-
- repo evidence answers the question,
|
|
94
|
-
- external/current evidence answers the non-project part,
|
|
95
|
-
- a cautious answer can separate known facts from inference.
|
|
71
|
+
**Answer or ask back.** Answer directly when at least one of these is true: repo evidence answers the question, external/current evidence answers the non-project part, or a cautious answer can separate known facts from inference. Ask back when the target system/module is not named and multiple targets are plausible, the needed file/source is blocked or private, the question requires business/domain judgment not present in source, the answer would require guessing customer intent, or the question bundles multiple unrelated topics. Ask only one follow-up question. Include 2-3 concrete options if helpful.
|
|
96
72
|
|
|
97
|
-
|
|
98
|
-
- the target system/module is not named and multiple targets are plausible,
|
|
99
|
-
- the needed file/source is blocked or private,
|
|
100
|
-
- the question requires business/domain judgment not present in source,
|
|
101
|
-
- the answer would require guessing customer intent,
|
|
102
|
-
- the question bundles multiple unrelated topics.
|
|
103
|
-
|
|
104
|
-
Ask only one follow-up question. Include 2-3 concrete options if helpful.
|
|
105
|
-
|
|
106
|
-
### 4. Output Contract
|
|
73
|
+
## Output Contract
|
|
107
74
|
|
|
108
75
|
Default output:
|
|
109
76
|
|
|
@@ -135,36 +102,3 @@ Use `templates/question.md` when the user asks to save or document the answer.
|
|
|
135
102
|
- Keep the answer proportional: concise for simple questions, structured for complex ones.
|
|
136
103
|
- If external sources were used, include source links or names.
|
|
137
104
|
- If no evidence exists, say "no evidence found in the current source" and explain what was checked.
|
|
138
|
-
|
|
139
|
-
## Examples
|
|
140
|
-
|
|
141
|
-
### Source Question
|
|
142
|
-
|
|
143
|
-
```text
|
|
144
|
-
/cf:ask "In this system, which file does cafekit use to toggle skill routing?"
|
|
145
|
-
```
|
|
146
|
-
|
|
147
|
-
Expected behavior:
|
|
148
|
-
- read runtime/config/install files,
|
|
149
|
-
- answer with exact config file and relevant keys,
|
|
150
|
-
- say whether it is runtime-driven or hard-coded.
|
|
151
|
-
|
|
152
|
-
### Mixed Source + Web Question
|
|
153
|
-
|
|
154
|
-
```text
|
|
155
|
-
/cf:ask "Which React version does this project use, and does that version still match current best practice?" --both
|
|
156
|
-
```
|
|
157
|
-
|
|
158
|
-
Expected behavior:
|
|
159
|
-
- read `package.json` or lockfile,
|
|
160
|
-
- check current React docs/release info if needed,
|
|
161
|
-
- separate local version from external recommendation.
|
|
162
|
-
|
|
163
|
-
### Ask Back
|
|
164
|
-
|
|
165
|
-
```text
|
|
166
|
-
/cf:ask "Is this system stable?"
|
|
167
|
-
```
|
|
168
|
-
|
|
169
|
-
Expected behavior:
|
|
170
|
-
- ask one narrowing question because "stable" could mean architecture, security, performance, UX, tests, or deploy readiness.
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: cf:brainstorm
|
|
3
|
-
description: "
|
|
3
|
+
description: "Shape an unsettled piece of work into a decided one before anyone builds it. Use when the outcome is already agreed but two or more approaches would each satisfy it with meaningfully different consequences — setup cost, migration, failure behaviour, who carries the work afterwards; use it too when an idea still wants exploring, or when only one approach is viable but the contract and the candidate design still need a decision. It weighs viable approaches against a bounded contract of Outcome, Constraints, Non-goals and Acceptance, records what was chosen and what was rejected and why, and stops there; it writes no code and carries nothing onward by itself. Skip it for a direct factual answer, skip it for a bug or failure that still needs its root cause, and skip it when the request needs a plan and its tasks rather than a choice between designs."
|
|
4
4
|
user-invocable: true
|
|
5
|
-
when_to_use: "Use when
|
|
5
|
+
when_to_use: "Use when an outcome is agreed and designs compete, an idea wants exploring, or a candidate needs a decision; skip direct factual answers, undiagnosed bugs, and requests that need a plan and its tasks."
|
|
6
6
|
category: utilities
|
|
7
7
|
keywords: [ideation, tradeoffs, decisions, scope]
|
|
8
8
|
argument-hint: "<idea_or_problem>"
|
|
@@ -12,9 +12,7 @@ metadata:
|
|
|
12
12
|
---
|
|
13
13
|
# Brainstorm — proportional pre-delivery design
|
|
14
14
|
|
|
15
|
-
Turn unresolved intent into a bounded contract without turning clear work into
|
|
16
|
-
an interview. `cf:brainstorm` owns the workflow; `brainstormer` is an optional
|
|
17
|
-
specialist for real architectural trade-offs.
|
|
15
|
+
Turn unresolved intent into a bounded contract without turning clear work into an interview. `cf:brainstorm` owns the workflow; `brainstormer` is an optional specialist for real architectural trade-offs.
|
|
18
16
|
|
|
19
17
|
<HARD-GATE>
|
|
20
18
|
Brainstorm never writes implementation, invokes Develop, or treats approval as
|
|
@@ -24,64 +22,32 @@ for a new explicit `cf:specs` invocation; it never starts Specs implicitly.
|
|
|
24
22
|
|
|
25
23
|
## Control flags
|
|
26
24
|
|
|
27
|
-
Parse controls only from the leading consecutive token segment. Accept
|
|
28
|
-
`--deep`, `--visual`, and `--advice` in any order, each at most once. `--` ends
|
|
29
|
-
the control segment. After it or the first content token, every token is user
|
|
30
|
-
content. An unknown or duplicate `--*` inside the leading segment returns usage
|
|
31
|
-
and performs no scout, question, tool call, write, or workflow action.
|
|
25
|
+
Parse controls only from the leading consecutive token segment. Accept `--deep`, `--visual`, and `--advice` in any order, each at most once. `--` ends the control segment. After it or the first content token, every token is user content. An unknown or duplicate `--*` inside the leading segment returns usage and performs no scout, question, tool call, write, or workflow action.
|
|
32
26
|
|
|
33
|
-
Parsing identifies controls but does not apply them. Route Direct first, then
|
|
34
|
-
apply controls only to requests that remain in Brainstorm. `--deep` may raise
|
|
35
|
-
non-direct analysis depth but never lower a gate; `--visual` changes presentation
|
|
36
|
-
only; and no control grants persistence, approval, dispatch, or implementation
|
|
37
|
-
authority. Use `-- --dry-run` when literal flag-like content leads the prompt.
|
|
27
|
+
Parsing identifies controls but does not apply them. Route Direct first, then apply controls only to requests that remain in Brainstorm. `--deep` may raise non-direct analysis depth but never lower a gate; `--visual` changes presentation only; and no control grants persistence, approval, dispatch, or implementation authority. Use `-- --dry-run` when literal flag-like content leads the prompt.
|
|
38
28
|
|
|
39
29
|
## Front-door routing — before scout or questions
|
|
40
30
|
|
|
41
31
|
Classify intent first. This routing never waives safety or permission rules.
|
|
42
32
|
|
|
43
|
-
1. **Direct request:** for a factual answer, a specific command, or an explicitly
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
only when current user text or an approved artifact binds them to the same
|
|
50
|
-
target and revision. Preserve current non-conflicting fields; treat missing,
|
|
51
|
-
stale, or conflicting fields as gaps. Never infer approval. Hydration is not a
|
|
52
|
-
terminal route; continue to exactly one intent route below.
|
|
53
|
-
3. **Bug or failure:** before diagnosis, capture the repaired-behavior Outcome,
|
|
54
|
-
Constraints, Non-goals, and Acceptance evidence. Then use `cf:debug` until
|
|
55
|
-
root cause is evidenced. Do not brainstorm fixes from a symptom. If at least
|
|
56
|
-
two cause-aligned remedies remain, compare 2–3 here. Hand off to `cf:fix`
|
|
57
|
-
only when the user explicitly requested a fix; diagnosis-only work returns the
|
|
58
|
-
root-cause report and stops.
|
|
59
|
-
4. **Non-bug exploration only:** inspect enough evidence, give a chat
|
|
60
|
-
recommendation, and stop. Do not request design approval, persist a report, or
|
|
61
|
-
invoke another workflow without a new explicit request.
|
|
62
|
-
5. **Feature or documentation delivery:** continue through the design workflow.
|
|
33
|
+
1. **Direct request:** for a factual answer, a specific command, or an explicitly different workflow, leave Brainstorm before scout, questions, approval, or persistence. Read-only product or architecture exploration is not direct merely because it writes no files.
|
|
34
|
+
2. **Plan-and-tasks request:** when the user asks for a plan, a task list, or work split into tasks rather than a choice between designs, leave Brainstorm before scout or questions: say in one or two sentences that Specs owns plans and tasks, and ask the user to invoke `cf:specs` in a new request. Do not interview, compare options, write the list, or start Specs. Open this answer with `Route: plan-and-tasks · Depth: Standard`.
|
|
35
|
+
3. **Hydrate the contract, then keep routing:** for every request that remains, reuse accepted Outcome, Constraints, Non-goals, and Acceptance field by field only when current user text or an approved artifact binds them to the same target and revision. Preserve current non-conflicting fields; treat missing, stale, or conflicting fields as gaps. Never infer approval. Hydration is not a terminal route; continue to exactly one intent route below.
|
|
36
|
+
4. **Bug or failure:** before diagnosis, capture the repaired-behavior Outcome, Constraints, Non-goals, and Acceptance evidence. Then use `cf:debug` until root cause is evidenced. Do not brainstorm fixes from a symptom. If at least two cause-aligned remedies remain, compare 2–3 here. Hand off to `cf:fix` only when the user explicitly requested a fix; diagnosis-only work returns the root-cause report and stops.
|
|
37
|
+
5. **Non-bug exploration only:** inspect enough evidence, give a chat recommendation, and stop. Do not request design approval, persist a report, or invoke another workflow without a new explicit request.
|
|
38
|
+
6. **Feature or documentation delivery:** continue through the design workflow.
|
|
63
39
|
|
|
64
40
|
## Adaptive analysis depth
|
|
65
41
|
|
|
66
|
-
For every non-direct request, choose the smallest adequate depth from current
|
|
67
|
-
evidence and material risk:
|
|
42
|
+
For every non-direct request, choose the smallest adequate depth from current evidence and material risk:
|
|
68
43
|
|
|
69
44
|
- **Standard:** bounded single-surface work with no material risk signal.
|
|
70
|
-
- **Deep:** critical safety/security risk; public compatibility or data migration;
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
Deep is selective, not a checklist. Apply a lens only when its trigger is
|
|
78
|
-
present and otherwise record `skipped: <reason>`: feasibility for an unresolved
|
|
79
|
-
material boundary; stakeholders for externally affected roles; system boundaries
|
|
80
|
-
for cross-component state; failure isolation for partial or cascading failure
|
|
81
|
-
across boundaries; reversibility and recovery for costly or irreversible failure;
|
|
82
|
-
operability for runtime ownership; migration/rollback for data or public
|
|
83
|
-
compatibility; testability for a material proof gap; and second-order effects
|
|
84
|
-
for downstream behavior or incentives.
|
|
45
|
+
- **Deep:** critical safety/security risk; public compatibility or data migration; cross-service state or concurrency; costly or irreversible rollback; or unresolved feasibility at a material boundary.
|
|
46
|
+
- With no Deep signal, use Standard. `--deep` raises Standard to Deep. If three or more subsystems are independently deliverable, split them instead of using Deep as a monolithic substitute.
|
|
47
|
+
|
|
48
|
+
Open every non-direct answer with one line naming its route and depth, for example `Route: feature delivery · Depth: Standard`. When the answer is a `cf:debug` report, that report's heading comes first and this line follows it.
|
|
49
|
+
|
|
50
|
+
Deep is selective, not a checklist. Apply a lens only when its trigger is present and otherwise record `skipped: <reason>`: feasibility for an unresolved material boundary; stakeholders for externally affected roles; system boundaries for cross-component state; failure isolation for partial or cascading failure across boundaries; reversibility and recovery for costly or irreversible failure; operability for runtime ownership; migration/rollback for data or public compatibility; testability for a material proof gap; and second-order effects for downstream behavior or incentives.
|
|
85
51
|
|
|
86
52
|
## Contract and evidence
|
|
87
53
|
|
|
@@ -92,118 +58,64 @@ For feature/docs delivery and every bug/failure, resolve four user-owned fields:
|
|
|
92
58
|
- **Non-goals:** nearby work excluded from this delivery.
|
|
93
59
|
- **Acceptance:** observable evidence that proves completion.
|
|
94
60
|
|
|
95
|
-
After front-door routing, run `cf:scout` or a narrow equivalent before
|
|
96
|
-
technical design. Inspect relevant modules, patterns, docs/plans, contracts, and
|
|
97
|
-
runtime constraints; summarize only useful findings in 3–6 bullets.
|
|
61
|
+
After front-door routing, run `cf:scout` or a narrow equivalent before technical design. Inspect relevant modules, patterns, docs/plans, contracts, and runtime constraints; summarize only useful findings in 3–6 bullets.
|
|
98
62
|
|
|
99
|
-
For supplied images, video, PDFs, or mockups, use `cf:ai-multimodal` when the
|
|
100
|
-
optional document bundle is installed; otherwise use the runtime's available
|
|
101
|
-
multimodal capability or report the evidence gap. Add a diagram only when it
|
|
102
|
-
clarifies a material choice or flow.
|
|
63
|
+
For supplied images, video, PDFs, or mockups, use `cf:ai-multimodal` when the optional document bundle is installed; otherwise use the runtime's available multimodal capability or report the evidence gap. Add a diagram only when it clarifies a material choice or flow.
|
|
103
64
|
|
|
104
|
-
Derive technical touchpoints from repository evidence. Ask the user about a
|
|
105
|
-
touchpoint only when its ownership or scope boundary is a product decision that
|
|
106
|
-
cannot be discovered. Keep intent separate from current-state evidence.
|
|
65
|
+
Derive technical touchpoints from repository evidence. Ask the user about a touchpoint only when its ownership or scope boundary is a product decision that cannot be discovered. Keep intent separate from current-state evidence.
|
|
107
66
|
|
|
108
|
-
On every route, keep feasibility (`confirmed | plausible | unknown |
|
|
109
|
-
infeasible`), confidence (`high | medium | low`), and disposition (`chosen |
|
|
110
|
-
rejected | deferred`) separate and cite evidence or basis. Missing evidence
|
|
111
|
-
forces feasibility `unknown` and confidence `low`. A numeric estimate requires
|
|
112
|
-
range, unit, basis, evidence, and assumptions; otherwise report `unknown`.
|
|
67
|
+
On every route, keep feasibility (`confirmed | plausible | unknown | infeasible`), confidence (`high | medium | low`), and disposition (`chosen | rejected | deferred`) separate and cite evidence or basis. Missing evidence forces feasibility `unknown` and confidence `low`. A numeric estimate requires range, unit, basis, evidence, and assumptions; otherwise report `unknown`.
|
|
113
68
|
|
|
114
|
-
If the request spans three or more independently deliverable subsystems, split
|
|
115
|
-
it. A subsystem is independent only when its outcome, boundary, and verification
|
|
116
|
-
or deployment path can move through the lifecycle separately.
|
|
69
|
+
If the request spans three or more independently deliverable subsystems, split it. A subsystem is independent only when its outcome, boundary, and verification or deployment path can move through the lifecycle separately.
|
|
117
70
|
|
|
118
71
|
## Discovery Question Framework
|
|
119
72
|
|
|
120
|
-
Load `references/question-framework.md` before the first discovery question.
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
code, docs, or trusted current research can answer.
|
|
73
|
+
Load `references/question-framework.md` before the first discovery question. Generate questions from scout evidence, user intent, contract gaps, applicable domain guidance, and risk surfaces. Never ask the user for a technical fact that code, docs, or trusted current research can answer.
|
|
74
|
+
|
|
75
|
+
Use the runtime's native structured user-input tool when available. Ask one highest-impact question by default; batch at most three independent questions only when none depends on an earlier answer. Record confirmed decisions, assumptions, and open questions separately in the decision register.
|
|
124
76
|
|
|
125
|
-
|
|
126
|
-
highest-impact question by default; batch at most three independent questions
|
|
127
|
-
only when none depends on an earlier answer. Record confirmed decisions,
|
|
128
|
-
assumptions, and open questions separately in the decision register.
|
|
77
|
+
Stop asking when remaining details have safe implementation defaults. Do not force questions merely to consume a budget.
|
|
129
78
|
|
|
130
|
-
|
|
131
|
-
force questions merely to consume a budget.
|
|
79
|
+
When the user delegates a choice ("pick whichever is fastest"), choose from the recorded evidence, say that you chose on the user's behalf and why, record it in the Decision register as a delegated choice, and ask only for the approvals its route requires.
|
|
132
80
|
|
|
133
81
|
## Options and specialist use
|
|
134
82
|
|
|
135
|
-
A material design choice exists only when at least two viable paths would satisfy
|
|
136
|
-
the contract with meaningfully different consequences.
|
|
83
|
+
A material design choice exists only when at least two viable paths would satisfy the contract with meaningfully different consequences.
|
|
137
84
|
|
|
138
|
-
- For a material choice, compare 2–3 mechanically distinct viable approaches by
|
|
139
|
-
|
|
140
|
-
risk, and time-to-value.
|
|
141
|
-
- With one viable path, present it and explain briefly why alternatives would be
|
|
142
|
-
artificial or fail the contract. Never create strawman options.
|
|
85
|
+
- For a material choice, compare 2–3 mechanically distinct viable approaches by setup cost, runtime complexity, maintenance, UX/DX, compatibility/migration, risk, and time-to-value.
|
|
86
|
+
- With one viable path, present it and explain briefly why alternatives would be artificial or fail the contract. Never create strawman options.
|
|
143
87
|
- Recommend the smallest path that satisfies the contract.
|
|
144
88
|
|
|
145
|
-
|
|
146
|
-
deeper pressure-testing. Use researcher only for current external facts the
|
|
147
|
-
repository cannot establish. The controller remains responsible for questions,
|
|
148
|
-
approval, persistence, and handoff.
|
|
89
|
+
Unless the user names `brainstormer`, call it only for a material architectural choice that benefits from deeper pressure-testing. When the user names `brainstormer`, call it; tell it which route applies; the routes are feature delivery; an explicitly authorized fix; diagnosis-only bug work; non-bug exploration. Pass the contract with it; it may return a single-path conclusion. Use researcher only for current external facts the repository cannot establish. The controller remains responsible for questions, approval, persistence, and handoff.
|
|
149
90
|
|
|
150
|
-
`--visual` may present inline Mermaid or ASCII for any non-direct analysis and
|
|
151
|
-
falls back to equivalent text when rendering is unavailable. Durable or external
|
|
152
|
-
rendering requires explicit user authority before invocation. `--advice` invokes
|
|
153
|
-
`brainstormer` only after the material-choice gate; if advice is unavailable or
|
|
154
|
-
fails, label it unavailable and continue with controller analysis. Before an
|
|
155
|
-
external visual tool or adviser handoff, minimize context and redact secrets,
|
|
156
|
-
credentials, private keys, access tokens, and unnecessary PII. Neither overlay
|
|
157
|
-
writes, approves, persists, dispatches, or completes work.
|
|
91
|
+
`--visual` may present inline Mermaid or ASCII for any non-direct analysis and falls back to equivalent text when rendering is unavailable. Durable or external rendering requires explicit user authority before invocation. `--advice` invokes `brainstormer` only after the material-choice gate; if advice is unavailable or fails, label it unavailable and continue with controller analysis. Before an external visual tool or adviser handoff, minimize context and redact secrets, credentials, private keys, access tokens, and unnecessary PII. Neither overlay writes, approves, persists, dispatches, or completes work.
|
|
158
92
|
|
|
159
93
|
## Delivery design and approval
|
|
160
94
|
|
|
161
95
|
For feature or documentation delivery:
|
|
162
96
|
|
|
163
|
-
1. Draft one coherent candidate scaled to the work: architecture, data flow,
|
|
164
|
-
interfaces/UX, error behavior, verification, and rollout only when material.
|
|
97
|
+
1. Draft one coherent candidate scaled to the work: architecture, data flow, interfaces/UX, error behavior, verification, and rollout only when material.
|
|
165
98
|
2. Run the internal 4-point review before presentation:
|
|
166
99
|
- remove placeholders and vague instructions;
|
|
167
100
|
- reconcile contradictory behavior;
|
|
168
101
|
- remove scope creep;
|
|
169
102
|
- make observable behavior and proof concrete.
|
|
170
103
|
3. Present the reviewed candidate.
|
|
171
|
-
4. Before final approval, require a separate explicit section decision when
|
|
172
|
-
|
|
173
|
-
or data-loss risk, money/privilege/safety, or production-state mutation.
|
|
174
|
-
5. After critical section decisions and revisions, request one final approval by
|
|
175
|
-
default.
|
|
104
|
+
4. Before final approval, require a separate explicit section decision when the design changes auth/secrets/privacy, destructive or irreversible behavior or data-loss risk, money/privilege/safety, or production-state mutation.
|
|
105
|
+
5. After critical section decisions and revisions, request one final approval by default.
|
|
176
106
|
|
|
177
|
-
Revise material disagreement before handoff. An already accepted, current
|
|
178
|
-
contract is not re-approved unless new evidence changes it.
|
|
107
|
+
Revise material disagreement before handoff. An already accepted, current contract is not re-approved unless new evidence changes it.
|
|
179
108
|
|
|
180
109
|
## Persistence and handoff
|
|
181
110
|
|
|
182
|
-
Persist only approved decisions and semantics, only with user authority, and
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
safe placeholder and ownership reference instead of copying the sensitive value.
|
|
188
|
-
|
|
189
|
-
The default handoff stays in chat Markdown. Use these exact headings:
|
|
190
|
-
`Target and evidence freshness`, `Outcome`, `Constraints`, `Non-goals`,
|
|
191
|
-
`Acceptance`, `Touchpoints`, `Direction and alternatives`, `Relevant impacts
|
|
192
|
-
and failure behavior`, `Rollout and recovery`, `Proof mapping`, `Decision
|
|
193
|
-
register`, `Assumptions`, and `Open questions`. The first section records target
|
|
194
|
-
identity, current source revision and worktree state or `[UNVERIFIED]`, an
|
|
195
|
-
evidence-as-of value, and what change invalidates the brief. Durable file output
|
|
196
|
-
requires explicit authority and creates no readiness, approval, proof, or
|
|
197
|
-
execution state.
|
|
198
|
-
|
|
199
|
-
- Feature/docs delivery: provide the approved summary and ask the user to invoke
|
|
200
|
-
`cf:specs` explicitly in a new request.
|
|
111
|
+
Persist only approved decisions and semantics, only with user authority, and only when they must survive the session or feed Specs. Use the repository's configured report path and naming convention. Do not create a report merely to satisfy this skill. Before writing, redact live secrets, credentials, private keys, access tokens, and unnecessary PII; preserve exact approved meaning with a safe placeholder and ownership reference instead of copying the sensitive value.
|
|
112
|
+
|
|
113
|
+
The default handoff stays in chat Markdown. Use these exact headings: `Target and evidence freshness`, `Outcome`, `Constraints`, `Non-goals`, `Acceptance`, `Touchpoints`, `Direction and alternatives`, `Relevant impacts and failure behavior`, `Rollout and recovery`, `Proof mapping`, `Decision register`, `Assumptions`, and `Open questions`. The first section records target identity, current source revision and worktree state or `[UNVERIFIED]`, an evidence-as-of value, and what change invalidates the brief. Durable file output requires explicit authority and creates no readiness, approval, proof, or execution state.
|
|
114
|
+
|
|
115
|
+
- Feature/docs delivery: provide the approved summary and ask the user to invoke `cf:specs` explicitly in a new request.
|
|
201
116
|
- Diagnosed bug: follow the fix-authority rule in front-door routing.
|
|
202
117
|
- Non-bug exploration: recommendation already returned in chat; stop.
|
|
203
118
|
|
|
204
119
|
## Completion bar
|
|
205
120
|
|
|
206
|
-
Brainstorm is complete when the selected route is explicit, current evidence is
|
|
207
|
-
separated from intent, every material user-owned gap is resolved or named, and
|
|
208
|
-
the route-specific output has been returned without unauthorized persistence or
|
|
209
|
-
implementation. Never claim live behavior from this written contract alone.
|
|
121
|
+
Brainstorm is complete when the selected route is explicit, current evidence is separated from intent, every material user-owned gap is resolved or named, and the route-specific output has been returned without unauthorized persistence or implementation. Never claim live behavior from this written contract alone.
|
|
@@ -28,7 +28,7 @@ is `BLOCKED`; review never migrates it.
|
|
|
28
28
|
|
|
29
29
|
For process-first proof consumption, this skill's `## Execution-proof boundary`
|
|
30
30
|
is authoritative. Do not load or follow legacy separate-receipt paragraphs from
|
|
31
|
-
references; they apply only
|
|
31
|
+
references; they apply only to a legacy packet.
|
|
32
32
|
|
|
33
33
|
Select review depth from `assurance_level`, risk, and blast radius. Lane is a
|
|
34
34
|
derived view:
|
|
@@ -73,6 +73,17 @@ runtime binding, concrete `evidence`, and literal `verdict: "PASS"`.
|
|
|
73
73
|
`independent: true`, `PASS_WITH_WARNINGS`, missing binding, or reused session
|
|
74
74
|
provenance is insufficient.
|
|
75
75
|
|
|
76
|
+
## Test-run boundary
|
|
77
|
+
|
|
78
|
+
Review reads code; it does not run tests. Never run the project's test suite or a
|
|
79
|
+
test file, not even as a sanity check. A read-only run of the reviewed code (for
|
|
80
|
+
example `node -e` on the changed function) may reproduce a defect; cite it as a
|
|
81
|
+
reproduction, never as test evidence. Never report a test result, pass count, or
|
|
82
|
+
exit code as the review's evidence. Without a `test-proof-v1` handoff, write the
|
|
83
|
+
proof line exactly as `**Execution proof:** unavailable (owned by cf:test)` and do
|
|
84
|
+
not otherwise say whether tests pass; the review still returns its correctness
|
|
85
|
+
verdict.
|
|
86
|
+
|
|
76
87
|
## Execution-proof boundary
|
|
77
88
|
|
|
78
89
|
For process-first work, consume only the controller-validated `test-proof-v1`
|
|
@@ -85,10 +96,34 @@ process-first receipt; Develop alone writes Status and inline `## Receipt` after
|
|
|
85
96
|
proof and review are both literal `PASS`.
|
|
86
97
|
|
|
87
98
|
Never rerun commands to manufacture proof. If execution proof is missing or
|
|
88
|
-
invalid,
|
|
89
|
-
claim feature PASS from review alone. A review may still return a correctness
|
|
99
|
+
invalid, write the proof line from the test-run boundary and leave closeout
|
|
100
|
+
unfinished; do not claim feature PASS from review alone. A review may still return a correctness
|
|
90
101
|
verdict when its review inputs are complete, but that verdict is not execution
|
|
91
|
-
proof or
|
|
102
|
+
proof or GATE-DONE approval.
|
|
103
|
+
|
|
104
|
+
## Severity
|
|
105
|
+
|
|
106
|
+
Rate each finding by its production impact. Write the labels `Critical`, `High`,
|
|
107
|
+
`Medium`, and `Low` verbatim in English, whatever language the report uses.
|
|
108
|
+
|
|
109
|
+
- Critical: a concrete failure a user or operator hits that loses or corrupts
|
|
110
|
+
data, breaks security, or stops the product (a login bypass).
|
|
111
|
+
- High: a concrete wrong result a user or operator hits (an order exactly at a
|
|
112
|
+
tier boundary priced with the wrong discount).
|
|
113
|
+
- Medium: a real risk with a failure scenario that has not reached users (a
|
|
114
|
+
changed boundary with no test; a leftover debug log).
|
|
115
|
+
- Low: cleanup, clarity, or a question (a naming nit; a behavior the change's
|
|
116
|
+
README or docs state as intended).
|
|
117
|
+
|
|
118
|
+
A leftover debug log is at most Medium; if it prints a secret or credential,
|
|
119
|
+
report that exposure as a separate security finding at its own severity. A
|
|
120
|
+
behavior the change's README or docs state as intended is not a Medium or
|
|
121
|
+
heavier defect; raise it as Low or a question. Task and spec compliance findings
|
|
122
|
+
are Critical only when a task or spec is supplied, and there `UNVERIFIED` means
|
|
123
|
+
supplied proof that failed, never proof that is unavailable. A blocking Medium is
|
|
124
|
+
one with a concrete failure before merge. A review whose heaviest remaining
|
|
125
|
+
finding is a non-blocking Medium returns `PASS_WITH_WARNINGS`; one with only Low
|
|
126
|
+
findings returns `PASS`.
|
|
92
127
|
|
|
93
128
|
## Verdict
|
|
94
129
|
|
|
@@ -98,14 +133,18 @@ Use the shared adapter surface exactly:
|
|
|
98
133
|
|
|
99
134
|
Legacy adapter inputs may include `PASS | FAIL | BLOCKED`, but they are
|
|
100
135
|
normalized to the shared surface and no second enum is allowed. `PASS` means no
|
|
101
|
-
Critical
|
|
102
|
-
means
|
|
103
|
-
`
|
|
104
|
-
|
|
105
|
-
|
|
136
|
+
Critical, High, or Medium finding remains; Low findings may remain.
|
|
137
|
+
`PASS_WITH_WARNINGS` means the heaviest remaining finding is a non-blocking
|
|
138
|
+
Medium. `FAIL` means a Critical, High, or blocking Medium finding requires
|
|
139
|
+
remediation. Finding count never selects depth or overrides missing execution
|
|
140
|
+
proof. A review `PASS_WITH_WARNINGS` remains an unfinished
|
|
106
141
|
closeout result; only literal `PASS` can finish a task. `BLOCKED` means the review input or a user-owned
|
|
107
142
|
decision is unavailable.
|
|
108
143
|
|
|
144
|
+
Copy the header line `# Code Review Results [cf:code-review]`, the field labels,
|
|
145
|
+
and the severity labels verbatim in English; write the content in the user's
|
|
146
|
+
language.
|
|
147
|
+
|
|
109
148
|
```markdown
|
|
110
149
|
# Code Review Results [cf:code-review]
|
|
111
150
|
|
|
@@ -127,14 +166,6 @@ decision is unavailable.
|
|
|
127
166
|
Do not add a test command, a fabricated receipt, or an `Audit: PASS` marker to
|
|
128
167
|
make the review look complete. Return unresolved questions at the end.
|
|
129
168
|
|
|
130
|
-
## Legacy workflow compatibility
|
|
131
|
-
|
|
132
|
-
For a valid legacy packet only, retain its current spec/task resolution,
|
|
133
|
-
separate `receipts/<task-basename>.md` fallback, feature receipt, persisted audit
|
|
134
|
-
obligations, and legacy verdict normalization. If separate and embedded legacy
|
|
135
|
-
proof identities conflict, fail closed. Never copy that adapter into a flat
|
|
136
|
-
process-first packet.
|
|
137
|
-
|
|
138
169
|
## References
|
|
139
170
|
|
|
140
171
|
- `references/spec-compliance-review.md` — load only its detailed scope checks;
|
|
@@ -31,9 +31,8 @@ Do not attempt a standard text-based review if the project includes Visual Specs
|
|
|
31
31
|
|
|
32
32
|
Execution proof is separate from the task plan. Consume
|
|
33
33
|
`receipts/<task-basename>.md` first and legacy `## Evidence` only as fallback;
|
|
34
|
-
conflicting proof identities fail closed.
|
|
35
|
-
|
|
36
|
-
receipt as approval, readiness, audit status, or semantic judgment.
|
|
34
|
+
conflicting proof identities fail closed. Review never creates a receipt and
|
|
35
|
+
never treats a receipt as approval, readiness, audit status, or semantic judgment.
|
|
37
36
|
|
|
38
37
|
## 3. Verdict Scale
|
|
39
38
|
|
|
@@ -1,46 +1,41 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: verification-gate
|
|
3
|
-
description:
|
|
3
|
+
description: Legacy proof consumption. Defines what supplied execution proof contains when a review of a legacy packet consumes it; the reviewer never produces that proof.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# Verification Gate:
|
|
6
|
+
# Verification Gate: legacy proof consumption
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
This reference applies only to a legacy packet. A
|
|
9
|
+
review never runs tests, builds, or linters to produce proof; `cf:test` owns
|
|
10
|
+
execution, and the test-run boundary in `SKILL.md` applies here as well.
|
|
9
11
|
|
|
10
|
-
## 1.
|
|
11
|
-
**You MUST NOT issue a final verdict of PASS unless you hold concrete, verifiable execution proof.**
|
|
12
|
+
## 1. What supplied proof contains
|
|
12
13
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
- "The code looks good."
|
|
16
|
-
- "The logic seems sound."
|
|
17
|
-
- "This should work as expected."
|
|
18
|
-
- "There are no obvious errors."
|
|
14
|
+
Proof reaches the review from the test owner, never from the review itself. It
|
|
15
|
+
may be:
|
|
19
16
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
- **Test Suite Logs:** Output showing tests ran and passed (e.g., `PASS src/components/Login.test.tsx`).
|
|
26
|
-
- **Compilation/Build Status:** Terminal output proving the typescript compiler (`tsc`) or bundler succeeded with `Exit code: 0`.
|
|
27
|
-
- **Linter Completion:** Output proving no syntax errors exist.
|
|
28
|
-
- **Multimodal Visual Evidence:** `cf:ai-multimodal` when installed, or another available runtime visual capability; otherwise report visual parity as `UNPROVEN`.
|
|
17
|
+
- **Test suite logs:** output showing which tests ran and their result.
|
|
18
|
+
- **Compilation or build status:** compiler or bundler output with its exit code.
|
|
19
|
+
- **Linter completion:** output showing the lint run and its result.
|
|
20
|
+
- **Multimodal visual evidence:** `cf:ai-multimodal` when installed, or another
|
|
21
|
+
available runtime visual capability; otherwise visual parity is `UNPROVEN`.
|
|
29
22
|
|
|
30
23
|
For Specs v2, accepted proof must be persisted by the test owner at
|
|
31
24
|
`receipts/<task-basename>.md`; legacy `## Evidence` remains fallback-only. The
|
|
32
25
|
receipt includes identity/path, exact command, exit/result, expected versus
|
|
33
26
|
observed behavior, applicable negative/reachability/artifact proof, and bound
|
|
34
|
-
Base/Head.
|
|
35
|
-
|
|
36
|
-
|
|
27
|
+
Base/Head. Closing a legacy `spec.json` packet that has no `schema_version` still
|
|
28
|
+
requires `feature-receipt.md`. A receipt never grants approval, readiness, audit
|
|
29
|
+
status, or product semantics.
|
|
37
30
|
|
|
38
31
|
For v2.1, the semantic receipt is reviewed input, not execution proof. It binds
|
|
39
32
|
exact criteria and counterexamples shaped as `criterion`, `case_kind`,
|
|
40
33
|
`scenario`, `expected`, `decision_refs`, and `verification_ref`. Deterministic
|
|
41
34
|
validator success is never a semantic-review verdict.
|
|
42
35
|
|
|
43
|
-
##
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
36
|
+
## 2. When supplied proof is missing or failed
|
|
37
|
+
|
|
38
|
+
A missing legacy receipt leaves the closeout unfinished: the review still
|
|
39
|
+
returns its correctness verdict and states execution proof as unavailable (owned
|
|
40
|
+
by `cf:test`). Supplied proof that failed is a finding the review reports. Never
|
|
41
|
+
rerun or retry anything to fill the gap.
|