@haposoft/cafekit 0.16.0-rc.7 → 0.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (299) hide show
  1. package/README.md +116 -27
  2. package/bin/__tests__/codex-hooks-ownership.test.js +239 -0
  3. package/bin/__tests__/codex-hooks.test.js +295 -0
  4. package/bin/__tests__/codex-native.test.js +2289 -34
  5. package/bin/__tests__/develop-contract.test.js +400 -23
  6. package/bin/__tests__/installer-safety.test.js +3 -3
  7. package/bin/__tests__/optional-skill-inventory.test.js +249 -0
  8. package/bin/__tests__/output-styles.test.js +214 -0
  9. package/bin/__tests__/package-inventory.test.js +2131 -16
  10. package/bin/__tests__/runtime-schema.test.js +111 -0
  11. package/bin/__tests__/secret-output-guardrail.test.js +122 -0
  12. package/bin/__tests__/skill-routing-source.test.js +172 -0
  13. package/bin/__tests__/specs-v2-execution-closeout.test.js +1 -1
  14. package/bin/install.js +10 -0
  15. package/bin/lib/codex-install.js +170 -5
  16. package/bin/lib/context.js +14 -0
  17. package/bin/lib/i18n.js +12 -6
  18. package/bin/lib/skill-deps.js +5 -5
  19. package/bin/phases/claude-runtime.js +23 -0
  20. package/bin/phases/claude-settings.js +8 -0
  21. package/bin/phases/codex-hooks.js +156 -0
  22. package/bin/phases/codex-runtime.js +29 -38
  23. package/bin/phases/copy-payload.js +8 -2
  24. package/bin/phases/select-skill-bundles.js +96 -0
  25. package/bin/phases/skill-inventory.js +71 -0
  26. package/bin/phases/skills-setup.js +9 -2
  27. package/bin/phases/write-metadata.js +8 -5
  28. package/package.json +8 -2
  29. package/src/claude/CLAUDE.md +3 -3
  30. package/src/claude/agents/brainstormer.md +52 -69
  31. package/src/claude/agents/code-auditor.md +32 -14
  32. package/src/claude/agents/debugger.md +35 -20
  33. package/src/claude/agents/deployer.md +12 -5
  34. package/src/claude/agents/docs-keeper.md +11 -1
  35. package/src/claude/agents/implementer.md +25 -13
  36. package/src/claude/agents/inspector.md +6 -3
  37. package/src/claude/agents/project-manager.md +1 -1
  38. package/src/claude/agents/researcher.md +26 -55
  39. package/src/claude/agents/spec-maker.md +24 -13
  40. package/src/claude/agents/strategist.md +52 -0
  41. package/src/claude/agents/test-runner.md +117 -132
  42. package/src/claude/agents/ui-ux-designer.md +1 -1
  43. package/src/claude/hooks/__tests__/fixtures/statusline-default.golden +1 -0
  44. package/src/claude/hooks/__tests__/precompact.test.js +158 -0
  45. package/src/claude/hooks/__tests__/spec-gate.test.js +87 -4
  46. package/src/claude/hooks/__tests__/state.test.js +254 -3
  47. package/src/claude/hooks/__tests__/statusline.test.js +196 -0
  48. package/src/claude/hooks/agent.cjs +1 -1
  49. package/src/claude/hooks/docs-sync.cjs +12 -10
  50. package/src/claude/hooks/inspect-block.cjs +1 -1
  51. package/src/claude/hooks/lib/config.cjs +3 -0
  52. package/src/claude/hooks/lib/hook-state-dir.cjs +39 -0
  53. package/src/claude/hooks/lib/secret-keywords.cjs +42 -0
  54. package/src/claude/hooks/precompact.cjs +105 -0
  55. package/src/claude/hooks/rules.cjs +1 -1
  56. package/src/claude/hooks/secret-output-guardrail.cjs +43 -0
  57. package/src/claude/hooks/session.cjs +27 -1
  58. package/src/claude/hooks/spec-gate.cjs +3 -3
  59. package/src/claude/hooks/spec-state.cjs +32 -5
  60. package/src/claude/hooks/state.cjs +1 -1
  61. package/src/claude/hooks/task-scaffold-guard.cjs +1 -1
  62. package/src/claude/hooks/usage.cjs +1 -1
  63. package/src/claude/migration-manifest.json +29 -15
  64. package/src/claude/output-styles/coding-level-0-eli5.md +103 -0
  65. package/src/claude/output-styles/coding-level-1-junior.md +124 -0
  66. package/src/claude/output-styles/coding-level-2-mid.md +146 -0
  67. package/src/claude/output-styles/coding-level-3-senior.md +148 -0
  68. package/src/claude/output-styles/coding-level-4-lead.md +159 -0
  69. package/src/claude/output-styles/coding-level-5-god.md +91 -0
  70. package/src/claude/references/debugger/core-philosophy.md +5 -3
  71. package/src/claude/references/debugger/frontend-verification.md +2 -2
  72. package/src/claude/references/debugger/log-ci-analysis.md +13 -1
  73. package/src/claude/references/debugger/parallel-agent-hydration.md +19 -34
  74. package/src/claude/references/debugger/performance-diagnostics.md +2 -2
  75. package/src/claude/references/debugger/root-cause-tracing.md +37 -6
  76. package/src/claude/references/debugger/side-effect-gate.md +3 -1
  77. package/src/claude/references/debugger/verification-protocol.md +13 -12
  78. package/src/claude/rules/orchestrator.md +7 -1
  79. package/src/claude/rules/process-management.md +39 -0
  80. package/src/claude/rules/review-audit-self-decision.md +48 -0
  81. package/src/claude/rules/skill-domain-routing.md +26 -24
  82. package/src/claude/rules/skill-workflow-routing.md +22 -14
  83. package/src/claude/rules/workflow.md +3 -3
  84. package/src/claude/runtime.json +1 -0
  85. package/src/claude/runtime.schema.json +205 -0
  86. package/src/claude/scripts/generate-skill-catalog.cjs +156 -122
  87. package/src/claude/scripts/provenance.cjs +18 -5
  88. package/src/claude/scripts/spec-receipt.cjs +76 -21
  89. package/src/claude/scripts/spec-resolver.cjs +144 -4
  90. package/src/claude/scripts/workflow-policy.cjs +1 -1
  91. package/src/claude/settings/settings.json +16 -0
  92. package/src/claude/skills/agent-browser/SKILL.md +1 -1
  93. package/src/claude/skills/ai-multimodal/SKILL.md +1 -1
  94. package/src/claude/skills/brainstorm/SKILL.md +193 -172
  95. package/src/claude/skills/brainstorm/references/question-framework.md +105 -167
  96. package/src/claude/skills/chrome-devtools/SKILL.md +1 -1
  97. package/src/claude/skills/code-review/SKILL.md +43 -25
  98. package/src/claude/skills/code-review/references/spec-compliance-review.md +3 -4
  99. package/src/claude/skills/code-review/references/verification-gate.md +1 -1
  100. package/src/claude/skills/debug/SKILL.md +48 -19
  101. package/src/claude/skills/delegate/SKILL.md +1 -1
  102. package/src/claude/skills/develop/SKILL.md +92 -65
  103. package/src/claude/skills/develop/references/parallel-waves.md +36 -63
  104. package/src/claude/skills/develop/references/quality-gate.md +31 -4
  105. package/src/claude/skills/develop/references/subagent-patterns.md +21 -7
  106. package/src/claude/skills/docs/SKILL.md +42 -23
  107. package/src/claude/skills/docs/references/init-workflow.md +4 -4
  108. package/src/claude/skills/docs/references/reconstruct-workflow.md +6 -6
  109. package/src/claude/skills/docs/references/standard-docs-workflow.md +6 -2
  110. package/src/claude/skills/docs/references/summarize-workflow.md +2 -2
  111. package/src/claude/skills/docs/references/update-workflow.md +9 -7
  112. package/src/claude/skills/docs/templates/requirements-as-is.md +1 -1
  113. package/src/claude/skills/docx/SKILL.md +1 -1
  114. package/src/claude/skills/git/SKILL.md +1 -1
  115. package/src/claude/skills/git/references/commit-protocols.md +1 -1
  116. package/src/claude/skills/git/references/finish-branch.md +1 -1
  117. package/src/claude/skills/hotfix/SKILL.md +159 -170
  118. package/src/claude/skills/hotfix/references/diagnosis-protocol.md +14 -9
  119. package/src/claude/skills/hotfix/references/parallel-patterns.md +27 -13
  120. package/src/claude/skills/hotfix/references/prevention-gate.md +5 -0
  121. package/src/claude/skills/hotfix/references/review-cycle.md +21 -15
  122. package/src/claude/skills/hotfix/references/workflow-specialized.md +53 -21
  123. package/src/claude/skills/inspect/SKILL.md +55 -46
  124. package/src/claude/skills/inspect/references/internal-inspection.md +21 -5
  125. package/src/claude/skills/loop/SKILL.md +114 -0
  126. package/src/claude/skills/loop/references/bounded-loop-protocol.md +104 -0
  127. package/src/claude/skills/loop/references/metric-and-guard-contract.md +76 -0
  128. package/src/claude/skills/pdf/SKILL.md +1 -1
  129. package/src/claude/skills/pptx/SKILL.md +1 -1
  130. package/src/claude/skills/question/SKILL.md +16 -13
  131. package/src/claude/skills/research/SKILL.md +70 -43
  132. package/src/claude/skills/route/SKILL.md +94 -0
  133. package/src/claude/skills/route/references/agent-timing.md +46 -0
  134. package/src/claude/skills/route/references/chaining-patterns.md +53 -0
  135. package/src/claude/skills/route/references/task-taxonomy.md +48 -0
  136. package/src/claude/skills/specs/SKILL.md +48 -57
  137. package/src/claude/skills/specs/references/review.md +26 -8
  138. package/src/claude/skills/specs/references/templates.md +76 -31
  139. package/src/claude/skills/specs/templates/requirements-init.md +1 -1
  140. package/src/claude/skills/specs/templates/research.md +2 -2
  141. package/src/claude/skills/sync/SKILL.md +6 -6
  142. package/src/claude/skills/sync/references/sync-protocols.md +1 -1
  143. package/src/claude/skills/test/SKILL.md +120 -120
  144. package/src/claude/skills/test/references/execution-strategy.md +208 -361
  145. package/src/claude/skills/test/references/failure-triage.md +55 -121
  146. package/src/claude/skills/test/references/test-memory.md +20 -34
  147. package/src/claude/skills/ui-ux-pro-max/SKILL.md +1 -1
  148. package/src/claude/skills/web-testing/SKILL.md +1 -1
  149. package/src/claude/skills/xlsx/SKILL.md +1 -1
  150. package/src/claude/status.cjs +135 -33
  151. package/src/codex/AGENTS.md +14 -4
  152. package/src/codex/hooks/docs-sync.cjs +8 -3
  153. package/src/codex/hooks/lib/hook-context.cjs +18 -4
  154. package/src/codex/hooks/rules.cjs +29 -1
  155. package/src/codex/hooks/secret-output-guardrail.cjs +30 -0
  156. package/src/codex/hooks/spec-gate.cjs +3 -8
  157. package/src/codex/hooks/spec-state.cjs +34 -5
  158. package/src/codex/hooks.json +5 -0
  159. package/src/codex/runtime.json +2 -0
  160. package/src/common/.env.example +1 -1
  161. package/src/claude/skills/backend-development/SKILL.md +0 -101
  162. package/src/claude/skills/backend-development/references/backend-api-design.md +0 -495
  163. package/src/claude/skills/backend-development/references/backend-architecture.md +0 -454
  164. package/src/claude/skills/backend-development/references/backend-authentication.md +0 -338
  165. package/src/claude/skills/backend-development/references/backend-code-quality.md +0 -659
  166. package/src/claude/skills/backend-development/references/backend-debugging.md +0 -904
  167. package/src/claude/skills/backend-development/references/backend-devops.md +0 -491
  168. package/src/claude/skills/backend-development/references/backend-mindset.md +0 -387
  169. package/src/claude/skills/backend-development/references/backend-performance.md +0 -397
  170. package/src/claude/skills/backend-development/references/backend-security.md +0 -342
  171. package/src/claude/skills/backend-development/references/backend-technologies.md +0 -256
  172. package/src/claude/skills/backend-development/references/backend-testing.md +0 -429
  173. package/src/claude/skills/devops/.env.example +0 -76
  174. package/src/claude/skills/devops/SKILL.md +0 -102
  175. package/src/claude/skills/devops/references/browser-rendering.md +0 -305
  176. package/src/claude/skills/devops/references/cloudflare-d1-kv.md +0 -123
  177. package/src/claude/skills/devops/references/cloudflare-platform.md +0 -271
  178. package/src/claude/skills/devops/references/cloudflare-r2-storage.md +0 -280
  179. package/src/claude/skills/devops/references/cloudflare-workers-advanced.md +0 -312
  180. package/src/claude/skills/devops/references/cloudflare-workers-apis.md +0 -309
  181. package/src/claude/skills/devops/references/cloudflare-workers-basics.md +0 -418
  182. package/src/claude/skills/devops/references/docker-basics.md +0 -297
  183. package/src/claude/skills/devops/references/docker-compose.md +0 -292
  184. package/src/claude/skills/devops/references/gcloud-platform.md +0 -297
  185. package/src/claude/skills/devops/references/gcloud-services.md +0 -304
  186. package/src/claude/skills/devops/references/kubernetes-basics.md +0 -95
  187. package/src/claude/skills/devops/references/kubernetes-helm-advanced.md +0 -70
  188. package/src/claude/skills/devops/references/kubernetes-helm.md +0 -81
  189. package/src/claude/skills/devops/references/kubernetes-kubectl.md +0 -74
  190. package/src/claude/skills/devops/references/kubernetes-security-advanced.md +0 -94
  191. package/src/claude/skills/devops/references/kubernetes-security.md +0 -89
  192. package/src/claude/skills/devops/references/kubernetes-troubleshooting-advanced.md +0 -74
  193. package/src/claude/skills/devops/references/kubernetes-troubleshooting.md +0 -49
  194. package/src/claude/skills/devops/references/kubernetes-workflows-advanced.md +0 -75
  195. package/src/claude/skills/devops/references/kubernetes-workflows.md +0 -76
  196. package/src/claude/skills/devops/scripts/cloudflare_deploy.py +0 -269
  197. package/src/claude/skills/devops/scripts/docker_optimize.py +0 -332
  198. package/src/claude/skills/devops/scripts/requirements.txt +0 -20
  199. package/src/claude/skills/devops/scripts/tests/requirements.txt +0 -3
  200. package/src/claude/skills/devops/scripts/tests/test_cloudflare_deploy.py +0 -285
  201. package/src/claude/skills/devops/scripts/tests/test_docker_optimize.py +0 -436
  202. package/src/claude/skills/frontend-design/SKILL.md +0 -135
  203. package/src/claude/skills/frontend-design/references/ai-multimodal-overview.md +0 -165
  204. package/src/claude/skills/frontend-design/references/analysis-best-practices.md +0 -80
  205. package/src/claude/skills/frontend-design/references/analysis-prompts.md +0 -141
  206. package/src/claude/skills/frontend-design/references/analysis-techniques.md +0 -118
  207. package/src/claude/skills/frontend-design/references/animejs.md +0 -396
  208. package/src/claude/skills/frontend-design/references/anti-slop-rules.md +0 -103
  209. package/src/claude/skills/frontend-design/references/asset-generation.md +0 -337
  210. package/src/claude/skills/frontend-design/references/bento-motion-engine.md +0 -142
  211. package/src/claude/skills/frontend-design/references/design-extraction-overview.md +0 -71
  212. package/src/claude/skills/frontend-design/references/extraction-best-practices.md +0 -141
  213. package/src/claude/skills/frontend-design/references/extraction-output-templates.md +0 -162
  214. package/src/claude/skills/frontend-design/references/extraction-prompts.md +0 -127
  215. package/src/claude/skills/frontend-design/references/magicui-components.md +0 -129
  216. package/src/claude/skills/frontend-design/references/performance-guardrails.md +0 -169
  217. package/src/claude/skills/frontend-design/references/premium-design-patterns.md +0 -93
  218. package/src/claude/skills/frontend-design/references/redesign-audit-checklist.md +0 -114
  219. package/src/claude/skills/frontend-design/references/technical-accessibility.md +0 -119
  220. package/src/claude/skills/frontend-design/references/technical-best-practices.md +0 -97
  221. package/src/claude/skills/frontend-design/references/technical-optimization.md +0 -44
  222. package/src/claude/skills/frontend-design/references/technical-overview.md +0 -90
  223. package/src/claude/skills/frontend-design/references/technical-workflows.md +0 -150
  224. package/src/claude/skills/frontend-design/references/visual-analysis-overview.md +0 -95
  225. package/src/claude/skills/frontend-design/references/workflow-3d.md +0 -102
  226. package/src/claude/skills/frontend-design/references/workflow-describe.md +0 -87
  227. package/src/claude/skills/frontend-design/references/workflow-immersive.md +0 -87
  228. package/src/claude/skills/frontend-design/references/workflow-quick.md +0 -57
  229. package/src/claude/skills/frontend-design/references/workflow-screenshot.md +0 -63
  230. package/src/claude/skills/frontend-design/references/workflow-video.md +0 -74
  231. package/src/claude/skills/frontend-development/SKILL.md +0 -406
  232. package/src/claude/skills/frontend-development/resources/common-patterns.md +0 -331
  233. package/src/claude/skills/frontend-development/resources/complete-examples.md +0 -872
  234. package/src/claude/skills/frontend-development/resources/component-patterns.md +0 -502
  235. package/src/claude/skills/frontend-development/resources/data-fetching.md +0 -767
  236. package/src/claude/skills/frontend-development/resources/file-organization.md +0 -502
  237. package/src/claude/skills/frontend-development/resources/loading-and-error-states.md +0 -501
  238. package/src/claude/skills/frontend-development/resources/performance.md +0 -406
  239. package/src/claude/skills/frontend-development/resources/routing-guide.md +0 -364
  240. package/src/claude/skills/frontend-development/resources/styling-guide.md +0 -428
  241. package/src/claude/skills/frontend-development/resources/typescript-standards.md +0 -418
  242. package/src/claude/skills/mobile-development/SKILL.md +0 -218
  243. package/src/claude/skills/mobile-development/references/mobile-android.md +0 -604
  244. package/src/claude/skills/mobile-development/references/mobile-best-practices.md +0 -544
  245. package/src/claude/skills/mobile-development/references/mobile-debugging.md +0 -1089
  246. package/src/claude/skills/mobile-development/references/mobile-frameworks.md +0 -465
  247. package/src/claude/skills/mobile-development/references/mobile-ios.md +0 -496
  248. package/src/claude/skills/mobile-development/references/mobile-mindset.md +0 -542
  249. package/src/claude/skills/react-best-practices/AGENTS.md +0 -2249
  250. package/src/claude/skills/react-best-practices/README.md +0 -123
  251. package/src/claude/skills/react-best-practices/SKILL.md +0 -128
  252. package/src/claude/skills/react-best-practices/metadata.json +0 -15
  253. package/src/claude/skills/react-best-practices/rules/_sections.md +0 -46
  254. package/src/claude/skills/react-best-practices/rules/_template.md +0 -28
  255. package/src/claude/skills/react-best-practices/rules/advanced-event-handler-refs.md +0 -55
  256. package/src/claude/skills/react-best-practices/rules/advanced-use-latest.md +0 -49
  257. package/src/claude/skills/react-best-practices/rules/async-api-routes.md +0 -38
  258. package/src/claude/skills/react-best-practices/rules/async-defer-await.md +0 -80
  259. package/src/claude/skills/react-best-practices/rules/async-dependencies.md +0 -36
  260. package/src/claude/skills/react-best-practices/rules/async-parallel.md +0 -28
  261. package/src/claude/skills/react-best-practices/rules/async-suspense-boundaries.md +0 -99
  262. package/src/claude/skills/react-best-practices/rules/bundle-barrel-imports.md +0 -59
  263. package/src/claude/skills/react-best-practices/rules/bundle-conditional.md +0 -31
  264. package/src/claude/skills/react-best-practices/rules/bundle-defer-third-party.md +0 -49
  265. package/src/claude/skills/react-best-practices/rules/bundle-dynamic-imports.md +0 -35
  266. package/src/claude/skills/react-best-practices/rules/bundle-preload.md +0 -50
  267. package/src/claude/skills/react-best-practices/rules/client-event-listeners.md +0 -74
  268. package/src/claude/skills/react-best-practices/rules/client-swr-dedup.md +0 -56
  269. package/src/claude/skills/react-best-practices/rules/js-batch-dom-css.md +0 -82
  270. package/src/claude/skills/react-best-practices/rules/js-cache-function-results.md +0 -80
  271. package/src/claude/skills/react-best-practices/rules/js-cache-property-access.md +0 -28
  272. package/src/claude/skills/react-best-practices/rules/js-cache-storage.md +0 -70
  273. package/src/claude/skills/react-best-practices/rules/js-combine-iterations.md +0 -32
  274. package/src/claude/skills/react-best-practices/rules/js-early-exit.md +0 -50
  275. package/src/claude/skills/react-best-practices/rules/js-hoist-regexp.md +0 -45
  276. package/src/claude/skills/react-best-practices/rules/js-index-maps.md +0 -37
  277. package/src/claude/skills/react-best-practices/rules/js-length-check-first.md +0 -49
  278. package/src/claude/skills/react-best-practices/rules/js-min-max-loop.md +0 -82
  279. package/src/claude/skills/react-best-practices/rules/js-set-map-lookups.md +0 -24
  280. package/src/claude/skills/react-best-practices/rules/js-tosorted-immutable.md +0 -57
  281. package/src/claude/skills/react-best-practices/rules/rendering-activity.md +0 -26
  282. package/src/claude/skills/react-best-practices/rules/rendering-animate-svg-wrapper.md +0 -47
  283. package/src/claude/skills/react-best-practices/rules/rendering-conditional-render.md +0 -40
  284. package/src/claude/skills/react-best-practices/rules/rendering-content-visibility.md +0 -38
  285. package/src/claude/skills/react-best-practices/rules/rendering-hoist-jsx.md +0 -46
  286. package/src/claude/skills/react-best-practices/rules/rendering-hydration-no-flicker.md +0 -82
  287. package/src/claude/skills/react-best-practices/rules/rendering-svg-precision.md +0 -28
  288. package/src/claude/skills/react-best-practices/rules/rerender-defer-reads.md +0 -39
  289. package/src/claude/skills/react-best-practices/rules/rerender-dependencies.md +0 -45
  290. package/src/claude/skills/react-best-practices/rules/rerender-derived-state.md +0 -29
  291. package/src/claude/skills/react-best-practices/rules/rerender-functional-setstate.md +0 -74
  292. package/src/claude/skills/react-best-practices/rules/rerender-lazy-state-init.md +0 -58
  293. package/src/claude/skills/react-best-practices/rules/rerender-memo.md +0 -44
  294. package/src/claude/skills/react-best-practices/rules/rerender-transitions.md +0 -40
  295. package/src/claude/skills/react-best-practices/rules/server-after-nonblocking.md +0 -73
  296. package/src/claude/skills/react-best-practices/rules/server-cache-lru.md +0 -41
  297. package/src/claude/skills/react-best-practices/rules/server-cache-react.md +0 -26
  298. package/src/claude/skills/react-best-practices/rules/server-parallel-fetching.md +0 -79
  299. package/src/claude/skills/react-best-practices/rules/server-serialization.md +0 -38
