@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,110 @@
1
+ ---
2
+ name: session-handoff
3
+ description: >
4
+ 将当前会话的工作上下文压缩为结构化交接文档,供新会话无缝继续。
5
+ 当长时间对话导致上下文腐化、产出质量下降时使用;
6
+ 也可在切换设备、交接给其他开发者时使用。
7
+ 不适用于:change 级任务委派(用 tf handoff)、
8
+ 产品级状态恢复(已由 .team-flow/ yaml 自动处理)、
9
+ subagent 进程内交接(已由 §18.1 交接协议覆盖)。
10
+ argument-hint: "[下一个会话的关注点描述]"
11
+ ---
12
+
13
+ # Session Handoff
14
+
15
+ 将当前会话的隐性知识压缩为结构化交接文档,让新会话无损继续。
16
+
17
+ > **设计依据**:设计增强方案 v0.8 §21.1(P1-10,v0.16.0)
18
+
19
+ ## Use This Skill When
20
+
21
+ - 长时间对话后产出质量下降(重复提问、遗忘约束、答非所问)
22
+ - 用户主动说"交接"、"换会话"、"handoff"、"上下文太长"
23
+ - 切换设备或交接给其他开发者
24
+ - 模型检测到上下文腐化迹象时**建议**用户触发(不强制)
25
+
26
+ **Do NOT use when**:
27
+ - change 级任务委派 → `tf handoff`(prototype/research/experiment)
28
+ - 产品级状态恢复 → 已由 `.team-flow/` yaml 自动处理
29
+ - subagent 进程内交接 → 已由 §18.1 交接协议覆盖
30
+
31
+ ## Support Files
32
+
33
+ | 文件 | 用途 | 何时读取 |
34
+ |------|------|---------|
35
+ | `references/handoff-template.md` | 交接文档 10 节模板 | Step 3 生成文档时 |
36
+ | `references/context-extraction.md` | 上下文萃取规则(6 类隐性知识) | Step 2 萃取时 |
37
+ | `references/skill-recommendation.md` | 基于触发域分层的 skill 推荐规则 | Step 4 恢复指引时 |
38
+
39
+ **按需读取,勿批量加载。**
40
+
41
+ ## Core Workflow
42
+
43
+ ```
44
+ 触发 → 1. 环境感知 → 2. 上下文萃取 → 3. 文档生成 → 4. 恢复指引
45
+ ```
46
+
47
+ ### Step 1:环境感知(自动)
48
+
49
+ 检测以下状态文件,构建工作流快照:
50
+
51
+ | 检测目标 | 路径 | 提取信息 |
52
+ |---------|------|---------|
53
+ | 需求注册表 | `.team-flow/registry.yaml` | 活跃需求、需求列表 |
54
+ | 编排状态 | `.team-flow/requirements/<req-id>/orchestrator.yaml` | SOP 阶段(S1-S5) |
55
+ | 变更级状态 | `<change>/.team-flow.yaml` | 状态机 8 态中的当前态 |
56
+ | PRD 版本 | `prd/vN/prd.md` frontmatter | 迭代版本、冻结状态 |
57
+
58
+ **降级规则**:上述文件均不存在 → 通用 handoff 模式(跳过工作流状态节)。
59
+
60
+ ### Step 2:上下文萃取
61
+
62
+ 从当前对话中提取 6 类隐性知识(详见 `references/context-extraction.md`):
63
+
64
+ 1. **进度摘要**:已完成 / 正在进行 / 下一步
65
+ 2. **关键决策**:本次会话做出的、尚未写入产物的决策
66
+ 3. **未解决问题**:悬而未决的问题、临时假设
67
+ 4. **用户偏好**:不在文档中的隐性偏好
68
+ 5. **失败尝试**:尝试过但放弃的方案及原因
69
+ 6. **敏感信息**:API Key / Token / 密码 → 替换为 `${PLACEHOLDER}`
70
+
71
+ ### Step 3:文档生成
72
+
73
+ 按 `references/handoff-template.md` 的 10 节结构生成:
74
+
75
+ - **有 argument** → 直接写入 §1「下一个会话的关注点」
76
+ - **无 argument** → 从对话最后 5 轮推断关注点
77
+ - **输出路径**:`.team-flow/handoffs/<YYYYMMDD-HHmmss>-<req-id|general>.md`
78
+ - **核心原则**:引用产物路径,**不复制内容**
79
+ - **敏感信息**:所有凭据以 `${PLACEHOLDER}` 表示
80
+
81
+ ### Step 4:恢复指引(输出到终端,不写入文档)
82
+
83
+ 1. 告诉用户新会话中的恢复操作:
84
+ ```
85
+ 新会话中执行:
86
+ 1. 读取 .team-flow/handoffs/<文件名>.md
87
+ 2. 按文档 §8 建议的 skills 继续工作
88
+ ```
89
+ 2. 基于当前阶段推荐 skills(详见 `references/skill-recommendation.md`)
90
+
91
+ ## Guardrails
92
+
93
+ 1. **不复制产物内容**:PRD、plan.md、spec 等只引用路径
94
+ 2. **不重复状态文件**:yaml 中已有的结构化数据只引用,不抄写
95
+ 3. **必须脱敏**:所有凭据值替换为 `${PLACEHOLDER}`
96
+ 4. **不替代状态恢复**:`.team-flow/` yaml 的跨 session 恢复是自动的,handoff 补充非结构化隐性知识
97
+ 5. **handoffs/ 目录加入 .gitignore**:交接文档是临时性质
98
+
99
+ ## Output
100
+
101
+ - 交接文档:`.team-flow/handoffs/<timestamp>-<req-id>.md`
102
+ - 终端输出:恢复指引 + 建议 skills 列表
103
+
104
+ ## Exception Handling
105
+
106
+ | 异常 | 处理 |
107
+ |------|------|
108
+ | `.team-flow/` 不存在 | 降级为通用 handoff(跳过工作流状态节) |
109
+ | 对话内容过短(<5 轮对话,一问一答为一轮) | 提示用户:当前上下文尚浅,建议继续当前会话 |
110
+ | handoffs/ 目录不存在 | 自动创建 |
@@ -0,0 +1,70 @@
1
+ # 上下文萃取规则(6 类隐性知识)
2
+
3
+ > 本文件定义 session-handoff Step 2 的萃取规则。
4
+ > 核心原则:萃取"只存在于对话上下文中的隐性知识",已在产物中的信息只引用路径。
5
+
6
+ ## 萃取分类
7
+
8
+ ### 1. 进度摘要
9
+
10
+ **萃取方法**:回顾对话中的工作动作序列,归纳为三类:
11
+ - **已完成**:已经产出文件或已经确认的事项
12
+ - **正在进行**:当前正在处理但未完成的事项(标注卡点)
13
+ - **下一步**:紧接着要做的 1-3 件事
14
+
15
+ **注意**:进度是会话级的,不是项目级的。只记录本次会话的进展。
16
+
17
+ ### 2. 关键决策
18
+
19
+ **萃取方法**:识别对话中用户确认或模型提出并被接受的决策,且该决策**尚未写入任何产物文件**。
20
+
21
+ **判断标准**:
22
+ - 如果决策已写入 PRD/plan/spec/design → 不记录,引用产物路径
23
+ - 如果决策只在对话中确认 → 记录到 §4
24
+
25
+ **典型场景**:
26
+ - "用方案 A 不用方案 B"(但未写入 design.md)
27
+ - "这个功能先不做"(但未更新 PRD scope)
28
+ - "用 X 库代替 Y 库"(但未更新 plan.md)
29
+
30
+ ### 3. 未解决问题
31
+
32
+ **萃取方法**:识别对话中提出但未最终回答的问题,以及模型做出的临时假设。
33
+
34
+ **格式**:每个问题标注"默认处理"(当前按什么假设在继续)和"需要确认?"。
35
+
36
+ ### 4. 用户偏好
37
+
38
+ **萃取方法**:识别用户表达的偏好、约束、风格要求,且这些偏好**不在任何项目文档中**。
39
+
40
+ **典型场景**:
41
+ - "我不喜欢太多确认弹窗"
42
+ - "代码风格偏向函数式"
43
+ - "先做核心功能,花里胡哨的后面的再说"
44
+ - "不要引入新的依赖"
45
+
46
+ ### 5. 失败尝试
47
+
48
+ **萃取方法**:识别对话中尝试过但放弃的方案,记录放弃原因。
49
+
50
+ **价值**:防止新会话重新走一遍同样的死路。
51
+
52
+ **格式**:`方案 X:放弃原因 → ...`
53
+
54
+ ### 6. 敏感信息
55
+
56
+ **萃取方法**:扫描对话和生成的文档内容,识别以下模式:
57
+ - API Key / Token / Secret
58
+ - 密码 / 凭据
59
+ - 个人身份信息(PII)
60
+
61
+ **处理**:全部替换为 `${PLACEHOLDER}`,在 §10 声明已脱敏。
62
+
63
+ ## 萃取优先级
64
+
65
+ 当对话内容过多时,按以下优先级取舍:
66
+
67
+ 1. **必须**:进度摘要 + 下一步(没有这个新会话无法继续)
68
+ 2. **重要**:关键决策 + 未解决问题(没有这个新会话可能走弯路)
69
+ 3. **建议**:失败尝试 + 用户偏好(没有这个新会话可能重蹈覆辙)
70
+ 4. **可选**:敏感信息声明(无敏感信息时可简化)
@@ -0,0 +1,90 @@
1
+ # 交接文档模板(10 节结构)
2
+
3
+ > 本文件是 session-handoff skill 的交接文档生成模板。
4
+ > 设计依据:v0.8 §21.1
5
+
6
+ ## YAML Frontmatter
7
+
8
+ ```yaml
9
+ ---
10
+ type: session-handoff
11
+ version: 1
12
+ created_at: <ISO 8601>
13
+ requirement_id: <req-id | null>
14
+ workflow_phase: <S1-S5 | change-level | null>
15
+ state_machine: <8态之一 | null>
16
+ change_dir: <path | null>
17
+ ---
18
+ ```
19
+
20
+ ## 正文结构
21
+
22
+ ### §1 下一个会话的关注点
23
+
24
+ 用户传入的 argument 内容,或从对话上下文推断的下一步关注点。如果用户未传入 argument,从对话最后 5 轮推断。
25
+
26
+ ### §2 工作流状态(自动检测,引用不复制)
27
+
28
+ - 活跃需求:`<req-id>` — `<title>`
29
+ - 产品级阶段:`<S1-S5>`(详见 `.team-flow/requirements/<req-id>/orchestrator.yaml`)
30
+ - 变更级状态:`<state>`(详见 `<change>/.team-flow.yaml`)
31
+ - PRD 版本:`<vN>`,冻结状态:`<frozen_downstream | frozen_absolute | unfrozen>`
32
+
33
+ > 通用 handoff 模式下跳过本节。
34
+
35
+ ### §3 本次会话进度
36
+
37
+ #### 已完成
38
+ - (列出本次会话完成的工作项)
39
+
40
+ #### 正在进行
41
+ - (列出当前卡在哪里、进展到什么程度)
42
+
43
+ #### 下一步
44
+ - (列出紧接着要做的事情)
45
+
46
+ ### §4 关键决策(未写入产物的)
47
+
48
+ | 决策 | 理由 | 影响范围 |
49
+ |------|------|---------|
50
+ | (本次会话中做出的、尚未持久化到任何产物中的决策) | | |
51
+
52
+ > 已写入 PRD/plan/spec 的决策不需要重复。
53
+
54
+ ### §5 未解决问题与临时假设
55
+
56
+ | 问题/假设 | 默认处理 | 需要确认? |
57
+ |-----------|---------|-----------|
58
+ | (悬而未决的问题) | (当前按什么假设在处理) | 是/否 |
59
+
60
+ ### §6 失败尝试(避免重蹈覆辙)
61
+
62
+ - 方案 X:放弃原因 → (为什么不行,避免新会话重新尝试)
63
+
64
+ ### §7 用户偏好与约束(会话级)
65
+
66
+ - (不在文档中的隐性偏好,如"LT 不喜欢 X 方案"、"优先用 Y 技术")
67
+
68
+ ### §8 建议 Skills(新会话应调用)
69
+
70
+ | 优先级 | Skill | 理由 |
71
+ |--------|-------|------|
72
+ | 1 | (基于当前阶段推荐的 skill) | (为什么需要这个 skill) |
73
+ | 2 | | |
74
+
75
+ > 推荐规则详见 `skill-recommendation.md`。
76
+
77
+ ### §9 关键产物引用(不复制,只引用路径)
78
+
79
+ - PRD: `prd/vN/prd.md`
80
+ - 实施方案: `prd/vN/plan.md`
81
+ - 原型: `prototype/index.html`
82
+ - 设计方案: `docs/architecture-api-db-design-enhancement-v0.8.md`
83
+ - 复利经验: `docs/solutions/INDEX.md`
84
+ - 领域词汇: `CONCEPTS.md`
85
+
86
+ > 仅列出与当前工作相关的产物,不需要全部列出。
87
+
88
+ ### §10 敏感信息声明
89
+
90
+ 本文档已脱敏。所有凭据以 `${PLACEHOLDER}` 表示。原始值不存在于本文档中。
@@ -0,0 +1,43 @@
1
+ # Skill 推荐规则(基于触发域分层)
2
+
3
+ > 本文件定义 session-handoff Step 4 的 skill 推荐逻辑。
4
+ > 基于 AGENTS.md 触发域分层表,根据当前工作流阶段推荐新会话应调用的 skills。
5
+
6
+ ## 推荐矩阵
7
+
8
+ | 当前阶段 | 推荐 Skill(优先级 1) | 推荐 Skill(优先级 2) | 说明 |
9
+ |---------|---------------------|---------------------|------|
10
+ | Bootstrap(无 baseline.md) | workflow-bootstrap | — | 继续完成接入初始化 |
11
+ | S1 路径路由 | workflow-orchestrator | — | 继续需求选择/路径判断 |
12
+ | S2 PRD + 原型 | workflow-orchestrator | ce-brainstorm / prototype | 继续 PRD 编写或原型迭代 |
13
+ | S3 计划 | workflow-orchestrator | ce-plan | 继续实施方案制定 |
14
+ | S4 拆分分发 | workflow-orchestrator | — | 继续 change 拆分 |
15
+ | S5 全局监控 | workflow-orchestrator | — | 继续跨 change 监控 |
16
+ | change: exploring | workflow-start | need-explorer | 继续需求探索 |
17
+ | change: specifying | workflow-start | spec-writer | 继续规划制品编写 |
18
+ | change: bridging | workflow-start | contract-builder | 继续执行契约构建 |
19
+ | change: executing | workflow-start | build-executor | 继续实现 |
20
+ | change: debugging | workflow-start | bug-investigator | 继续调试 |
21
+ | change: closing | workflow-start | release-archivist | 继续收尾 |
22
+ | 无工作流上下文 | (根据用户 argument 推断) | ce-compound | 通用模式 |
23
+
24
+ ## 附加推荐
25
+
26
+ 无论处于哪个阶段,以下 skills 可作为附加推荐:
27
+
28
+ | 条件 | 附加推荐 | 理由 |
29
+ |------|---------|------|
30
+ | 本次会话有值得沉淀的经验 | ce-compound | 捕获经验到 docs/solutions/ |
31
+ | 本次会话发现工作流问题 | workflow-feedback | 记录问题供 plugin 优化 |
32
+ | 涉及架构设计决策 | architecture-design | 4A+DDD 增量设计 |
33
+ | 涉及 E2E 测试 | e2e | AC 驱动 Playwright 测试 |
34
+
35
+ ## 推荐输出格式
36
+
37
+ 在交接文档 §8 和终端输出中,按以下格式呈现:
38
+
39
+ ```
40
+ 建议 Skills(新会话应调用):
41
+ 1. workflow-orchestrator — 当前在 S2 阶段,需继续 PRD 编写
42
+ 2. ce-compound — 本次会话有值得沉淀的经验(XX 问题的解决方案)
43
+ ```
@@ -0,0 +1,66 @@
1
+ ---
2
+ name: spec-merger
3
+ description: Sync delta specs to main specs after closure. Invoke when a change is closing, delta specs need merging into the main spec base, or when detecting spec drift across multiple changes.
4
+ ---
5
+
6
+ # Spec Merger
7
+
8
+ After a change completes, delta specs (ADDED/MODIFIED/REMOVED/RENAMED) must be merged into the main spec base. **Specs that aren't synced become lies.**
9
+
10
+ ## Pre-Flight Checks
11
+
12
+ ### Conflict Detection
13
+ Run `npx --yes --package @xulthekl/team-flow@0.22.4 tf sync <change-dir>`. If conflicts are detected (same requirement modified by multiple changes), present the conflict list to the user for resolution order.
14
+
15
+ ### Abandoned Change Guard
16
+ Check if the change is `abandoned`. If so → STOP: "Abandoned changes cannot be synced. Delta specs are preserved for reference but must not be merged."
17
+
18
+ ## Sync Process
19
+
20
+ ### Step 1: Identify Deltas
21
+ Each `specs/<capability>/spec.md` under the change folder contains delta operations under `## ADDED/MODIFIED/REMOVED/RENAMED Requirements`.
22
+
23
+ ### Step 2: Apply by Operation
24
+
25
+ **ADDED**: Append to `specs/<capability>/spec.md`. Create the main spec if it doesn't exist. Insert before any REMOVED section.
26
+
27
+ **MODIFIED**: Match on `### Requirement: <name>`. Replace description and scenarios. Preserve original in a `### Previous version` subsection. Flag if requirement doesn't exist in main spec.
28
+
29
+ **REMOVED**: Move to `## Removed` section with deprecation note: reason, migration, and change name. Flag if requirement doesn't exist.
30
+
31
+ **RENAMED**: Match old name, change header to new name, add `_Renamed from <old> in <change>_`. Flag if new name collides with existing.
32
+
33
+ ### Step 3: Conflict Detection
34
+ Before executing, detect:
35
+ - Same requirement modified by multiple unsynced changes → manual resolution
36
+ - RENAMED target collides with existing requirement → manual resolution
37
+ - MODIFIED/REMOVED targeting nonexistent requirements → flag
38
+
39
+ ### Step 4: Execute Merge
40
+ Apply changes. Do NOT delete delta specs — they remain for traceability. After merge, validate: no duplicate requirement names, no orphaned references, REMOVED section clearly separated.
41
+
42
+ ### Step 5: Report
43
+ Output sync report table: Capability, ADDED/MODIFIED/REMOVED/RENAMED counts, Status (✓/⚠). Summary with totals and unresolved conflicts.
44
+
45
+ ## Guardrails
46
+
47
+ - Do not delete delta spec files (historical record)
48
+ - Do not auto-resolve conflicts across changes
49
+ - Do not merge specs for unverified changes
50
+ - Validate main spec consistency after each capability merge
51
+
52
+ ## Post-Sync
53
+
54
+ 1. Report results. If no conflicts → ready to archive. If conflicts → user resolves before archive.
55
+ 2. Change folder (including deltas) remains for traceability.
56
+ 3. Record that merging is complete so the `executing → closing` guard allows closure:
57
+ ```bash
58
+ npx --yes --package @xulthekl/team-flow@0.22.4 tf state set <change-dir> spec_merged true
59
+ ```
60
+ (If the change had no delta sections, still set `spec_merged true` — there was nothing to merge.)
61
+
62
+ ## Exception Handling
63
+
64
+ - **Parse failures**: Report file and section. Do not attempt partial merges.
65
+ - **No deltas**: If change has no delta sections, report nothing to merge and exit cleanly.
66
+ - **User interruption**: On resume, check for merge conflict markers before proceeding.
@@ -0,0 +1,149 @@
1
+ ---
2
+ name: spec-writer
3
+ description: Create or refine team-flow planning artifacts. Invoke when the change is understood well enough to write proposal.md, specs/, design.md, and tasks.md.
4
+ ---
5
+
6
+ # Spec Writer
7
+
8
+ Create or refine planning artifacts when the change has moved beyond exploration.
9
+
10
+ ## Required Inputs
11
+
12
+ Read `.team-flow.yaml` (especially `dp_0_decisions`, `dp_0_confirmed`) and any existing planning artifacts. If `dp_0_confirmed` is not `true`, stop and route back to `workflow-start` for DP-0.
13
+
14
+ ### Global Prototype Reading (v0.5)
15
+
16
+ Before generating artifacts, check if a global prototype exists:
17
+ 1. Read `prototype/flow.md` if it exists — this defines page navigation and user flows
18
+ 2. List `prototype/pages/` directory — these are the UI contract pages
19
+ 3. Read `prototype/design-system.md` if it exists — component and token definitions
20
+ 4. Store as UI contract context for design.md and tasks.md generation
21
+
22
+ If `prototype/` does not exist or is empty, skip silently — not all projects have prototypes.
23
+
24
+ ### Solutions Index (v0.5)
25
+
26
+ Read `docs/solutions/INDEX.md` if it exists. Filter entries where `phase = spec OR phase = cross-phase` and `domain` matches the current change's domain. Inject top-5 summaries as context constraints for artifact generation. If INDEX.md does not exist or is empty, skip silently.
27
+
28
+ ### Change Brief (v0.9)
29
+
30
+ 若 `change-brief.md` 存在(本 change 由 workflow-orchestrator S4 分发),读取其 Scope / 约束 / AC 列表 / 全局技术方向:
31
+ - **Scope** 作为 proposal.md 的 scope 边界基线——不静默超出 brief scope。
32
+ - **AC 列表** 作为 specs/ 的 AC 覆盖上限——brief 列出的 AC 必须在 specs/ 中体现,**不**静默丢弃;若认为 brief AC 有误或与 plan.md 冲突,以 `prd/vN/plan.md` / PRD 为准并在 proposal 注明,而非静默改写。
33
+ - brief 不存在时(手动新建 / 快速通道)跳过本段,按原流程从 `dp_0_decisions` 取意图。
34
+
35
+ ### Plan Technical Direction (v0.9)
36
+
37
+ 若产品级 `prd/vN/plan.md` 存在,读取其**高阶技术设计段**(模块边界 / 技术选型 / 数据流方向 / 关键聚合与上下文划分),作为 design.md 的 `## Decisions` 约束输入——保证各 change 的技术方案与全局方向一致,避免各自为政。**禁止**反向要求 plan.md 提供接口清单 / 字段定义 / 方法签名(这些是 spec-writer / architecture-design 在本 change 内的产出,plan.md 不含,见 ce-plan 作用边界与 v0.8 §18.7.2)。plan.md 不存在时跳过本段。
38
+
39
+ ### Architecture Design Outputs (v0.9 §26)
40
+
41
+ 若 `architecture/` 目录存在(本 change 经 workflow-start 的 architecture-design 判断门判定为 `required` 并产出了架构设计),读取以下文件作为 design.md / tasks.md 的架构约束输入:
42
+
43
+ - `architecture/architecture.md` → design.md `## Decisions` 的架构约束(聚合/限界上下文/CQRS 决策)
44
+ - `architecture/database.md` → design.md + tasks.md 的数据层约束(实体/读写模型/schema 变更)
45
+ - `architecture/api.md` → tasks.md 的接口定义约束(端点/方法签名/Command-Read-Query 分流)
46
+
47
+ **约束传递规则**:
48
+ - design.md 的 `## Decisions` 段必须**引用** architecture/ 中的架构决策,不得与之矛盾
49
+ - tasks.md 的接口定义(Interfaces 段)必须与 `architecture/api.md` 的 API 设计对齐
50
+ - tasks.md 的数据层任务必须与 `architecture/database.md` 的 schema 变更对齐
51
+
52
+ `architecture/` 目录不存在时(判定为 `skipped`)跳过本段。
53
+
54
+ ## Config Check
55
+
56
+ Run: `npx --yes --package @xulthekl/team-flow@0.22.4 tf runtime config --get artifacts.order` — generate in configured order (default: proposal → specs → design → tasks). Run with `artifacts.skip` — skip any listed artifacts.
57
+
58
+ ## Artifact Roles
59
+
60
+ - `proposal.md`: why and scope
61
+ - `specs/`: required behavior (testable)
62
+ - `design.md`: architecture decisions and trade-offs (not line-by-line)
63
+ - `design.md` (v0.5 addition): When the change involves UI features, the Context section MUST reference the global prototype as UI contract source. Cite specific prototype pages (e.g., `prototype/pages/login.html`) and flow definitions (e.g., `prototype/flow.md#login-flow`). Do NOT redefine UI interactions in design.md — reference the prototype as the single source of truth for UI behavior.
64
+ - `tasks.md`: dependency-aware implementation steps
65
+
66
+ ## Working Rules
67
+
68
+ **Honor DP-0**: Read `dp_0_decisions`, respect confirmed constraints, don't silently expand scope. Pause on unconfirmed decisions.
69
+
70
+ **Honor Brief (v0.9)**: 若 `change-brief.md` 存在,尊重其 scope 边界与 AC 列表(见 Required Inputs「Change Brief」)——不静默丢弃 brief AC、不静默超出 brief scope;与 plan.md 冲突时以 plan.md 为准并注明。
71
+
72
+ **Honor Architecture (v0.9 §26)**: 若 `architecture/` 目录存在,design.md 的 Decisions 段必须引用其架构决策(聚合/限界上下文/CQRS/API/DB),tasks.md 的接口定义和数据层任务必须与 architecture/ 产出对齐——不得静默忽略或矛盾架构设计产出。
73
+
74
+ ### proposal.md
75
+ Must state: problem, what changes, capabilities affected, impact areas.
76
+
77
+ ### specs/
78
+ Every requirement must be testable. Use SHALL or MUST. Every requirement must have at least one `#### Scenario:` with WHEN/THEN. Group under ADDED/MODIFIED/REMOVED Requirements headers.
79
+
80
+ Optional structured AC tags under a Scenario are supported for E2E extraction (v0.4, design spec ch.16): `##### Exception:` (→ EX AC, ×2), `##### State:` (→ ST AC, ×2), `##### Boundary:` (→ BND AC, ×1). These are **OPTIONAL** — omitting them does NOT fail validation. The `e2e` skill applies dimension-conditional gating (absent dimension = N/A, not 0%) plus keyword fallback (error/invalid/fail/边界), so no spec is forced to add tags.
81
+
82
+ ### design.md
83
+ Must have: Context (current state, constraints, stakeholders), Goals, Decisions (Choice + Rationale + Alternatives considered), Risks And Trade-Offs.
84
+
85
+ **Prototype reference (v0.5)**: For UI-related changes, include a `## UI Contract` section in design.md that:
86
+ - References the prototype entry point (`prototype/index.html`)
87
+ - Lists affected prototype pages with their paths
88
+ - References relevant flow definitions from `prototype/flow.md`
89
+ - Notes any prototype components used (`prototype/components/`)
90
+ - States: "UI behavior is defined by the global prototype. This design does not redefine UI interactions."
91
+
92
+ ### tasks.md
93
+ Must include:
94
+ - **File Structure**: all files with one-sentence responsibility (Create/Modify)
95
+ - **Interfaces**: cross-batch Consumes/Produces with exact types
96
+ - **Per-task**: exact file paths, expanded TDD phases (5 steps), Interfaces block
97
+ - **Granularity**: each step 2-5 min, atomic
98
+ - **Zero placeholders**: no TBD, TODO, "figure out", "add appropriate"
99
+ - **Dependency ordering**: depends only on prior tasks, explicit "Depends on: Batch N"
100
+
101
+ **Prototype-aware tasks (v0.5)**: For UI-related tasks, include prototype references:
102
+ - File paths in `**Files:**` should reference prototype pages when the task implements a UI page
103
+ - Add `**Prototype:** prototype/pages/<page>.html` field for UI implementation tasks
104
+ - Test scenarios for UI tasks should reference prototype flow definitions
105
+
106
+ ## Artifact Generation
107
+
108
+ Generate one at a time. Confirm each before next. This prevents scope drift — if proposal has errors, downstream artifacts are wrong.
109
+
110
+ 1. `proposal.md` → present summary → wait for confirm
111
+ 2. `specs/` → present requirement list → wait for confirm
112
+ 3. `design.md` → present key decisions → wait for confirm
113
+ 4. `tasks.md` → present batch breakdown → wait for confirm
114
+
115
+ ## Validation Checklist
116
+
117
+ ### proposal.md
118
+ - `## Why` > 50 chars, `## What Changes`, `## Scope` (In/Out), `## Impact`, `## Capabilities`, no TBD/TODO
119
+
120
+ ### specs/
121
+ - SHALL/MUST for required behavior, `#### Scenario:` with WHEN/THEN per requirement, grouped under delta headers, no contradictions; optional `##### Exception:/State:/Boundary:` sub-tags allowed but NOT required (absent dimension = N/A, not 0%). Regression: a spec containing `##### Exception:` must still pass `npm run validate` (validateDeltaSpec must not reject unknown sub-headings).
122
+
123
+ ### design.md
124
+ - `## Context`, `## Goals`, `## Decisions` (≥1, with Choice+Rationale+Alternatives), `## Risks And Trade-Offs`
125
+ - **Architecture alignment (v0.9 §26)**: 若 `architecture/` 存在,`## Decisions` 必须引用架构设计产出中的关键决策(聚合/限界上下文/CQRS/API/DB)
126
+
127
+ ### tasks.md
128
+ - `## File Structure`, `## Interfaces`, numbered tasks, exact file paths, TDD phases, ≤5 min steps, no placeholders, every requirement mapped, explicit dependencies
129
+
130
+ **If any artifact fails validation, fix before handing off to contract-builder.**
131
+
132
+ ## DP-2: Artifact Review Gate
133
+
134
+ Present summary of all 4 artifacts (2-3 sentences each). Ask user for adjustments. After approval:
135
+ ```bash
136
+ npx --yes --package @xulthekl/team-flow@0.22.4 tf state set <change-dir> dp_2_result "approved: <summary>"
137
+ npx --yes --package @xulthekl/team-flow@0.22.4 tf state set <change-dir> dp_2_timestamp $(date -u +%Y-%m-%dT%H:%M:%SZ)
138
+ ```
139
+
140
+ ## Handoff Rule
141
+
142
+ Do not start implementation after writing planning artifacts. Once stable, validated, and DP-2 is recorded, hand off to `contract-builder`.
143
+
144
+ ## Exception Handling
145
+
146
+ - **Parse failures**: Report specific file/error; don't generate from corrupted templates
147
+ - **Missing templates**: Fall back to artifact structure defined in this skill
148
+ - **User interruption**: Artifacts on disk are the recovery checkpoint; resume from first missing/incomplete one
149
+ - **Validation failure**: Fix before handoff — do not hand off broken artifacts