@haposoft/cafekit 0.16.0-rc.8 → 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 (297) 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 +50 -0
  4. package/bin/__tests__/codex-native.test.js +1882 -70
  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 +1735 -98
  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 +12 -7
  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 +10 -3
  46. package/src/claude/hooks/__tests__/state.test.js +5 -0
  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 +2 -2
  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/workflow-policy.cjs +1 -1
  89. package/src/claude/settings/settings.json +16 -0
  90. package/src/claude/skills/agent-browser/SKILL.md +1 -1
  91. package/src/claude/skills/ai-multimodal/SKILL.md +1 -1
  92. package/src/claude/skills/brainstorm/SKILL.md +193 -172
  93. package/src/claude/skills/brainstorm/references/question-framework.md +105 -167
  94. package/src/claude/skills/chrome-devtools/SKILL.md +1 -1
  95. package/src/claude/skills/code-review/SKILL.md +43 -25
  96. package/src/claude/skills/code-review/references/spec-compliance-review.md +3 -4
  97. package/src/claude/skills/code-review/references/verification-gate.md +1 -1
  98. package/src/claude/skills/debug/SKILL.md +48 -19
  99. package/src/claude/skills/delegate/SKILL.md +1 -1
  100. package/src/claude/skills/develop/SKILL.md +92 -65
  101. package/src/claude/skills/develop/references/parallel-waves.md +36 -63
  102. package/src/claude/skills/develop/references/quality-gate.md +31 -4
  103. package/src/claude/skills/develop/references/subagent-patterns.md +21 -7
  104. package/src/claude/skills/docs/SKILL.md +42 -23
  105. package/src/claude/skills/docs/references/init-workflow.md +4 -4
  106. package/src/claude/skills/docs/references/reconstruct-workflow.md +6 -6
  107. package/src/claude/skills/docs/references/standard-docs-workflow.md +6 -2
  108. package/src/claude/skills/docs/references/summarize-workflow.md +2 -2
  109. package/src/claude/skills/docs/references/update-workflow.md +9 -7
  110. package/src/claude/skills/docs/templates/requirements-as-is.md +1 -1
  111. package/src/claude/skills/docx/SKILL.md +1 -1
  112. package/src/claude/skills/git/SKILL.md +1 -1
  113. package/src/claude/skills/git/references/commit-protocols.md +1 -1
  114. package/src/claude/skills/git/references/finish-branch.md +1 -1
  115. package/src/claude/skills/hotfix/SKILL.md +159 -170
  116. package/src/claude/skills/hotfix/references/diagnosis-protocol.md +14 -9
  117. package/src/claude/skills/hotfix/references/parallel-patterns.md +27 -13
  118. package/src/claude/skills/hotfix/references/prevention-gate.md +5 -0
  119. package/src/claude/skills/hotfix/references/review-cycle.md +21 -15
  120. package/src/claude/skills/hotfix/references/workflow-specialized.md +53 -21
  121. package/src/claude/skills/inspect/SKILL.md +55 -46
  122. package/src/claude/skills/inspect/references/internal-inspection.md +21 -5
  123. package/src/claude/skills/loop/SKILL.md +114 -0
  124. package/src/claude/skills/loop/references/bounded-loop-protocol.md +104 -0
  125. package/src/claude/skills/loop/references/metric-and-guard-contract.md +76 -0
  126. package/src/claude/skills/pdf/SKILL.md +1 -1
  127. package/src/claude/skills/pptx/SKILL.md +1 -1
  128. package/src/claude/skills/question/SKILL.md +16 -13
  129. package/src/claude/skills/research/SKILL.md +70 -43
  130. package/src/claude/skills/route/SKILL.md +94 -0
  131. package/src/claude/skills/route/references/agent-timing.md +46 -0
  132. package/src/claude/skills/route/references/chaining-patterns.md +53 -0
  133. package/src/claude/skills/route/references/task-taxonomy.md +48 -0
  134. package/src/claude/skills/specs/SKILL.md +41 -60
  135. package/src/claude/skills/specs/references/review.md +11 -8
  136. package/src/claude/skills/specs/references/templates.md +34 -18
  137. package/src/claude/skills/specs/templates/requirements-init.md +1 -1
  138. package/src/claude/skills/specs/templates/research.md +2 -2
  139. package/src/claude/skills/sync/SKILL.md +6 -6
  140. package/src/claude/skills/sync/references/sync-protocols.md +1 -1
  141. package/src/claude/skills/test/SKILL.md +120 -120
  142. package/src/claude/skills/test/references/execution-strategy.md +208 -361
  143. package/src/claude/skills/test/references/failure-triage.md +55 -121
  144. package/src/claude/skills/test/references/test-memory.md +20 -34
  145. package/src/claude/skills/ui-ux-pro-max/SKILL.md +1 -1
  146. package/src/claude/skills/web-testing/SKILL.md +1 -1
  147. package/src/claude/skills/xlsx/SKILL.md +1 -1
  148. package/src/claude/status.cjs +135 -33
  149. package/src/codex/AGENTS.md +14 -4
  150. package/src/codex/hooks/docs-sync.cjs +8 -3
  151. package/src/codex/hooks/lib/hook-context.cjs +18 -4
  152. package/src/codex/hooks/rules.cjs +29 -1
  153. package/src/codex/hooks/secret-output-guardrail.cjs +30 -0
  154. package/src/codex/hooks/spec-gate.cjs +3 -8
  155. package/src/codex/hooks/spec-state.cjs +2 -1
  156. package/src/codex/hooks.json +5 -0
  157. package/src/codex/runtime.json +2 -0
  158. package/src/common/.env.example +1 -1
  159. package/src/claude/skills/backend-development/SKILL.md +0 -101
  160. package/src/claude/skills/backend-development/references/backend-api-design.md +0 -495
  161. package/src/claude/skills/backend-development/references/backend-architecture.md +0 -454
  162. package/src/claude/skills/backend-development/references/backend-authentication.md +0 -338
  163. package/src/claude/skills/backend-development/references/backend-code-quality.md +0 -659
  164. package/src/claude/skills/backend-development/references/backend-debugging.md +0 -904
  165. package/src/claude/skills/backend-development/references/backend-devops.md +0 -491
  166. package/src/claude/skills/backend-development/references/backend-mindset.md +0 -387
  167. package/src/claude/skills/backend-development/references/backend-performance.md +0 -397
  168. package/src/claude/skills/backend-development/references/backend-security.md +0 -342
  169. package/src/claude/skills/backend-development/references/backend-technologies.md +0 -256
  170. package/src/claude/skills/backend-development/references/backend-testing.md +0 -429
  171. package/src/claude/skills/devops/.env.example +0 -76
  172. package/src/claude/skills/devops/SKILL.md +0 -102
  173. package/src/claude/skills/devops/references/browser-rendering.md +0 -305
  174. package/src/claude/skills/devops/references/cloudflare-d1-kv.md +0 -123
  175. package/src/claude/skills/devops/references/cloudflare-platform.md +0 -271
  176. package/src/claude/skills/devops/references/cloudflare-r2-storage.md +0 -280
  177. package/src/claude/skills/devops/references/cloudflare-workers-advanced.md +0 -312
  178. package/src/claude/skills/devops/references/cloudflare-workers-apis.md +0 -309
  179. package/src/claude/skills/devops/references/cloudflare-workers-basics.md +0 -418
  180. package/src/claude/skills/devops/references/docker-basics.md +0 -297
  181. package/src/claude/skills/devops/references/docker-compose.md +0 -292
  182. package/src/claude/skills/devops/references/gcloud-platform.md +0 -297
  183. package/src/claude/skills/devops/references/gcloud-services.md +0 -304
  184. package/src/claude/skills/devops/references/kubernetes-basics.md +0 -95
  185. package/src/claude/skills/devops/references/kubernetes-helm-advanced.md +0 -70
  186. package/src/claude/skills/devops/references/kubernetes-helm.md +0 -81
  187. package/src/claude/skills/devops/references/kubernetes-kubectl.md +0 -74
  188. package/src/claude/skills/devops/references/kubernetes-security-advanced.md +0 -94
  189. package/src/claude/skills/devops/references/kubernetes-security.md +0 -89
  190. package/src/claude/skills/devops/references/kubernetes-troubleshooting-advanced.md +0 -74
  191. package/src/claude/skills/devops/references/kubernetes-troubleshooting.md +0 -49
  192. package/src/claude/skills/devops/references/kubernetes-workflows-advanced.md +0 -75
  193. package/src/claude/skills/devops/references/kubernetes-workflows.md +0 -76
  194. package/src/claude/skills/devops/scripts/cloudflare_deploy.py +0 -269
  195. package/src/claude/skills/devops/scripts/docker_optimize.py +0 -332
  196. package/src/claude/skills/devops/scripts/requirements.txt +0 -20
  197. package/src/claude/skills/devops/scripts/tests/requirements.txt +0 -3
  198. package/src/claude/skills/devops/scripts/tests/test_cloudflare_deploy.py +0 -285
  199. package/src/claude/skills/devops/scripts/tests/test_docker_optimize.py +0 -436
  200. package/src/claude/skills/frontend-design/SKILL.md +0 -135
  201. package/src/claude/skills/frontend-design/references/ai-multimodal-overview.md +0 -165
  202. package/src/claude/skills/frontend-design/references/analysis-best-practices.md +0 -80
  203. package/src/claude/skills/frontend-design/references/analysis-prompts.md +0 -141
  204. package/src/claude/skills/frontend-design/references/analysis-techniques.md +0 -118
  205. package/src/claude/skills/frontend-design/references/animejs.md +0 -396
  206. package/src/claude/skills/frontend-design/references/anti-slop-rules.md +0 -103
  207. package/src/claude/skills/frontend-design/references/asset-generation.md +0 -337
  208. package/src/claude/skills/frontend-design/references/bento-motion-engine.md +0 -142
  209. package/src/claude/skills/frontend-design/references/design-extraction-overview.md +0 -71
  210. package/src/claude/skills/frontend-design/references/extraction-best-practices.md +0 -141
  211. package/src/claude/skills/frontend-design/references/extraction-output-templates.md +0 -162
  212. package/src/claude/skills/frontend-design/references/extraction-prompts.md +0 -127
  213. package/src/claude/skills/frontend-design/references/magicui-components.md +0 -129
  214. package/src/claude/skills/frontend-design/references/performance-guardrails.md +0 -169
  215. package/src/claude/skills/frontend-design/references/premium-design-patterns.md +0 -93
  216. package/src/claude/skills/frontend-design/references/redesign-audit-checklist.md +0 -114
  217. package/src/claude/skills/frontend-design/references/technical-accessibility.md +0 -119
  218. package/src/claude/skills/frontend-design/references/technical-best-practices.md +0 -97
  219. package/src/claude/skills/frontend-design/references/technical-optimization.md +0 -44
  220. package/src/claude/skills/frontend-design/references/technical-overview.md +0 -90
  221. package/src/claude/skills/frontend-design/references/technical-workflows.md +0 -150
  222. package/src/claude/skills/frontend-design/references/visual-analysis-overview.md +0 -95
  223. package/src/claude/skills/frontend-design/references/workflow-3d.md +0 -102
  224. package/src/claude/skills/frontend-design/references/workflow-describe.md +0 -87
  225. package/src/claude/skills/frontend-design/references/workflow-immersive.md +0 -87
  226. package/src/claude/skills/frontend-design/references/workflow-quick.md +0 -57
  227. package/src/claude/skills/frontend-design/references/workflow-screenshot.md +0 -63
  228. package/src/claude/skills/frontend-design/references/workflow-video.md +0 -74
  229. package/src/claude/skills/frontend-development/SKILL.md +0 -406
  230. package/src/claude/skills/frontend-development/resources/common-patterns.md +0 -331
  231. package/src/claude/skills/frontend-development/resources/complete-examples.md +0 -872
  232. package/src/claude/skills/frontend-development/resources/component-patterns.md +0 -502
  233. package/src/claude/skills/frontend-development/resources/data-fetching.md +0 -767
  234. package/src/claude/skills/frontend-development/resources/file-organization.md +0 -502
  235. package/src/claude/skills/frontend-development/resources/loading-and-error-states.md +0 -501
  236. package/src/claude/skills/frontend-development/resources/performance.md +0 -406
  237. package/src/claude/skills/frontend-development/resources/routing-guide.md +0 -364
  238. package/src/claude/skills/frontend-development/resources/styling-guide.md +0 -428
  239. package/src/claude/skills/frontend-development/resources/typescript-standards.md +0 -418
  240. package/src/claude/skills/mobile-development/SKILL.md +0 -218
  241. package/src/claude/skills/mobile-development/references/mobile-android.md +0 -604
  242. package/src/claude/skills/mobile-development/references/mobile-best-practices.md +0 -544
  243. package/src/claude/skills/mobile-development/references/mobile-debugging.md +0 -1089
  244. package/src/claude/skills/mobile-development/references/mobile-frameworks.md +0 -465
  245. package/src/claude/skills/mobile-development/references/mobile-ios.md +0 -496
  246. package/src/claude/skills/mobile-development/references/mobile-mindset.md +0 -542
  247. package/src/claude/skills/react-best-practices/AGENTS.md +0 -2249
  248. package/src/claude/skills/react-best-practices/README.md +0 -123
  249. package/src/claude/skills/react-best-practices/SKILL.md +0 -128
  250. package/src/claude/skills/react-best-practices/metadata.json +0 -15
  251. package/src/claude/skills/react-best-practices/rules/_sections.md +0 -46
  252. package/src/claude/skills/react-best-practices/rules/_template.md +0 -28
  253. package/src/claude/skills/react-best-practices/rules/advanced-event-handler-refs.md +0 -55
  254. package/src/claude/skills/react-best-practices/rules/advanced-use-latest.md +0 -49
  255. package/src/claude/skills/react-best-practices/rules/async-api-routes.md +0 -38
  256. package/src/claude/skills/react-best-practices/rules/async-defer-await.md +0 -80
  257. package/src/claude/skills/react-best-practices/rules/async-dependencies.md +0 -36
  258. package/src/claude/skills/react-best-practices/rules/async-parallel.md +0 -28
  259. package/src/claude/skills/react-best-practices/rules/async-suspense-boundaries.md +0 -99
  260. package/src/claude/skills/react-best-practices/rules/bundle-barrel-imports.md +0 -59
  261. package/src/claude/skills/react-best-practices/rules/bundle-conditional.md +0 -31
  262. package/src/claude/skills/react-best-practices/rules/bundle-defer-third-party.md +0 -49
  263. package/src/claude/skills/react-best-practices/rules/bundle-dynamic-imports.md +0 -35
  264. package/src/claude/skills/react-best-practices/rules/bundle-preload.md +0 -50
  265. package/src/claude/skills/react-best-practices/rules/client-event-listeners.md +0 -74
  266. package/src/claude/skills/react-best-practices/rules/client-swr-dedup.md +0 -56
  267. package/src/claude/skills/react-best-practices/rules/js-batch-dom-css.md +0 -82
  268. package/src/claude/skills/react-best-practices/rules/js-cache-function-results.md +0 -80
  269. package/src/claude/skills/react-best-practices/rules/js-cache-property-access.md +0 -28
  270. package/src/claude/skills/react-best-practices/rules/js-cache-storage.md +0 -70
  271. package/src/claude/skills/react-best-practices/rules/js-combine-iterations.md +0 -32
  272. package/src/claude/skills/react-best-practices/rules/js-early-exit.md +0 -50
  273. package/src/claude/skills/react-best-practices/rules/js-hoist-regexp.md +0 -45
  274. package/src/claude/skills/react-best-practices/rules/js-index-maps.md +0 -37
  275. package/src/claude/skills/react-best-practices/rules/js-length-check-first.md +0 -49
  276. package/src/claude/skills/react-best-practices/rules/js-min-max-loop.md +0 -82
  277. package/src/claude/skills/react-best-practices/rules/js-set-map-lookups.md +0 -24
  278. package/src/claude/skills/react-best-practices/rules/js-tosorted-immutable.md +0 -57
  279. package/src/claude/skills/react-best-practices/rules/rendering-activity.md +0 -26
  280. package/src/claude/skills/react-best-practices/rules/rendering-animate-svg-wrapper.md +0 -47
  281. package/src/claude/skills/react-best-practices/rules/rendering-conditional-render.md +0 -40
  282. package/src/claude/skills/react-best-practices/rules/rendering-content-visibility.md +0 -38
  283. package/src/claude/skills/react-best-practices/rules/rendering-hoist-jsx.md +0 -46
  284. package/src/claude/skills/react-best-practices/rules/rendering-hydration-no-flicker.md +0 -82
  285. package/src/claude/skills/react-best-practices/rules/rendering-svg-precision.md +0 -28
  286. package/src/claude/skills/react-best-practices/rules/rerender-defer-reads.md +0 -39
  287. package/src/claude/skills/react-best-practices/rules/rerender-dependencies.md +0 -45
  288. package/src/claude/skills/react-best-practices/rules/rerender-derived-state.md +0 -29
  289. package/src/claude/skills/react-best-practices/rules/rerender-functional-setstate.md +0 -74
  290. package/src/claude/skills/react-best-practices/rules/rerender-lazy-state-init.md +0 -58
  291. package/src/claude/skills/react-best-practices/rules/rerender-memo.md +0 -44
  292. package/src/claude/skills/react-best-practices/rules/rerender-transitions.md +0 -40
  293. package/src/claude/skills/react-best-practices/rules/server-after-nonblocking.md +0 -73
  294. package/src/claude/skills/react-best-practices/rules/server-cache-lru.md +0 -41
  295. package/src/claude/skills/react-best-practices/rules/server-cache-react.md +0 -26
  296. package/src/claude/skills/react-best-practices/rules/server-parallel-fetching.md +0 -79
  297. 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,59 +48,44 @@ 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
