@xulthekl/team-flow 0.22.4

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 (405) hide show
  1. package/.agents/plugins/marketplace.json +20 -0
  2. package/.agents/skills +1 -0
  3. package/.claude/always/phase-guard.md +3 -0
  4. package/.claude-plugin/marketplace.json +20 -0
  5. package/.claude-plugin/plugin.json +31 -0
  6. package/.codex-plugin/plugin.json +45 -0
  7. package/.codexignore +6 -0
  8. package/.cursor-plugin/marketplace.json +17 -0
  9. package/.cursor-plugin/plugin.json +31 -0
  10. package/.github/copilot-instructions.md +15 -0
  11. package/.github/dependabot.yml +10 -0
  12. package/.github/plugin/marketplace.json +42 -0
  13. package/.github/workflows/ci.yml +98 -0
  14. package/.github/workflows/hol-plugin-scanner.yml +17 -0
  15. package/.opencode/INSTALL.md +61 -0
  16. package/.opencode/plugins/team-flow.js +70 -0
  17. package/AGENTS.md +280 -0
  18. package/CHANGELOG.md +635 -0
  19. package/CONTRIBUTING.md +115 -0
  20. package/GEMINI.md +14 -0
  21. package/HANDOFF.md +219 -0
  22. package/INSTALL.md +810 -0
  23. package/LICENSE +21 -0
  24. package/README.md +185 -0
  25. package/SECURITY.md +37 -0
  26. package/agents/bug-investigator.md +180 -0
  27. package/agents/change-split-auditor.md +257 -0
  28. package/agents/code-reviewer.md +171 -0
  29. package/agents/cross-change-consistency-checker.md +215 -0
  30. package/agents/prd-completeness-reviewer.md +197 -0
  31. package/agents/prototype-builder.md +230 -0
  32. package/agents/prototype-env-scout.md +156 -0
  33. package/agents/prototype-reviewer.md +226 -0
  34. package/assets/icon.svg +6 -0
  35. package/dist/index.d.ts +13 -0
  36. package/dist/index.js +5 -0
  37. package/dist/parsing/change-parser.d.ts +12 -0
  38. package/dist/parsing/change-parser.js +54 -0
  39. package/dist/parsing/requirement-blocks.d.ts +31 -0
  40. package/dist/parsing/requirement-blocks.js +192 -0
  41. package/dist/schema/base.d.ts +7 -0
  42. package/dist/schema/base.js +1 -0
  43. package/dist/schema/change.d.ts +25 -0
  44. package/dist/schema/change.js +1 -0
  45. package/dist/schema/index.d.ts +3 -0
  46. package/dist/schema/index.js +1 -0
  47. package/dist/schema/spec.d.ts +11 -0
  48. package/dist/schema/spec.js +1 -0
  49. package/dist/validation/constants.d.ts +42 -0
  50. package/dist/validation/constants.js +42 -0
  51. package/dist/validation/tokenizer.d.ts +17 -0
  52. package/dist/validation/tokenizer.js +173 -0
  53. package/dist/validation/types.d.ts +40 -0
  54. package/dist/validation/types.js +1 -0
  55. package/dist/validation/validator.d.ts +21 -0
  56. package/dist/validation/validator.js +489 -0
  57. package/docs/README_en.md +358 -0
  58. package/docs/artifact-contract.md +96 -0
  59. package/docs/decision-points.md +88 -0
  60. package/docs/e2e-integration-design.md +207 -0
  61. package/docs/examples/README.md +25 -0
  62. package/docs/examples/add-dark-mode/README.md +13 -0
  63. package/docs/examples/add-dark-mode/design.md +49 -0
  64. package/docs/examples/add-dark-mode/execution-contract.md +56 -0
  65. package/docs/examples/add-dark-mode/proposal.md +46 -0
  66. package/docs/examples/add-dark-mode/specs/ui-theme/spec.md +35 -0
  67. package/docs/examples/add-dark-mode/tasks.md +26 -0
  68. package/docs/examples/refactor-auth-boundary/README.md +15 -0
  69. package/docs/examples/refactor-auth-boundary/design.md +41 -0
  70. package/docs/examples/refactor-auth-boundary/execution-contract.md +61 -0
  71. package/docs/examples/refactor-auth-boundary/proposal.md +47 -0
  72. package/docs/examples/refactor-auth-boundary/specs/auth-boundary/spec.md +45 -0
  73. package/docs/examples/refactor-auth-boundary/tasks.md +25 -0
  74. package/docs/plans/2026-07-07-fix-batch-design.md +68 -0
  75. package/docs/plans/2026-07-20-001-refactor-skill-collaboration-protocol-plan.md +128 -0
  76. package/docs/platform-matrix.md +45 -0
  77. package/docs/prototype-design-research.md +206 -0
  78. package/docs/release-checklist.md +96 -0
  79. package/docs/showcase.html +699 -0
  80. package/docs/skill-rename-v0.8.0.md +49 -0
  81. package/docs/state-machine.md +162 -0
  82. package/gemini-extension.json +6 -0
  83. package/hooks/hooks-cursor.json +8 -0
  84. package/hooks/hooks.json +26 -0
  85. package/hooks/pre-tool-use-guard +116 -0
  86. package/hooks/session-start +14 -0
  87. package/llms.txt +51 -0
  88. package/package.json +48 -0
  89. package/plugin.json +27 -0
  90. package/prd/v1/plan.md +443 -0
  91. package/prd/v1/prd.md +580 -0
  92. package/scripts/check-update.mjs +91 -0
  93. package/scripts/check-version-consistency.mjs +345 -0
  94. package/scripts/ensure-branch.mjs +71 -0
  95. package/scripts/get-config +31 -0
  96. package/scripts/guard/checks/artifacts-exist.mjs +36 -0
  97. package/scripts/guard/checks/contract-current.mjs +33 -0
  98. package/scripts/guard/checks/contract-fresh.mjs +17 -0
  99. package/scripts/guard/checks/dp-gate-passed.mjs +35 -0
  100. package/scripts/guard/checks/dp3-approved.mjs +22 -0
  101. package/scripts/guard/checks/execution-plan-ready.mjs +40 -0
  102. package/scripts/guard/checks/execution-reviews-passed.mjs +36 -0
  103. package/scripts/guard/checks/schema-valid.mjs +63 -0
  104. package/scripts/guard/checks/specs-merged.mjs +51 -0
  105. package/scripts/guard/checks/tasks-complete.mjs +31 -0
  106. package/scripts/guard/checks/tests-passing.mjs +31 -0
  107. package/scripts/guard/design-token-guard.mjs +237 -0
  108. package/scripts/guard/guard.mjs +205 -0
  109. package/scripts/infer-workflow.mjs +136 -0
  110. package/scripts/install-amazon-q.mjs +9 -0
  111. package/scripts/install-cline.mjs +9 -0
  112. package/scripts/install-continue.mjs +9 -0
  113. package/scripts/install-cursor.mjs +265 -0
  114. package/scripts/install-git-hooks.mjs +82 -0
  115. package/scripts/install-kiro.mjs +9 -0
  116. package/scripts/install-pi.mjs +9 -0
  117. package/scripts/install-qoder.mjs +9 -0
  118. package/scripts/install-qwen.mjs +9 -0
  119. package/scripts/install-roocode.mjs +9 -0
  120. package/scripts/install-windsurf.mjs +9 -0
  121. package/scripts/install-zcode.mjs +265 -0
  122. package/scripts/lib/cmd-audit.mjs +127 -0
  123. package/scripts/lib/cmd-checkpoint.mjs +118 -0
  124. package/scripts/lib/cmd-config.mjs +88 -0
  125. package/scripts/lib/cmd-doctor.mjs +267 -0
  126. package/scripts/lib/cmd-execution.mjs +206 -0
  127. package/scripts/lib/cmd-handoff.mjs +94 -0
  128. package/scripts/lib/cmd-inject.mjs +310 -0
  129. package/scripts/lib/cmd-install-amazon-q.mjs +11 -0
  130. package/scripts/lib/cmd-install-cline.mjs +11 -0
  131. package/scripts/lib/cmd-install-continue.mjs +11 -0
  132. package/scripts/lib/cmd-install-cursor.mjs +14 -0
  133. package/scripts/lib/cmd-install-kiro.mjs +11 -0
  134. package/scripts/lib/cmd-install-pi.mjs +11 -0
  135. package/scripts/lib/cmd-install-qoder.mjs +11 -0
  136. package/scripts/lib/cmd-install-qwen.mjs +11 -0
  137. package/scripts/lib/cmd-install-roocode.mjs +11 -0
  138. package/scripts/lib/cmd-install-windsurf.mjs +11 -0
  139. package/scripts/lib/cmd-install-workbuddy.mjs +359 -0
  140. package/scripts/lib/cmd-install-zcode.mjs +14 -0
  141. package/scripts/lib/cmd-isolate.mjs +37 -0
  142. package/scripts/lib/cmd-list.mjs +71 -0
  143. package/scripts/lib/cmd-runtime.mjs +85 -0
  144. package/scripts/lib/cmd-solutions.mjs +71 -0
  145. package/scripts/lib/cmd-state.mjs +231 -0
  146. package/scripts/lib/cmd-sync.mjs +102 -0
  147. package/scripts/lib/cmd-validate.mjs +105 -0
  148. package/scripts/lib/cmd-version.mjs +148 -0
  149. package/scripts/lib/config-loader.mjs +107 -0
  150. package/scripts/lib/execution-plan.mjs +492 -0
  151. package/scripts/lib/execution-recommendation.mjs +221 -0
  152. package/scripts/lib/hash.mjs +74 -0
  153. package/scripts/lib/install.mjs +267 -0
  154. package/scripts/lib/platform-runtime-inventory.mjs +27 -0
  155. package/scripts/lib/platforms.mjs +165 -0
  156. package/scripts/lib/prototype-sync.mjs +192 -0
  157. package/scripts/lib/sdd-overlay.mjs +262 -0
  158. package/scripts/lib/shell-quote.mjs +4 -0
  159. package/scripts/lib/solutions-capture.mjs +102 -0
  160. package/scripts/lib/solutions-index-gen.mjs +112 -0
  161. package/scripts/lib/solutions-inject.mjs +77 -0
  162. package/scripts/lib/solutions-promote.mjs +145 -0
  163. package/scripts/lib/spec-paths.mjs +85 -0
  164. package/scripts/lib/state-loader.mjs +154 -0
  165. package/scripts/lint/lint-skills.mjs +149 -0
  166. package/scripts/lint/rules/behavior-consistency.mjs +56 -0
  167. package/scripts/lint/rules/dp-trigger-points.mjs +60 -0
  168. package/scripts/lint/rules/exception-handling.mjs +59 -0
  169. package/scripts/lint/rules/no-contradictory-instructions.mjs +67 -0
  170. package/scripts/lint/rules/no-redundant-checks.mjs +50 -0
  171. package/scripts/lint/rules/token-rules.mjs +122 -0
  172. package/scripts/review-package +44 -0
  173. package/scripts/task-brief +40 -0
  174. package/scripts/team-flow.mjs +164 -0
  175. package/scripts/token-baseline.mjs +158 -0
  176. package/scripts/validate-artifacts +96 -0
  177. package/scripts/verify-marketplace-release.mjs +59 -0
  178. package/skills/architecture-design/SKILL.md +140 -0
  179. package/skills/architecture-design/chapters/ch01-4a-domains.md +27 -0
  180. package/skills/architecture-design/chapters/ch02-change-cascade.md +27 -0
  181. package/skills/architecture-design/chapters/ch03-architecture-outputs.md +25 -0
  182. package/skills/architecture-design/chapters/ch04-entity-to-aggregate.md +27 -0
  183. package/skills/architecture-design/chapters/ch05-cqrs.md +32 -0
  184. package/skills/architecture-design/chapters/ch06-integration.md +54 -0
  185. package/skills/architecture-design/cheatsheet.md +51 -0
  186. package/skills/architecture-design/glossary.md +23 -0
  187. package/skills/architecture-design/patterns.md +32 -0
  188. package/skills/bug-investigator/SKILL.md +77 -0
  189. package/skills/build-executor/SKILL.md +163 -0
  190. package/skills/build-executor/implementer-prompt.md +162 -0
  191. package/skills/build-executor/references/execution-modes.md +86 -0
  192. package/skills/build-executor/task-reviewer-prompt.md +195 -0
  193. package/skills/ce-brainstorm/SKILL.md +415 -0
  194. package/skills/ce-brainstorm/references/agents/slack-researcher.md +127 -0
  195. package/skills/ce-brainstorm/references/blindspot-pass.md +70 -0
  196. package/skills/ce-brainstorm/references/brainstorm-sections.md +285 -0
  197. package/skills/ce-brainstorm/references/handoff.md +168 -0
  198. package/skills/ce-brainstorm/references/html-rendering.md +634 -0
  199. package/skills/ce-brainstorm/references/markdown-rendering.md +241 -0
  200. package/skills/ce-brainstorm/references/model-tiers.md +9 -0
  201. package/skills/ce-brainstorm/references/prd-mapping.md +71 -0
  202. package/skills/ce-brainstorm/references/product-pressure-test.md +42 -0
  203. package/skills/ce-brainstorm/references/reasoning-elevation.md +63 -0
  204. package/skills/ce-brainstorm/references/settled-decisions.md +45 -0
  205. package/skills/ce-brainstorm/references/synthesis-summary.md +282 -0
  206. package/skills/ce-brainstorm/references/universal-brainstorming.md +73 -0
  207. package/skills/ce-brainstorm/references/verdict-routing.md +26 -0
  208. package/skills/ce-brainstorm/references/visual-probes.md +158 -0
  209. package/skills/ce-brainstorm/scripts/visual-probe-server.js +418 -0
  210. package/skills/ce-compound/SKILL.md +114 -0
  211. package/skills/ce-compound/assets/resolution-template.md +94 -0
  212. package/skills/ce-compound/references/agents/best-practices-researcher.md +115 -0
  213. package/skills/ce-compound/references/agents/data-integrity-guardian.md +68 -0
  214. package/skills/ce-compound/references/agents/framework-docs-researcher.md +93 -0
  215. package/skills/ce-compound/references/agents/pattern-recognition-specialist.md +55 -0
  216. package/skills/ce-compound/references/agents/performance-oracle.md +108 -0
  217. package/skills/ce-compound/references/agents/security-sentinel.md +91 -0
  218. package/skills/ce-compound/references/agents/session-historian.md +83 -0
  219. package/skills/ce-compound/references/concepts-vocabulary.md +78 -0
  220. package/skills/ce-compound/references/full-mode-workflow.md +413 -0
  221. package/skills/ce-compound/references/grounding-validation.md +84 -0
  222. package/skills/ce-compound/references/lightweight-mode.md +53 -0
  223. package/skills/ce-compound/references/output-standards.md +182 -0
  224. package/skills/ce-compound/references/promotion-rules.md +38 -0
  225. package/skills/ce-compound/references/schema.yaml +231 -0
  226. package/skills/ce-compound/references/three-tier-index.md +55 -0
  227. package/skills/ce-compound/references/v0.5-upgrade.md +32 -0
  228. package/skills/ce-compound/references/write-flow.md +36 -0
  229. package/skills/ce-compound/references/yaml-schema.md +118 -0
  230. package/skills/ce-compound/scripts/session-history/discover-sessions.sh +130 -0
  231. package/skills/ce-compound/scripts/session-history/extract-errors.py +254 -0
  232. package/skills/ce-compound/scripts/session-history/extract-metadata.py +456 -0
  233. package/skills/ce-compound/scripts/session-history/extract-skeleton.py +575 -0
  234. package/skills/ce-compound/scripts/validate-doc-claims.py +346 -0
  235. package/skills/ce-compound/scripts/validate-frontmatter.py +137 -0
  236. package/skills/ce-ideate/SKILL.md +402 -0
  237. package/skills/ce-ideate/references/agents/issue-intelligence-analyst.md +200 -0
  238. package/skills/ce-ideate/references/agents/learnings-researcher.md +247 -0
  239. package/skills/ce-ideate/references/agents/slack-researcher.md +127 -0
  240. package/skills/ce-ideate/references/agents/web-researcher.md +121 -0
  241. package/skills/ce-ideate/references/divergent-ideation.md +89 -0
  242. package/skills/ce-ideate/references/html-rendering.md +634 -0
  243. package/skills/ce-ideate/references/ideation-sections.md +191 -0
  244. package/skills/ce-ideate/references/markdown-rendering.md +238 -0
  245. package/skills/ce-ideate/references/post-ideation-workflow.md +167 -0
  246. package/skills/ce-ideate/references/universal-ideation.md +107 -0
  247. package/skills/ce-ideate/references/web-research-cache.md +56 -0
  248. package/skills/ce-plan/SKILL.md +137 -0
  249. package/skills/ce-plan/references/agents/agent-native-planning-strategist.md +62 -0
  250. package/skills/ce-plan/references/agents/architecture-strategist.md +46 -0
  251. package/skills/ce-plan/references/agents/best-practices-researcher.md +114 -0
  252. package/skills/ce-plan/references/agents/data-integrity-guardian.md +68 -0
  253. package/skills/ce-plan/references/agents/data-migration-reviewer.md +103 -0
  254. package/skills/ce-plan/references/agents/deployment-verification-agent.md +157 -0
  255. package/skills/ce-plan/references/agents/framework-docs-researcher.md +93 -0
  256. package/skills/ce-plan/references/agents/git-history-analyzer.md +40 -0
  257. package/skills/ce-plan/references/agents/learnings-researcher.md +247 -0
  258. package/skills/ce-plan/references/agents/pattern-recognition-specialist.md +55 -0
  259. package/skills/ce-plan/references/agents/performance-oracle.md +108 -0
  260. package/skills/ce-plan/references/agents/repo-research-analyst.md +258 -0
  261. package/skills/ce-plan/references/agents/security-sentinel.md +91 -0
  262. package/skills/ce-plan/references/agents/slack-researcher.md +127 -0
  263. package/skills/ce-plan/references/agents/spec-flow-analyzer.md +80 -0
  264. package/skills/ce-plan/references/agents/web-researcher.md +121 -0
  265. package/skills/ce-plan/references/approach-altitude.md +55 -0
  266. package/skills/ce-plan/references/change-splitting.md +65 -0
  267. package/skills/ce-plan/references/completion-contract.md +33 -0
  268. package/skills/ce-plan/references/core-principles.md +40 -0
  269. package/skills/ce-plan/references/deepening-workflow.md +263 -0
  270. package/skills/ce-plan/references/dependency-graph.md +36 -0
  271. package/skills/ce-plan/references/html-rendering.md +634 -0
  272. package/skills/ce-plan/references/intake-routing.md +189 -0
  273. package/skills/ce-plan/references/markdown-rendering.md +238 -0
  274. package/skills/ce-plan/references/plan-handoff.md +150 -0
  275. package/skills/ce-plan/references/plan-sections.md +427 -0
  276. package/skills/ce-plan/references/plan-structure.md +120 -0
  277. package/skills/ce-plan/references/planning-modes.md +69 -0
  278. package/skills/ce-plan/references/reasoning-elevation.md +63 -0
  279. package/skills/ce-plan/references/research-workflow.md +165 -0
  280. package/skills/ce-plan/references/review-and-write.md +127 -0
  281. package/skills/ce-plan/references/settled-decisions.md +45 -0
  282. package/skills/ce-plan/references/synthesis-summary.md +418 -0
  283. package/skills/ce-plan/references/universal-planning.md +168 -0
  284. package/skills/ce-proof/SKILL.md +346 -0
  285. package/skills/ce-strategy/SKILL.md +97 -0
  286. package/skills/ce-strategy/references/interview.md +143 -0
  287. package/skills/ce-strategy/references/strategy-template.md +89 -0
  288. package/skills/code-reviewer/SKILL.md +84 -0
  289. package/skills/code-reviewer/code-reviewer-prompt.md +195 -0
  290. package/skills/contract-builder/SKILL.md +72 -0
  291. package/skills/design-system/SKILL.md +75 -0
  292. package/skills/design-system/references/agents/design-system-architect.md +138 -0
  293. package/skills/design-system/references/creation-flow.md +170 -0
  294. package/skills/design-system/references/preview-template.html +319 -0
  295. package/skills/design-system/references/token-derivation.md +115 -0
  296. package/skills/design-system/references/variant-schema.md +60 -0
  297. package/skills/e2e/SKILL.md +56 -0
  298. package/skills/e2e/references/test-verifier.md +40 -0
  299. package/skills/need-explorer/SKILL.md +79 -0
  300. package/skills/prototype/SKILL.md +98 -0
  301. package/skills/prototype/references/agents/design-system-architect.md +122 -0
  302. package/skills/prototype/references/checklist.md +82 -0
  303. package/skills/prototype/references/craft/accessibility-baseline.md +71 -0
  304. package/skills/prototype/references/craft/anti-ai-slop.md +87 -0
  305. package/skills/prototype/references/craft/laws-of-ux.md +60 -0
  306. package/skills/prototype/references/craft/state-coverage.md +81 -0
  307. package/skills/prototype/references/craft/typography-hierarchy.md +50 -0
  308. package/skills/prototype/references/layouts.md +223 -0
  309. package/skills/prototype/references/orchestration-flow.md +101 -0
  310. package/skills/prototype/references/prototype-scaffold/assets/design-tokens.css +19 -0
  311. package/skills/prototype/references/prototype-scaffold/components/button.html +3 -0
  312. package/skills/prototype/references/prototype-scaffold/design-system.md +7 -0
  313. package/skills/prototype/references/prototype-scaffold/flow.md +11 -0
  314. package/skills/prototype/references/prototype-scaffold/index.html +20 -0
  315. package/skills/prototype/references/prototype-scaffold/pages/index.html +11 -0
  316. package/skills/prototype/references/template.html +396 -0
  317. package/skills/release-archivist/SKILL.md +166 -0
  318. package/skills/release-archivist/references/closing-procedures.md +81 -0
  319. package/skills/session-handoff/SKILL.md +110 -0
  320. package/skills/session-handoff/references/context-extraction.md +70 -0
  321. package/skills/session-handoff/references/handoff-template.md +90 -0
  322. package/skills/session-handoff/references/skill-recommendation.md +43 -0
  323. package/skills/spec-merger/SKILL.md +66 -0
  324. package/skills/spec-writer/SKILL.md +149 -0
  325. package/skills/workflow-bootstrap/SKILL.md +148 -0
  326. package/skills/workflow-bootstrap/references/agents/codebase-recon-analyst.md +121 -0
  327. package/skills/workflow-bootstrap/references/b1-reconnaissance.md +80 -0
  328. package/skills/workflow-bootstrap/scripts/recon-probe.sh +328 -0
  329. package/skills/workflow-feedback/SKILL.md +120 -0
  330. package/skills/workflow-feedback/references/category-guide.md +121 -0
  331. package/skills/workflow-feedback/references/feedback-template.md +73 -0
  332. package/skills/workflow-feedback/references/review-mode.md +92 -0
  333. package/skills/workflow-orchestrator/SKILL.md +94 -0
  334. package/skills/workflow-orchestrator/references/feedback-loops.md +56 -0
  335. package/skills/workflow-orchestrator/references/s1-path-router.md +81 -0
  336. package/skills/workflow-orchestrator/references/s2-prd-prototype-loop.md +96 -0
  337. package/skills/workflow-orchestrator/references/s3-plan-pipeline.md +50 -0
  338. package/skills/workflow-orchestrator/references/s4-split-validate.md +108 -0
  339. package/skills/workflow-orchestrator/references/s5-monitoring.md +61 -0
  340. package/skills/workflow-orchestrator/references/state-model.md +185 -0
  341. package/skills/workflow-start/SKILL.md +147 -0
  342. package/skills/workflow-start/references/routing-rules.md +155 -0
  343. package/src/index.ts +16 -0
  344. package/src/parsing/change-parser.ts +79 -0
  345. package/src/parsing/requirement-blocks.ts +244 -0
  346. package/src/schema/base.ts +8 -0
  347. package/src/schema/change.ts +29 -0
  348. package/src/schema/index.ts +3 -0
  349. package/src/schema/spec.ts +12 -0
  350. package/src/validation/constants.ts +53 -0
  351. package/src/validation/tokenizer.ts +180 -0
  352. package/src/validation/types.ts +47 -0
  353. package/src/validation/validator.ts +552 -0
  354. package/templates/abandonment-summary.md +29 -0
  355. package/templates/design.md +37 -0
  356. package/templates/execution-contract.md +99 -0
  357. package/templates/plan.md +86 -0
  358. package/templates/prd.md +468 -0
  359. package/templates/proposal.md +37 -0
  360. package/templates/spec.md +31 -0
  361. package/templates/tasks.md +47 -0
  362. package/tests/e2e.test.mjs +266 -0
  363. package/tests/lib/cmd-audit.test.mjs +202 -0
  364. package/tests/lib/cmd-checkpoint.test.mjs +98 -0
  365. package/tests/lib/cmd-config.test.mjs +101 -0
  366. package/tests/lib/cmd-doctor.test.mjs +450 -0
  367. package/tests/lib/cmd-execution.test.mjs +647 -0
  368. package/tests/lib/cmd-handoff.test.mjs +137 -0
  369. package/tests/lib/cmd-inject.test.mjs +218 -0
  370. package/tests/lib/cmd-install-workbuddy.test.mjs +113 -0
  371. package/tests/lib/cmd-install-zcode.test.mjs +42 -0
  372. package/tests/lib/cmd-isolate.test.mjs +68 -0
  373. package/tests/lib/cmd-list.test.mjs +127 -0
  374. package/tests/lib/cmd-runtime.test.mjs +83 -0
  375. package/tests/lib/cmd-state-missing.test.mjs +65 -0
  376. package/tests/lib/cmd-state.test.mjs +365 -0
  377. package/tests/lib/cmd-sync-paths.test.mjs +84 -0
  378. package/tests/lib/cmd-validate-paths.test.mjs +90 -0
  379. package/tests/lib/config-loader.test.mjs +175 -0
  380. package/tests/lib/ensure-branch.test.mjs +59 -0
  381. package/tests/lib/execution-control-plane.test.mjs +168 -0
  382. package/tests/lib/execution-plan.test.mjs +474 -0
  383. package/tests/lib/guard-specs-merged.test.mjs +108 -0
  384. package/tests/lib/guard-tests-passing.test.mjs +112 -0
  385. package/tests/lib/guard-transitions.test.mjs +262 -0
  386. package/tests/lib/guard.test.mjs +611 -0
  387. package/tests/lib/hash.test.mjs +138 -0
  388. package/tests/lib/infer-workflow.test.mjs +161 -0
  389. package/tests/lib/install-git-hooks.test.mjs +20 -0
  390. package/tests/lib/marketplace-release-docs.test.mjs +31 -0
  391. package/tests/lib/minimality-discipline.test.mjs +37 -0
  392. package/tests/lib/model-profiles-docs.test.mjs +33 -0
  393. package/tests/lib/node20-compatibility.test.mjs +73 -0
  394. package/tests/lib/node20-test-entry.test.mjs +17 -0
  395. package/tests/lib/platform-runtime-distribution.test.mjs +150 -0
  396. package/tests/lib/raw-mode-smoke.test.mjs +42 -0
  397. package/tests/lib/sdd-overlay.test.mjs +118 -0
  398. package/tests/lib/spec-paths.test.mjs +80 -0
  399. package/tests/lib/state-loader.test.mjs +251 -0
  400. package/tests/lib/token-baseline.test.mjs +72 -0
  401. package/tests/lib/token-rules.test.mjs +94 -0
  402. package/tests/lib/verify-marketplace-release.test.mjs +128 -0
  403. package/tests/tsconfig.json +12 -0
  404. package/token-baseline.json +95 -0
  405. package/tsconfig.json +14 -0
