cc-devflow 1.0.1

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 (277) hide show
  1. package/.claude/CLAUDE.md +83 -0
  2. package/.claude/agents/architecture-designer.md +443 -0
  3. package/.claude/agents/bug-analyzer.md +382 -0
  4. package/.claude/agents/checklist-agent.md +175 -0
  5. package/.claude/agents/clarify-analyst.md +50 -0
  6. package/.claude/agents/code-reviewer.md +71 -0
  7. package/.claude/agents/codex-analyzer.md +39 -0
  8. package/.claude/agents/compatibility-checker.md +580 -0
  9. package/.claude/agents/consistency-checker.md +532 -0
  10. package/.claude/agents/impact-analyzer.md +441 -0
  11. package/.claude/agents/planner.md +230 -0
  12. package/.claude/agents/prd-writer.md +320 -0
  13. package/.claude/agents/project-guidelines-generator.md +1329 -0
  14. package/.claude/agents/qa-tester.md +313 -0
  15. package/.claude/agents/release-manager.md +295 -0
  16. package/.claude/agents/security-reviewer.md +314 -0
  17. package/.claude/agents/style-guide-generator.md +458 -0
  18. package/.claude/agents/tech-architect.md +516 -0
  19. package/.claude/agents/ui-designer.md +485 -0
  20. package/.claude/commands/code-review-high.md +58 -0
  21. package/.claude/commands/core-architecture.md +429 -0
  22. package/.claude/commands/core-guidelines.md +486 -0
  23. package/.claude/commands/core-roadmap.md +439 -0
  24. package/.claude/commands/core-style.md +293 -0
  25. package/.claude/commands/flow-archive.md +245 -0
  26. package/.claude/commands/flow-checklist.md +260 -0
  27. package/.claude/commands/flow-clarify.md +136 -0
  28. package/.claude/commands/flow-constitution.md +82 -0
  29. package/.claude/commands/flow-dev.md +134 -0
  30. package/.claude/commands/flow-epic.md +150 -0
  31. package/.claude/commands/flow-fix.md +104 -0
  32. package/.claude/commands/flow-ideate.md +214 -0
  33. package/.claude/commands/flow-init.md +313 -0
  34. package/.claude/commands/flow-new.md +394 -0
  35. package/.claude/commands/flow-prd.md +131 -0
  36. package/.claude/commands/flow-qa.md +93 -0
  37. package/.claude/commands/flow-release.md +92 -0
  38. package/.claude/commands/flow-restart.md +98 -0
  39. package/.claude/commands/flow-status.md +64 -0
  40. package/.claude/commands/flow-tech.md +142 -0
  41. package/.claude/commands/flow-ui.md +189 -0
  42. package/.claude/commands/flow-update.md +111 -0
  43. package/.claude/commands/flow-upgrade.md +115 -0
  44. package/.claude/commands/flow-verify.md +96 -0
  45. package/.claude/commands/problem-analyzer.md +60 -0
  46. package/.claude/config/quality-rules.yml +161 -0
  47. package/.claude/docs/SPEC_KIT_CONSTITUTION_ANALYSIS.md +426 -0
  48. package/.claude/docs/design/consistency-conflict-detection-algorithms.md +658 -0
  49. package/.claude/docs/design/intent-driven-input-design.md +380 -0
  50. package/.claude/docs/design/prd-version-management-design.md +437 -0
  51. package/.claude/docs/guides/INIT_TROUBLESHOOTING.md +117 -0
  52. package/.claude/docs/guides/NEW_TROUBLESHOOTING.md +151 -0
  53. package/.claude/docs/guides/ROADMAP_TROUBLESHOOTING.md +188 -0
  54. package/.claude/docs/guides/TASK_COMPLETION_MARKING.md +338 -0
  55. package/.claude/docs/templates/ARCHITECTURE_TEMPLATE.md +633 -0
  56. package/.claude/docs/templates/BACKLOG_TEMPLATE.md +261 -0
  57. package/.claude/docs/templates/CHECKLIST_TEMPLATE.md +52 -0
  58. package/.claude/docs/templates/CLARIFICATION_REPORT_TEMPLATE.md +206 -0
  59. package/.claude/docs/templates/CODE_REVIEW_TEMPLATE.md +71 -0
  60. package/.claude/docs/templates/EPIC_TEMPLATE.md +805 -0
  61. package/.claude/docs/templates/INIT_FLOW_TEMPLATE.md +213 -0
  62. package/.claude/docs/templates/INTENT_CLARIFICATION_TEMPLATE.md +57 -0
  63. package/.claude/docs/templates/NEW_ORCHESTRATION_TEMPLATE.md +148 -0
  64. package/.claude/docs/templates/PRD_TEMPLATE.md +562 -0
  65. package/.claude/docs/templates/RESEARCH_TEMPLATE.md +276 -0
  66. package/.claude/docs/templates/REVIEW-HIGH.md +57 -0
  67. package/.claude/docs/templates/ROADMAP_DIALOGUE_TEMPLATE.md +198 -0
  68. package/.claude/docs/templates/ROADMAP_TEMPLATE.md +310 -0
  69. package/.claude/docs/templates/STYLE_TEMPLATE.md +1266 -0
  70. package/.claude/docs/templates/TASKS_TEMPLATE.md +523 -0
  71. package/.claude/docs/templates/TECH_DESIGN_TEMPLATE.md +1019 -0
  72. package/.claude/docs/templates/UI_PROTOTYPE_TEMPLATE.md +1436 -0
  73. package/.claude/guides/agent-guides/agent-coordination-guide.md +459 -0
  74. package/.claude/guides/project-guidelines-system.md +463 -0
  75. package/.claude/guides/technical-guides/datetime-handling-guide.md +563 -0
  76. package/.claude/guides/technical-guides/git-github-guide.md +642 -0
  77. package/.claude/guides/technical-guides/test-execution-guide.md +618 -0
  78. package/.claude/guides/workflow-guides/bug-fix-orchestrator.md +217 -0
  79. package/.claude/guides/workflow-guides/flow-orchestrator.md +282 -0
  80. package/.claude/hooks/checklist-gate.js +397 -0
  81. package/.claude/hooks/error-handling-reminder.sh +12 -0
  82. package/.claude/hooks/error-handling-reminder.ts +459 -0
  83. package/.claude/hooks/post-tool-use-tracker.sh +280 -0
  84. package/.claude/hooks/pre-tool-use-guardrail.sh +36 -0
  85. package/.claude/hooks/pre-tool-use-guardrail.ts +342 -0
  86. package/.claude/hooks/skill-activation-prompt.sh +36 -0
  87. package/.claude/hooks/skill-activation-prompt.ts +214 -0
  88. package/.claude/hooks/state/skills-used-test-guard.json +3 -0
  89. package/.claude/rules/devflow-conventions.md +305 -0
  90. package/.claude/rules/project-constitution.md +748 -0
  91. package/.claude/schemas/constitution.schema.json +43 -0
  92. package/.claude/scripts/analyze-upgrade-impact.sh +200 -0
  93. package/.claude/scripts/archive-requirement.sh +351 -0
  94. package/.claude/scripts/calculate-checklist-completion.sh +243 -0
  95. package/.claude/scripts/calculate-quarter.sh +206 -0
  96. package/.claude/scripts/check-dependencies.sh +409 -0
  97. package/.claude/scripts/check-prerequisites.sh +232 -0
  98. package/.claude/scripts/check-task-status.sh +264 -0
  99. package/.claude/scripts/checklist-errors.sh +131 -0
  100. package/.claude/scripts/common.sh +570 -0
  101. package/.claude/scripts/consolidate-research.sh +182 -0
  102. package/.claude/scripts/create-requirement.sh +426 -0
  103. package/.claude/scripts/export-contracts.sh +117 -0
  104. package/.claude/scripts/extract-data-model.sh +78 -0
  105. package/.claude/scripts/generate-clarification-questions.sh +377 -0
  106. package/.claude/scripts/generate-clarification-report.sh +463 -0
  107. package/.claude/scripts/generate-quickstart.sh +146 -0
  108. package/.claude/scripts/generate-research-tasks.sh +157 -0
  109. package/.claude/scripts/generate-status-report.sh +523 -0
  110. package/.claude/scripts/generate-tech-analysis.sh +46 -0
  111. package/.claude/scripts/locate-requirement-in-roadmap.sh +233 -0
  112. package/.claude/scripts/manage-constitution.sh +602 -0
  113. package/.claude/scripts/mark-task-complete.sh +198 -0
  114. package/.claude/scripts/populate-research-tasks.sh +259 -0
  115. package/.claude/scripts/recover-workflow.sh +460 -0
  116. package/.claude/scripts/run-clarify-scan.sh +601 -0
  117. package/.claude/scripts/run-high-review.sh +62 -0
  118. package/.claude/scripts/run-problem-analysis.sh +68 -0
  119. package/.claude/scripts/setup-epic.sh +173 -0
  120. package/.claude/scripts/sync-roadmap-progress.sh +300 -0
  121. package/.claude/scripts/sync-task-marks.sh +199 -0
  122. package/.claude/scripts/test-clarify-scan.sh +515 -0
  123. package/.claude/scripts/update-agent-context.sh +806 -0
  124. package/.claude/scripts/validate-constitution.sh +567 -0
  125. package/.claude/scripts/validate-hooks.sh +487 -0
  126. package/.claude/scripts/validate-research.sh +332 -0
  127. package/.claude/scripts/validate-scope-boundary.sh +493 -0
  128. package/.claude/scripts/verify-setup.sh +37 -0
  129. package/.claude/settings.json +76 -0
  130. package/.claude/skills/_reference-implementations/README.md +96 -0
  131. package/.claude/skills/_reference-implementations/backend-express-prisma/SKILL.md +302 -0
  132. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/architecture-overview.md +451 -0
  133. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/async-and-errors.md +307 -0
  134. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/complete-examples.md +638 -0
  135. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/configuration.md +275 -0
  136. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/database-patterns.md +224 -0
  137. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/middleware-guide.md +213 -0
  138. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/routing-and-controllers.md +756 -0
  139. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/sentry-and-monitoring.md +336 -0
  140. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/services-and-repositories.md +789 -0
  141. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/testing-guide.md +235 -0
  142. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/validation-patterns.md +754 -0
  143. package/.claude/skills/_reference-implementations/frontend-react-mui/SKILL.md +399 -0
  144. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/common-patterns.md +331 -0
  145. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/complete-examples.md +872 -0
  146. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/component-patterns.md +502 -0
  147. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/data-fetching.md +767 -0
  148. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/file-organization.md +502 -0
  149. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/loading-and-error-states.md +501 -0
  150. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/performance.md +406 -0
  151. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/routing-guide.md +364 -0
  152. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/styling-guide.md +428 -0
  153. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/typescript-standards.md +418 -0
  154. package/.claude/skills/cc-devflow-orchestrator/SKILL.md +229 -0
  155. package/.claude/skills/constitution-guardian/SKILL.md +306 -0
  156. package/.claude/skills/devflow-constitution-quick-ref/SKILL.md +374 -0
  157. package/.claude/skills/devflow-file-standards/SKILL.md +353 -0
  158. package/.claude/skills/devflow-tdd-enforcer/SKILL.md +192 -0
  159. package/.claude/skills/skill-developer/ADVANCED.md +197 -0
  160. package/.claude/skills/skill-developer/HOOK_MECHANISMS.md +306 -0
  161. package/.claude/skills/skill-developer/PATTERNS_LIBRARY.md +152 -0
  162. package/.claude/skills/skill-developer/SKILL.md +426 -0
  163. package/.claude/skills/skill-developer/SKILL_RULES_REFERENCE.md +315 -0
  164. package/.claude/skills/skill-developer/TRIGGER_TYPES.md +305 -0
  165. package/.claude/skills/skill-developer/TROUBLESHOOTING.md +514 -0
  166. package/.claude/skills/skill-rules.json +213 -0
  167. package/.claude/tests/README.md +300 -0
  168. package/.claude/tests/TODO.md +69 -0
  169. package/.claude/tests/__pycache__/test_analyze_upgrade_impact.cpython-311-pytest-7.2.2.pyc +0 -0
  170. package/.claude/tests/__pycache__/test_consolidate_research.cpython-311-pytest-7.2.2.pyc +0 -0
  171. package/.claude/tests/__pycache__/test_export_contracts.cpython-311-pytest-7.2.2.pyc +0 -0
  172. package/.claude/tests/__pycache__/test_extract_data_model.cpython-311-pytest-7.2.2.pyc +0 -0
  173. package/.claude/tests/__pycache__/test_generate_quickstart.cpython-311-pytest-7.2.2.pyc +0 -0
  174. package/.claude/tests/__pycache__/test_generate_research_tasks.cpython-311-pytest-7.2.2.pyc +0 -0
  175. package/.claude/tests/constitution/run_all_constitution_tests.sh +111 -0
  176. package/.claude/tests/constitution/test_agent_assignment.sh +207 -0
  177. package/.claude/tests/constitution/test_article_coverage.sh +201 -0
  178. package/.claude/tests/constitution/test_template_completeness.sh +150 -0
  179. package/.claude/tests/constitution/test_version_consistency.sh +120 -0
  180. package/.claude/tests/fixtures/spec_delta_full.md +16 -0
  181. package/.claude/tests/fixtures/tasks_progress_sample.md +5 -0
  182. package/.claude/tests/run-all-tests.sh +229 -0
  183. package/.claude/tests/scripts/run.sh +30 -0
  184. package/.claude/tests/scripts/test-framework.sh +128 -0
  185. package/.claude/tests/scripts/test_check_prerequisites.sh +511 -0
  186. package/.claude/tests/scripts/test_check_prerequisites.sh.bak +504 -0
  187. package/.claude/tests/scripts/test_check_prerequisites.sh.bak2 +505 -0
  188. package/.claude/tests/scripts/test_check_prerequisites.sh.bak3 +506 -0
  189. package/.claude/tests/scripts/test_check_prerequisites.sh.bak4 +507 -0
  190. package/.claude/tests/scripts/test_check_prerequisites.sh.bak5 +508 -0
  191. package/.claude/tests/scripts/test_check_task_status.sh +499 -0
  192. package/.claude/tests/scripts/test_common.sh +244 -0
  193. package/.claude/tests/scripts/test_generate_status_report.sh +71 -0
  194. package/.claude/tests/scripts/test_mark_task_complete.sh +441 -0
  195. package/.claude/tests/scripts/test_mark_task_complete.sh.backup +410 -0
  196. package/.claude/tests/scripts/test_recover_workflow.sh +304 -0
  197. package/.claude/tests/scripts/test_setup_epic.sh +437 -0
  198. package/.claude/tests/scripts/test_sync_task_marks.sh +196 -0
  199. package/.claude/tests/scripts/test_validate_constitution.sh +74 -0
  200. package/.claude/tests/scripts/test_validate_research.sh +462 -0
  201. package/.claude/tests/slugify.bats +82 -0
  202. package/.claude/tests/test-framework.sh +732 -0
  203. package/.claude/tests/test_analyze_upgrade_impact.py +34 -0
  204. package/.claude/tests/test_consolidate_research.py +48 -0
  205. package/.claude/tests/test_export_contracts.py +43 -0
  206. package/.claude/tests/test_extract_data_model.py +33 -0
  207. package/.claude/tests/test_generate_quickstart.py +50 -0
  208. package/.claude/tests/test_generate_research_tasks.py +52 -0
  209. package/.claude/tsc-cache/6e64f818-6398-49ca-8623-581a9af85c44/edited-files.log +1 -0
  210. package/.claude/tsc-cache/795ba6e3-b98a-423b-bab2-51aa62812569/affected-repos.txt +1 -0
  211. package/.claude/tsc-cache/795ba6e3-b98a-423b-bab2-51aa62812569/edited-files.log +1 -0
  212. package/.claude/tsc-cache/ae335694-be5a-4ba4-a1a0-b676c09a7906/affected-repos.txt +1 -0
  213. package/.claude/tsc-cache/ae335694-be5a-4ba4-a1a0-b676c09a7906/edited-files.log +1 -0
  214. package/CHANGELOG.md +507 -0
  215. package/LICENSE +21 -0
  216. package/README.md +534 -0
  217. package/README.zh-CN.md +530 -0
  218. package/bin/adapt.js +240 -0
  219. package/bin/cc-devflow-cli.js +185 -0
  220. package/bin/cc-devflow.js +78 -0
  221. package/config/adapters.yml +5 -0
  222. package/config/schema/adapters.schema.json +44 -0
  223. package/docs/CLAUDE.md +26 -0
  224. package/docs/commands/README.md +61 -0
  225. package/docs/commands/README.zh-CN.md +55 -0
  226. package/docs/commands/core-roadmap.md +106 -0
  227. package/docs/commands/core-roadmap.zh-CN.md +102 -0
  228. package/docs/commands/core-style.md +405 -0
  229. package/docs/commands/core-style.zh-CN.md +405 -0
  230. package/docs/commands/flow-init.md +134 -0
  231. package/docs/commands/flow-init.zh-CN.md +163 -0
  232. package/docs/commands/flow-new.md +274 -0
  233. package/docs/commands/flow-new.zh-CN.md +270 -0
  234. package/docs/guides/getting-started.md +204 -0
  235. package/docs/guides/getting-started.zh-CN.md +152 -0
  236. package/lib/adapters/adapter-interface.js +57 -0
  237. package/lib/adapters/claude-adapter.js +74 -0
  238. package/lib/adapters/codex-adapter.js +40 -0
  239. package/lib/adapters/config-validator.js +68 -0
  240. package/lib/adapters/logger.js +42 -0
  241. package/lib/adapters/registry.js +153 -0
  242. package/lib/compiler/CLAUDE.md +92 -0
  243. package/lib/compiler/__tests__/drift.test.js +215 -0
  244. package/lib/compiler/__tests__/errors.test.js +184 -0
  245. package/lib/compiler/__tests__/incremental.test.js +174 -0
  246. package/lib/compiler/__tests__/integration.test.js +174 -0
  247. package/lib/compiler/__tests__/manifest.test.js +233 -0
  248. package/lib/compiler/__tests__/parser.test.js +456 -0
  249. package/lib/compiler/__tests__/schemas.test.js +301 -0
  250. package/lib/compiler/__tests__/skills-registry.test.js +125 -0
  251. package/lib/compiler/__tests__/transformer.test.js +286 -0
  252. package/lib/compiler/emitters/antigravity-emitter.js +171 -0
  253. package/lib/compiler/emitters/base-emitter.js +73 -0
  254. package/lib/compiler/emitters/codex-emitter.js +52 -0
  255. package/lib/compiler/emitters/cursor-emitter.js +31 -0
  256. package/lib/compiler/emitters/index.js +50 -0
  257. package/lib/compiler/emitters/qwen-emitter.js +39 -0
  258. package/lib/compiler/errors.js +119 -0
  259. package/lib/compiler/index.js +256 -0
  260. package/lib/compiler/manifest.js +242 -0
  261. package/lib/compiler/parser.js +258 -0
  262. package/lib/compiler/platforms.js +113 -0
  263. package/lib/compiler/resource-copier.js +320 -0
  264. package/lib/compiler/rules-emitters/__tests__/antigravity-rules-emitter.test.js +191 -0
  265. package/lib/compiler/rules-emitters/__tests__/codex-rules-emitter.test.js +109 -0
  266. package/lib/compiler/rules-emitters/__tests__/cursor-rules-emitter.test.js +123 -0
  267. package/lib/compiler/rules-emitters/__tests__/qwen-rules-emitter.test.js +123 -0
  268. package/lib/compiler/rules-emitters/antigravity-rules-emitter.js +253 -0
  269. package/lib/compiler/rules-emitters/base-rules-emitter.js +83 -0
  270. package/lib/compiler/rules-emitters/codex-rules-emitter.js +116 -0
  271. package/lib/compiler/rules-emitters/cursor-rules-emitter.js +98 -0
  272. package/lib/compiler/rules-emitters/index.js +71 -0
  273. package/lib/compiler/rules-emitters/qwen-rules-emitter.js +70 -0
  274. package/lib/compiler/schemas.js +144 -0
  275. package/lib/compiler/skills-registry.js +225 -0
  276. package/lib/compiler/transformer.js +236 -0
  277. package/package.json +50 -0
