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,188 @@
|
|
|
1
|
+
# Core-Roadmap Troubleshooting Guide
|
|
2
|
+
|
|
3
|
+
> Quick reference for `/core-roadmap` dialogue errors and recovery
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Core Errors
|
|
8
|
+
|
|
9
|
+
### E1: User Cancel During Dialogue
|
|
10
|
+
```bash
|
|
11
|
+
用户输入: cancel
|
|
12
|
+
→ 对话取消
|
|
13
|
+
```
|
|
14
|
+
**Fix**: `/core-roadmap --resume` → 从草稿恢复,选择继续的 Stage
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
### E2: Circular Dependency Detected
|
|
19
|
+
```bash
|
|
20
|
+
❌ ERROR: 检测到循环依赖: RM-001 → RM-003 → RM-005 → RM-001
|
|
21
|
+
```
|
|
22
|
+
**Fix**: 用户输入 `modify` → 移除循环中的一条依赖边(如 `remove RM-005 → RM-001`)
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
### E3: Over-Capacity Warning
|
|
27
|
+
```bash
|
|
28
|
+
⚠️ WARNING: 总工作量 150% (计划 18 项 vs 容量 12 项)
|
|
29
|
+
```
|
|
30
|
+
**Fix**:
|
|
31
|
+
- 降低优先级: 将部分 P2 改为 P3
|
|
32
|
+
- 缩减工作量: 重新评估项目估算
|
|
33
|
+
- 延长规划周期: 从 3 个月延长到 6 个月
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
### E4: Roadmap Not Found (Update Mode)
|
|
38
|
+
```bash
|
|
39
|
+
❌ ERROR: devflow/ROADMAP.md 不存在
|
|
40
|
+
```
|
|
41
|
+
**Fix**: `find . -name "ROADMAP.md"` → 检查路径 → 移动到正确位置或重新创建
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
### E5: Hanging Dependency (未完成的依赖)
|
|
46
|
+
```bash
|
|
47
|
+
⚠️ WARNING: RM-005 依赖 REQ-008 但该需求未完成
|
|
48
|
+
```
|
|
49
|
+
**Fix**: `/flow-status REQ-008` → 确认状态 → 继续但标记风险 或 移除该依赖
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
### E6: Quarter Assignment Conflict
|
|
54
|
+
```bash
|
|
55
|
+
❌ ERROR: RM-005 分配到 Q1 但其依赖 RM-001 分配到 Q2
|
|
56
|
+
```
|
|
57
|
+
**Fix**: 调整 RM-005 到 Q2 或提前 RM-001 到 Q1
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
### E7: Agent Invocation Failed
|
|
62
|
+
```bash
|
|
63
|
+
❌ ERROR: roadmap-planner execution failed (Cannot read property 'candidates')
|
|
64
|
+
```
|
|
65
|
+
**Diagnose**: `cat .roadmap-context.json | jq .` → 检查 context 完整性
|
|
66
|
+
**Fix**: `cp .roadmap-draft.json .roadmap-context.json` → `/core-roadmap --regenerate`
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
### E8: Mermaid Syntax Error
|
|
71
|
+
```bash
|
|
72
|
+
⚠️ WARNING: Mermaid syntax error (Node ID: REQ-001 包含非法字符)
|
|
73
|
+
```
|
|
74
|
+
**Fix**: 编辑 ROADMAP.md → 将 `REQ-001[...]` 改为 `REQ001[REQ-001: ...]` (移除 Node ID 中的 hyphen)
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
### E9: Architecture Generation Failed
|
|
79
|
+
```bash
|
|
80
|
+
❌ ERROR: Cannot generate ARCHITECTURE.md (No requirements found)
|
|
81
|
+
```
|
|
82
|
+
**Fix**: 跳过 ARCHITECTURE.md 生成,完成第一个需求后运行 `/core-architecture`
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
## Recovery Scenarios
|
|
87
|
+
|
|
88
|
+
### 对话中断恢复
|
|
89
|
+
```bash
|
|
90
|
+
# 检查草稿文件
|
|
91
|
+
cat .roadmap-draft.json | jq '.candidates | length'
|
|
92
|
+
|
|
93
|
+
# 恢复对话
|
|
94
|
+
/core-roadmap --resume
|
|
95
|
+
|
|
96
|
+
# 选择从哪个阶段继续 (2: 头脑风暴, 3: 依赖分析, ...)
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
### 生成文档损坏
|
|
100
|
+
```bash
|
|
101
|
+
# 备份损坏文件
|
|
102
|
+
cp devflow/ROADMAP.md devflow/ROADMAP.md.bak
|
|
103
|
+
|
|
104
|
+
# 重新生成 (使用保存的 context)
|
|
105
|
+
/core-roadmap --regenerate
|
|
106
|
+
|
|
107
|
+
# 对比新旧文件
|
|
108
|
+
diff devflow/ROADMAP.md.bak devflow/ROADMAP.md
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
### Velocity 数据错误
|
|
112
|
+
```bash
|
|
113
|
+
# 验证完成需求数量
|
|
114
|
+
ls devflow/requirements/REQ-*/orchestration_status.json | \
|
|
115
|
+
xargs -I {} jq -r 'select(.status=="merged") | .reqId' {} | \
|
|
116
|
+
wc -l
|
|
117
|
+
|
|
118
|
+
# 在对话中手动修正容量估算
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
## Advanced Features
|
|
124
|
+
|
|
125
|
+
### --regenerate 模式
|
|
126
|
+
```bash
|
|
127
|
+
/core-roadmap --regenerate
|
|
128
|
+
|
|
129
|
+
# 执行步骤:
|
|
130
|
+
# 1. 读取现有 ROADMAP.md
|
|
131
|
+
# 2. 运行 sync-roadmap-progress.sh
|
|
132
|
+
# 3. 更新 Velocity 指标
|
|
133
|
+
# 4. 重新生成文档
|
|
134
|
+
|
|
135
|
+
# 适用场景:
|
|
136
|
+
# - 定期更新路线图进度 (每周)
|
|
137
|
+
# - 需求完成后同步状态
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
### --resume 模式
|
|
141
|
+
```bash
|
|
142
|
+
/core-roadmap --resume
|
|
143
|
+
|
|
144
|
+
# 执行步骤:
|
|
145
|
+
# 1. 读取 .roadmap-draft.json
|
|
146
|
+
# 2. 恢复 context 状态
|
|
147
|
+
# 3. 询问从哪个 Stage 继续
|
|
148
|
+
# 4. 跳转到对应 Stage
|
|
149
|
+
|
|
150
|
+
# 适用场景:
|
|
151
|
+
# - 对话被意外中断
|
|
152
|
+
# - 需要暂停并稍后继续
|
|
153
|
+
# - 需要修改之前阶段的输入
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
---
|
|
157
|
+
|
|
158
|
+
## Configuration
|
|
159
|
+
|
|
160
|
+
### Environment Variables
|
|
161
|
+
| Variable | Default | Purpose |
|
|
162
|
+
|----------|---------|---------|
|
|
163
|
+
| `ROADMAP_DRAFT_FILE` | `.roadmap-draft.json` | 草稿文件路径 |
|
|
164
|
+
| `DEFAULT_PLANNING_HORIZON` | `3 months` | 默认规划周期 |
|
|
165
|
+
| `FLOW_DEBUG` | `false` | 启用调试日志 |
|
|
166
|
+
|
|
167
|
+
### Scripts
|
|
168
|
+
| Script | Purpose |
|
|
169
|
+
|--------|---------|
|
|
170
|
+
| `calculate-quarter.sh` | 计算当前季度信息 |
|
|
171
|
+
| `sync-roadmap-progress.sh` | 同步路线图进度 |
|
|
172
|
+
|
|
173
|
+
---
|
|
174
|
+
|
|
175
|
+
## FAQ
|
|
176
|
+
|
|
177
|
+
**Q: 如何修改已生成的路线图?**
|
|
178
|
+
A: 手动编辑 `vim devflow/ROADMAP.md` 或重新运行 `/core-roadmap`
|
|
179
|
+
|
|
180
|
+
**Q: 如何添加新的 RM 项目?**
|
|
181
|
+
A: 编辑 ROADMAP.md 或重新运行对话并在 Stage 3 添加
|
|
182
|
+
|
|
183
|
+
**Q: Velocity 计算不准确怎么办?**
|
|
184
|
+
A: 在对话 Stage 0 中会显示预估容量,如不准确可在后续阶段调整工作量和时间线
|
|
185
|
+
|
|
186
|
+
---
|
|
187
|
+
|
|
188
|
+
**Last Updated**: 2025-12-19
|
|
@@ -0,0 +1,338 @@
|
|
|
1
|
+
# 任务完成标记指南
|
|
2
|
+
|
|
3
|
+
## 问题描述
|
|
4
|
+
|
|
5
|
+
在执行 `/flow-dev` 时,主代理完成了代码实现,但没有同步更新 TASKS.md 中的待办事项复选框。这导致:
|
|
6
|
+
|
|
7
|
+
- ❌ TASKS.md 显示任务未完成 `[ ]`,但代码已经实现
|
|
8
|
+
- ❌ 进度追踪不准确,无法知道真实进度
|
|
9
|
+
- ❌ 可能重复执行已完成的任务
|
|
10
|
+
- ❌ 无法正确生成状态报告
|
|
11
|
+
|
|
12
|
+
## 解决方案
|
|
13
|
+
|
|
14
|
+
### 1. 强制执行标记流程
|
|
15
|
+
|
|
16
|
+
在 `/flow-dev` 命令文档中,已经强化了任务完成标记的要求:
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
# 每完成一个任务后,必须立即执行
|
|
20
|
+
bash .claude/scripts/mark-task-complete.sh T001
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
**关键点**:
|
|
24
|
+
- ⚠️ **MANDATORY** - 不是可选的
|
|
25
|
+
- 每个任务完成后立即执行
|
|
26
|
+
- 不要手动编辑 TASKS.md
|
|
27
|
+
- 验证输出显示 "✅ Task T001 marked as complete"
|
|
28
|
+
|
|
29
|
+
### 2. 使用诊断工具
|
|
30
|
+
|
|
31
|
+
新增的 `sync-task-marks.sh` 脚本可以帮助检测和修复未标记的任务:
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
# 检查哪些任务已执行但未标记
|
|
35
|
+
bash .claude/scripts/sync-task-marks.sh --dry-run
|
|
36
|
+
|
|
37
|
+
# 交互式修复(推荐)
|
|
38
|
+
bash .claude/scripts/sync-task-marks.sh
|
|
39
|
+
|
|
40
|
+
# 批量自动标记(谨慎使用)
|
|
41
|
+
bash .claude/scripts/sync-task-marks.sh --auto-mark
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### 3. 工作流集成
|
|
45
|
+
|
|
46
|
+
#### 阶段 1: 任务执行循环
|
|
47
|
+
|
|
48
|
+
```text
|
|
49
|
+
For each task in TASKS.md:
|
|
50
|
+
1. Load task details
|
|
51
|
+
2. Display task information
|
|
52
|
+
3. Execute task implementation (写代码)
|
|
53
|
+
4. Verify task completion (DoD check)
|
|
54
|
+
5. ⚠️ MANDATORY: Mark task as complete
|
|
55
|
+
→ bash .claude/scripts/mark-task-complete.sh ${task_id}
|
|
56
|
+
6. Continue to next task
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
#### 阶段 2: Exit Gate 验证
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
# 验证所有任务都已标记完成
|
|
63
|
+
bash .claude/scripts/check-task-status.sh --json
|
|
64
|
+
|
|
65
|
+
# 如果发现任务未标记
|
|
66
|
+
bash .claude/scripts/sync-task-marks.sh --dry-run
|
|
67
|
+
# 手动执行每个任务的标记命令
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## 完整示例
|
|
71
|
+
|
|
72
|
+
### 场景 1: 正常工作流
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
# 1. 开始开发
|
|
76
|
+
/flow-dev "REQ-123"
|
|
77
|
+
|
|
78
|
+
# 2. Claude 完成任务 T001
|
|
79
|
+
# (写代码、运行测试等)
|
|
80
|
+
|
|
81
|
+
# 3. ⚠️ 立即标记任务完成
|
|
82
|
+
bash .claude/scripts/mark-task-complete.sh T001
|
|
83
|
+
# 输出: ✅ Task T001 marked as complete
|
|
84
|
+
# Progress: 1 completed, 9 remaining
|
|
85
|
+
# Overall: 10% complete
|
|
86
|
+
|
|
87
|
+
# 4. 继续下一个任务 T002
|
|
88
|
+
# ...重复步骤 2-3
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
### 场景 2: 发现任务未标记
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
# 1. 发现问题:代码已实现,但 TASKS.md 显示 [ ]
|
|
95
|
+
$ cat devflow/requirements/REQ-123/TASKS.md
|
|
96
|
+
## Phase 2: Tests First
|
|
97
|
+
- [ ] **T003** Write user creation test # ← 代码已经写了,但未标记
|
|
98
|
+
|
|
99
|
+
# 2. 运行诊断脚本
|
|
100
|
+
$ bash .claude/scripts/sync-task-marks.sh --dry-run
|
|
101
|
+
|
|
102
|
+
🔍 Checking task completion status for REQ-123...
|
|
103
|
+
|
|
104
|
+
Task Summary:
|
|
105
|
+
Total tasks: 10
|
|
106
|
+
Completed: 2
|
|
107
|
+
Remaining: 8
|
|
108
|
+
|
|
109
|
+
⚠️ Uncompleted tasks (still marked as [ ]):
|
|
110
|
+
[ ] T003: - [ ] **T003** Write user creation test
|
|
111
|
+
[ ] T004: - [ ] **T004** Write login test
|
|
112
|
+
...
|
|
113
|
+
|
|
114
|
+
🔍 DRY RUN - No changes will be made
|
|
115
|
+
|
|
116
|
+
To mark these tasks as complete, run:
|
|
117
|
+
bash .claude/scripts/mark-task-complete.sh T003
|
|
118
|
+
bash .claude/scripts/mark-task-complete.sh T004
|
|
119
|
+
...
|
|
120
|
+
|
|
121
|
+
# 3. 手动执行标记命令
|
|
122
|
+
bash .claude/scripts/mark-task-complete.sh T003
|
|
123
|
+
bash .claude/scripts/mark-task-complete.sh T004
|
|
124
|
+
|
|
125
|
+
# 或使用交互式模式
|
|
126
|
+
$ bash .claude/scripts/sync-task-marks.sh
|
|
127
|
+
What would you like to do?
|
|
128
|
+
|
|
129
|
+
1. Show commands to manually mark each task
|
|
130
|
+
2. Mark all tasks as complete now (auto-mark)
|
|
131
|
+
3. Exit without changes
|
|
132
|
+
|
|
133
|
+
Choose [1-3]: 1
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
### 场景 3: 批量修复(谨慎使用)
|
|
137
|
+
|
|
138
|
+
```bash
|
|
139
|
+
# 仅在确定所有任务都已完成时使用
|
|
140
|
+
bash .claude/scripts/sync-task-marks.sh --auto-mark
|
|
141
|
+
|
|
142
|
+
⚠️ AUTO-MARK mode enabled - marking all tasks as complete...
|
|
143
|
+
|
|
144
|
+
Marking T003...
|
|
145
|
+
✅ Task T003 marked as complete
|
|
146
|
+
Marking T004...
|
|
147
|
+
✅ Task T004 marked as complete
|
|
148
|
+
...
|
|
149
|
+
|
|
150
|
+
✅ All tasks marked as complete
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
## 脚本 API
|
|
154
|
+
|
|
155
|
+
### mark-task-complete.sh
|
|
156
|
+
|
|
157
|
+
标记单个任务为完成状态。
|
|
158
|
+
|
|
159
|
+
**用法**:
|
|
160
|
+
```bash
|
|
161
|
+
bash .claude/scripts/mark-task-complete.sh TASK_ID [OPTIONS]
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
**参数**:
|
|
165
|
+
- `TASK_ID`: 任务ID (如 T001, T002)
|
|
166
|
+
|
|
167
|
+
**选项**:
|
|
168
|
+
- `--json`: JSON 格式输出
|
|
169
|
+
- `--no-log`: 不记录到 EXECUTION_LOG.md
|
|
170
|
+
- `--help`: 显示帮助
|
|
171
|
+
|
|
172
|
+
**返回值**:
|
|
173
|
+
- `0`: 成功标记
|
|
174
|
+
- `1`: 错误(任务不存在、已完成等)
|
|
175
|
+
|
|
176
|
+
**示例**:
|
|
177
|
+
```bash
|
|
178
|
+
# 标记 T001 为完成
|
|
179
|
+
bash .claude/scripts/mark-task-complete.sh T001
|
|
180
|
+
|
|
181
|
+
# JSON 输出
|
|
182
|
+
bash .claude/scripts/mark-task-complete.sh T005 --json
|
|
183
|
+
|
|
184
|
+
# 不记录日志
|
|
185
|
+
bash .claude/scripts/mark-task-complete.sh T010 --no-log
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
### sync-task-marks.sh
|
|
189
|
+
|
|
190
|
+
诊断和修复未标记的任务。
|
|
191
|
+
|
|
192
|
+
**用法**:
|
|
193
|
+
```bash
|
|
194
|
+
bash .claude/scripts/sync-task-marks.sh [OPTIONS]
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
**选项**:
|
|
198
|
+
- `--dry-run`: 只显示要做什么,不实际修改
|
|
199
|
+
- `--auto-mark`: 自动标记所有任务(危险)
|
|
200
|
+
- `--help`: 显示帮助
|
|
201
|
+
|
|
202
|
+
**返回值**:
|
|
203
|
+
- `0`: 成功或所有任务已完成
|
|
204
|
+
- `1`: 错误(无需求ID、目录不存在等)
|
|
205
|
+
|
|
206
|
+
**示例**:
|
|
207
|
+
```bash
|
|
208
|
+
# 检查状态(推荐先运行)
|
|
209
|
+
bash .claude/scripts/sync-task-marks.sh --dry-run
|
|
210
|
+
|
|
211
|
+
# 交互式修复
|
|
212
|
+
bash .claude/scripts/sync-task-marks.sh
|
|
213
|
+
|
|
214
|
+
# 批量自动标记
|
|
215
|
+
bash .claude/scripts/sync-task-marks.sh --auto-mark
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
## 最佳实践
|
|
219
|
+
|
|
220
|
+
### DO ✅
|
|
221
|
+
|
|
222
|
+
1. **立即标记**: 完成任务后立即执行 `mark-task-complete.sh`
|
|
223
|
+
2. **使用脚本**: 始终用脚本,不要手动编辑 TASKS.md
|
|
224
|
+
3. **验证输出**: 检查脚本输出确认标记成功
|
|
225
|
+
4. **定期检查**: 在开发过程中定期运行 `sync-task-marks.sh --dry-run`
|
|
226
|
+
5. **Exit Gate**: 在 `/flow-dev` 结束前验证所有任务已标记
|
|
227
|
+
|
|
228
|
+
### DON'T ❌
|
|
229
|
+
|
|
230
|
+
1. **手动编辑**: 不要直接修改 TASKS.md 的复选框
|
|
231
|
+
2. **批量操作**: 不要等到所有任务完成后再批量标记
|
|
232
|
+
3. **跳过验证**: 不要忽略脚本输出或进度信息
|
|
233
|
+
4. **盲目 auto-mark**: 不要在未确认任务完成时使用 `--auto-mark`
|
|
234
|
+
5. **忽略错误**: 如果标记失败,必须立即调查原因
|
|
235
|
+
|
|
236
|
+
## 常见问题
|
|
237
|
+
|
|
238
|
+
### Q: 为什么要使用脚本而不是手动编辑?
|
|
239
|
+
|
|
240
|
+
**A**: 脚本提供:
|
|
241
|
+
- ✅ 标准化的格式(避免手动编辑错误)
|
|
242
|
+
- ✅ 自动记录到 EXECUTION_LOG.md
|
|
243
|
+
- ✅ 更新 orchestration_status.json
|
|
244
|
+
- ✅ 实时进度反馈
|
|
245
|
+
- ✅ 错误检查和验证
|
|
246
|
+
|
|
247
|
+
### Q: 如果任务已经标记为完成,再次运行会怎样?
|
|
248
|
+
|
|
249
|
+
**A**: 脚本会检测到并提示:
|
|
250
|
+
```bash
|
|
251
|
+
$ bash .claude/scripts/mark-task-complete.sh T001
|
|
252
|
+
Task T001 is already marked as complete
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
### Q: sync-task-marks.sh 如何知道任务是否真的完成了?
|
|
256
|
+
|
|
257
|
+
**A**: 它只检查 TASKS.md 中的复选框状态。实际验证任务是否完成需要:
|
|
258
|
+
- 检查代码文件是否存在
|
|
259
|
+
- 运行测试验证功能
|
|
260
|
+
- 人工 review
|
|
261
|
+
|
|
262
|
+
使用 `--dry-run` 先检查,然后手动确认每个任务再标记。
|
|
263
|
+
|
|
264
|
+
### Q: 什么时候使用 --auto-mark?
|
|
265
|
+
|
|
266
|
+
**A**: 只在以下情况:
|
|
267
|
+
- 100% 确定所有显示为 `[ ]` 的任务都已完成
|
|
268
|
+
- 需要快速修复遗留的标记问题
|
|
269
|
+
- 有完整的 Git 历史可以回滚
|
|
270
|
+
|
|
271
|
+
**推荐**: 使用交互式模式,逐个确认每个任务。
|
|
272
|
+
|
|
273
|
+
## 技术实现
|
|
274
|
+
|
|
275
|
+
### mark-task-complete.sh 工作原理
|
|
276
|
+
|
|
277
|
+
```bash
|
|
278
|
+
# 1. 解析任务ID (T001 → T001)
|
|
279
|
+
TASK_ID=$(echo "$TASK_ID" | tr '[:lower:]' '[:upper:]')
|
|
280
|
+
|
|
281
|
+
# 2. 验证格式 (T\d+)
|
|
282
|
+
[[ "$TASK_ID" =~ ^T[0-9]+$ ]]
|
|
283
|
+
|
|
284
|
+
# 3. 查找任务行
|
|
285
|
+
grep -q "\\[ \\] .*$TASK_ID" "$TASKS_FILE"
|
|
286
|
+
|
|
287
|
+
# 4. 替换复选框 ([ ] → [x])
|
|
288
|
+
sed "s/- \[ \] \(\*\*\)\{0,1\}$TASK_ID\(\*\*\)\{0,1\}/- [x] \1$TASK_ID\2/" "$TASKS_FILE"
|
|
289
|
+
|
|
290
|
+
# 5. 记录事件
|
|
291
|
+
log_event "$REQ_ID" "✅ Task $TASK_ID marked as complete"
|
|
292
|
+
```
|
|
293
|
+
|
|
294
|
+
### sync-task-marks.sh 工作原理
|
|
295
|
+
|
|
296
|
+
```bash
|
|
297
|
+
# 1. 统计任务
|
|
298
|
+
TOTAL_TASKS=$(grep -c "^- \[ \]" "$TASKS_FILE")
|
|
299
|
+
COMPLETED_TASKS=$(grep -c "^- \[x\]" "$TASKS_FILE")
|
|
300
|
+
|
|
301
|
+
# 2. 提取未完成任务ID
|
|
302
|
+
while IFS= read -r line; do
|
|
303
|
+
if [[ "$line" =~ \*\*T([0-9]+)\*\* ]]; then
|
|
304
|
+
task_id="T${BASH_REMATCH[1]}"
|
|
305
|
+
UNCOMPLETED+=("$task_id")
|
|
306
|
+
fi
|
|
307
|
+
done < <(grep "^- \[ \]" "$TASKS_FILE")
|
|
308
|
+
|
|
309
|
+
# 3. 显示或执行标记
|
|
310
|
+
for task_id in "${UNCOMPLETED[@]}"; do
|
|
311
|
+
bash mark-task-complete.sh "$task_id"
|
|
312
|
+
done
|
|
313
|
+
```
|
|
314
|
+
|
|
315
|
+
## 集成测试
|
|
316
|
+
|
|
317
|
+
新增的测试套件 `test_sync_task_marks.sh` 验证:
|
|
318
|
+
|
|
319
|
+
- ✅ Help 消息显示
|
|
320
|
+
- ✅ 无需求ID时的错误处理
|
|
321
|
+
- ✅ 需求目录不存在的错误处理
|
|
322
|
+
- ✅ TASKS.md 不存在的错误处理
|
|
323
|
+
- ✅ 所有任务已完成的场景
|
|
324
|
+
- ✅ 列出未完成任务
|
|
325
|
+
- ✅ Dry-run 模式显示命令
|
|
326
|
+
|
|
327
|
+
运行测试:
|
|
328
|
+
```bash
|
|
329
|
+
bash .claude/tests/scripts/test_sync_task_marks.sh
|
|
330
|
+
```
|
|
331
|
+
|
|
332
|
+
## 相关文档
|
|
333
|
+
|
|
334
|
+
- [mark-task-complete.sh 源码](.claude/scripts/mark-task-complete.sh)
|
|
335
|
+
- [sync-task-marks.sh 源码](.claude/scripts/sync-task-marks.sh)
|
|
336
|
+
- [/flow-dev 命令文档](.claude/commands/flow-dev.md)
|
|
337
|
+
- [TASKS_TEMPLATE.md 模板](.claude/docs/templates/TASKS_TEMPLATE.md)
|
|
338
|
+
- [测试框架](.claude/tests/test-framework.sh)
|