- Author exact task state, not prose readiness. `pending` means semantically ready
81
- for the dependency-aware queue. Use `blocked` while a C1/C2 decision, an
82
- accepted finding, or `UNKNOWN` closure remains open. A named task dependency
83
- alone does not change `pending` to `blocked`; the resolver derives which pending
84
- task is next. Change `blocked` to `pending` only after current evidence closes
85
- every non-dependency blocker; keep pre-execution Receipts empty.
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.
86
78
 
87
- When an outcome is uncertain, write a question rather than guessing. When a
88
- rule remains ambiguous, add two or three concrete examples and resolve the rule
89
- at C1 or C2.
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.
90
83
 
91
84
  ### 3. Review adversarially, then open C2
92
85
 
93
- Read [`references/review.md`](references/review.md) and run its fresh-context
94
- review. Every finding needs a reproducible `path:line` citation and a concrete
95
- 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.
96
87
 
97
- Ask the user to accept, reject, or revise each finding. Apply only accepted
98
- decisions. After every plan edit, run the consistency sweep across all plan and
99
- task files, then rederive every task status rather than only the first candidate.
100
- Write task dependencies as exact flat task basenames so the queue can derive them.
101
- Stop after two paper-review rounds; later findings require runtime 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.
102
89
 
103
90
  ### 4. Execute one task at a time