@@ -1,6 +1,6 @@
1
1
  ---
2
- name: hapo:specs
3
- description: "Turn a substantial feature idea into a bounded, reviewed plan and executable flat task files, with human decisions at scope, findings, and completion. Use when the work needs durable coordination; skip for a clear one-file or two-file change."
2
+ name: cf:specs
3
+ description: "Turn a substantial or risk-elevated feature idea into a bounded, reviewed plan and executable flat task files, with human decisions at scope, findings, and completion. Use when work needs durable coordination or is not eligible for direct work; skip only when a change is clear, isolated, reversible, routine, and likely limited to one or two files."
4
4
  user-invocable: true
5
5
  argument-hint: "<feature-description>"
6
6
  metadata:
@@ -9,19 +9,23 @@ metadata:
9
9
  ---
10
10
  # Specs — process-first planning
11
11
 
12
- Quality comes from a short decision process; honesty comes from evidence. Keep
13
- the human at exactly three gates and let the agent do the work between them.
14
- The durable output is Markdown that can be read and edited without a compiler.
12
+ Quality comes from a short decision process; honesty comes from evidence. Keep the human at exactly three gates; durable output is editable Markdown.
15
13
 
16
- ## Step 0 — decide whether a plan earns its cost
14
+ ## Step 0 — classify risk before routing
17
15
 
