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.
- package/.claude/CLAUDE.md +83 -0
- package/.claude/agents/architecture-designer.md +443 -0
- package/.claude/agents/bug-analyzer.md +382 -0
- package/.claude/agents/checklist-agent.md +175 -0
- package/.claude/agents/clarify-analyst.md +50 -0
- package/.claude/agents/code-reviewer.md +71 -0
- package/.claude/agents/codex-analyzer.md +39 -0
- package/.claude/agents/compatibility-checker.md +580 -0
- package/.claude/agents/consistency-checker.md +532 -0
- package/.claude/agents/impact-analyzer.md +441 -0
- package/.claude/agents/planner.md +230 -0
- package/.claude/agents/prd-writer.md +320 -0
- package/.claude/agents/project-guidelines-generator.md +1329 -0
- package/.claude/agents/qa-tester.md +313 -0
- package/.claude/agents/release-manager.md +295 -0
- package/.claude/agents/security-reviewer.md +314 -0
- package/.claude/agents/style-guide-generator.md +458 -0
- package/.claude/agents/tech-architect.md +516 -0
- package/.claude/agents/ui-designer.md +485 -0
- package/.claude/commands/code-review-high.md +58 -0
- package/.claude/commands/core-architecture.md +429 -0
- package/.claude/commands/core-guidelines.md +486 -0
- package/.claude/commands/core-roadmap.md +439 -0
- package/.claude/commands/core-style.md +293 -0
- package/.claude/commands/flow-archive.md +245 -0
- package/.claude/commands/flow-checklist.md +260 -0
- package/.claude/commands/flow-clarify.md +136 -0
- package/.claude/commands/flow-constitution.md +82 -0
- package/.claude/commands/flow-dev.md +134 -0
- package/.claude/commands/flow-epic.md +150 -0
- package/.claude/commands/flow-fix.md +104 -0
- package/.claude/commands/flow-ideate.md +214 -0
- package/.claude/commands/flow-init.md +313 -0
- package/.claude/commands/flow-new.md +394 -0
- package/.claude/commands/flow-prd.md +131 -0
- package/.claude/commands/flow-qa.md +93 -0
- package/.claude/commands/flow-release.md +92 -0
- package/.claude/commands/flow-restart.md +98 -0
- package/.claude/commands/flow-status.md +64 -0
- package/.claude/commands/flow-tech.md +142 -0
- package/.claude/commands/flow-ui.md +189 -0
- package/.claude/commands/flow-update.md +111 -0
- package/.claude/commands/flow-upgrade.md +115 -0
- package/.claude/commands/flow-verify.md +96 -0
- package/.claude/commands/problem-analyzer.md +60 -0
- package/.claude/config/quality-rules.yml +161 -0
- package/.claude/docs/SPEC_KIT_CONSTITUTION_ANALYSIS.md +426 -0
- package/.claude/docs/design/consistency-conflict-detection-algorithms.md +658 -0
- package/.claude/docs/design/intent-driven-input-design.md +380 -0
- package/.claude/docs/design/prd-version-management-design.md +437 -0
- package/.claude/docs/guides/INIT_TROUBLESHOOTING.md +117 -0
- package/.claude/docs/guides/NEW_TROUBLESHOOTING.md +151 -0
- package/.claude/docs/guides/ROADMAP_TROUBLESHOOTING.md +188 -0
- package/.claude/docs/guides/TASK_COMPLETION_MARKING.md +338 -0
- package/.claude/docs/templates/ARCHITECTURE_TEMPLATE.md +633 -0
- package/.claude/docs/templates/BACKLOG_TEMPLATE.md +261 -0
- package/.claude/docs/templates/CHECKLIST_TEMPLATE.md +52 -0
- package/.claude/docs/templates/CLARIFICATION_REPORT_TEMPLATE.md +206 -0
- package/.claude/docs/templates/CODE_REVIEW_TEMPLATE.md +71 -0
- package/.claude/docs/templates/EPIC_TEMPLATE.md +805 -0
- package/.claude/docs/templates/INIT_FLOW_TEMPLATE.md +213 -0
- package/.claude/docs/templates/INTENT_CLARIFICATION_TEMPLATE.md +57 -0
- package/.claude/docs/templates/NEW_ORCHESTRATION_TEMPLATE.md +148 -0
- package/.claude/docs/templates/PRD_TEMPLATE.md +562 -0
- package/.claude/docs/templates/RESEARCH_TEMPLATE.md +276 -0
- package/.claude/docs/templates/REVIEW-HIGH.md +57 -0
- package/.claude/docs/templates/ROADMAP_DIALOGUE_TEMPLATE.md +198 -0
- package/.claude/docs/templates/ROADMAP_TEMPLATE.md +310 -0
- package/.claude/docs/templates/STYLE_TEMPLATE.md +1266 -0
- package/.claude/docs/templates/TASKS_TEMPLATE.md +523 -0
- package/.claude/docs/templates/TECH_DESIGN_TEMPLATE.md +1019 -0
- package/.claude/docs/templates/UI_PROTOTYPE_TEMPLATE.md +1436 -0
- package/.claude/guides/agent-guides/agent-coordination-guide.md +459 -0
- package/.claude/guides/project-guidelines-system.md +463 -0
- package/.claude/guides/technical-guides/datetime-handling-guide.md +563 -0
- package/.claude/guides/technical-guides/git-github-guide.md +642 -0
- package/.claude/guides/technical-guides/test-execution-guide.md +618 -0
- package/.claude/guides/workflow-guides/bug-fix-orchestrator.md +217 -0
- package/.claude/guides/workflow-guides/flow-orchestrator.md +282 -0
- package/.claude/hooks/checklist-gate.js +397 -0
- package/.claude/hooks/error-handling-reminder.sh +12 -0
- package/.claude/hooks/error-handling-reminder.ts +459 -0
- package/.claude/hooks/post-tool-use-tracker.sh +280 -0
- package/.claude/hooks/pre-tool-use-guardrail.sh +36 -0
- package/.claude/hooks/pre-tool-use-guardrail.ts +342 -0
- package/.claude/hooks/skill-activation-prompt.sh +36 -0
- package/.claude/hooks/skill-activation-prompt.ts +214 -0
- package/.claude/hooks/state/skills-used-test-guard.json +3 -0
- package/.claude/rules/devflow-conventions.md +305 -0
- package/.claude/rules/project-constitution.md +748 -0
- package/.claude/schemas/constitution.schema.json +43 -0
- package/.claude/scripts/analyze-upgrade-impact.sh +200 -0
- package/.claude/scripts/archive-requirement.sh +351 -0
- package/.claude/scripts/calculate-checklist-completion.sh +243 -0
- package/.claude/scripts/calculate-quarter.sh +206 -0
- package/.claude/scripts/check-dependencies.sh +409 -0
- package/.claude/scripts/check-prerequisites.sh +232 -0
- package/.claude/scripts/check-task-status.sh +264 -0
- package/.claude/scripts/checklist-errors.sh +131 -0
- package/.claude/scripts/common.sh +570 -0
- package/.claude/scripts/consolidate-research.sh +182 -0
- package/.claude/scripts/create-requirement.sh +426 -0
- package/.claude/scripts/export-contracts.sh +117 -0
- package/.claude/scripts/extract-data-model.sh +78 -0
- package/.claude/scripts/generate-clarification-questions.sh +377 -0
- package/.claude/scripts/generate-clarification-report.sh +463 -0
- package/.claude/scripts/generate-quickstart.sh +146 -0
- package/.claude/scripts/generate-research-tasks.sh +157 -0
- package/.claude/scripts/generate-status-report.sh +523 -0
- package/.claude/scripts/generate-tech-analysis.sh +46 -0
- package/.claude/scripts/locate-requirement-in-roadmap.sh +233 -0
- package/.claude/scripts/manage-constitution.sh +602 -0
- package/.claude/scripts/mark-task-complete.sh +198 -0
- package/.claude/scripts/populate-research-tasks.sh +259 -0
- package/.claude/scripts/recover-workflow.sh +460 -0
- package/.claude/scripts/run-clarify-scan.sh +601 -0
- package/.claude/scripts/run-high-review.sh +62 -0
- package/.claude/scripts/run-problem-analysis.sh +68 -0
- package/.claude/scripts/setup-epic.sh +173 -0
- package/.claude/scripts/sync-roadmap-progress.sh +300 -0
- package/.claude/scripts/sync-task-marks.sh +199 -0
- package/.claude/scripts/test-clarify-scan.sh +515 -0
- package/.claude/scripts/update-agent-context.sh +806 -0
- package/.claude/scripts/validate-constitution.sh +567 -0
- package/.claude/scripts/validate-hooks.sh +487 -0
- package/.claude/scripts/validate-research.sh +332 -0
- package/.claude/scripts/validate-scope-boundary.sh +493 -0
- package/.claude/scripts/verify-setup.sh +37 -0
- package/.claude/settings.json +76 -0
- package/.claude/skills/_reference-implementations/README.md +96 -0
- package/.claude/skills/_reference-implementations/backend-express-prisma/SKILL.md +302 -0
- package/.claude/skills/_reference-implementations/backend-express-prisma/resources/architecture-overview.md +451 -0
- package/.claude/skills/_reference-implementations/backend-express-prisma/resources/async-and-errors.md +307 -0
- package/.claude/skills/_reference-implementations/backend-express-prisma/resources/complete-examples.md +638 -0
- package/.claude/skills/_reference-implementations/backend-express-prisma/resources/configuration.md +275 -0
- package/.claude/skills/_reference-implementations/backend-express-prisma/resources/database-patterns.md +224 -0
- package/.claude/skills/_reference-implementations/backend-express-prisma/resources/middleware-guide.md +213 -0
- package/.claude/skills/_reference-implementations/backend-express-prisma/resources/routing-and-controllers.md +756 -0
- package/.claude/skills/_reference-implementations/backend-express-prisma/resources/sentry-and-monitoring.md +336 -0
- package/.claude/skills/_reference-implementations/backend-express-prisma/resources/services-and-repositories.md +789 -0
- package/.claude/skills/_reference-implementations/backend-express-prisma/resources/testing-guide.md +235 -0
- package/.claude/skills/_reference-implementations/backend-express-prisma/resources/validation-patterns.md +754 -0
- package/.claude/skills/_reference-implementations/frontend-react-mui/SKILL.md +399 -0
- package/.claude/skills/_reference-implementations/frontend-react-mui/resources/common-patterns.md +331 -0
- package/.claude/skills/_reference-implementations/frontend-react-mui/resources/complete-examples.md +872 -0
- package/.claude/skills/_reference-implementations/frontend-react-mui/resources/component-patterns.md +502 -0
- package/.claude/skills/_reference-implementations/frontend-react-mui/resources/data-fetching.md +767 -0
- package/.claude/skills/_reference-implementations/frontend-react-mui/resources/file-organization.md +502 -0
- package/.claude/skills/_reference-implementations/frontend-react-mui/resources/loading-and-error-states.md +501 -0
- package/.claude/skills/_reference-implementations/frontend-react-mui/resources/performance.md +406 -0
- package/.claude/skills/_reference-implementations/frontend-react-mui/resources/routing-guide.md +364 -0
- package/.claude/skills/_reference-implementations/frontend-react-mui/resources/styling-guide.md +428 -0
- package/.claude/skills/_reference-implementations/frontend-react-mui/resources/typescript-standards.md +418 -0
- package/.claude/skills/cc-devflow-orchestrator/SKILL.md +229 -0
- package/.claude/skills/constitution-guardian/SKILL.md +306 -0
- package/.claude/skills/devflow-constitution-quick-ref/SKILL.md +374 -0
- package/.claude/skills/devflow-file-standards/SKILL.md +353 -0
- package/.claude/skills/devflow-tdd-enforcer/SKILL.md +192 -0
- package/.claude/skills/skill-developer/ADVANCED.md +197 -0
- package/.claude/skills/skill-developer/HOOK_MECHANISMS.md +306 -0
- package/.claude/skills/skill-developer/PATTERNS_LIBRARY.md +152 -0
- package/.claude/skills/skill-developer/SKILL.md +426 -0
- package/.claude/skills/skill-developer/SKILL_RULES_REFERENCE.md +315 -0
- package/.claude/skills/skill-developer/TRIGGER_TYPES.md +305 -0
- package/.claude/skills/skill-developer/TROUBLESHOOTING.md +514 -0
- package/.claude/skills/skill-rules.json +213 -0
- package/.claude/tests/README.md +300 -0
- package/.claude/tests/TODO.md +69 -0
- package/.claude/tests/__pycache__/test_analyze_upgrade_impact.cpython-311-pytest-7.2.2.pyc +0 -0
- package/.claude/tests/__pycache__/test_consolidate_research.cpython-311-pytest-7.2.2.pyc +0 -0
- package/.claude/tests/__pycache__/test_export_contracts.cpython-311-pytest-7.2.2.pyc +0 -0
- package/.claude/tests/__pycache__/test_extract_data_model.cpython-311-pytest-7.2.2.pyc +0 -0
- package/.claude/tests/__pycache__/test_generate_quickstart.cpython-311-pytest-7.2.2.pyc +0 -0
- package/.claude/tests/__pycache__/test_generate_research_tasks.cpython-311-pytest-7.2.2.pyc +0 -0
- package/.claude/tests/constitution/run_all_constitution_tests.sh +111 -0
- package/.claude/tests/constitution/test_agent_assignment.sh +207 -0
- package/.claude/tests/constitution/test_article_coverage.sh +201 -0
- package/.claude/tests/constitution/test_template_completeness.sh +150 -0
- package/.claude/tests/constitution/test_version_consistency.sh +120 -0
- package/.claude/tests/fixtures/spec_delta_full.md +16 -0
- package/.claude/tests/fixtures/tasks_progress_sample.md +5 -0
- package/.claude/tests/run-all-tests.sh +229 -0
- package/.claude/tests/scripts/run.sh +30 -0
- package/.claude/tests/scripts/test-framework.sh +128 -0
- package/.claude/tests/scripts/test_check_prerequisites.sh +511 -0
- package/.claude/tests/scripts/test_check_prerequisites.sh.bak +504 -0
- package/.claude/tests/scripts/test_check_prerequisites.sh.bak2 +505 -0
- package/.claude/tests/scripts/test_check_prerequisites.sh.bak3 +506 -0
- package/.claude/tests/scripts/test_check_prerequisites.sh.bak4 +507 -0
- package/.claude/tests/scripts/test_check_prerequisites.sh.bak5 +508 -0
- package/.claude/tests/scripts/test_check_task_status.sh +499 -0
- package/.claude/tests/scripts/test_common.sh +244 -0
- package/.claude/tests/scripts/test_generate_status_report.sh +71 -0
- package/.claude/tests/scripts/test_mark_task_complete.sh +441 -0
- package/.claude/tests/scripts/test_mark_task_complete.sh.backup +410 -0
- package/.claude/tests/scripts/test_recover_workflow.sh +304 -0
- package/.claude/tests/scripts/test_setup_epic.sh +437 -0
- package/.claude/tests/scripts/test_sync_task_marks.sh +196 -0
- package/.claude/tests/scripts/test_validate_constitution.sh +74 -0
- package/.claude/tests/scripts/test_validate_research.sh +462 -0
- package/.claude/tests/slugify.bats +82 -0
- package/.claude/tests/test-framework.sh +732 -0
- package/.claude/tests/test_analyze_upgrade_impact.py +34 -0
- package/.claude/tests/test_consolidate_research.py +48 -0
- package/.claude/tests/test_export_contracts.py +43 -0
- package/.claude/tests/test_extract_data_model.py +33 -0
- package/.claude/tests/test_generate_quickstart.py +50 -0
- package/.claude/tests/test_generate_research_tasks.py +52 -0
- package/.claude/tsc-cache/6e64f818-6398-49ca-8623-581a9af85c44/edited-files.log +1 -0
- package/.claude/tsc-cache/795ba6e3-b98a-423b-bab2-51aa62812569/affected-repos.txt +1 -0
- package/.claude/tsc-cache/795ba6e3-b98a-423b-bab2-51aa62812569/edited-files.log +1 -0
- package/.claude/tsc-cache/ae335694-be5a-4ba4-a1a0-b676c09a7906/affected-repos.txt +1 -0
- package/.claude/tsc-cache/ae335694-be5a-4ba4-a1a0-b676c09a7906/edited-files.log +1 -0
- package/CHANGELOG.md +507 -0
- package/LICENSE +21 -0
- package/README.md +534 -0
- package/README.zh-CN.md +530 -0
- package/bin/adapt.js +240 -0
- package/bin/cc-devflow-cli.js +185 -0
- package/bin/cc-devflow.js +78 -0
- package/config/adapters.yml +5 -0
- package/config/schema/adapters.schema.json +44 -0
- package/docs/CLAUDE.md +26 -0
- package/docs/commands/README.md +61 -0
- package/docs/commands/README.zh-CN.md +55 -0
- package/docs/commands/core-roadmap.md +106 -0
- package/docs/commands/core-roadmap.zh-CN.md +102 -0
- package/docs/commands/core-style.md +405 -0
- package/docs/commands/core-style.zh-CN.md +405 -0
- package/docs/commands/flow-init.md +134 -0
- package/docs/commands/flow-init.zh-CN.md +163 -0
- package/docs/commands/flow-new.md +274 -0
- package/docs/commands/flow-new.zh-CN.md +270 -0
- package/docs/guides/getting-started.md +204 -0
- package/docs/guides/getting-started.zh-CN.md +152 -0
- package/lib/adapters/adapter-interface.js +57 -0
- package/lib/adapters/claude-adapter.js +74 -0
- package/lib/adapters/codex-adapter.js +40 -0
- package/lib/adapters/config-validator.js +68 -0
- package/lib/adapters/logger.js +42 -0
- package/lib/adapters/registry.js +153 -0
- package/lib/compiler/CLAUDE.md +92 -0
- package/lib/compiler/__tests__/drift.test.js +215 -0
- package/lib/compiler/__tests__/errors.test.js +184 -0
- package/lib/compiler/__tests__/incremental.test.js +174 -0
- package/lib/compiler/__tests__/integration.test.js +174 -0
- package/lib/compiler/__tests__/manifest.test.js +233 -0
- package/lib/compiler/__tests__/parser.test.js +456 -0
- package/lib/compiler/__tests__/schemas.test.js +301 -0
- package/lib/compiler/__tests__/skills-registry.test.js +125 -0
- package/lib/compiler/__tests__/transformer.test.js +286 -0
- package/lib/compiler/emitters/antigravity-emitter.js +171 -0
- package/lib/compiler/emitters/base-emitter.js +73 -0
- package/lib/compiler/emitters/codex-emitter.js +52 -0
- package/lib/compiler/emitters/cursor-emitter.js +31 -0
- package/lib/compiler/emitters/index.js +50 -0
- package/lib/compiler/emitters/qwen-emitter.js +39 -0
- package/lib/compiler/errors.js +119 -0
- package/lib/compiler/index.js +256 -0
- package/lib/compiler/manifest.js +242 -0
- package/lib/compiler/parser.js +258 -0
- package/lib/compiler/platforms.js +113 -0
- package/lib/compiler/resource-copier.js +320 -0
- package/lib/compiler/rules-emitters/__tests__/antigravity-rules-emitter.test.js +191 -0
- package/lib/compiler/rules-emitters/__tests__/codex-rules-emitter.test.js +109 -0
- package/lib/compiler/rules-emitters/__tests__/cursor-rules-emitter.test.js +123 -0
- package/lib/compiler/rules-emitters/__tests__/qwen-rules-emitter.test.js +123 -0
- package/lib/compiler/rules-emitters/antigravity-rules-emitter.js +253 -0
- package/lib/compiler/rules-emitters/base-rules-emitter.js +83 -0
- package/lib/compiler/rules-emitters/codex-rules-emitter.js +116 -0
- package/lib/compiler/rules-emitters/cursor-rules-emitter.js +98 -0
- package/lib/compiler/rules-emitters/index.js +71 -0
- package/lib/compiler/rules-emitters/qwen-rules-emitter.js +70 -0
- package/lib/compiler/schemas.js +144 -0
- package/lib/compiler/skills-registry.js +225 -0
- package/lib/compiler/transformer.js +236 -0
- package/package.json +50 -0
|
@@ -0,0 +1,276 @@
|
|
|
1
|
+
# Research Summary — {FEATURE_NAME}
|
|
2
|
+
|
|
3
|
+
> **Purpose**: Document all technical decisions made during requirement initialization
|
|
4
|
+
> **Owner**: prd-writer / planner agents
|
|
5
|
+
> **Status**: Living document (updated until PRD finalized)
|
|
6
|
+
> **Template Version**: v1.0.0
|
|
7
|
+
> **Constitution Compliance**: Article X.1 (Forced Clarification), Article X.2 (No Speculation)
|
|
8
|
+
|
|
9
|
+
Generated: {GENERATED_AT}
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## Decisions
|
|
14
|
+
|
|
15
|
+
### R001 — {TOPIC_DESCRIPTION}
|
|
16
|
+
- **Decision**: {技术选型或架构决策}
|
|
17
|
+
- **Rationale**:
|
|
18
|
+
- {理由 1: 必须明确说明为什么选择这个方案}
|
|
19
|
+
- {理由 2: 至少提供 2 条理由,证明决策经过深思熟虑}
|
|
20
|
+
- {理由 3 (可选): 更多支持性论据}
|
|
21
|
+
- **Alternatives Considered**:
|
|
22
|
+
- {替代方案 1}: {简要评估 - 为什么不选择}
|
|
23
|
+
- {替代方案 2}: {简要评估 - 优缺点对比}
|
|
24
|
+
- **Source**: {来源: PRD.md:42 或 Tech-Choice:Frontend Framework}
|
|
25
|
+
|
|
26
|
+
### R002 — {TOPIC_DESCRIPTION}
|
|
27
|
+
- **Decision**: {实际选择的技术/方案}
|
|
28
|
+
- **Rationale**:
|
|
29
|
+
- {业务需求匹配度}
|
|
30
|
+
- {技术优势或团队熟悉度}
|
|
31
|
+
- **Alternatives Considered**:
|
|
32
|
+
- {对比方案}: {不选择的原因}
|
|
33
|
+
- **Source**: {来源}
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## Unresolved Questions
|
|
38
|
+
|
|
39
|
+
> ⚠️ 使用 `[NEEDS CLARIFICATION]` 标记所有待澄清问题
|
|
40
|
+
> 📌 每个问题必须包含: Context (上下文) + Impact (影响) + Blocked Tasks (阻塞任务)
|
|
41
|
+
|
|
42
|
+
- **[NEEDS CLARIFICATION]**: {具体问题描述}
|
|
43
|
+
- **Context**: {为什么需要澄清这个问题}
|
|
44
|
+
- **Impact**: {不澄清会影响哪些决策或实现}
|
|
45
|
+
- **Blocked Tasks**: {哪些任务被阻塞 - 如 data-model.md, API contracts}
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## Source Library
|
|
50
|
+
|
|
51
|
+
> **说明**: 列出所有研究材料的相对路径(相对于 REQ_DIR)
|
|
52
|
+
|
|
53
|
+
### Internal Codebase Research
|
|
54
|
+
- `research/internal/codebase-overview.md` - 现有代码库结构和可复用模块
|
|
55
|
+
- `research/internal/testing-strategy.md` - 现有测试框架和模式
|
|
56
|
+
|
|
57
|
+
### External Research Materials (MCP)
|
|
58
|
+
- `research/mcp/20250126/official/nextjs-docs.md` - Next.js 14 官方文档(App Router)
|
|
59
|
+
- `research/mcp/20250126/guides/prisma-best-practices.md` - Prisma ORM 最佳实践
|
|
60
|
+
- `research/mcp/20250126/security/auth0-vs-clerk.md` - 认证方案对比
|
|
61
|
+
|
|
62
|
+
### Manual Research Notes
|
|
63
|
+
- `research/manual/database-benchmarks.md` - 性能基准测试结果
|
|
64
|
+
- `research/manual/team-feedback.md` - 团队技术偏好调研
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## Research Completion Checklist
|
|
69
|
+
|
|
70
|
+
> ✅ 使用此清单验证 research.md 是否完整且符合规范
|
|
71
|
+
|
|
72
|
+
### Structure Validation
|
|
73
|
+
- [ ] 包含 "## Decisions" 章节
|
|
74
|
+
- [ ] 至少有 1 个 Decision block (### R001, R002, ...)
|
|
75
|
+
- [ ] 包含 "## Source Library" 章节
|
|
76
|
+
|
|
77
|
+
### Content Quality
|
|
78
|
+
- [ ] 每个 Decision block 包含 Decision/Rationale/Alternatives 三部分
|
|
79
|
+
- [ ] Rationale 至少 2 条理由(不能是单行敷衍)
|
|
80
|
+
- [ ] Alternatives 至少 1 个具体方案(不能是 "无" 或 "未评估")
|
|
81
|
+
- [ ] 无 TODO 标记
|
|
82
|
+
- [ ] 无 {{PLACEHOLDER}} 占位符
|
|
83
|
+
- [ ] 无 FIXME/XXX 标记
|
|
84
|
+
|
|
85
|
+
### Constitution Compliance
|
|
86
|
+
- [ ] Article X.1: 所有 NEEDS CLARIFICATION 已明确标记
|
|
87
|
+
- [ ] Article X.2: 无推测性语言("可能"/"未来"/"预留")
|
|
88
|
+
- [ ] Article I.1: 无部分实现标记("暂时"/"临时"/"简化版")
|
|
89
|
+
|
|
90
|
+
### Source Traceability
|
|
91
|
+
- [ ] 每个 Decision 有明确的 Source 字段
|
|
92
|
+
- [ ] Source Library 列出所有研究材料路径
|
|
93
|
+
- [ ] 研究材料文件实际存在于 research/ 目录
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## Usage Instructions
|
|
98
|
+
|
|
99
|
+
### For AI Agents (prd-writer, planner)
|
|
100
|
+
|
|
101
|
+
1. **Initialize from Template**:
|
|
102
|
+
```bash
|
|
103
|
+
cp .claude/docs/templates/RESEARCH_TEMPLATE.md \
|
|
104
|
+
devflow/requirements/${REQ_ID}/research/research.md
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
2. **Fill Template Variables**:
|
|
108
|
+
- Replace `{FEATURE_NAME}` with actual feature title
|
|
109
|
+
- Replace `{GENERATED_AT}` with ISO 8601 UTC timestamp
|
|
110
|
+
- Replace all `{PLACEHOLDERS}` with actual content
|
|
111
|
+
|
|
112
|
+
3. **Populate Decisions**:
|
|
113
|
+
- Read `research/tasks.json` for research task list
|
|
114
|
+
- For each task, create a Decision block
|
|
115
|
+
- Ensure Decision/Rationale/Alternatives are complete
|
|
116
|
+
|
|
117
|
+
4. **Validate Before Saving**:
|
|
118
|
+
```bash
|
|
119
|
+
bash .claude/scripts/validate-research.sh ${REQ_DIR} --strict
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
### For Human Developers
|
|
123
|
+
|
|
124
|
+
1. **Manual Research Workflow**:
|
|
125
|
+
```bash
|
|
126
|
+
# 1. Run flow-init (generates tasks.json)
|
|
127
|
+
/flow-init "REQ-123|Feature Name"
|
|
128
|
+
|
|
129
|
+
# 2. Research each task
|
|
130
|
+
# - Check existing codebase
|
|
131
|
+
# - Search official docs (use MCP)
|
|
132
|
+
# - Benchmark alternatives
|
|
133
|
+
|
|
134
|
+
# 3. Update tasks.json with findings
|
|
135
|
+
# - Add decision, rationale, alternatives fields
|
|
136
|
+
# - Update status to "completed"
|
|
137
|
+
|
|
138
|
+
# 4. Consolidate findings
|
|
139
|
+
bash .claude/scripts/consolidate-research.sh devflow/requirements/REQ-123
|
|
140
|
+
|
|
141
|
+
# 5. Validate
|
|
142
|
+
bash .claude/scripts/validate-research.sh devflow/requirements/REQ-123 --strict
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
2. **Direct Editing**:
|
|
146
|
+
- Copy this template to `research/research.md`
|
|
147
|
+
- Fill in decisions based on your research
|
|
148
|
+
- Run validation script before proceeding to /flow-prd
|
|
149
|
+
|
|
150
|
+
---
|
|
151
|
+
|
|
152
|
+
## Example: Complete Decision Block
|
|
153
|
+
|
|
154
|
+
```markdown
|
|
155
|
+
### R003 — Research authentication strategy for User Management System
|
|
156
|
+
- **Decision**: Auth0 with Next.js Middleware integration
|
|
157
|
+
- **Rationale**:
|
|
158
|
+
- Native support for Next.js App Router middleware authentication
|
|
159
|
+
- Pre-built UI components reduce frontend development time
|
|
160
|
+
- SaaS model eliminates need for auth infrastructure maintenance
|
|
161
|
+
- Compliance certifications (SOC 2, GDPR) included in Pro plan
|
|
162
|
+
- **Alternatives Considered**:
|
|
163
|
+
- Clerk: Similar features but higher pricing at scale (>10k users)
|
|
164
|
+
- NextAuth.js: Open-source but requires self-hosting and security audits
|
|
165
|
+
- AWS Cognito: Lower cost but complex integration with Next.js middleware
|
|
166
|
+
- Custom JWT: Maximum flexibility but significant security risk and dev time
|
|
167
|
+
- **Source**: PRD.md:89 (User Story US-002: User Authentication)
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
---
|
|
171
|
+
|
|
172
|
+
## Anti-Patterns (避免这些错误)
|
|
173
|
+
|
|
174
|
+
### ❌ Bad Example 1: 敷衍的 Rationale
|
|
175
|
+
```markdown
|
|
176
|
+
### R001 — Database choice
|
|
177
|
+
- Decision: PostgreSQL
|
|
178
|
+
- Rationale: 好用
|
|
179
|
+
- Alternatives: MySQL
|
|
180
|
+
```
|
|
181
|
+
**问题**: Rationale 太简单,没有说明为什么好用。Alternatives 没有对比分析。
|
|
182
|
+
|
|
183
|
+
### ❌ Bad Example 2: 包含 TODO
|
|
184
|
+
```markdown
|
|
185
|
+
### R001 — Database choice
|
|
186
|
+
- Decision: TODO - fill decision outcome
|
|
187
|
+
- Rationale: TODO - explain why
|
|
188
|
+
- Alternatives: TODO - list alternatives
|
|
189
|
+
```
|
|
190
|
+
**问题**: 未完成的研究,validate-research.sh 会拒绝。
|
|
191
|
+
|
|
192
|
+
### ❌ Bad Example 3: 推测性语言
|
|
193
|
+
```markdown
|
|
194
|
+
### R001 — Database choice
|
|
195
|
+
- Decision: PostgreSQL
|
|
196
|
+
- Rationale:
|
|
197
|
+
- 未来可能需要复杂查询
|
|
198
|
+
- 预留扩展性支持分片
|
|
199
|
+
```
|
|
200
|
+
**问题**: "未来可能"/"预留" 违反 Article X.2 (No Speculation)。
|
|
201
|
+
|
|
202
|
+
### ✅ Good Example: 完整且符合规范
|
|
203
|
+
```markdown
|
|
204
|
+
### R001 — Research database choice for E-commerce Platform
|
|
205
|
+
- **Decision**: PostgreSQL 15 with Prisma ORM
|
|
206
|
+
- **Rationale**:
|
|
207
|
+
- PRD requires ACID transactions for order processing (US-005)
|
|
208
|
+
- Prisma provides type-safe database access aligned with TypeScript stack
|
|
209
|
+
- Team has 3 years PostgreSQL production experience (reduces onboarding time)
|
|
210
|
+
- Native JSON support needed for product catalog flexible attributes (US-012)
|
|
211
|
+
- **Alternatives Considered**:
|
|
212
|
+
- MongoDB: No ACID transactions, unsuitable for financial operations
|
|
213
|
+
- MySQL: Weaker JSON support, no partial indexes (needed for US-012)
|
|
214
|
+
- Supabase: Vendor lock-in concerns, enterprise pricing unclear
|
|
215
|
+
- **Source**: PRD.md:42 (User Story US-005: Order Processing)
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
---
|
|
219
|
+
|
|
220
|
+
## Troubleshooting
|
|
221
|
+
|
|
222
|
+
### Q: consolidate-research.sh 生成的 research.md 全是 TODO,怎么办?
|
|
223
|
+
|
|
224
|
+
**A**: 这说明 `research/tasks.json` 缺少 `decision/rationale/alternatives` 字段。
|
|
225
|
+
|
|
226
|
+
**解决方案 1** (推荐): 手动填充 tasks.json
|
|
227
|
+
```json
|
|
228
|
+
{
|
|
229
|
+
"tasks": [
|
|
230
|
+
{
|
|
231
|
+
"id": "R001",
|
|
232
|
+
"prompt": "Research database choice",
|
|
233
|
+
"status": "completed",
|
|
234
|
+
"decision": "PostgreSQL 15 with Prisma ORM",
|
|
235
|
+
"rationale": "ACID compliance, type-safe access, team experience",
|
|
236
|
+
"alternatives": "MongoDB (no ACID), MySQL (weaker JSON support)",
|
|
237
|
+
"source": "PRD.md:42"
|
|
238
|
+
}
|
|
239
|
+
]
|
|
240
|
+
}
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
**解决方案 2**: 直接编辑 research.md,参考此模板格式。
|
|
244
|
+
|
|
245
|
+
**解决方案 3**: 跳过 consolidate-research.sh,完全手动创建 research.md。
|
|
246
|
+
|
|
247
|
+
### Q: validate-research.sh 报错 "No Decision blocks found",但我有内容?
|
|
248
|
+
|
|
249
|
+
**A**: Decision block 必须符合格式 `### R001 —` (三个 #,空格,R + 数字,空格,破折号)。
|
|
250
|
+
|
|
251
|
+
**正确格式**:
|
|
252
|
+
```markdown
|
|
253
|
+
### R001 — Topic description
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
**错误格式**:
|
|
257
|
+
```markdown
|
|
258
|
+
## R001 Topic # ❌ 两个 # 不对
|
|
259
|
+
### R1 - Topic # ❌ 破折号是 - 不是 —
|
|
260
|
+
### Decision 1 # ❌ 没有 R00X 编号
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
### Q: 我的 research.md 很长,可以拆分吗?
|
|
264
|
+
|
|
265
|
+
**A**: 不建议拆分。research.md 是单一真相源 (Single Source of Truth)。
|
|
266
|
+
- 如果决策太多(>20 个),考虑需求是否过大,应拆分为多个 REQ-ID。
|
|
267
|
+
- 详细研究材料放在 `research/internal/` 或 `research/mcp/`,research.md 只记录决策摘要。
|
|
268
|
+
|
|
269
|
+
---
|
|
270
|
+
|
|
271
|
+
**Maintained By**: CC-DevFlow Team
|
|
272
|
+
**Last Updated**: 2025-01-26
|
|
273
|
+
**Related Docs**:
|
|
274
|
+
- [flow-init.md](../../commands/flow-init.md) - 需求初始化流程
|
|
275
|
+
- [validate-research.sh](../../scripts/validate-research.sh) - 验证脚本
|
|
276
|
+
- [flow-init-optimization-plan.md](../../../flow-init-optimization-plan.md) - 优化方案
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# High-Rigor Code Review Template
|
|
2
|
+
|
|
3
|
+
## Summary
|
|
4
|
+
- What changed:
|
|
5
|
+
- Top risks:
|
|
6
|
+
- Approval: `<approve|comment|request_changes|blocker>`
|
|
7
|
+
|
|
8
|
+
## Affected files
|
|
9
|
+
- `<path>` — `<reason>` (`added|modified|deleted`)
|
|
10
|
+
|
|
11
|
+
## Root cause & assumptions
|
|
12
|
+
- Analysis:
|
|
13
|
+
- Assumptions:
|
|
14
|
+
|
|
15
|
+
## Findings
|
|
16
|
+
- [SEVERITY] [CATEGORY] Short title
|
|
17
|
+
- Where: `file:line-range`
|
|
18
|
+
- Evidence:
|
|
19
|
+
- Impact:
|
|
20
|
+
- Standards (CWE/OWASP/Policy):
|
|
21
|
+
- Repro:
|
|
22
|
+
- Recommendation:
|
|
23
|
+
- Tests:
|
|
24
|
+
|
|
25
|
+
*(Repeat the findings block per issue.)*
|
|
26
|
+
|
|
27
|
+
## Performance
|
|
28
|
+
- Hotspots:
|
|
29
|
+
- Complexity notes:
|
|
30
|
+
- Bench/Monitoring plan:
|
|
31
|
+
|
|
32
|
+
## Integration & Rollout
|
|
33
|
+
- APIs/contracts:
|
|
34
|
+
- DB migrations:
|
|
35
|
+
- Feature flags & rollout:
|
|
36
|
+
- Resilience:
|
|
37
|
+
- Rollback plan:
|
|
38
|
+
|
|
39
|
+
## Testing
|
|
40
|
+
- Coverage summary:
|
|
41
|
+
- Gaps:
|
|
42
|
+
- Flakiness risks:
|
|
43
|
+
- Targeted test plan:
|
|
44
|
+
|
|
45
|
+
## Docs & Observability
|
|
46
|
+
- Docs to update/create:
|
|
47
|
+
- Logs/Metrics/Traces/Alerts:
|
|
48
|
+
- Runbook updates:
|
|
49
|
+
|
|
50
|
+
## Open questions
|
|
51
|
+
- `<item>`
|
|
52
|
+
|
|
53
|
+
## Final recommendation
|
|
54
|
+
- Decision:
|
|
55
|
+
- Must-fix before merge:
|
|
56
|
+
- Nice-to-have post merge:
|
|
57
|
+
- Confidence: `<low|medium|high>`
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
# Core-Roadmap Dialogue Template
|
|
2
|
+
|
|
3
|
+
> 6-stage interactive dialogue script for `/core-roadmap`
|
|
4
|
+
|
|
5
|
+
<!-- ============================================================
|
|
6
|
+
调用上下文声明 (Invocation Context Declaration)
|
|
7
|
+
============================================================
|
|
8
|
+
|
|
9
|
+
本模板由 `/core-roadmap` 命令通过 {TEMPLATE:dialogue} 引用加载。
|
|
10
|
+
|
|
11
|
+
模板中的 {SCRIPT:xxx} 占位符引用 core-roadmap.md 头文件中的 scripts 定义:
|
|
12
|
+
```yaml
|
|
13
|
+
# 来源: .claude/commands/core-roadmap.md 头文件
|
|
14
|
+
scripts:
|
|
15
|
+
calculate_quarter: .claude/scripts/calculate-quarter.sh
|
|
16
|
+
sync_progress: .claude/scripts/sync-roadmap-progress.sh
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
占位符解析:
|
|
20
|
+
- {SCRIPT:calculate_quarter} → bash .claude/scripts/calculate-quarter.sh
|
|
21
|
+
- {SCRIPT:sync_progress} → bash .claude/scripts/sync-roadmap-progress.sh
|
|
22
|
+
============================================================ -->
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## Stage 0: Context Detection (上下文检测)
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
# 1. 检查 ROADMAP.md
|
|
30
|
+
→ 存在: mode = "update"
|
|
31
|
+
→ 不存在: mode = "create"
|
|
32
|
+
|
|
33
|
+
# 2. 计算当前季度
|
|
34
|
+
bash {SCRIPT:calculate_quarter}
|
|
35
|
+
→ 获取: current_quarter, current_year, next_quarters[]
|
|
36
|
+
|
|
37
|
+
# 3. 扫描 requirements/ 计算 Velocity
|
|
38
|
+
→ 完成需求数、平均天数、季度容量
|
|
39
|
+
|
|
40
|
+
# 4. 初始化 context 对象
|
|
41
|
+
{
|
|
42
|
+
"mode": "create",
|
|
43
|
+
"velocity": {...},
|
|
44
|
+
"quarter_info": {...}
|
|
45
|
+
}
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## Stage 1: Vision Statement (愿景声明)
|
|
51
|
+
|
|
52
|
+
**对话引导**:
|
|
53
|
+
```
|
|
54
|
+
"描述未来 3 个月的核心愿景..."
|
|
55
|
+
"1. 要解决什么核心问题?"
|
|
56
|
+
"2. 目标用户是谁?"
|
|
57
|
+
"3. 核心价值主张是什么?"
|
|
58
|
+
"4. 期望达成的里程碑是什么?"
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
**收集**: `vision_statement`
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## Stage 2: Project Analysis (项目分析)
|
|
66
|
+
|
|
67
|
+
**自动执行**:
|
|
68
|
+
```bash
|
|
69
|
+
# 1. 扫描 requirements/REQ-*/PRD.md
|
|
70
|
+
→ 分析完成需求的延伸方向
|
|
71
|
+
|
|
72
|
+
# 2. 展示功能模块分布和技术栈
|
|
73
|
+
→ 推荐延伸项目
|
|
74
|
+
|
|
75
|
+
# 3. 用户确认 → Stage 3
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## Stage 3: Brainstorming (头脑风暴)
|
|
81
|
+
|
|
82
|
+
**收集循环**:
|
|
83
|
+
```
|
|
84
|
+
对话收集候选项目:
|
|
85
|
+
- 标题
|
|
86
|
+
- 来源 (从哪个需求延伸)
|
|
87
|
+
- 描述
|
|
88
|
+
- 优先级 (P1/P2/P3)
|
|
89
|
+
- 预估工作量 (周数)
|
|
90
|
+
|
|
91
|
+
分配 RM-ID: RM-001, RM-002, ...
|
|
92
|
+
|
|
93
|
+
验证:
|
|
94
|
+
- 至少 1 个 P1 项目
|
|
95
|
+
- 总工作量 vs 容量 (警告超容量 30%)
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
**收集**: `candidates[]`
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
## Stage 4: Dependency Analysis (依赖分析)
|
|
103
|
+
|
|
104
|
+
**收集循环**:
|
|
105
|
+
```
|
|
106
|
+
格式: {RM-ID} depends on {REQ-ID or RM-ID}
|
|
107
|
+
|
|
108
|
+
验证:
|
|
109
|
+
- 检查循环依赖 (拓扑排序)
|
|
110
|
+
- 检查悬挂依赖 (被依赖项未完成)
|
|
111
|
+
- 生成依赖图预览
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
**收集**: `dependencies[]`
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
## Stage 5: Timeline Planning (时间线规划)
|
|
119
|
+
|
|
120
|
+
**收集循环**:
|
|
121
|
+
```
|
|
122
|
+
分配项目到季度:
|
|
123
|
+
格式: {RM-ID} → Q{n}-{YYYY}
|
|
124
|
+
|
|
125
|
+
验证:
|
|
126
|
+
- 依赖约束 (被依赖项在同季度或更早)
|
|
127
|
+
- 容量约束 (每季度 ≤ 150% 容量)
|
|
128
|
+
|
|
129
|
+
生成时间线预览
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
**收集**: `timeline{}`
|
|
133
|
+
|
|
134
|
+
---
|
|
135
|
+
|
|
136
|
+
## Stage 6: Final Confirmation (最终确认)
|
|
137
|
+
|
|
138
|
+
**展示完整规划汇总**:
|
|
139
|
+
```
|
|
140
|
+
- 愿景
|
|
141
|
+
- 项目总览 (按优先级)
|
|
142
|
+
- 季度分布
|
|
143
|
+
- 依赖关系
|
|
144
|
+
- 容量评估
|
|
145
|
+
|
|
146
|
+
用户确认 → Stage 7
|
|
147
|
+
用户修改 → 跳转到对应 Stage
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
---
|
|
151
|
+
|
|
152
|
+
## Stage 7: Agent Invocation (生成文档)
|
|
153
|
+
|
|
154
|
+
```bash
|
|
155
|
+
# 1. 保存上下文
|
|
156
|
+
→ .roadmap-context.json
|
|
157
|
+
|
|
158
|
+
# 2. 调用 roadmap-planner Agent
|
|
159
|
+
Prompt: "Generate ROADMAP.md and BACKLOG.md based on context..."
|
|
160
|
+
→ 生成 devflow/ROADMAP.md
|
|
161
|
+
→ 生成 devflow/BACKLOG.md
|
|
162
|
+
|
|
163
|
+
# 3. 调用 architecture-designer Agent
|
|
164
|
+
Prompt: "Generate ARCHITECTURE.md with 4 diagrams..."
|
|
165
|
+
→ 生成 devflow/ARCHITECTURE.md (4个Mermaid图表)
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
---
|
|
169
|
+
|
|
170
|
+
## Stage 8: Final Report (完成报告)
|
|
171
|
+
|
|
172
|
+
**展示生成文件**:
|
|
173
|
+
```
|
|
174
|
+
✅ devflow/ROADMAP.md (路线图项目, 依赖图, 速度指标)
|
|
175
|
+
✅ devflow/BACKLOG.md (所有候选项目详情)
|
|
176
|
+
✅ devflow/ARCHITECTURE.md (4个架构图表)
|
|
177
|
+
|
|
178
|
+
下一步建议:
|
|
179
|
+
1. 审查路线图
|
|
180
|
+
2. 开始首个需求: /flow-init "REQ-XXX|{RM-title}"
|
|
181
|
+
3. 定期更新: /core-roadmap --regenerate
|
|
182
|
+
4. 监控进度: /flow-status --all
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
---
|
|
186
|
+
|
|
187
|
+
## Output Files
|
|
188
|
+
|
|
189
|
+
```
|
|
190
|
+
devflow/
|
|
191
|
+
├── ROADMAP.md # 路线图 (Milestones, Dependency Graph, Velocity)
|
|
192
|
+
├── BACKLOG.md # 积压清单 (所有 RM-ID 详情)
|
|
193
|
+
└── ARCHITECTURE.md # 架构文档 (4个Mermaid图表)
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
---
|
|
197
|
+
|
|
198
|
+
**Last Updated**: 2025-12-19
|