104
91
 
@@ -127,19 +114,13 @@ it does not invent product approval, review independence, or runtime coverage.
127
114
  1. **A1 — Scope once.** Raise scope pressure at C1; reopen only with new proof.
128
115
  2. **A2 — Small packets.** One task, one outcome, one owner, one proof command.
129
116
  3. **A3 — One fact, one home.** Reference decisions; never copy mutable lists.
130
- 4. **A4 — Files are state.** `plan.md` and flat task files are canonical and
131
- hand-editable; indexes are disposable views.
132
- 5. **B1 — Cite the repository.** Codebase claims carry current `path:line`
133
- evidence or an explicit `[UNVERIFIED]` marker.
134
- 6. **B2 — Review from fresh context.** The author does not impersonate the
135
- independent adversarial reviewer.
136
- 7. **B3 — Sweep after edits.** Search renamed concepts, rejected assumptions,
137
- ownership, dependencies, criteria IDs, and copied prose across every file.
138
- 8. **B4 — Stop paper churn.** Two pre-code review rounds maximum; later claims
139
- need runtime evidence.
140
- 9. **C1 — State is derived.** Status follows fresh blocker and proof evidence.
141
- 10. **C2 — Rules pay rent.** Add a rule or machine check only when it prevents a
142
- 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.
143
124
 