18
- Work directly when the cause and change are clear, isolated, reversible, and
19
- likely limited to one or two files. Use this skill when the request crosses
20
- components, contains a product or architecture choice, has meaningful failure
21
- risk, or needs several tasks, sessions, or owners.
16
+ Classify material risk before choosing a workflow; user wording never lowers an observed floor.
22
17
 
23
- Do not create a plan merely because this skill was mentioned in surrounding
24
- documentation. The user must invoke Specs or ask for durable planning.
18
+ - `critical`: auth/secrets/privacy; destructive/irreversible work or possible data loss/corruption; money/privilege/safety; production-state mutation.
19
+ - `elevated`: cross-component contracts, compatibility, concurrency, external integration, or installed/runtime behavior.
20
+ - `routine`: only when no elevated or critical signal applies.
21
+
22
+ Work directly only when the cause and change are clear, isolated, reversible,
23
+ `routine`, and likely limited to one or two files. Route unresolved user-owned
24
+ observable choices to C1/C2 first; after they settle, route material competing
25
+ technical designs through Brainstorm. Split three or more independent
26
+ subsystems; otherwise use one Specs packet for any material work that does not qualify for direct work or Brainstorm-only exploration. A subsystem is independent only when its outcome, boundary, and verification/deployment path can move through the lifecycle separately.
27
+
28
+ Do not create a plan merely because documentation mentions this skill; the user must invoke Specs or ask for durable planning.
25
29
 