@@ -0,0 +1,70 @@
1
+ # Blindspot Pass
2
+
3
+ The interview machinery in this skill assumes the user can evaluate what it asks. On territory the user doesn't know, that assumption fails: questions extract guesses, not requirements. The blindspot pass converts the user's unknown unknowns into known unknowns — it maps the decision surface of the flagged territory so the user chooses among options they can now evaluate, instead of generating answers from nothing.
4
+
5
+ A blindspot pass is a decision map, not a tutorial. Test for every item: it must end in something the user will decide, delegate, or explicitly defer during this brainstorm. An item that feeds no decision is domain trivia — cut it.
6
+
7
+ ## Trigger
8
+
9
+ Two signals arm the pass:
10
+
11
+ - **Opening signal** — the user explicitly flags missing working knowledge of the domain or the territory the topic touches: "I know nothing about X", "never touched the auth modules", "I don't know what's possible here", "I don't know what I should be asking".
12
+ - **Mid-dialogue signal** — two consecutive answers show the user *cannot evaluate* the question's substance: "I don't know", "whatever you think", "you decide" in response to questions that need domain judgment.
13
+
14
+ **Can't-evaluate vs. hasn't-decided — the guard against over-firing.** A user who understands the options but hasn't picked one needs the normal interview, not a teaching pass. Offer only when the signal shows the user cannot weigh the options at all. Offering a blindspot pass to a domain expert who is merely undecided is the failure mode; when the signal is ambiguous, keep interviewing.
15
+
16
+ ## The gate
17
+
18
+ The gate is **territory-scoped, not conversation-wide**. Questions about the user's own problem, users, evidence, and priorities proceed normally — the user is the authority on those. The gate fires only before the first substantive question *into the flagged territory* (the domain or system area the user cannot evaluate).
19
+
20
+ Never silently switch into teaching. The offer is a blocking question (Interaction Rule 4), asked once per flagged territory. If the user declines, do not re-offer for that territory — fill gaps with recommended defaults recorded as explicit assumptions, per the normal rigor-probe discipline.
21
+
22
+ **Non-interactive degradation:** in a pipeline or headless run where no user can answer, never fire the offer — treat flagged territory exactly like a declined offer (recommended defaults recorded as explicit assumptions) and continue.
23
+
24
+ ## Offer
25
+
26
+ Use this wording, substituting the territory:
27
+
28
+ > Part of this sits in territory you've flagged as unfamiliar (<territory>). I can map the decision surface first — the decisions you'll face there, the realistic options for each, and what I'd default to — so you're choosing rather than guessing. Or we keep going with questions and I fill gaps with defaults recorded as assumptions. Which do you prefer?
29
+
30
+ Two options: **Map the territory first** / **Proceed with questions** (defaults become assumptions).
31
+
32
+ ## Building the map
33
+
34
+ Ground it before writing it:
35
+
36
+ - **In-repo territory** (a module, subsystem, or pattern in this codebase): use the Phase 1.1 grounding — the scout's dossier and targeted reads. If the scout has not returned yet, wait for it or read the relevant area directly; do not map in-repo territory from model knowledge alone.
37
+ - **External domain** (a technology, practice, or field outside the repo): research with whatever web tools are reachable. When none are, model knowledge is allowed, but label each such item **Unverified — from model knowledge, not checked against current sources**.
38
+
39
+ **The territory closes questions the user should never be asked.** Before an item goes on the map, check whether the codebase or sources already answer it — if so, it is not a decision: show the question and the found answer with its citation as settled ground, not as an option menu. The map holds only what genuinely needs the user's judgment. But a question closed off-screen isn't closed — territory-answered items are shown, never silently resolved.
40
+
41
+ While grounding, hunt hazards specifically: things that bite silently (wrong-by-default data, filters that pass bad rows, escaping that corrupts output), unwritten conventions the code enforces that no doc states, and half-built or reverted prior attempts at the same job — the reason a prior attempt died is usually the landmine.
42
+
43
+ The map is **3-7 items**, delivered in chat. Each item is a **decision** the user will face or a **hazard** that constrains one, in at most 4 lines — an item that runs longer has started teaching instead of framing the decision; cut it back:
44
+
45
+ - what the decision or hazard is, in the user's vocabulary — when a term of art is unavoidable, define it and name what knowing it unlocks the user to decide
46
+ - why it matters *for this topic* — tie it to something the user said, not to the domain in general; a hazard states what it changes about the task
47
+ - decisions only: the realistic options (2-4), one clause each on the trade-off that matters here — list only options you would defend if the user picked them; a menu padded with options the map itself rules out is a strawman, not a choice. An option you ruled out belongs in why-it-matters as one clause ("subdomain isolation is closed — single-domain config"), never in the menu
48
+ - decisions only: the recommended default, stated plainly
49
+
50
+ A hazard is not a vote — it gets no option menu and no default. When a hazard forces a choice among genuinely viable mitigations, that choice is its own decision item and the hazard is its why-it-matters.
51
+
52
+ The highest-stakes item earns first placement, not extra length — depth belongs in the walk-through after the user selects it, not in the map.
53
+
54
+ Order items by how much the user's answer would change the product shape — architecture-changing decisions first, hazards and reversible choices last. Do not pad to 7; a territory with three real decisions gets three items.
55
+
56
+ ## Re-entering the dialogue
57
+
58
+ After the map, ask **one** multi-select blocking question (a legitimate Rule 3 compatible set): *"Which of these do you want to walk through now? Anything unselected takes the recommended default, recorded as an explicit assumption."*
59
+
60
+ Then:
61
+
62
+ - **Selected decisions** — walk through one per turn as informed single-select menus. Post-pass, menus over mapped options are the right form even where Rule 5 would normally prefer open-ended: the options no longer steer, they recall what was just taught.
63
+ - **Unselected decisions and hazards** — record the recommended default (or the hazard's constraint) as an explicit assumption, the same way rigor-probe uncertainty is recorded: in the Product Contract on the software route, in the synthesis on the universal route.
64
+ - **"I want to actually learn this one"** — offer a handoff to the `ce-explain` skill for that item (offer, don't auto-fire); the brainstorm resumes when they return or continues with the default meanwhile.
65
+
66
+ The pass never resolves decisions by itself and never replaces the dialogue. It runs once, converts blindspots into questions the user can answer, and the normal flow — rigor probes, approaches, synthesis — continues on informed ground.
67
+
68
+ ## Universal route
69
+
70
+ The pass applies unchanged on the non-software route (an unfamiliar craft, market, or process — "I need to grade this video but don't know what color grading is"). Grounding is web research or labeled model knowledge; delegated defaults land as named assumptions in the wrap-up synthesis instead of a Product Contract.
@@ -0,0 +1,285 @@
1
+ # Brainstorm Sections
2
+
3
+ This reference describes what makes a great PRD document (产品需求文档)
4
+ produced by `ce-brainstorm`.
5
+ It does NOT prescribe how the doc looks on the page — rendering is handled by
6
+ the format-specific references (`markdown-rendering.md`, `html-rendering.md`).
7
+
8
+ ## The outcome
9
+
10
+ A great brainstorm produces the PRD document (业务要件) that defines **WHAT** to build.
11
+ `ce-plan` then reads the PRD and produces an **independent implementation plan** (实施方案) that defines **HOW** to build it.
12
+ The PRD and plan are separate documents in the same `prd/vN/` directory.
13
+
14
+ The PRD enables three audiences to act:
15
+
16
+ - **The planning agent** (`ce-plan` or a human) produces an implementation
17
+ plan based on the PRD, without inventing user behavior, scope boundaries, or success
18
+ criteria — the brainstorm answered those.
19
+ - **The reviewer** sees the framing choices, distinguishes pinned from open,
20
+ and catches scope gaps before planning.
21
+ - **The future reader** traces why the proposed thing matters, who it's for,
22
+ and what success looks like.
23
+
24
+ Sections earn their place by serving one of these audiences. Omit padding.
25
+
26
+ ## PRD skeleton contract
27
+
28
+ New `ce-brainstorm` outputs follow the PRD artifact contract:
29
+
30
+ - **Path:** `prd/vN/prd.md` (N is the iteration version number, e.g., v1, v2).
31
+ - **Metadata:** `project_name`, `iteration_version`, `prd_template` (template path).
32
+ - **Template source:** read `prd.template` from project configuration, or use
33
+ the default `templates/prd.md`.
34
+ - **Structure:** the PRD contains 11 chapters as defined by the PRD template:
35
+ 1. 版本修订记录
36
+ 2. 业务流程一览
37
+ 3. D7.1_业务流程
38
+ 4. D7.2_画面原型及设计
39
+ 5. D7.3_报表清单
40
+ 6. D7.4_业务术语字典
41
+ 7. D7.5_系统功能清单
42
+ 8. D7.6_系统功能处理说明书
43
+ 9. D7.7_要件定义自查报告
44
+ 10. D7.8_要件定义完成报告
45
+ 11. D7.9_评审会议纪
46
+
47
+ - **Filling rule:** the brainstorm phase fills chapters where information is
48
+ available from the dialogue; chapters without dialogue content retain
49
+ template placeholders. Do not fabricate content for empty chapters —
50
+ they belong to later BA processes or will be addressed by `ce-plan` in its
51
+ implementation plan.
52
+
53
+ A brainstorm-produced PRD is kept **light and standalone-readable**. It
54
+ includes only chapters that carry real information from the brainstorm
55
+ dialogue, leaving the rest as template placeholders. Empty chapters serve
56
+ as a reminder of what still needs to be defined.
57
+
58
+ Historical `docs/brainstorms/*-requirements.*` files remain valid legacy
59
+ inputs. Do not migrate or rewrite them when creating new artifacts.
60
+
61
+ ## Decide whether a doc is warranted at all
62
+
63
+ Brainstorm dialogue does not always need to produce a PRD document.
64
+ Skip document creation when **both** hold:
65
+
66
+ - The user only needs brief alignment — no exploration produced novel scope,
67
+ framing, or decisions worth preserving in IDed shape.
68
+ - Any durable decisions made during the dialogue can flow naturally to
69
+ downstream artifacts (`ce-plan`, the commit message, `docs/solutions/`)
70
+ without a PRD document as an intermediary.
71
+
72
+ The trigger for creating a doc is when the dialogue surfaced enough
73
+ structural decisions, scope boundaries, or acceptance criteria that
74
+ downstream consumers (planner, reviewer, future reader) need them in a
75
+ durable, IDed form — not just as conversational artifacts.
76
+
77
+ **Stress test:** a brainstorm about a tiny bug fix where the user asks "fix
78
+ this with a null check or with upstream validation?" and the agent confirms
79
+ "upstream validation, here's why" doesn't need a PRD document. The
80
+ decision flows to `ce-plan` (or directly to commit message, or to
81
+ `docs/solutions/` if it's a pattern worth carrying) without a PRD
82
+ artifact in the middle.
83
+
84
+ Conversely, a brainstorm about a multi-actor feature with contested scope
85
+ and several behavioral conditions probably does need a doc — the planning
86
+ agent needs the structured content the dialogue produced.
87
+
88
+ ## Match depth to content
89
+
90
+ When a PRD IS warranted, depth matches what the dialogue produced. A
91
+ brainstorm with sparse content produces a sparse doc; one with rich content
92
+ produces a rich doc. Don't add ceremony to make a slim brainstorm look
93
+ substantial.
94
+
95
+ ## Prose economy
96
+
97
+ Match-depth-to-content sizes *which* sections appear and how deep each goes.
98
+ This sizes *how the kept prose reads*. A section can be material and still be
99
+ written loosely — the failure mode is a material section padded into a wall of
100
+ text where contradictions hide and a downstream agent loses the thread. Length
101
+ that earns its place is fine; wordiness around that length is not.
102
+
103
+ Hold every kept section to these:
104
+
105
+ - **Lead with the decision or outcome.** Put the conclusion first, then the
106
+ reason, then background; keep one claim plus its support per paragraph. Don't
107
+ bury the chosen scope, an open blocker, or a Key Decision beneath its
108
+ rationale.
109
+ - **One idea per sentence.** A requirement is a handful of sentences, not one
110
+ sentence with five semicolons and four parentheticals. If a sentence needs a
111
+ second parenthetical to stay true, split it.
112
+ - **A requirement is one sentence of intent plus at most one qualifier.** When
113
+ a requirement would specify two outcomes ("either A or B, planning decides"),
114
+ state the intent and send the fork to Outstanding Questions — don't write both
115
+ arms in full inside the requirement.
116
+ - **Cut hedges and intensifiers.** "Critically", "deliberately", "explicitly",
117
+ "genuinely", "actually", "simply" carry nothing a downstream agent acts on.
118
+ - **Prefer the verb to the nominalization.** "Demote the grid", not "the
119
+ demotion of the grid is the deliberate change in this brief".
120
+ - **Summary and motivation serve different purposes.** When both appear in a
121
+ chapter, the lead (summary or conclusion) is forward-looking — what is being
122
+ proposed or decided. The supporting context is backward-looking / situational —
123
+ why this proposal exists or why this decision was made. Don't restate the
124
+ proposal inside the motivation paragraph; the remedy lives in the conclusion.
125
+
126
+ Precision is not padding: keep IDs, dates, actor names, domain terms,
127
+ conditionals, and exact thresholds verbatim; when a concrete anchor is knowable
128
+ from the work already done, use it instead of a vague abstraction. Economy
129
+ targets the connective tissue around precision, never the precision itself.
130
+
131
+ **Resolve in place; don't stratify.** When a later decision answers a parked
132
+ question or supersedes earlier text, rewrite or remove the original entry —
133
+ don't append a separate "resolutions" layer that leaves the superseded text
134
+ standing, and don't keep superseded prose as strikethrough. Version control
135
+ holds the history. Stacked question/resolution strata double the reading surface
136
+ and hide which text is live.
137
+
138
+ **Named test, run before the doc is declared written:** could a reader find a
139
+ contradiction in each section in one pass? A sentence carrying more than one
140
+ parenthetical, or a requirement specifying two outcomes, fails the test — split
141
+ it or defer it.
142
+
143
+ ## PRD chapter contract
144
+
145
+ When a PRD is warranted, the document follows the PRD template structure. The
146
+ brainstorm dialogue fills chapters where information is available; chapters
147
+ without dialogue content retain template placeholders.
148
+
149
+ ### Always filled (from dialogue or metadata)
150
+
151
+ - **§1 版本修订记录** — auto-filled from metadata (date, user, iteration
152
+ version). §1.2 修订记录 carries the brainstorm date and a one-line summary
153
+ of what was brainstormed.
154
+ - **§2 业务流程一览** — filled from brainstorm's Key Flows and Actors. Each
155
+ identified business process gets a row in the flow overview table.
156
+ - **§7 D7.5_系统功能清单** — filled from brainstorm's Requirements. Each
157
+ requirement maps to a system function entry.
158
+
159
+ ### Conditionally filled (when dialogue covers the topic)
160
+
161
+ - **§3 D7.1_业务流程** — filled when brainstorm produced multi-step Key Flows
162
+ with enough detail for process diagrams.
163
+ - **§4 D7.2_画面原型及设计** — filled when brainstorm involves UI/visual
164
+ components. Prototype references go here.
165
+ - **§6 D7.4_业务术语字典** — filled with domain terms defined during brainstorm
166
+ dialogue.
167
+ - **§8 D7.6_系统功能处理说明书** — partially filled: §8.2 全局说明
168
+ (permissions, interactions, exceptions) from Key Decisions and constraints;
169
+ §8.4 功能模块 from Requirements. Hardware/network/performance sections
170
+ retain placeholders.
171
+
172
+ ### Always placeholder (belong to later processes)
173
+
174
+ - **§5 D7.3_报表清单** — retains template placeholder. Report details are
175
+ defined during detailed design.
176
+ - **§9 D7.7_要件定义自查报告** — retains template placeholder. Self-check
177
+ is a BA process artifact.
178
+ - **§10 D7.8_要件定义完成报告** — retains template placeholder. Completion
179
+ report is a closing artifact.
180
+ - **§11 D7.9_评审会议纪** — retains template placeholder. Review minutes
181
+ are recorded during review meetings.
182
+
183
+ ## PRD chapters: fill when material
184
+
185
+ The agent decides per brainstorm which PRD chapters carry information from the
186
+ dialogue. Filling a chapter with placeholder content is worse than leaving it
187
+ as template placeholder.
188
+
189
+ - **§2 业务流程一览** — fill when brainstorm identified business processes,
190
+ user journeys, or system interactions. Each distinct process gets a row. Skip
191
+ rows for processes not discussed.
192
+
193
+ - **§3 D7.1_业务流程** — fill when brainstorm produced detailed multi-step
194
+ flows with enough granularity for process diagrams. Include the flow diagram
195
+ placeholder and step-by-step descriptions. Skip when flows are high-level
196
+ only.
197
+
198
+ - **§4 D7.2_画面原型及设计** — fill when brainstorm involves UI changes.
199
+ Include module names, page names, and prototype references. Skip entirely
200
+ when the brainstorm is non-visual (backend, data, API only).
201
+
202
+ - **§6 D7.4_业务术语字典** — fill with domain terms actively defined during
203
+ dialogue. Only include terms where the conversation pinned down a precise
204
+ meaning. Skip terms merely mentioned in passing.
205
+
206
+ - **§7 D7.5_系统功能清单** — fill from brainstorm Requirements. Each R-ID
207
+ maps to a system function entry with the requirement's intent as the function
208
+ description.
209
+
210
+ - **§8 D7.6_系统功能处理说明书** — partially fill §8.2 when dialogue covered
211
+ permissions, interactions, or exception handling. Fill §8.4 from Requirements.
212
+ Skip §8.3 (hardware/network) and §8.5 (non-functional) unless the brainstorm
213
+ explicitly covered these.
214
+
215
+ ## Agent agency
216
+
217
+ The chapter catalog is a floor, not a ceiling. When the brainstorm's content
218
+ doesn't fit any catalog chapter, introduce a new one — don't force the content
219
+ into a chapter it doesn't belong in. Content drives chapter choices, not vice
220
+ versa.
221
+
222
+ The agent also picks per artifact:
223
+
224
+ - How much depth each present chapter gets
225
+ - Whether supplementary diagrams or visuals appear inline or as appendices
226
+ - How to organize the function module details within §8.4
227
+
228
+ ## PRD metadata fields
229
+
230
+ Every PRD produced by `ce-brainstorm` carries metadata in YAML frontmatter.
231
+
232
+ ### Required
233
+
234
+ - **`title`** — PRD title in format `{项目名称}_D7_业务要件` (matching the H1).
235
+ - **`project_name`** — the project or product name.
236
+ - **`iteration_version`** — the iteration version (e.g., "v1", "v2"),
237
+ corresponding to the `prd/vN/` directory.
238
+ - **`date`** — creation date in ISO 8601 (`YYYY-MM-DD`).
239
+ - **`prd_template`** — relative path to the PRD template used (e.g.,
240
+ `templates/prd.md`).
241
+ - **`prd_readiness`** — always `requirements-only` for new `ce-brainstorm`
242
+ outputs. `ce-plan` produces a separate `plan.md` document (not modifying the PRD).
243
+
244
+ ### No status field
245
+
246
+ PRD artifacts have no `status` field. `prd_readiness` is document completeness,
247
+ not execution progress.
248
+
249
+ ### Field-name stability
250
+
251
+ Field names are stable across PRD revisions. Adding new fields is fine; renaming
252
+ existing fields breaks downstream consumers.
253
+
254
+ ## ID and content rules
255
+
256
+ - **Stable IDs.** PRD tables use the PRD template's numbering format
257
+ (e.g., `X.X.X.X_a1_f1`). R-IDs in brainstorm Requirements map to this
258
+ format when inserted into PRD tables.
259
+ - **Plain prefix.** In brainstorm dialogue, use plain prefixes (`R1.`, `F1.`)
260
+ for readability. When rendering into PRD tables, convert to the template's
261
+ hierarchical numbering.
262
+ - **Bold leader labels** inside Flows and Acceptance Examples
263
+ (`**Trigger:**`, `**Covers R4, R8.**`) provide structure without deeper
264
+ heading levels.
265
+ - **Repo-relative paths.** Always. Never absolute paths.
266
+ - **No process exhaust.** No "captured at Phase X" notes, no `## Next Steps`
267
+ pointing to ce-plan, no italic provenance lines. Engineering process
268
+ metadata belongs in commit messages and tool output, not the artifact.
269
+ - **No implementation details by default.** Libraries, schemas, endpoints,
270
+ file layouts, code structure stay out unless the brainstorm itself is
271
+ inherently about a technical or architectural change and those details are
272
+ the subject of the decision.
273
+
274
+ ## Rendering
275
+
276
+ The format-specific references describe how to render these chapters in each
277
+ output format:
278
+
279
+ - **Markdown rendering:** `references/markdown-rendering.md`
280
+ - **HTML rendering:** `references/html-rendering.md`
281
+
282
+ This reference (`brainstorm-sections.md`) is about WHAT the PRD contains;
283
+ rendering references are about HOW each format presents it. The PRD is
284
+ written in one format — markdown OR HTML, never both — based on the
285
+ resolved output mode. The chapter catalog is the same regardless of format.
@@ -0,0 +1,168 @@
1
+ # Handoff
2
+
3
+ This content is loaded when Phase 4 begins — after the PRD document is
4
+ written.
5
+
6
+ ---
7
+
8
+ #### 4.1 Present Next-Step Options
9
+
10
+ The Phase 4 menu's visible option count varies by state: no PRD document
11
+ hides the review and Proof options, `OUTPUT_FORMAT=html` also hides
12
+ the review option (ce-doc-review is markdown-only today), unresolved `Resolve
13
+ Before Planning` hides both `Create the implementation plan` and `Ship it
14
+ autonomously with lfg`, and the lfg option is also hidden for non-software
15
+ brainstorms (`execution` other than `code`). Count the visible options for the
16
+ current state and choose the rendering mode accordingly:
17
+
18
+ - **Visible count fits the current platform's option cap:** use the platform's blocking question tool (`AskUserQuestion` in Claude Code — call `ToolSearch` with `select:AskUserQuestion` first if its schema isn't loaded; `request_user_input` in Codex; `ask_question` in Antigravity CLI (`agy`), `ask_user` in Pi (requires the `pi-ask-user` extension)). Claude Code `AskUserQuestion` supports up to 4 explicit options, and Codex `request_user_input` supports only 2-3 explicit options.
19
+ - **Visible count exceeds the current platform's option cap:** render as a numbered list in chat. This is the narrow option-overflow fallback; trimming would hide legitimate choices (plan, ship, review, Proof/browser, refine are all distinct destinations). Include a hint that free-form input is accepted ("Pick a number or describe what you want.") so the numbered list retains the blocking tool's open-endedness.
20
+
21
+ Never silently skip the question.
22
+
23
+ If `Resolve Before Planning` contains any items:
24
+ - Ask the blocking questions now, one at a time, by default
25
+ - If the user explicitly wants to proceed anyway, first convert each remaining item into an explicit decision, assumption, or `Deferred to Planning` question
26
+ - If the user chooses to pause instead, present the handoff as paused or blocked rather than complete
27
+ - Do not offer the `Create the implementation plan` or `Ship it autonomously with lfg` options while `Resolve Before Planning` remains non-empty
28
+
29
+ In both preambles below, the "Pick a number or describe what you want." hint applies only in numbered-list mode. When using the blocking tool, omit that line and pass the remaining stem as the question.
30
+
31
+ **Path format:** Use absolute paths for chat-output file references — relative paths are not auto-linked as clickable in most terminals.
32
+
33
+ **Preamble when no blocking questions remain:**
34
+
35
+ ```
36
+ Brainstorm complete.
37
+
38
+ PRD document: <absolute path to PRD document> # omit line if no artifact was created
39
+
40
+ What would you like to do next? (Pick a number or describe what you want.)
41
+ ```
42
+
43
+ **Preamble when blocking questions remain and user wants to pause:**
44
+
45
+ ```
46
+ Brainstorm paused. I'm holding planning until the remaining questions are resolved — say the word and I'll proceed anyway, recording each open item as an explicit assumption or a question deferred to planning.
47
+
48
+ PRD document: <absolute path to PRD document> # omit line if no artifact was created
49
+
50
+ What would you like to do next? (Pick a number or describe what you want.)
51
+ ```
52
+
53
+ The override sentence is load-bearing, not padding: the planning options are hidden while `Resolve Before Planning` is non-empty, so without it the user is told planning is blocked and is never told the block is theirs to lift. `Resolve Before Planning` is your own judgment call — an over-cautious read of it must not silently strand the user with no visible way forward. Hiding the option withholds the *recommendation*; it never withholds the *choice*.
54
+
55
+ Present only the options that apply. Renumber so visible options stay contiguous starting at 1.
56
+
57
+ 1. **Create the implementation plan** *(recommended)* - Hand off to `ce-plan` and sharpen the PRD document into a complete, testable plan. Shown only when `Resolve Before Planning` is empty.
58
+ 2. **Ship it autonomously with `lfg`** - Hand the requirements to the full autonomous pipeline: `lfg` plans (`ce-plan`), implements, simplifies, runs independent code review and applies the fixes, opens a PR, and watches CI to green — hands-off, no check-ins. It plans first (unlike a raw `/goal` straight from requirements), so it's the safer autonomous path. Best when you trust the requirements and want it built and shipped without steering. **Opens a PR and pushes a branch.** Shown only for software brainstorms (`execution: code`) with `Resolve Before Planning` empty **and a PRD document was created** — `lfg` hands `ce-plan` the PRD path in pipeline mode and cannot prompt, so with no artifact (e.g. a brief-alignment brainstorm that skipped doc creation per the "Decide whether a doc is warranted" rule) there is nothing to enrich; offer option 1 instead, which can plan interactively from the conversation. For a quicker plan-then-decide flow, or to run a `/goal` yourself, pick option 1 and choose at the `ce-plan` handoff.
59
+ 3. **Pressure-test the requirements** - Dispatch reviewer agents with `ce-doc-review` to find gaps, conflicts, weak premises, and scope issues in the requirements; auto-apply safe fixes; route the rest interactively. Shown only when a markdown PRD document exists **and `OUTPUT_FORMAT=md`** — ce-doc-review's walkthrough applies markdown-only mutations (`##`/`###` heading inserts, single-file markdown edits via apply-set) and would corrupt an HTML artifact, so HTML brainstorms skip this option until ce-doc-review gains HTML-aware mutation support. Under HTML mode, surface a one-line note above the menu: `Requirements review unavailable in output:html mode — ce-doc-review is markdown-only today. Switch to output:md if you want a review pass.`
60
+ 4. **Publish to Proof — shareable link** - Publish the markdown PRD document to Every's Proof editor and get a shareable link to read, comment on, or share with others. One-way: the local doc stays canonical. Shown only when a markdown PRD document exists. **Render only when `OUTPUT_FORMAT=md`** (Proof operates on markdown and cannot ingest HTML).
61
+ 4. **Open in browser** — open the HTML PRD document locally for review and sharing. Shown only when an HTML PRD document exists. **Render only when `OUTPUT_FORMAT=html`.** Replaces "Publish to Proof" at the same slot under exclusive output mode — the artifact is either markdown OR HTML, never both, so exactly one of the two labels applies per run.
62
+ 5. **More clarifying questions to sharpen the scope** - Keep refining scope, edge cases, constraints, and preferences through further dialogue. Always shown — so the label names the scope rather than the doc, which stays true on a run that correctly skipped doc creation.
63
+
64
+ There is no "done" / "pause" option — the blocking question already waits, and the user ends by dismissing it (Esc) or saying they're finished. The PRD document is already saved.
65
+
66
+ **Post-review nudge (subsequent rounds only):** If the user has already run `ce-doc-review` this session and residual P0/P1 findings remain unaddressed, add a one-line prose nudge adjacent to the menu (e.g., "Document review flagged 2 P1 findings you may want to address — pick \"Pressure-test the requirements\" to run another pass."). Reference the option by label, not number: the menu renumbers when `Resolve Before Planning` hides `Create the implementation plan` and the lfg option, so a hardcoded option number can point users at the wrong action. Do not add a separate menu option; reuse the existing `Pressure-test the requirements` option. Suppress this nudge when `OUTPUT_FORMAT=html` — that option is hidden in that mode, so the nudge would point users at a missing action.
67
+
68
+ #### 4.2 Handle the Selected Option
69
+
70
+ Selections may be the literal option label (when the user types the label or a close paraphrase) or the option number. Match numbers against the currently-rendered (post-trim) list. Free-form input that doesn't match an option or describe an alternative action should be treated as clarification — ask a follow-up rather than guessing.
71
+
72
+ **If user selects "Create the implementation plan":**
73
+
74
+ Immediately load the `ce-plan` skill in the current session. Pass the PRD
75
+ document path when one exists; otherwise pass a concise summary of the
76
+ finalized brainstorm decisions. When the Phase 1.1 grounding scout produced a
77
+ dossier and the file still exists, also pass its path
78
+ (`<scratch-root>/ce-brainstorm/<run-id>/grounding.md`) — it gives
79
+ planning verified quotes with `file:line` pointers to start from instead of
80
+ re-scanning the repo. Do not print the closing summary first.
81
+
82
+ **If user selects "Pressure-test the requirements":**
83
+
84
+ Load the `ce-doc-review` skill, passing the PRD document path as the argument.
85
+ When ce-doc-review returns "Review complete", return to the Phase 4 options
86
+ and re-render the menu (the requirements may have changed, so re-evaluate
87
+ `Resolve Before Planning`, the lfg software gate, and residual findings). If
88
+ residual P0/P1 findings remain unaddressed, include the post-review nudge
89
+ above the menu. Do not show the closing summary yet.
90
+
91
+ **If user selects "Ship it autonomously with `lfg`":**
92
+
93
+ Immediately invoke the `lfg` skill in the current session via the platform's
94
+ skill-invocation primitive, passing the PRD document path as its
95
+ argument so `lfg`'s `ce-plan` step enriches the PRD to implementation-ready
96
+ state rather than bootstrapping a new plan. `lfg` then owns the full pipeline
97
+ autonomously — plan, implement (`ce-work` in `return-to-caller` mode), simplify,
98
+ independent code review and applied fixes, commit/push/open PR, and CI watch to
99
+ green. Do not also start a `/goal` or load `ce-work` directly — `lfg`
100
+ orchestrates them. Unlike a goal tool, `lfg` is host-agnostic: it works wherever
101
+ skills run (plus `git`/`gh` for the PR/CI tail, which it guards when absent).
102
+
103
+ Where the host exposes no skill-invocation primitive, print the `lfg <plan-path>`
104
+ invocation for the user to run and note that it will plan, build, review, and
105
+ open a PR from this artifact.
106
+
107
+ Do not print the closing summary first.
108
+
109
+ **If user selects "More clarifying questions to sharpen the scope":** Return to Phase 1.3 (Collaborative Dialogue) and continue asking the user clarifying questions one at a time to further refine scope, edge cases, constraints, and preferences. Continue until the user is satisfied, then return to Phase 4. Do not show the closing summary yet.
110
+
111
+ **If user selects "Publish to Proof — shareable link":**
112
+
113
+ Load the `ce-proof` skill to publish the markdown PRD document. Pass:
114
+
115
+ - **source file:** `prd/vN/prd.md`
116
+ - **doc title:** `PRD: <topic title>`
117
+ - **identity:** `ai:compound-engineering` / `Compound Engineering`
118
+
119
+ ce-proof creates a shared Proof doc from the markdown PRD file (Create and
120
+ Share workflow), binds the display name, and returns the share URL. Surface
121
+ the URL to the user — they can open it to read, comment, or share with others
122
+ — then return to the Phase 4 options and re-render the menu. This is a one-way
123
+ publish: the local doc stays canonical and nothing syncs back, so option
124
+ eligibility is unchanged (no need to re-evaluate `Resolve Before Planning`,
125
+ the lfg software gate, or residual findings on account of Proof).
126
+
127
+ If the upload fails (network error, Proof API down), retry once after a short wait. If it still fails, tell the user the upload didn't succeed and briefly explain why, then return to the Phase 4 options — don't leave them wondering why the option did nothing.
128
+
129
+ **If user selects "Open in browser":** Display the absolute path to the `.html` PRD document so the user can open it locally. Where the platform exposes a browser-opening primitive (e.g., `open` on macOS, `xdg-open` on Linux, `start` on Windows), the agent may invoke it directly; otherwise print the absolute path and let the user open it. After the path is displayed (or the browser is opened), return to the Phase 4 options so the user can pick a follow-up action.
130
+
131
+ **If the user indicates they're finished** (says "done"/"that's all", or dismisses the menu without picking an option): display the closing summary (see 4.3) and end the turn.
132
+
133
+ #### 4.3 Closing Summary
134
+
135
+ Use the closing summary only when this run of the workflow is ending or handing off, not when returning to the Phase 4 options.
136
+
137
+ In both templates below, substitute `<absolute path to PRD document>` with the
138
+ actual file path written this run — `.md` for `OUTPUT_FORMAT=md`, `.html` for
139
+ `OUTPUT_FORMAT=html`. Do not emit a hardcoded `.md` path when the artifact is
140
+ HTML, or the closing summary will point users at a file that was never written.
141
+
142
+ When complete and ready for planning, display:
143
+
144
+ ```text
145
+ Brainstorm complete!
146
+
147
+ PRD document: <absolute path to PRD document> # omit line if no artifact was created
148
+
149
+ Key decisions:
150
+ - [Decision 1]
151
+ - [Decision 2]
152
+
153
+ Recommended next step: `ce-plan <PRD document path>`
154
+ ```
155
+
156
+ If the user pauses with `Resolve Before Planning` still populated, display:
157
+
158
+ ```text
159
+ Brainstorm paused.
160
+
161
+ PRD document: <absolute path to PRD document> # omit line if no artifact was created
162
+
163
+ Planning is held on:
164
+ - [Blocking question 1]
165
+ - [Blocking question 2]
166
+
167
+ Resume with `ce-brainstorm` to resolve these — or say to plan anyway, and I'll record each open item as an explicit assumption or a question deferred to planning.
168
+ ```