144
125
  ## Machine boundary
145
126
 
@@ -26,19 +26,22 @@ evidence.
26
26
  | Scope Auditor | Is new state scoped to the right lifetime and owner? | constructors, writers, cleanup, and existing equivalents |
27
27
  | Contract Verifier | Are all consumers and compatibility surfaces covered? | caller/test/export/config/help inventory |
28
28
 
29
- 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:
30
33
 
31
34
  | Groups | Reviewers | Roles | Claim budget |
32
35
  |---|---:|---|---:|
33
- | 1-2 | 2 | Fact Checker plus the highest-risk role | about 5 per group |
34
- | 3-5 | 3 | Fact Checker, Contract Verifier, one risk role | about 10 per group |
35
- | 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 |
36
39
 
37
- 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.
38
41
 
39
42
  ## B2 — fresh-context red team
40
43
 
41
- 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:
42
45
 
43
46
  - **Security adversary:** authorization bypass, injection, secret exposure,
44
47
  unsafe path and trust-boundary transitions.
@@ -101,8 +104,8 @@ A repair that adds user semantics or scope returns to C1.
101
104
  After any accepted finding or user edit:
102
105
 
103
106
  1. Reread every file in `specs/<feature>/`.
104
- 2. List deltas: renamed terms, changed decisions, removed assumptions, task
105
- 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.
106
109
  3. Search every delta and its old spelling across the whole feature packet.