26
30
  ## The three human gates
27
31
 
@@ -31,9 +35,7 @@ documentation. The user must invoke Specs or ask for durable planning.
31
35
  | C2 — Findings | after adversarial review | accept, reject, or revise each deduplicated finding |
32
36
  | C3 — Done | after execution | accept completion from current command output and receipts |
33
37
 
34
- Ask once at each gate. Do not ask for routine implementation choices between
35
- the gates. If new evidence invalidates the scope, return to C1 instead of
36
- silently expanding it.
38
+ Ask once at each gate. Do not ask for routine implementation choices between them. New evidence that invalidates scope returns to C1.
37
39
 
38
40
  ## Primary output layout
39
41
 
@@ -46,58 +48,51 @@ specs/<feature>/
46
48
  └── task-02-<slug>.md
47
49
  ```
48
50
 
49
- Task files are flat beside `plan.md`. Do not create a nested task directory.
50
- Use safe lowercase feature and task slugs. Read
51
- [`references/templates.md`](references/templates.md) before authoring these
52
- files.
51
+ Task files are flat beside `plan.md`. Do not create a nested task directory. Use safe lowercase slugs and read [`references/templates.md`](references/templates.md) first.
53
52
 
54
53
  ## Flow
55
54
 
56
55
  ### 1. Challenge scope, then open C1
57
56
 
58
- Inspect the repository before drafting. Answer three questions with current
59
- `path:line` evidence:
57
+ Inspect the repository before drafting. Answer three questions with current `path:line` evidence:
60
58
 
61
59
  1. What already exists and can be reused?
62
60
  2. What is the smallest change set that delivers the requested outcome?
63
- 3. What signals expansion: more than eight touched files, more than two new
64
- services/classes, or more than three independent work groups?
61
+ 3. What signals expansion: more than eight touched files, more than two new services/classes, or three or more independently deliverable subsystems?
65
62
 
66
63
  Present the answers and ask the user to EXPAND, KEEP, or CUT. Record the chosen
67
64
  scope and explicit exclusions in `plan.md`.
68
65
 
69
66
  ### 2. Write the plan and task packets
70
67
 
71
- Keep `plan.md` as the short index: C1 decision, EARS acceptance criteria,
72
- explicit exclusions, and a task table. Every acceptance criterion receives a
73
- stable ID, and every task row lists the criteria it satisfies.
68
+ Keep `plan.md` as the short index: C1 decision, EARS criteria, exclusions, and task table. Give every criterion a stable ID mapped by task rows.
69
+
70
+ For a Specs route, persist the canonical `## Coverage profile` from
71
+ `references/templates.md`: one `CP-NN` row per observable outcome; tasks reference IDs instead of copying it.
74
72
 
