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,204 @@
1
+ # Getting Started with cc-devflow
2
+
3
+ [中文文档](./getting-started.zh-CN.md) | [English](./getting-started.md)
4
+
5
+ ---
6
+
7
+ ## 📋 Overview
8
+
9
+ This guide will help you get started with cc-devflow, from installation to your first requirement development.
10
+
11
+ ## 🚀 Prerequisites
12
+
13
+ - [Claude Code](https://claude.ai/code) installed and configured
14
+ - Git repository initialized
15
+ - Node.js project (optional, for additional quality checks)
16
+
17
+ ## 📦 Installation
18
+
19
+ ### Quick Install
20
+
21
+ ```bash
22
+ # Clone .claude configuration to your project
23
+ pnpm dlx tiged Dimon94/cc-devflow/.claude .claude
24
+ ```
25
+
26
+ ### Manual Install
27
+
28
+ ```bash
29
+ # Download and extract
30
+ curl -L https://github.com/Dimon94/cc-devflow/archive/main.zip -o cc-devflow.zip
31
+ unzip cc-devflow.zip
32
+ cp -r cc-devflow-main/.claude .claude
33
+ rm -rf cc-devflow.zip cc-devflow-main
34
+ ```
35
+
36
+ ## ✅ Verify Installation
37
+
38
+ Run the verification script:
39
+
40
+ ```bash
41
+ .claude/scripts/verify-setup.sh
42
+ ```
43
+
44
+ This script will check:
45
+ - All required files and directories exist
46
+ - Scripts have execute permissions
47
+ - Git repository is properly configured
48
+
49
+ ## 🎯 Your First Requirement
50
+
51
+ ### Step 1: Start Development Flow
52
+
53
+ ```bash
54
+ /flow-new "REQ-001|User Authentication|https://docs.example.com/auth"
55
+ ```
56
+
57
+ This will:
58
+ 1. Initialize requirement structure
59
+ 2. Generate PRD
60
+ 3. Generate UI prototype (if needed)
61
+ 4. Create technical design
62
+ 5. Generate EPIC and TASKS
63
+ 6. Execute development
64
+ 7. Run QA tests
65
+ 8. Prepare release
66
+
67
+ ### Step 2: Check Progress
68
+
69
+ ```bash
70
+ /flow-status REQ-001
71
+ ```
72
+
73
+ ### Step 3: Resume If Interrupted
74
+
75
+ ```bash
76
+ /flow-restart "REQ-001"
77
+ ```
78
+
79
+ ## 🛠️ Core Scripts
80
+
81
+ ### Environment Check
82
+ ```bash
83
+ bash .claude/scripts/check-prerequisites.sh
84
+ ```
85
+
86
+ ### View Task Status
87
+ ```bash
88
+ bash .claude/scripts/check-task-status.sh --verbose
89
+ ```
90
+
91
+ ### Mark Task Complete
92
+ ```bash
93
+ bash .claude/scripts/mark-task-complete.sh T001
94
+ ```
95
+
96
+ ### Generate Status Report
97
+ ```bash
98
+ bash .claude/scripts/generate-status-report.sh --format markdown
99
+ ```
100
+
101
+ ## 🧪 Running Tests
102
+
103
+ ### Script Tests
104
+ ```bash
105
+ # Run all tests
106
+ bash .claude/tests/run-all-tests.sh --scripts
107
+
108
+ # Run specific test
109
+ bash .claude/tests/scripts/test_check_prerequisites.sh
110
+ ```
111
+
112
+ ### Constitution Tests
113
+ ```bash
114
+ bash .claude/tests/constitution/run_all_constitution_tests.sh
115
+ ```
116
+
117
+ ## 📊 Interactive Demo
118
+
119
+ Run the interactive demo to see the complete workflow:
120
+
121
+ ```bash
122
+ python3 .claude/scripts/demo.py
123
+ ```
124
+
125
+ ## 🔧 Configuration
126
+
127
+ ### Minimum Configuration
128
+
129
+ Edit `.claude/settings.json`:
130
+
131
+ ```json
132
+ {
133
+ "permissions": {
134
+ "allowGitOperations": true,
135
+ "allowNetworkRequests": true,
136
+ "allowSubprocesses": true
137
+ }
138
+ }
139
+ ```
140
+
141
+ ### Environment Variables
142
+
143
+ ```bash
144
+ # Quality gates
145
+ export MIN_TEST_COVERAGE=80
146
+ export STRICT_TYPE_CHECKING=true
147
+
148
+ # Flow behavior
149
+ export FLOW_AUTO_APPROVE=false
150
+ ```
151
+
152
+ ## 📚 Next Steps
153
+
154
+ - [Command Reference](../commands/README.md) - Learn all available commands
155
+ - [Workflow Guide](./workflow-guide.md) - Understand the development workflow
156
+ - [Best Practices](./best-practices.md) - Follow recommended practices
157
+
158
+ ## 🚨 Troubleshooting
159
+
160
+ ### Issue: Scripts not executable
161
+
162
+ ```bash
163
+ chmod +x .claude/scripts/*.sh
164
+ chmod +x .claude/hooks/*.sh
165
+ ```
166
+
167
+ ### Issue: Git not initialized
168
+
169
+ ```bash
170
+ git init
171
+ git add .
172
+ git commit -m "Initial commit"
173
+ ```
174
+
175
+ ### Issue: Tests failing
176
+
177
+ ```bash
178
+ # Check prerequisites
179
+ bash .claude/scripts/check-prerequisites.sh
180
+
181
+ # Run tests with verbose output
182
+ VERBOSE=true bash .claude/tests/run-all-tests.sh --scripts
183
+ ```
184
+
185
+ ## 💡 Tips
186
+
187
+ 1. **Always check progress** with `/flow-status` before continuing work
188
+ 2. **Use `/flow-verify`** to check document consistency
189
+ 3. **Enable debug mode** if you encounter issues: `export FLOW_DEBUG=1`
190
+ 4. **Read the Constitution** to understand quality standards
191
+
192
+ ## 🆘 Getting Help
193
+
194
+ - [GitHub Issues](https://github.com/Dimon94/cc-devflow/issues)
195
+ - [Documentation](../../docs/)
196
+ - [Contributing Guide](../../CONTRIBUTING.md)
197
+
198
+ ---
199
+
200
+ **Ready to start? Run your first command:**
201
+
202
+ ```bash
203
+ /flow-new "REQ-001|My First Feature"
204
+ ```
@@ -0,0 +1,152 @@
1
+ # 🚀 快速开始指南
2
+
3
+ ## 📦 安装
4
+
5
+ ### 方式 1: 使用 npx(推荐)
6
+
7
+ ```bash
8
+ pnpm dlx tiged Dimon94/cc-devflow/.claude .claude
9
+ ```
10
+
11
+ ### 方式 2: 手动下载
12
+
13
+ ```bash
14
+ curl -L https://github.com/Dimon94/cc-devflow/archive/main.zip -o cc-devflow.zip
15
+ unzip cc-devflow.zip
16
+ cp -r cc-devflow-main/.claude .claude
17
+ rm -rf cc-devflow.zip cc-devflow-main
18
+ ```
19
+
20
+ ## ✅ 验证安装
21
+
22
+ ```bash
23
+ .claude/scripts/verify-setup.sh
24
+ ```
25
+
26
+ **预期输出**:
27
+ ```
28
+ ✅ All checks passed!
29
+ cc-devflow is ready to use.
30
+ ```
31
+
32
+ ## 🎮 交互式演示
33
+
34
+ 运行完整演示了解工作流:
35
+
36
+ ```bash
37
+ python3 .claude/scripts/demo.py
38
+ ```
39
+
40
+ ## 🎯 第一个需求
41
+
42
+ ### 1. 启动需求开发
43
+
44
+ ```bash
45
+ /flow-new "REQ-001|用户认证功能|https://docs.example.com/auth"
46
+ ```
47
+
48
+ ### 2. 查看进度
49
+
50
+ ```bash
51
+ /flow-status REQ-001
52
+ ```
53
+
54
+ ### 3. 如果中断,恢复开发
55
+
56
+ ```bash
57
+ /flow-restart "REQ-001"
58
+ ```
59
+
60
+ ### 4. 验证一致性
61
+
62
+ ```bash
63
+ /flow-verify "REQ-001"
64
+ ```
65
+
66
+ ### 5. 执行 QA
67
+
68
+ ```bash
69
+ /flow-qa "REQ-001"
70
+ ```
71
+
72
+ ### 6. 创建发布
73
+
74
+ ```bash
75
+ /flow-release "REQ-001"
76
+ ```
77
+
78
+ ## 📋 核心脚本
79
+
80
+ ```bash
81
+ # 快速环境检查
82
+ bash .claude/scripts/check-prerequisites.sh
83
+
84
+ # 查看任务状态
85
+ bash .claude/scripts/check-task-status.sh --verbose
86
+
87
+ # 标记任务完成
88
+ bash .claude/scripts/mark-task-complete.sh T001
89
+
90
+ # 生成状态报告
91
+ bash .claude/scripts/generate-status-report.sh --format markdown
92
+
93
+ # 验证 Constitution 合规
94
+ bash .claude/scripts/manage-constitution.sh verify
95
+ ```
96
+
97
+ ## 🧪 运行测试
98
+
99
+ ```bash
100
+ # 运行所有脚本测试
101
+ bash .claude/tests/run-all-tests.sh --scripts
102
+
103
+ # 运行 Constitution 测试
104
+ bash .claude/tests/constitution/run_all_constitution_tests.sh
105
+
106
+ # 运行特定测试
107
+ bash .claude/tests/scripts/test_check_prerequisites.sh
108
+ ```
109
+
110
+ ## ⚙️ 基础配置
111
+
112
+ 最小配置 (`.claude/settings.json`):
113
+
114
+ ```json
115
+ {
116
+ "permissions": {
117
+ "allowGitOperations": true,
118
+ "allowNetworkRequests": true,
119
+ "allowSubprocesses": true
120
+ }
121
+ }
122
+ ```
123
+
124
+ ## 🚨 常见问题
125
+
126
+ ### Q: 安装后命令无法识别?
127
+
128
+ **A**: 确保在项目根目录执行命令,且 `.claude/` 目录存在。
129
+
130
+ ### Q: Git 仓库未初始化?
131
+
132
+ **A**: 先初始化 Git 仓库:
133
+ ```bash
134
+ git init
135
+ git add .
136
+ git commit -m "Initial commit"
137
+ ```
138
+
139
+ ### Q: 权限不足?
140
+
141
+ **A**: 给脚本添加执行权限:
142
+ ```bash
143
+ chmod +x .claude/scripts/*.sh
144
+ chmod +x .claude/hooks/*.sh
145
+ ```
146
+
147
+ ## 📚 下一步
148
+
149
+ - [完整命令参考](../commands/README.md)
150
+ - [工作流详解](./workflow-guide.md)
151
+ - [最佳实践](./best-practices.md)
152
+ - [故障排查](./troubleshooting.md)
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Abstract class representing an Agent Adapter.
3
+ * Adapters bridge the gap between cc-devflow and specific AI agent CLI tools.
4
+ */
5
+ class AgentAdapter {
6
+ constructor() {
7
+ if (this.constructor === AgentAdapter) {
8
+ throw new Error("Cannot instantiate abstract class AgentAdapter");
9
+ }
10
+ }
11
+
12
+ /**
13
+ * The unique name of the adapter (e.g., 'claude', 'codex').
14
+ * @returns {string}
15
+ */
16
+ get name() {
17
+ throw new Error("Method 'name' must be implemented.");
18
+ }
19
+
20
+ /**
21
+ * The configuration folder name expected in the user's project (e.g., '.claude').
22
+ * @returns {string}
23
+ */
24
+ get folder() {
25
+ throw new Error("Method 'folder' must be implemented.");
26
+ }
27
+
28
+ /**
29
+ * Detects if this adapter is applicable for the current environment.
30
+ * Checks for folder existence, environment variables, or other indicators.
31
+ * @returns {Promise<boolean>}
32
+ */
33
+ async detect() {
34
+ throw new Error("Method 'detect()' must be implemented.");
35
+ }
36
+
37
+ /**
38
+ * Executes a command using this adapter's underlying agent.
39
+ * @param {string} command - The command to execute.
40
+ * @param {string[]} args - Arguments for the command.
41
+ * @param {Object} options - Execution options.
42
+ * @returns {Promise<Object>} The result of the execution.
43
+ */
44
+ async execute(command, args = [], options = {}) {
45
+ throw new Error("Method 'execute()' must be implemented.");
46
+ }
47
+
48
+ /**
49
+ * Returns the capabilities of this adapter.
50
+ * @returns {string[]} List of capabilities (e.g., 'shell', 'network').
51
+ */
52
+ get capabilities() {
53
+ return [];
54
+ }
55
+ }
56
+
57
+ module.exports = AgentAdapter;
@@ -0,0 +1,74 @@
1
+ const fs = require('fs');
2
+ const path = require('path');
3
+ const { spawn } = require('child_process');
4
+ const AgentAdapter = require('./adapter-interface');
5
+
6
+ class ClaudeAdapter extends AgentAdapter {
7
+ get name() {
8
+ return 'claude';
9
+ }
10
+
11
+ get folder() {
12
+ return '.claude';
13
+ }
14
+
15
+ /**
16
+ * Detects if the current environment is set up for Claude.
17
+ * Checks for .claude directory or ANTHROPIC_API_KEY env var.
18
+ */
19
+ async detect() {
20
+ // 1. Check for directory presence
21
+ const configPath = path.resolve(process.cwd(), this.folder);
22
+ if (fs.existsSync(configPath)) {
23
+ return true;
24
+ }
25
+
26
+ // 2. Check for environment variable
27
+ if (process.env.ANTHROPIC_API_KEY) {
28
+ return true;
29
+ }
30
+
31
+ return false;
32
+ }
33
+
34
+ /**
35
+ * Executes a command using the 'claude' CLI tool.
36
+ * Assumes 'claude' is in the PATH or handled via `npx claude`.
37
+ * For MVP we assume it's installed globally or accessible.
38
+ */
39
+ async execute(command, args = [], options = {}) {
40
+ return new Promise((resolve, reject) => {
41
+ // In a real scenario, we might want to sanitize input or map commands
42
+ // from our internal schema to claude-code's CLI schema.
43
+ // For now, we pass through.
44
+
45
+ const cliCmd = 'claude'; // Or 'npx', ['claude', ...args]
46
+ const cliArgs = [command, ...args];
47
+
48
+ const child = spawn(cliCmd, cliArgs, {
49
+ stdio: 'inherit',
50
+ shell: false,
51
+ ...options
52
+ });
53
+
54
+ child.on('error', (err) => {
55
+ reject(err);
56
+ });
57
+
58
+ child.on('close', (code) => {
59
+ if (code === 0) {
60
+ resolve({ code, msg: 'Success' });
61
+ } else {
62
+ resolve({ code, msg: `Exited with code ${code}` }); // Or reject?
63
+ }
64
+ });
65
+ });
66
+ }
67
+
68
+ get capabilities() {
69
+ // Claude code is powerful, has shell and network usually.
70
+ return ['shell', 'network', 'filesystem'];
71
+ }
72
+ }
73
+
74
+ module.exports = ClaudeAdapter;
@@ -0,0 +1,40 @@
1
+ const fs = require('fs');
2
+ const path = require('path');
3
+ const AgentAdapter = require('./adapter-interface');
4
+
5
+ class CodexAdapter extends AgentAdapter {
6
+ get priority() {
7
+ for (const key of Object.keys(process.env)) {
8
+ if (key.startsWith('CODEX_')) return 100;
9
+ }
10
+ return 0;
11
+ }
12
+
13
+ get name() {
14
+ return 'codex';
15
+ }
16
+
17
+ get folder() {
18
+ return '.codex';
19
+ }
20
+
21
+ async detect() {
22
+ for (const key of Object.keys(process.env)) {
23
+ if (key.startsWith('CODEX_')) return true;
24
+ }
25
+
26
+ const configPath = path.resolve(process.cwd(), this.folder);
27
+ return fs.existsSync(configPath);
28
+ }
29
+
30
+ async execute(command, args = [], options = {}) {
31
+ console.log(`[CodexAdapter] Executing: ${command} ${args.join(' ')}`);
32
+ return { code: 0, msg: 'Codex executed (simulated)' };
33
+ }
34
+
35
+ get capabilities() {
36
+ return ['code-generation'];
37
+ }
38
+ }
39
+
40
+ module.exports = CodexAdapter;
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Runtime configuration validator using Zod.
3
+ * Ensures adapters.yml conforms to expected schema with secure defaults.
4
+ */
5
+ const { z } = require('zod');
6
+
7
+ // ============================================================================
8
+ // Schema Definition
9
+ // ============================================================================
10
+
11
+ const PoliciesSchema = z.object({
12
+ allow_shell: z.boolean().default(false),
13
+ allow_network: z.boolean().default(false),
14
+ audit_log_path: z.string().optional()
15
+ }).strict();
16
+
17
+ const AdaptersConfigSchema = z.object({
18
+ preferred: z.string().nullable().optional().default(null),
19
+ policies: PoliciesSchema.default({})
20
+ }).strict();
21
+
22
+ const RootConfigSchema = z.object({
23
+ adapters: AdaptersConfigSchema.default({})
24
+ });
25
+
26
+ // ============================================================================
27
+ // Validation Functions
28
+ // ============================================================================
29
+
30
+ /**
31
+ * Parse and validate the raw YAML config object.
32
+ * Returns validated config with defaults applied.
33
+ *
34
+ * @param {unknown} rawConfig - Raw parsed YAML object
35
+ * @returns {{ success: true, data: object } | { success: false, error: string }}
36
+ */
37
+ function validateConfig(rawConfig) {
38
+ const result = RootConfigSchema.safeParse(rawConfig ?? {});
39
+
40
+ if (!result.success) {
41
+ const issues = result.error.issues
42
+ .map(i => ` - ${i.path.join('.')}: ${i.message}`)
43
+ .join('\n');
44
+ return {
45
+ success: false,
46
+ error: `Configuration validation failed:\n${issues}`
47
+ };
48
+ }
49
+
50
+ return { success: true, data: result.data };
51
+ }
52
+
53
+ /**
54
+ * Get default config when file is missing or empty.
55
+ *
56
+ * @returns {object} Default configuration
57
+ */
58
+ function getDefaultConfig() {
59
+ return RootConfigSchema.parse({});
60
+ }
61
+
62
+ module.exports = {
63
+ validateConfig,
64
+ getDefaultConfig,
65
+ // Export schemas for testing
66
+ AdaptersConfigSchema,
67
+ RootConfigSchema
68
+ };
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Structural Logger for Adapter System.
3
+ * Outputs JSON format for machine readability and better observability.
4
+ */
5
+ class Logger {
6
+ constructor() {
7
+ this.enabled = true;
8
+ }
9
+
10
+ log(level, message, context = {}) {
11
+ if (!this.enabled) return;
12
+
13
+ const entry = {
14
+ timestamp: new Date().toISOString(),
15
+ level,
16
+ message,
17
+ ...context
18
+ };
19
+
20
+ console.log(JSON.stringify(entry));
21
+ }
22
+
23
+ info(message, context) {
24
+ this.log('INFO', message, context);
25
+ }
26
+
27
+ warn(message, context) {
28
+ this.log('WARN', message, context);
29
+ }
30
+
31
+ error(message, context) {
32
+ this.log('ERROR', message, context);
33
+ }
34
+
35
+ debug(message, context) {
36
+ if (process.env.DEBUG) {
37
+ this.log('DEBUG', message, context);
38
+ }
39
+ }
40
+ }
41
+
42
+ module.exports = new Logger();