107
110
  4. Reconcile the plan table, task details, examples, acceptance mapping, and
108
111
  verification commands.
@@ -27,6 +27,11 @@ Specs-Contract: process-first-ready-v1
27
27
  ## Out of scope
28
28
  - <deliberate exclusion>
29
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
+
30
35
  ## Acceptance criteria
31
36
  | ID | EARS criterion | Proof |
32
37
  |---|---|---|
@@ -60,6 +65,9 @@ Status: blocked
60
65
  - In: <exact behavior>
61
66
  - Out: <nearby behavior deliberately excluded>
62
67
 
68
+ ## Coverage
69
+ - <exact `CP-NN` IDs owned by this task>
70
+
63
71
  ## Ownership
64
72
  - Modify: `src/a.ts`
65
73
  - Create: `test/a.test.ts`
@@ -74,7 +82,7 @@ Status: blocked
74
82
  ## Verification Plan
75
83
  - Command: `<exact runnable command>`
76
84
  - Named probe: <existing concrete probe/test/hook ID; never only a suite label>
77
- - Reachability: <real entrypoint/caller at each `source`/`installed`/`live` level; `UNKNOWN` if unexecuted>
85
+ - Reachability: <known command/caller/environment per required level; `UNKNOWN` only when the path cannot yet be established>
78
86
  - Oracle: <externally observable success or failure>