75
- Make each task small enough for one owner to hold in one reading: one outcome,
76
- normally no more than about five owned files, explicit dependencies, measurable
77
- acceptance, and a runnable verification command. A task must deliver usable
78
- behavior; do not create preparation-only tasks.
73
+ Each task has one usable outcome, normally at most about five owned files, explicit dependencies, measurable acceptance, and a runnable verification command; no preparation-only tasks.
79
74
 
80
- When an outcome is uncertain, write a question rather than guessing. When a
81
- rule remains ambiguous, add two or three concrete examples and resolve the rule
82
- at C1 or C2.
75
+ Author exact state: `pending` means semantically ready for the dependency-aware queue.
76
+ Use `blocked` while a C1/C2 decision, accepted finding, or `UNKNOWN` closure remains
77
+ open. Dependencies alone do not change `pending`; the resolver queues them. Promote only after current evidence closes every non-dependency blocker; keep pre-execution Receipts empty.
78
+
79
+ `Required proof` is planned, not executed evidence. Unknown command/caller/environment
80
+ reachability blocks `pending`; known unrun proof does not. Missing, failed, or unavailable
81
+ required evidence blocks `done`/C3; levels never promote. Rederive affected CP rows after accepted scope, outcome, criteria, ownership, dependency, risk, or proof deltas, before status.
82
+ Source/static checks prove the written contract, not live-model adherence.
83
83
 
84
84
  ### 3. Review adversarially, then open C2
85
85
 
86
- Read [`references/review.md`](references/review.md) and run its fresh-context
87
- review. Every finding needs a reproducible `path:line` citation and a concrete
88
- failure scenario. Deduplicate, rank, and cap the list at 15.
86
+ Read [`references/review.md`](references/review.md) and run its fresh-context review. Require reproducible `path:line` plus a failure scenario; deduplicate, rank, and cap at 15.
89
87
 
90
- Ask the user to accept, reject, or revise each finding. Apply only accepted
91
- decisions. After every plan edit, run the consistency sweep across all plan and
92
- task files. Stop after two paper-review rounds; later findings require runtime
93
- evidence.
88
+ Ask the user to accept, reject, or revise each finding; apply only accepted decisions. After every edit, sweep all packet files and rederive every status. Dependencies use exact flat task basenames. Stop after two paper rounds; later findings require runtime evidence.
94
89
 
95
90
  ### 4. Execute one task at a time
96
91
 
97
- An implementation workflow owns execution. It selects one unblocked task,
98
- changes its single `Status:` field to `in_progress`, respects owned paths, runs
99
- the task's verification, and appends a real inline `## Receipt` only after the
100
- command finishes.
92
+ An implementation workflow owns execution. It selects one unblocked task with
93
+ `Status: pending`, changes its single `Status:` field to `in_progress`, respects
94
+ owned paths, runs the task's verification, and appends a real inline `## Receipt`
95
+ only after the command finishes.
101
96
 
102
97
  Parallel work is allowed only for tasks with disjoint write ownership and
103
98
  satisfied dependencies. One file has one writer in a wave. The controller is
@@ -119,19 +114,13 @@ it does not invent product approval, review independence, or runtime coverage.
119
114
  1. **A1 — Scope once.** Raise scope pressure at C1; reopen only with new proof.
120
115
  2. **A2 — Small packets.** One task, one outcome, one owner, one proof command.
121
116
  3. **A3 — One fact, one home.** Reference decisions; never copy mutable lists.