@@ -0,0 +1,562 @@
1
+ # PRD: {{REQ_ID}} - {{TITLE}}
2
+
3
+ **Status**: Draft
4
+ **Created**: {{DATE}}
5
+ **Owner**: {{OWNER}}
6
+ **Type**: Requirement
7
+
8
+ **Input**: 用户需求描述、研究材料 from `devflow/requirements/{{REQ_ID}}/research/`
9
+ **Prerequisites**: 需求 ID 已创建,初始需求信息已提供
10
+
11
+ ## Execution Flow (PRD 生成流程)
12
+ ```
13
+ 1. Load context and research materials
14
+ → Check for research/ directory
15
+ → Extract key insights from research materials
16
+ → Load user-provided requirement description
17
+ → If insufficient context: Ask clarifying questions
18
+
19
+ 2. Analyze requirements using INVEST criteria
20
+ → Break down into Independent user stories
21
+ → Ensure stories are Negotiable in details
22
+ → Verify each story has clear Value
23
+ → Make stories Estimable (size appropriate)
24
+ → Keep stories Small (completable in iteration)
25
+ → Ensure stories are Testable
26
+
27
+ 3. Generate user stories with acceptance criteria
28
+ → For each story: As a... I want... So that...
29
+ → For each story: Write Given-When-Then criteria
30
+ → Include happy path scenarios
31
+ → Include edge cases and error scenarios
32
+ → Mark priority (HIGH/MEDIUM/LOW)
33
+
34
+ 4. Define non-functional requirements
35
+ → Performance targets (response time, throughput)
36
+ → Security requirements (auth, encryption, validation)
37
+ → Scalability requirements
38
+ → Reliability requirements (uptime, backup)
39
+
40
+ 5. Identify technical constraints
41
+ → Technology stack requirements
42
+ → Integration constraints
43
+ → Platform constraints (browser, mobile, OS)
44
+ → Resource constraints (budget, timeline, team)
45
+
46
+ 6. Define success metrics
47
+ → Primary metrics with baseline and targets
48
+ → Secondary metrics
49
+ → Measurement methods
50
+ → Timeline for achievement
51
+
52
+ 7. Constitution Check (验证 Article I, III, X)
53
+ → Article I - Quality First: Requirements complete? No partial specs?
54
+ → Article X - Requirement Boundary: No speculative features? All unclear marked?
55
+ → Article III - Security First: Secret management defined? No hardcoded secrets?
56
+ → Document any violations with justification
57
+
58
+ 8. Validate completeness
59
+ → All user stories have acceptance criteria?
60
+ → All NFRs specified with targets?
61
+ → Success metrics defined?
62
+ → Dependencies identified?
63
+ → Risks assessed?
64
+ → If incomplete: ERROR "Complete missing sections"
65
+
66
+ 9. Return: SUCCESS (PRD ready for Epic planning)
67
+ ```
68
+
69
+ **重要**: 这是一个自执行模板。prd-writer agent 应该按照 Execution Flow 生成完整的 PRD.md 文件。
70
+
71
+ ---
72
+
73
+ ## 技术约束
74
+
75
+ | 约束类型 | 具体要求 | 优先级 |
76
+ | -------- | -------- | ------ |
77
+ | {{CONSTRAINT_TYPE}} | {{CONSTRAINT_DESCRIPTION}} | {{HIGH|MEDIUM|LOW}} |
78
+
79
+ ---
80
+
81
+ ## 背景与目标
82
+
83
+ ### 业务背景
84
+ {{BUSINESS_CONTEXT}}
85
+
86
+ ### 问题陈述
87
+ {{PROBLEM_STATEMENT}}
88
+
89
+ ### 目标
90
+ - **主要目标**: {{PRIMARY_GOAL}}
91
+ - **成功指标**: {{SUCCESS_METRICS_HIGH_LEVEL}}
92
+ - **影响范围**: {{SCOPE}}
93
+
94
+ ---
95
+
96
+ ## 用户故事与验收标准
97
+
98
+ <!--
99
+ ======================================================================
100
+ CRITICAL ANTI-EXPANSION RULES (需求不扩散关键规则)
101
+ ======================================================================
102
+
103
+ 1. **强制澄清机制 (MANDATORY CLARIFICATION)**
104
+ - ✅ 使用 [NEEDS CLARIFICATION: 具体问题] 标记所有不明确的地方
105
+ - ❌ 禁止猜测或假设用户未明确说明的功能
106
+ - 示例: [NEEDS CLARIFICATION: 认证方式未指定 - email/password, SSO, OAuth?]
107
+
108
+ 2. **用户故事优先级与独立性 (STORY PRIORITY & INDEPENDENCE)**
109
+ - ✅ 每个故事必须有明确优先级 (P1, P2, P3...)
110
+ - ✅ 每个故事必须独立可测试 (Independent Test标准)
111
+ - ✅ 每个故事必须能作为独立 MVP 交付
112
+ - ❌ 禁止添加用户未提及的"可能需要"功能
113
+
114
+ 3. **禁止技术细节 (NO IMPLEMENTATION DETAILS)**
115
+ - ✅ 专注于 WHAT (用户需要什么) 和 WHY (为什么需要)
116
+ - ❌ 禁止描述 HOW (技术栈、API、代码结构)
117
+ - 示例: ✅ "用户能够重置密码" ❌ "使用 JWT token 实现密码重置"
118
+
119
+ 4. **禁止推测性功能 (NO SPECULATIVE FEATURES)**
120
+ - ❌ 禁止 "可能需要"、"未来会"、"建议添加" 的功能
121
+ - ✅ 只包含用户明确提出或必需的功能
122
+ - ✅ 所有功能必须映射到用户故事
123
+
124
+ ======================================================================
125
+ -->
126
+
127
+ ### Story 1: {{STORY_TITLE_1}} (Priority: P1) 🎯 MVP
128
+
129
+ **As a** {{USER_ROLE}}
130
+ **I want** {{CAPABILITY}}
131
+ **So that** {{BENEFIT}}
132
+
133
+ **Why this priority**: {{REASON_FOR_P1_PRIORITY}}
134
+
135
+ **Independent Test**: {{HOW_TO_TEST_INDEPENDENTLY}}
136
+ <!-- 示例: "用户能够注册并登录,此时系统可交付为最小可用产品" -->
137
+
138
+ **Acceptance Criteria**:
139
+ ```gherkin
140
+ AC1: Given {{PRECONDITION}}
141
+ When {{ACTION}}
142
+ Then {{EXPECTED_RESULT}}
143
+
144
+ AC2: Given {{PRECONDITION}}
145
+ When {{ACTION}}
146
+ Then {{EXPECTED_RESULT}}
147
+
148
+ AC3: Given {{ERROR_CONDITION}}
149
+ When {{ACTION}}
150
+ Then {{ERROR_HANDLING}}
151
+ ```
152
+
153
+ **Priority**: P1 (Highest - MVP Critical)
154
+ **Complexity**: {{HIGH|MEDIUM|LOW}}
155
+
156
+ ---
157
+
158
+ ### Story 2: {{STORY_TITLE_2}} (Priority: P2)
159
+
160
+ **As a** {{USER_ROLE}}
161
+ **I want** {{CAPABILITY}}
162
+ **So that** {{BENEFIT}}
163
+
164
+ **Why this priority**: {{REASON_FOR_P2_PRIORITY}}
165
+
166
+ **Independent Test**: {{HOW_TO_TEST_INDEPENDENTLY}}
167
+ <!-- 示例: "用户能够创建和查看个人资料,独立于其他故事功能" -->
168
+
169
+ **Acceptance Criteria**:
170
+ ```gherkin
171
+ AC1: Given {{PRECONDITION}}
172
+ When {{ACTION}}
173
+ Then {{EXPECTED_RESULT}}
174
+
175
+ AC2: Given {{PRECONDITION}}
176
+ When {{ACTION}}
177
+ Then {{EXPECTED_RESULT}}
178
+ ```
179
+
180
+ **Priority**: P2 (High)
181
+ **Complexity**: {{HIGH|MEDIUM|LOW}}
182
+
183
+ ---
184
+
185
+ ### Story 3: {{STORY_TITLE_3}} (Priority: P3)
186
+
187
+ **As a** {{USER_ROLE}}
188
+ **I want** {{CAPABILITY}}
189
+ **So that** {{BENEFIT}}
190
+
191
+ **Why this priority**: {{REASON_FOR_P3_PRIORITY}}
192
+
193
+ **Independent Test**: {{HOW_TO_TEST_INDEPENDENTLY}}
194
+
195
+ **Acceptance Criteria**:
196
+ ```gherkin
197
+ AC1: Given {{PRECONDITION}}
198
+ When {{ACTION}}
199
+ Then {{EXPECTED_RESULT}}
200
+ ```
201
+
202
+ **Priority**: P3 (Medium)
203
+ **Complexity**: {{HIGH|MEDIUM|LOW}}
204
+
205
+ ---
206
+
207
+ ### 边界案例处理
208
+ - **错误处理**: {{ERROR_HANDLING_REQUIREMENTS}}
209
+ - **权限控制**: {{PERMISSION_REQUIREMENTS}}
210
+ - **数据验证**: {{VALIDATION_REQUIREMENTS}}
211
+ - **边界条件**: {{EDGE_CASES}}
212
+
213
+ ### 澄清标记示例
214
+ *使用 [NEEDS CLARIFICATION] 标记所有不明确的需求*
215
+
216
+ **功能需求澄清示例**:
217
+ - 用户认证方式: [NEEDS CLARIFICATION: 认证方式未指定 - email/password, SSO, OAuth, 还是多种方式?]
218
+ - 数据保留期限: [NEEDS CLARIFICATION: 用户数据保留时长未指定 - 永久, 1年, 还是可配置?]
219
+ - 并发处理: [NEEDS CLARIFICATION: 同一用户多设备登录策略未指定 - 允许并发还是踢出旧会话?]
220
+
221
+ **非功能需求澄清示例**:
222
+ - 性能目标: [NEEDS CLARIFICATION: 响应时间目标未指定 - <100ms, <500ms, 还是其他?]
223
+ - 用户规模: [NEEDS CLARIFICATION: 预期用户量级未指定 - 百人, 千人, 还是万人级?]
224
+ - 可用性要求: [NEEDS CLARIFICATION: 服务可用性目标未指定 - 99%, 99.9%, 还是99.99%?]
225
+
226
+ **⚠️ 重要**: 所有 [NEEDS CLARIFICATION] 标记必须在 Epic 规划前解决
227
+
228
+ ---
229
+
230
+ ## 非功能性要求
231
+
232
+ ### 性能要求
233
+ | 指标 | 目标值 | 关键性 |
234
+ |------|--------|--------|
235
+ | 响应时间 (p95) | {{RESPONSE_TIME}} | {{HIGH|MEDIUM|LOW}} |
236
+ | 吞吐量 | {{THROUGHPUT}} | {{HIGH|MEDIUM|LOW}} |
237
+ | 并发用户数 | {{CONCURRENT_USERS}} | {{HIGH|MEDIUM|LOW}} |
238
+ | 数据处理量 | {{DATA_VOLUME}} | {{HIGH|MEDIUM|LOW}} |
239
+
240
+ ### 安全要求
241
+ - [ ] **身份验证**: {{AUTH_METHOD}}
242
+ - [ ] **授权机制**: {{AUTHZ_METHOD}}
243
+ - [ ] **数据加密**: {{ENCRYPTION_REQUIREMENTS}}
244
+ - [ ] **输入验证**: 所有用户输入必须验证和清理
245
+ - [ ] **审计日志**: {{AUDIT_REQUIREMENTS}}
246
+ - [ ] **密钥管理**: NO HARDCODED SECRETS - 使用环境变量或密钥管理系统
247
+
248
+ ### 可扩展性要求
249
+ - **水平扩展**: {{HORIZONTAL_SCALING}}
250
+ - **垂直扩展**: {{VERTICAL_SCALING}}
251
+ - **数据库扩展**: {{DB_SCALING}}
252
+
253
+ ### 可靠性要求
254
+ - **可用性目标**: {{UPTIME_TARGET}}
255
+ - **数据备份**: {{BACKUP_STRATEGY}}
256
+ - **灾难恢复**: {{DR_STRATEGY}}
257
+ - **错误处理**: {{ERROR_HANDLING_STRATEGY}}
258
+
259
+ ### 可观测性要求
260
+ - **日志记录**: {{LOGGING_REQUIREMENTS}}
261
+ - **监控指标**: {{MONITORING_METRICS}}
262
+ - **告警设置**: {{ALERTING_RULES}}
263
+ - **追踪**: {{TRACING_REQUIREMENTS}}
264
+
265
+ ### 可访问性要求
266
+ - **无障碍标准**: {{ACCESSIBILITY_STANDARDS}}
267
+ - **多语言支持**: {{I18N_REQUIREMENTS}}
268
+ - **设备兼容性**: {{DEVICE_COMPATIBILITY}}
269
+
270
+ ---
271
+
272
+ ## 技术约束
273
+
274
+ ### 技术栈
275
+ - **语言/框架**: {{LANGUAGE_FRAMEWORK}}
276
+ - **数据库**: {{DATABASE}}
277
+ - **基础设施**: {{INFRASTRUCTURE}}
278
+ - **第三方服务**: {{THIRD_PARTY_SERVICES}}
279
+
280
+ ### 架构约束
281
+ - **必须使用**: {{REQUIRED_TECH}}
282
+ - **禁止使用**: {{FORBIDDEN_TECH}}
283
+ - **集成要求**: {{INTEGRATION_REQUIREMENTS}}
284
+ - **数据格式**: {{DATA_FORMAT_REQUIREMENTS}}
285
+
286
+ ### 平台约束
287
+ - **浏览器支持**: {{BROWSER_SUPPORT}}
288
+ - **移动端支持**: {{MOBILE_SUPPORT}}
289
+ - **操作系统**: {{OS_SUPPORT}}
290
+
291
+ ### 资源约束
292
+ - **预算限制**: {{BUDGET}}
293
+ - **时间限制**: {{TIMELINE}}
294
+ - **团队规模**: {{TEAM_SIZE}}
295
+
296
+ ---
297
+
298
+ ## 成功指标
299
+
300
+ ### 主要指标
301
+ | 指标 | 基线 | 目标 | 时间线 | 测量方法 |
302
+ |------|------|------|--------|----------|
303
+ | {{METRIC_1}} | {{BASELINE}} | {{TARGET}} | {{TIMELINE}} | {{METHOD}} |
304
+ | {{METRIC_2}} | {{BASELINE}} | {{TARGET}} | {{TIMELINE}} | {{METHOD}} |
305
+ | {{METRIC_3}} | {{BASELINE}} | {{TARGET}} | {{TIMELINE}} | {{METHOD}} |
306
+
307
+ ### 次要指标
308
+ | 指标 | 基线 | 目标 | 时间线 | 测量方法 |
309
+ |------|------|------|--------|----------|
310
+ | {{METRIC_4}} | {{BASELINE}} | {{TARGET}} | {{TIMELINE}} | {{METHOD}} |
311
+
312
+ ---
313
+
314
+ ## Constitution Check (宪法符合性检查)
315
+
316
+ *GATE: 必须在 Epic 规划前通过*
317
+
318
+ **Reference**: `.claude/constitution/project-constitution.md` (v2.0.0)
319
+
320
+ ### Article I: Quality First (质量至上)
321
+ - [ ] **I.1 - NO PARTIAL IMPLEMENTATION**: 需求定义完整且明确?无占位符和模糊表述?
322
+ - [ ] **I.3 - No Simplification**: 避免"暂时简化,后续完善"的描述?
323
+ - [ ] 用户故事遵循 INVEST 准则(Independent, Negotiable, Valuable, Estimable, Small, Testable)?
324
+ - [ ] 验收标准具体、可测试、可衡量?
325
+
326
+ ### Article X: Requirement Boundary (需求边界) - CRITICAL
327
+ - [ ] **X.1 - Forced Clarification**: 所有不明确之处标记 `[NEEDS CLARIFICATION: 具体问题]`?
328
+ - [ ] **X.2 - No Speculative Features**: 无"可能需要"、"未来会"、"建议添加"的功能?
329
+ - [ ] **X.3 - User Story Independence**: 每个故事有明确优先级(P1, P2, P3...)?
330
+ - [ ] **X.3 - Independent Test**: 每个故事有独立测试标准?
331
+
332
+ ### Article II: Architectural Consistency (架构一致性)
333
+ - [ ] **II.1 - NO CODE DUPLICATION**: 识别可复用的现有系统和组件?
334
+ - [ ] **II.3 - Anti-Over-Engineering**: 解决方案适合问题规模?无过度设计?
335
+ - [ ] **II.4 - Single Responsibility**: 清晰的边界和职责划分?
336
+ - [ ] 模块化和可扩展性考虑合理?
337
+
338
+ ### Article III: Security First (安全优先)
339
+ - [ ] **III.1 - NO HARDCODED SECRETS**: 定义了密钥管理策略(环境变量/密钥服务)?
340
+ - [ ] **III.2 - Input Validation**: 输入验证需求明确?
341
+ - [ ] **III.3 - Least Privilege**: 身份验证/授权机制清晰?
342
+ - [ ] **III.4 - Secure by Default**: 数据加密策略定义?
343
+
344
+ ### Article IV: Performance Accountability (性能责任)
345
+ - [ ] **IV.1 - NO RESOURCE LEAKS**: 考虑了资源管理(连接、文件句柄等)?
346
+ - [ ] **IV.2 - Algorithm Efficiency**: 性能目标现实且可测量?
347
+ - [ ] **IV.4 - Caching Strategy**: 规划了监控和告警?
348
+
349
+ ### Article V: Maintainability (可维护性)
350
+ - [ ] **V.1 - NO DEAD CODE**: 避免不必要的功能?仅实现明确需求?
351
+ - [ ] **V.2 - Separation of Concerns**: 代码易于理解和修改?
352
+ - [ ] **V.4 - File Size Limits**: 遵循单一职责原则?
353
+
354
+ ### Constitutional Violations (宪法违规记录)
355
+ *仅在有需要说明的宪法违规时填写*
356
+
357
+ **重要**: 任何违规都必须有充分理由,否则 PRD 不通过
358
+
359
+ | 违规的 Article | 具体违规内容 | 为何需要 | 如何缓解 |
360
+ |----------------|-------------|----------|----------|
361
+ | {{ARTICLE_NUM}} | {{VIOLATION_DETAIL}} | {{JUSTIFICATION}} | {{MITIGATION}} |
362
+
363
+ **示例**:
364
+ | 违规的 Article | 具体违规内容 | 为何需要 | 如何缓解 |
365
+ |----------------|-------------|----------|----------|
366
+ | Article X.2 | 包含"未来可能支持移动端"的描述 | 产品规划需要体现长期愿景 | 移至"未来展望"章节,不纳入当前需求范围 |
367
+
368
+ ---
369
+
370
+ ## 依赖关系
371
+
372
+ ### 上游依赖
373
+ *此需求实现前必须完成的依赖*
374
+ - {{UPSTREAM_DEPENDENCY_1}}
375
+ - {{UPSTREAM_DEPENDENCY_2}}
376
+
377
+ ### 下游依赖
378
+ *依赖此需求的其他需求*
379
+ - {{DOWNSTREAM_DEPENDENCY_1}}
380
+ - {{DOWNSTREAM_DEPENDENCY_2}}
381
+
382
+ ### 外部依赖
383
+ *第三方或外部系统依赖*
384
+ - {{EXTERNAL_DEPENDENCY_1}}
385
+ - {{EXTERNAL_DEPENDENCY_2}}
386
+
387
+ ---
388
+
389
+ ## 风险评估与缓解
390
+
391
+ ### 技术风险
392
+ | 风险 | 可能性 | 影响 | 缓解措施 |
393
+ |------|--------|------|----------|
394
+ | {{TECH_RISK_1}} | {{L/M/H}} | {{L/M/H}} | {{MITIGATION}} |
395
+ | {{TECH_RISK_2}} | {{L/M/H}} | {{L/M/H}} | {{MITIGATION}} |
396
+
397
+ ### 业务风险
398
+ | 风险 | 可能性 | 影响 | 缓解措施 |
399
+ |------|--------|------|----------|
400
+ | {{BIZ_RISK_1}} | {{L/M/H}} | {{L/M/H}} | {{MITIGATION}} |
401
+
402
+ ### 进度风险
403
+ | 风险 | 可能性 | 影响 | 缓解措施 |
404
+ |------|--------|------|----------|
405
+ | {{SCHEDULE_RISK_1}} | {{L/M/H}} | {{L/M/H}} | {{MITIGATION}} |
406
+
407
+ ---
408
+
409
+ ## 范围界定
410
+
411
+ ### 包含内容
412
+ - {{IN_SCOPE_1}}
413
+ - {{IN_SCOPE_2}}
414
+ - {{IN_SCOPE_3}}
415
+
416
+ ### 明确不包含
417
+ *明确列出不在此需求范围内的内容*
418
+ - {{OUT_OF_SCOPE_1}}
419
+ - {{OUT_OF_SCOPE_2}}
420
+ - {{OUT_OF_SCOPE_3}}
421
+
422
+ ---
423
+
424
+ ## 假设条件
425
+
426
+ *创建 PRD 时的关键假设*
427
+ - {{ASSUMPTION_1}}
428
+ - {{ASSUMPTION_2}}
429
+ - {{ASSUMPTION_3}}
430
+
431
+ ---
432
+
433
+ ## 未决问题
434
+
435
+ *Epic 规划前需要回答的问题*
436
+ - [ ] **Q1**: {{QUESTION_1}}
437
+ - 负责人: {{OWNER}}
438
+ - 截止日期: {{DEADLINE}}
439
+
440
+ - [ ] **Q2**: {{QUESTION_2}}
441
+ - 负责人: {{OWNER}}
442
+ - 截止日期: {{DEADLINE}}
443
+
444
+ ---
445
+
446
+ ## 发布计划
447
+
448
+ ### 里程碑
449
+ - **Phase 1**: {{PHASE_1_DELIVERABLES}} - {{PHASE_1_DATE}}
450
+ - **Phase 2**: {{PHASE_2_DELIVERABLES}} - {{PHASE_2_DATE}}
451
+ - **Phase 3**: {{PHASE_3_DELIVERABLES}} - {{PHASE_3_DATE}}
452
+
453
+ ### 回滚计划
454
+ - **回滚触发条件**: {{ROLLBACK_CONDITIONS}}
455
+ - **回滚步骤**: {{ROLLBACK_STEPS}}
456
+ - **数据处理**: {{DATA_ROLLBACK_STRATEGY}}
457
+
458
+ ---
459
+
460
+ ## Progress Tracking (进度跟踪)
461
+
462
+ *在 PRD 创建过程中更新*
463
+
464
+ ### 完成状态
465
+ - [ ] 背景与目标明确
466
+ - [ ] 用户故事定义(INVEST 合规)
467
+ - [ ] 验收标准编写(Given-When-Then)
468
+ - [ ] 功能需求文档化
469
+ - [ ] 非功能需求规定
470
+ - [ ] 技术约束识别
471
+ - [ ] 成功指标定义
472
+ - [ ] Constitution Check 通过
473
+ - [ ] 依赖关系映射
474
+ - [ ] 风险评估完成
475
+ - [ ] 范围明确界定
476
+ - [ ] 未决问题跟踪
477
+
478
+ ### 质量检查
479
+ - [ ] 所有用户故事有验收标准
480
+ - [ ] 所有 NFR 有量化目标
481
+ - [ ] 性能目标可测量
482
+ - [ ] 安全要求完整
483
+ - [ ] 无模糊需求
484
+ - [ ] 所有缩写已定义
485
+
486
+ ### 闸门状态
487
+ - [ ] Constitution Check: {{PASS|FAIL}}
488
+ - [ ] 完整性验证: {{PASS|FAIL}}
489
+ - [ ] 质量检查: {{PASS|FAIL}}
490
+
491
+ **准备好进行 Epic 规划**: {{YES|NO}}
492
+
493
+ ---
494
+
495
+ ## 附录
496
+
497
+ ### 研究材料
498
+ *链接到研究文档*
499
+ - [Research 1](research/{{REQ_ID}}_1.md)
500
+ - [Research 2](research/{{REQ_ID}}_2.md)
501
+
502
+ ### 参考资料
503
+ *外部参考和文档*
504
+ - {{REFERENCE_1}}
505
+ - {{REFERENCE_2}}
506
+
507
+ ### 术语表
508
+ *定义领域特定术语*
509
+ - **{{TERM_1}}**: {{DEFINITION}}
510
+ - **{{TERM_2}}**: {{DEFINITION}}
511
+
512
+ ---
513
+
514
+ **Generated by**: prd-writer agent
515
+ **Based on**: CC-DevFlow Constitution v2.0.0
516
+ **Template Version**: 2.0.0 (Self-Executable)
517
+ **Next Step**: Run planner agent to generate EPIC.md and TASKS.md
518
+
519
+ ---
520
+
521
+ ## Validation Checklist (验证清单)
522
+
523
+ *GATE: PRD 标记为完成前检查*
524
+
525
+ ### 需求不扩散验证 ⚠️ CRITICAL
526
+ - [ ] **NO SPECULATION**: 所有功能都由用户明确提出或必需
527
+ - [ ] **ALL CLARIFIED**: 没有未解决的 [NEEDS CLARIFICATION] 标记
528
+ - [ ] **NO TECH DETAILS**: 没有技术实现细节(API, 数据库, 框架等)
529
+ - [ ] **STORY INDEPENDENCE**: 每个故事都有 Independent Test 标准
530
+ - [ ] **PRIORITY ASSIGNED**: 所有故事都有明确优先级 (P1, P2, P3...)
531
+ - [ ] **MVP IDENTIFIED**: P1 故事能够作为独立 MVP 交付
532
+
533
+ ### 用户故事质量 (INVEST 原则)
534
+ - [ ] **Independent**: 每个故事可独立交付和测试
535
+ - [ ] **Negotiable**: 细节可以讨论,实现方式灵活
536
+ - [ ] **Valuable**: 有明确的用户/业务价值
537
+ - [ ] **Estimable**: 可以估算工作量(不太大不太小)
538
+ - [ ] **Small**: 可在一个迭代内完成
539
+ - [ ] **Testable**: 有明确的验收标准和测试方法
540
+
541
+ ### 验收标准质量
542
+ - [ ] 使用 Given-When-Then 格式
543
+ - [ ] 包含正常流程(Happy Path)
544
+ - [ ] 包含边界情况(Edge Cases)
545
+ - [ ] 包含错误场景(Error Handling)
546
+ - [ ] 具体且可测试(非模糊描述)
547
+ - [ ] 每个故事至少 2 个验收标准
548
+
549
+ ### 完整性检查
550
+ - [ ] 所有必需章节已填写
551
+ - [ ] 没有 {{PLACEHOLDER}} 未替换
552
+ - [ ] 所有依赖已识别(上游、下游、外部)
553
+ - [ ] 所有风险已评估(技术、业务、进度)
554
+ - [ ] 范围明确界定(包含 + 不包含)
555
+ - [ ] 假设条件已列出
556
+
557
+ ### Constitution 符合性
558
+ - [ ] 通过所有宪法检查
559
+ - [ ] 违规已文档化并说明理由
560
+ - [ ] 安全要求符合 NO HARDCODED SECRETS
561
+ - [ ] 质量要求符合 NO PARTIAL IMPLEMENTATION
562
+ - [ ] 架构要求符合 NO OVER-ENGINEERING