79
87
  - Counterexample: <material alternative behavior that must make this proof fail>
80
88
  - Artifacts: <required artifact path plus digest algorithm/comparison rule, or explicitly ephemeral with cleanup rule>
@@ -83,18 +91,22 @@ Status: blocked
83
91
  <!-- Fill only after execution; see canonical form below. -->
84
92
  ````
85
93
 
86
- Trace `Command → Named probe → Reachability → Oracle`. Aggregate suites
87
- name the owning concrete probe. Proof at `source`/`installed`/`live` stays
88
- separate; one level never promotes another. Run mutation or destructive
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
89
99
  negative controls only on disposable copies under a verified temporary root,
90
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.
91
103
 
92
104
  ## Status matrix
93
105
 
94
106
  | Status condition | Persisted state |
95
107
  |---|---|
96
108
  | C1/C2 decision open | `blocked` |
97
- | accepted finding open or `UNKNOWN` | `blocked` |
109
+ | accepted finding open or `UNKNOWN` reachability | `blocked` |
98
110
  | every non-dependency blocker closed | `pending` |
99
111
  | named task dependency not done | keep `pending`; queue gates it |
100
112
  Use only direct-child task basenames or `none` under `## Dependencies`; keep `## Receipt` empty until execution produces canonical proof.
@@ -138,33 +150,37 @@ Avoid implementation detail unless it is a user-approved contract. Replace
138
150
 