122
- 4. **A4 — Files are state.** `plan.md` and flat task files are canonical and
123
- hand-editable; indexes are disposable views.
124
- 5. **B1 — Cite the repository.** Codebase claims carry current `path:line`
125
- evidence or an explicit `[UNVERIFIED]` marker.
126
- 6. **B2 — Review from fresh context.** The author does not impersonate the
127
- independent adversarial reviewer.
128
- 7. **B3 — Sweep after edits.** Search renamed concepts, rejected assumptions,
129
- ownership, dependencies, criteria IDs, and copied prose across every file.
130
- 8. **B4 — Stop paper churn.** Two pre-code review rounds maximum; later claims
131
- need runtime evidence.
132
- 9. **C1 — Done is derived.** Status follows fresh proof, never confidence.
133
- 10. **C2 — Rules pay rent.** Add a rule or machine check only when it prevents a
134
- cited real incident; reassess rules when the primary model changes.
117
+ 4. **A4 — Files are state.** Markdown is canonical; indexes are disposable.
118
+ 5. **B1 — Cite the repository.** Use current `path:line` or `[UNVERIFIED]`.
119
+ 6. **B2 — Review fresh.** The author does not impersonate the reviewer.
120
+ 7. **B3 — Sweep edits.** Reconcile names, decisions, CP rows, ownership, dependencies, criteria, and proof.
121
+ 8. **B4 — Stop paper churn.** Two pre-code rounds; later claims need runtime evidence.
122
+ 9. **C1 — Derive state.** Status follows fresh blocker and proof evidence.
123
+ 10. **C2 — Rules pay rent.** Require a cited failure; reassess for model changes.
135
124
 
136
125
  ## Machine boundary
137
126
 
@@ -141,6 +130,8 @@ Stop gate revalidates every done task's inline Receipt and provenance. The old
141
130
  task-scaffold guard remains limited to the older nested layout; flat v3 tasks
142
131
  do not invoke that kernel path.
143
132
 
133
+ The resolver projects exact `Status:` values; it does not infer blockers from prose.
134
+
144
135
  These checks are a final safety net, not a substitute for C1-C3 judgment. Do
145
136
  not add a new schema, approval field, readiness bit, or review state to make the
146
137
  Markdown look more authoritative.
@@ -15,6 +15,7 @@ evidence.
15
15
  list the first ten plus the total.
16
16
  - Label an unresolved external or runtime claim `[UNVERIFIED]` and name the
17
17
  command, document, or environment that would settle it.
18
+ - Any privacy/security claim names the exact identifier surface at risk, such as an env var, header, path, token class, or field name; generic “sensitive data” is insufficient.
18
19
 
19
20
  ## Reviewer roles
20
21
 
@@ -25,19 +26,22 @@ evidence.
25
26
  | Scope Auditor | Is new state scoped to the right lifetime and owner? | constructors, writers, cleanup, and existing equivalents |
26
27
  | Contract Verifier | Are all consumers and compatibility surfaces covered? | caller/test/export/config/help inventory |
27
28
 
28
- Scale the review to the number of independent work groups:
29
+ Keep Fact Checker as the baseline. Assign every remaining material CP risk to a
30
+ named reviewer lens; a critical row includes both relevant security-adversary and
31
+ failure-mode coverage, and nonmaterial lenses are not added. Scale reviewer count
32
+ to independent work groups:
29
33
 
30
34
  | Groups | Reviewers | Roles | Claim budget |
31
35
  |---|---:|---|---:|
32
- | 1-2 | 2 | Fact Checker plus the highest-risk role | about 5 per group |
33
- | 3-5 | 3 | Fact Checker, Contract Verifier, one risk role | about 10 per group |
34
- | 6+ | 4 | all roles | at least 15 total |
36
+ | 1-2 | 2 | Fact Checker plus all matching material lenses | about 5 per group |
37
+ | 3-5 | 3 | Fact Checker plus all matching material lenses | about 10 per group |
38
+ | 6+ | 4 | Fact Checker plus all matching material lenses | at least 15 total |
35
39
 
36
- The table is a sizing guide, not permission to skip a material boundary.
40
+ Reviewer count is fixed by the table, not lens count. Give each reviewer a distinct primary lens; when material lenses exceed reviewers, combine related named lenses on one reviewer and keep every material lens assigned.
37
41
 
38
42
  ## B2 — fresh-context red team
39
43
 
40
- Use reviewers that did not author the plan and give each one a distinct lens:
44
+ Use reviewers that did not author the plan and assign these lenses from affected CP rows:
41
45
 
42
46
  - **Security adversary:** authorization bypass, injection, secret exposure,
43
47
  unsafe path and trust-boundary transitions.
@@ -51,6 +55,7 @@ Use reviewers that did not author the plan and give each one a distinct lens:
51
55
  Prompt them to break the plan. For every finding require: severity, exact plan
52
56
  location, concrete counterexample, repository evidence, and the smallest repair.
53
57
  Ignore style-only feedback.
58
+ Run mutation or destructive negative controls only on disposable copies below a verified temporary root, never tracked worktree or canonical source bytes.
54
59
 
55
60
  ## Four red-team lenses
56
61
 
@@ -81,13 +86,26 @@ Present C2 as a table:
81
86
  The user chooses accept, reject, or revise. Do not apply findings before that
82
87
  decision. Record the result in the plan review log.
83
88
 
89
+ ## Accepted-repair closure
90
+
91
+ After applying an accepted C2 finding, a fresh-context closure pass records and
92
+ freshly replays its original counterexample after the repair under this exact review-log header:
93
+
94
+ | ID | Decision | Original counterexample | Repaired at | Proved at | Replay | Closure |
95
+ |---|---|---|---|---|---|---|
96
+
97
+ `Repaired at` cites the repair edit; `Proved at` must cite distinct evidence from the fresh replay, never the repair-edit citation.
98
+ An accepted finding transitions `accepted → repaired → PASS|FAIL|UNKNOWN`.
99
+ Only `PASS` closes it; `FAIL` remains open for the remaining paper-review round; `UNKNOWN` blocks implementation handoff.
100
+ A repair that adds user semantics or scope returns to C1.
101
+
84
102
  ## B3 — consistency sweep
85
103
 
86
104
  After any accepted finding or user edit:
87
105
 
88
106
  1. Reread every file in `specs/<feature>/`.
89
- 2. List deltas: renamed terms, changed decisions, removed assumptions, task
90
- order, ownership, dependencies, acceptance IDs, and commands.
107
+ 2. List accepted deltas; rederive affected CP rows using the canonical delta list
108
+ in the templates before task status.
91
109
  3. Search every delta and its old spelling across the whole feature packet.
92
110
  4. Reconcile the plan table, task details, examples, acceptance mapping, and
93
111
  verification commands.
@@ -16,6 +16,7 @@ Keep the plan short enough to scan as one index, normally under 100 lines.
16
16
 
17
17
  ```markdown
18
18
  # <Feature name>
19
+ Specs-Contract: process-first-ready-v1
19
20
 
20
21
  ## Scope decision (C1 — YYYY-MM-DD)
21
22
  - Existing: <reusable code with path:line>
@@ -26,6 +27,11 @@ Keep the plan short enough to scan as one index, normally under 100 lines.
26
27
  ## Out of scope
27
28
  - <deliberate exclusion>
28
29
 
30
+ ## Coverage profile
31
+ | ID | Outcome | Change kinds | Material surfaces | Ambiguity/action | Risk/evidence | Required proof |
32
+ |---|---|---|---|---|---|---|
33
+ | CP-01 | <externally observable outcome> | <all kinds> | <all material surfaces> | <state + action> | <level + evidence> | <source/installed/live set> |
34
+
29
35
  ## Acceptance criteria
30
36
  | ID | EARS criterion | Proof |
31
37
  |---|---|---|
@@ -34,7 +40,7 @@ Keep the plan short enough to scan as one index, normally under 100 lines.
34
40
  ## Tasks
35
41
  | # | Task | Criteria | Primary ownership | Dependencies | Status |
36
42
  |---|---|---|---|---|---|
37
- | 01 | <one outcome> | AC-01 | `src/example.ts` | - | pending |
43
+ | 01 | <one outcome> | AC-01 | `src/example.ts` | - | blocked |
38
44
 
39
45
  ## Review log
40
46
  - Round 1: <findings accepted/rejected/revised>; sweep <result>.
@@ -50,7 +56,7 @@ Keep one exact `Status:` field. The task file is one owner's packet.
50
56
  ````markdown
51
57
  # Task NN — <one observable outcome>
52
58
 
53
- Status: pending
59
+ Status: blocked
54
60
 
55
61
  ## Outcome
56
62
  <What becomes true when this task succeeds.>
@@ -59,6 +65,9 @@ Status: pending
59
65
  - In: <exact behavior>
60
66
  - Out: <nearby behavior deliberately excluded>
61
67
 
68
+ ## Coverage
69
+ - <exact `CP-NN` IDs owned by this task>
70
+
62
71
  ## Ownership
63
72
  - Modify: `src/a.ts`
64
73
  - Create: `test/a.test.ts`
@@ -68,18 +77,40 @@ Status: pending
68
77
  - AC-01: <task-local measurable condition>
69
78
 
70
79
  ## Dependencies
71
- - <task number or `none`>
80
+ - <exact `task-NN-*.md` basename or `none`; one bullet per dependency>
72
81
 
73
82
  ## Verification Plan
74
83
  - Command: `<exact runnable command>`
75
- - Expected: <observable success, including nonzero/negative behavior if relevant>
76
- - Reachability: <entrypoint or consumer>
77
- - Artifacts: <path and digest requirement, or none>
84
+ - Named probe: <existing concrete probe/test/hook ID; never only a suite label>
85
+ - Reachability: <known command/caller/environment per required level; `UNKNOWN` only when the path cannot yet be established>
86
+ - Oracle: <externally observable success or failure>
87
+ - Counterexample: <material alternative behavior that must make this proof fail>
88
+ - Artifacts: <required artifact path plus digest algorithm/comparison rule, or explicitly ephemeral with cleanup rule>
78
89
 
79
90
  ## Receipt
80
91
  <!-- Fill only after execution; see canonical form below. -->
81
92
  ````
82
93
 
94
+ Trace `Command → Named probe → Reachability → Oracle`. Aggregate suites name the
95
+ owning concrete probe. `Required proof` is a planned level set, not execution
96
+ evidence: known but unrun proof may be `pending`; `UNKNOWN` reachability blocks
97
+ `pending`; missing, failed, or unavailable required evidence blocks `done`/C3.
98
+ Levels stay separate and never promote one another. Run mutation or destructive
99
+ negative controls only on disposable copies under a verified temporary root,
100
+ never tracked worktree or canonical source bytes.
101
+ For every required level in each referenced CP row, map its named probe and
102
+ reachability here; one command may own several explicitly named level probes.
103
+
104
+ ## Status matrix
105
+
106
+ | Status condition | Persisted state |
107
+ |---|---|
108
+ | C1/C2 decision open | `blocked` |
109
+ | accepted finding open or `UNKNOWN` reachability | `blocked` |
110
+ | every non-dependency blocker closed | `pending` |
111
+ | named task dependency not done | keep `pending`; queue gates it |
112
+ Use only direct-child task basenames or `none` under `## Dependencies`; keep `## Receipt` empty until execution produces canonical proof.
113
+
83
114
  ## Canonical inline Receipt
84
115
 
85
116
  The completed task keeps this section at the end of the same file. Derive Base
@@ -119,38 +150,52 @@ Avoid implementation detail unless it is a user-approved contract. Replace
119
150
 
120
151
  ## Example Mapping rule
121
152
 
122
- When the expected outcome is uncertain, write a question and take it to C1 or
123
- C2; do not guess. When a rule is ambiguous, add two or three examples:
153
+ Classify ambiguity in every affected CP row:
124
154
 
125
- ```text
126
- Rule: A done task has fresh executable proof.
127
- Example: command exits 0 and reports 3 tests passed -> done may be proposed.
128
- Example: command exits 0 but reports 0 tests -> remains unfinished.
129
- Example: output is copied from an earlier session -> remains unfinished.
130
- Question: which environment owns the authoritative integration run?
131
- ```
155
+ | State | Required action |
156
+ |---|---|
157
+ | `none` | proceed |
158
+ | `examples-needed` | add two or three examples only for an already decided rule; promote to `decision-needed` if an example changes observable behavior |
159
+ | `decision-needed` | ask the user at C1/C2 and keep affected tasks blocked |
160
+ | `design-needed` | after user-owned decisions settle, route material competing technical designs through Brainstorm |
132
161
 