139
151
  ## Example Mapping rule
140
152
 
141
- When the expected outcome is uncertain, write a question and take it to C1 or
142
- C2; do not guess. When a rule is ambiguous, add two or three examples:
153
+ Classify ambiguity in every affected CP row:
143
154
 
144
- ```text
145
- Rule: A done task has fresh executable proof.
146
- Example: command exits 0 and reports 3 tests passed -> done may be proposed.
147
- Example: command exits 0 but reports 0 tests -> remains unfinished.
148
- Example: output is copied from an earlier session -> remains unfinished.
149
- Question: which environment owns the authoritative integration run?
150
- ```
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 |
151
161
 
152
- 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.
153
164
 
154
165
  ## No-invention and conditional boundary contracts
155
166
 
156
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.
157
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
+
158
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.
159
172
  For every required row, name each listed choice exactly; labels such as “JSON”, “local path”, “locked”, or “timestamped” alone remain unresolved.
160
173
 
161
174
  | Boundary | Required contract when material |
162
175
  |---|---|
176
+ | Interaction/UI | entry journey; visible/loading/empty/error states; input/focus/keyboard; accessibility; responsive/native/device behavior |
163
177
  | API/CLI | entrypoint/route or command grammar; identity/auth; input/default/normalization; success output; error/status/exit; duplicate/retry/idempotency; compatibility |
164
- | Schema | version; exact keys/nesting/types; required/optional; enum/format/bounds/cardinality; unknown-field behavior; compatibility/migration |
165
- | State/concurrency | initial/terminal states; event + guard + effect + next + error; ordering; duplicate/retry; writer/lock acquire/contention/release; rollback/recovery |
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 |
166
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 |
167
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 |
168
184
  | Integration/proof | caller; export/registration; packaging/config; native path/consumer; proof level (`source`/`installed`/`live`); observable failure oracle |
169
185
 
170
186
  ## Twelve edge-case dimensions
@@ -194,7 +210,7 @@ Before C2 confirm:
194
210
  - dependencies are acyclic and refer to real task numbers;
195
211
  - commands are runnable from the named work context;
196
212
  - negative, recovery, and reachability probes exist where risk requires them;
197
- - examples settle ambiguous rules rather than adding prose;
213
+ - every ambiguity follows its required action; examples only clarify decided rules;
198
214
  - the latest consistency sweep reports zero unresolved contradictions.
199
215
 
200
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