133
- Keep examples only until they clarify a rule or acceptance criterion.
162
+ Do not let examples choose a product outcome: retention of 30 versus 90 days is
163
+ `decision-needed`. Keep examples only until they clarify the decided rule.
164
+
165
+ ## No-invention and conditional boundary contracts
166
+
167
+ Before implementation handoff, apply the **no-invention gate**: if two implementations conform to the packet text yet can produce different externally observable output, state, error, security, or compatibility behavior, surface the missing choice as an explicit C1 or C2 question and block handoff.
168
+
169
+ For a Specs route, `plan.md` owns one `## Coverage profile` row per externally observable outcome; direct and Brainstorm-only routes do not persist it. Change kinds are multi-valued (`add`, `modify`, `fix`, `refactor`, `remove`, `migrate`, `integrate`), and unfamiliar kinds or surfaces use `other:<verbatim>` rather than disappearing. Each task references its CP IDs; authoring, review, edge, and proof obligations union only inside affected rows/tasks. Rederive affected CP rows after any accepted scope, outcome, criteria, ownership, dependency, risk, or proof delta before task status.
170
+
171
+ A boundary is material when the task creates, changes, or depends on it and a different choice changes an external observation, security, durable data, compatibility, or proof reachability. Require only the matching material row; omit nonmaterial categories.
172
+ For every required row, name each listed choice exactly; labels such as “JSON”, “local path”, “locked”, or “timestamped” alone remain unresolved.
173
+
174
+ | Boundary | Required contract when material |
175
+ |---|---|
176
+ | Interaction/UI | entry journey; visible/loading/empty/error states; input/focus/keyboard; accessibility; responsive/native/device behavior |
177
+ | API/CLI | entrypoint/route or command grammar; identity/auth; input/default/normalization; success output; error/status/exit; duplicate/retry/idempotency; compatibility |
178
+ | Data/schema | authority/storage/transaction; version; exact keys/nesting/types; required/optional; enum/format/bounds/cardinality; unknown-field behavior; compatibility/migration |
179
+ | Async/state | initial/terminal states; event + guard + effect + next + error; ordering/concurrency; duplicate/retry; writer/lock acquire/contention/release; cancellation; rollback/recovery |
180
+ | Filesystem/security | authoritative root; trusted/untrusted segment grammar; lexical + canonical containment and symlink policy; flags/mode; temp/rename/fsync; lock/stale reclaim; crash cleanup |
181
+ | Runtime/deploy | config/env/flags; registration/packaging; OS/arch; rollout/rollback; health/logging; operator recovery |
182
+ | Time/retention | clock source; unit/precision/timezone; endpoints and inclusion/comparator; anomaly behavior; expiry/purge/recovery |
183
+ | AI/model | provider/model/prompt/tool schema; nondeterminism/bounds; safety/privacy; fallback; cost/token limit; eval oracle |
184
+ | Integration/proof | caller; export/registration; packaging/config; native path/consumer; proof level (`source`/`installed`/`live`); observable failure oracle |
134
185
 
135
186
  ## Twelve edge-case dimensions
136
187
 
137
188
  For each material boundary, select relevant dimensions rather than filling a
138
189
  ceremonial matrix:
139
190
 
140
- | Dimension | Probe |
141
- |---|---|
142
- | Input shape | empty, malformed, duplicate, maximum size |
143
- | Identity | missing, wrong actor, cross-scope, replay |
144
- | State | initial, partial, terminal, stale |
145
- | Order | early, late, repeated, out of order |
146
- | Concurrency | double writer, race, cancellation |
147
- | Dependency | missing, blocked, version drift |
148
- | Failure | timeout, exception, nonzero exit |
149
- | Recovery | retry, resume, rollback, cleanup |
150
- | Persistence | partial write, corruption, migration |
151
- | Integration | caller, registration, packaging, reachability |
152
- | Security/privacy | injection, traversal, secret exposure |
153
- | Observability/proof | logs, artifact, negative path, provenance |
191
+ - Input shape, identity, state, order: malformed/duplicate/bounds, wrong actor,
192
+ partial/stale state, replay/reordering.
193
+ - Concurrency, dependency, failure, recovery: races/cancellation, version drift,
194
+ timeout/nonzero exit, retry/rollback/cleanup.
195
+ - Persistence, integration, security/privacy, observability/proof: partial
196
+ writes, registration/reachability, traversal/secrets, artifacts/provenance.
197
+
198
+ `Crash` means abrupt unhandled termination before the claimed catch point; a catchable failure returns/raises an error or exits nonzero. Never use them interchangeably.
154
199
 
155
200
  Turn a discovered risk into an EARS criterion, a task acceptance item, or a
156
201
  verification probe. Do not duplicate it across all three.
@@ -165,7 +210,7 @@ Before C2 confirm:
165
210
  - dependencies are acyclic and refer to real task numbers;
166
211
  - commands are runnable from the named work context;
167
212
  - negative, recovery, and reachability probes exist where risk requires them;
168
- - examples settle ambiguous rules rather than adding prose;
213
+ - every ambiguity follows its required action; examples only clarify decided rules;
169
214
  - the latest consistency sweep reports zero unresolved contradictions.
170
215
 
171
216
  Stop expanding when a fresh reviewer finds no new material failure with new
@@ -4,5 +4,5 @@
4
4
  {{PROJECT_DESCRIPTION}}
5
5
 
6
6
  ## Requirements
7
- <!-- Will be generated during the hapo:specs requirements phase -->
7
+ <!-- Will be generated during the cf:specs requirements phase -->
8
8
 
@@ -8,11 +8,11 @@ Research exists only because this uncertainty can change requirements or design.
8
8
 
9
9
  ## Evidence Summary
10
10
 
11
- <!-- Cite concrete repository evidence or current primary sources that resolve the uncertainty. -->
11
+ <!-- Keep the mandatory H2 headings in this exact order. Record each material claim with: claim; URL or repository path:line; authority; date/version; project applicability; confirmed|inferred|unresolved. For comparisons include ranked fit, decisive tradeoffs, contradictions, and limits. -->
12
12
 
13
13
  ## Decision
14
14
 
15
- <!-- State the selected decision and how the evidence supports it. -->
15
+ <!-- State the selected decision, research depth, and decisive evidence; if evidence cannot choose safely, state unresolved and name what would settle it. -->
16
16
 
17
17
  ## Remaining Gaps
18
18
 
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: hapo:sync
2
+ name: cf:sync
3
3
  description: "Synchronize process-first task Status and inline Receipts without inventing proof; also preserves existing legacy Specs state."
4
4
  user-invocable: true
5
5
  when_to_use: "Invoke after implementation or verification changes a task's real state, or to audit a feature packet for drift."
@@ -19,11 +19,11 @@ state. Never infer proof, approval, review independence, or product readiness.
19
19
  ## Commands
20
20
 
21
21
  ```text
22
- /hapo:sync <feature> <task-NN-slug.md> in_progress
23
- /hapo:sync <feature> <task-NN-slug.md> blocked "reason"
24
- /hapo:sync <feature> <task-NN-slug.md> done
25
- /hapo:sync <feature> <task-NN-slug.md> sync-finalize
26
- /hapo:sync audit <feature>
22
+ /cf:sync <feature> <task-NN-slug.md> in_progress
23
+ /cf:sync <feature> <task-NN-slug.md> blocked "reason"
24
+ /cf:sync <feature> <task-NN-slug.md> done
25
+ /cf:sync <feature> <task-NN-slug.md> sync-finalize
26
+ /cf:sync audit <feature>
27
27
  ```
28
28
 
29
29
  Resolve one regular direct-child task inside `specs/<feature>/`. Reject path
@@ -22,7 +22,7 @@ to change one task state.
22
22
  changes; retain the stale receipt only when clearly labelled non-authoritative.
23
23
 
24
24
  For Flash, keep `Status: in_progress`, `FLASH_UNVERIFIED`, and blocker
25
- `awaiting /hapo:test <feature>`. Only sync-finalize with fresh canonical proof
25
+ `awaiting /cf:test <feature>`. Only sync-finalize with fresh canonical proof
26
26
  may replace that marker and set done.
27
27
 
28
28
  ## Receipt update