cc-devflow 4.2.0 → 4.4.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 (559) hide show
  1. package/.claude/skills/cc-act/CHANGELOG.md +64 -0
  2. package/.claude/skills/cc-act/PLAYBOOK.md +212 -0
  3. package/.claude/skills/cc-act/SKILL.md +322 -0
  4. package/.claude/skills/cc-act/assets/PR_BRIEF_TEMPLATE.md +64 -0
  5. package/.claude/skills/cc-act/assets/RELEASE_NOTE_TEMPLATE.md +25 -0
  6. package/.claude/skills/cc-act/references/closure-contract.md +49 -0
  7. package/.claude/skills/cc-act/references/git-commit-guidelines.md +83 -0
  8. package/.claude/skills/cc-act/scripts/archive-requirement.sh +49 -0
  9. package/.claude/skills/cc-act/scripts/cc-act-common.sh +240 -0
  10. package/.claude/skills/cc-act/scripts/detect-ship-target.sh +82 -0
  11. package/.claude/skills/cc-act/scripts/generate-status-report.sh +83 -0
  12. package/.claude/skills/cc-act/scripts/render-pr-brief.sh +195 -0
  13. package/.claude/skills/cc-act/scripts/sync-act-docs.sh +315 -0
  14. package/.claude/skills/cc-act/scripts/verify-act-gate.sh +63 -0
  15. package/.claude/skills/cc-check/CHANGELOG.md +73 -0
  16. package/.claude/skills/cc-check/PLAYBOOK.md +153 -0
  17. package/.claude/skills/cc-check/SKILL.md +345 -0
  18. package/.claude/skills/cc-check/assets/REPORT_CARD_TEMPLATE.json +50 -0
  19. package/.claude/skills/cc-check/references/gate-contract.md +29 -0
  20. package/.claude/skills/cc-check/references/review-contract.md +45 -0
  21. package/.claude/skills/cc-check/scripts/render-report-card.js +229 -0
  22. package/.claude/skills/cc-check/scripts/run-quality-gates.sh +86 -0
  23. package/.claude/skills/cc-check/scripts/verify-gate.sh +57 -0
  24. package/.claude/skills/cc-do/CHANGELOG.md +49 -0
  25. package/.claude/skills/cc-do/PLAYBOOK.md +119 -0
  26. package/.claude/skills/cc-do/SKILL.md +216 -0
  27. package/.claude/skills/cc-do/references/execution-recovery.md +86 -0
  28. package/.claude/skills/cc-do/references/parallel-dispatch.md +80 -0
  29. package/.claude/skills/cc-do/scripts/build-task-context.sh +184 -0
  30. package/.claude/skills/cc-do/scripts/cc-do-common.sh +79 -0
  31. package/.claude/skills/cc-do/scripts/check-task-status.sh +92 -0
  32. package/.claude/skills/cc-do/scripts/detect-file-conflicts.sh +87 -0
  33. package/.claude/skills/cc-do/scripts/mark-task-complete.sh +119 -0
  34. package/.claude/skills/cc-do/scripts/record-review-decision.sh +89 -0
  35. package/.claude/skills/cc-do/scripts/recover-workflow.sh +84 -0
  36. package/.claude/skills/cc-do/scripts/run-problem-analysis.sh +70 -0
  37. package/.claude/skills/cc-do/scripts/select-ready-tasks.sh +135 -0
  38. package/.claude/skills/cc-do/scripts/verify-task-gates.sh +94 -0
  39. package/.claude/skills/cc-do/scripts/write-task-checkpoint.sh +102 -0
  40. package/.claude/skills/cc-investigate/CHANGELOG.md +26 -0
  41. package/.claude/skills/cc-investigate/PLAYBOOK.md +49 -0
  42. package/.claude/skills/cc-investigate/SKILL.md +221 -0
  43. package/.claude/skills/cc-investigate/assets/ANALYSIS_TEMPLATE.md +55 -0
  44. package/.claude/skills/cc-investigate/assets/TASKS_TEMPLATE.md +52 -0
  45. package/.claude/skills/cc-investigate/assets/TASK_MANIFEST_TEMPLATE.json +103 -0
  46. package/.claude/skills/cc-investigate/references/investigation-contract.md +28 -0
  47. package/.claude/skills/cc-investigate/scripts/bootstrap-analysis.sh +38 -0
  48. package/.claude/skills/cc-plan/CHANGELOG.md +99 -0
  49. package/.claude/skills/cc-plan/PLAYBOOK.md +106 -0
  50. package/.claude/skills/cc-plan/SKILL.md +325 -0
  51. package/.claude/skills/cc-plan/assets/DESIGN_TEMPLATE.md +155 -0
  52. package/.claude/skills/cc-plan/assets/TASKS_TEMPLATE.md +98 -0
  53. package/.claude/skills/cc-plan/assets/TASK_MANIFEST_TEMPLATE.json +108 -0
  54. package/.claude/skills/cc-plan/assets/TINY_DESIGN_TEMPLATE.md +79 -0
  55. package/.claude/skills/cc-plan/references/planning-contract.md +82 -0
  56. package/.claude/skills/cc-plan/scripts/bump-skill-version.sh +103 -0
  57. package/.claude/skills/cc-plan/scripts/parse-task-dependencies.js +75 -0
  58. package/.claude/skills/cc-plan/scripts/validate-scope.sh +78 -0
  59. package/.claude/skills/cc-roadmap/CHANGELOG.md +114 -0
  60. package/.claude/skills/cc-roadmap/PLAYBOOK.md +136 -0
  61. package/.claude/skills/cc-roadmap/SKILL.md +259 -0
  62. package/.claude/skills/cc-roadmap/assets/BACKLOG_TEMPLATE.md +45 -0
  63. package/.claude/skills/cc-roadmap/assets/ROADMAP_TEMPLATE.md +153 -0
  64. package/.claude/skills/cc-roadmap/assets/TRACKING_TEMPLATE.json +48 -0
  65. package/.claude/skills/cc-roadmap/references/roadmap-dialogue.md +37 -0
  66. package/.claude/skills/cc-roadmap/scripts/bump-skill-version.sh +103 -0
  67. package/.claude/skills/cc-roadmap/scripts/lib/roadmap-tracking/markdown.js +604 -0
  68. package/.claude/skills/cc-roadmap/scripts/lib/roadmap-tracking/query.js +63 -0
  69. package/.claude/skills/cc-roadmap/scripts/lib/roadmap-tracking/schema.js +245 -0
  70. package/.claude/skills/cc-roadmap/scripts/lib/roadmap-tracking/store.js +139 -0
  71. package/.claude/skills/cc-roadmap/scripts/locate-roadmap-item.sh +109 -0
  72. package/.claude/skills/cc-roadmap/scripts/roadmap-tracking.js +153 -0
  73. package/.claude/skills/cc-roadmap/scripts/sync-roadmap-progress.sh +100 -0
  74. package/.claude/skills/cc-simplify/CHANGELOG.md +10 -0
  75. package/.claude/skills/cc-simplify/SKILL.md +55 -0
  76. package/.claude/skills/cc-spec-init/CHANGELOG.md +7 -0
  77. package/.claude/skills/cc-spec-init/PLAYBOOK.md +55 -0
  78. package/.claude/skills/cc-spec-init/SKILL.md +127 -0
  79. package/.claude/skills/cc-spec-init/assets/CAPABILITY_TEMPLATE.md +63 -0
  80. package/.claude/skills/cc-spec-init/assets/CHANGE_META_TEMPLATE.json +25 -0
  81. package/.claude/skills/cc-spec-init/assets/INDEX_TEMPLATE.md +34 -0
  82. package/.claude/skills/cc-spec-init/references/spec-contract.md +22 -0
  83. package/.claude/skills/cc-spec-init/scripts/bootstrap-specs.sh +31 -0
  84. package/.claude/skills/cc-spec-init/scripts/validate-spec-links.sh +45 -0
  85. package/CHANGELOG.md +101 -4
  86. package/README.md +120 -755
  87. package/README.zh-CN.md +119 -755
  88. package/bin/adapt.js +2 -6
  89. package/bin/cc-devflow-cli.js +72 -177
  90. package/config/distributable-skills.json +24 -0
  91. package/docs/CLAUDE.md +10 -6
  92. package/docs/commands/README.md +19 -46
  93. package/docs/commands/README.zh-CN.md +25 -48
  94. package/docs/examples/BY-ARTIFACT.md +7 -0
  95. package/docs/examples/README.md +38 -0
  96. package/docs/examples/START-HERE.md +149 -0
  97. package/docs/examples/example-bindings.json +38 -0
  98. package/docs/examples/full-design-blocked/BACKLOG.md +45 -0
  99. package/docs/examples/full-design-blocked/README.md +55 -0
  100. package/docs/examples/full-design-blocked/ROADMAP.md +53 -0
  101. package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/design.md +154 -0
  102. package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/task-manifest.json +146 -0
  103. package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/tasks.md +78 -0
  104. package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/review/report-card.json +52 -0
  105. package/docs/examples/full-design-blocked/roadmap-tracking.json +50 -0
  106. package/docs/examples/local-handoff/BACKLOG.md +45 -0
  107. package/docs/examples/local-handoff/README.md +56 -0
  108. package/docs/examples/local-handoff/ROADMAP.md +45 -0
  109. package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/handoff/resume-index.md +39 -0
  110. package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/handoff/status.md +29 -0
  111. package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/planning/design.md +71 -0
  112. package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/planning/task-manifest.json +98 -0
  113. package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/planning/tasks.md +59 -0
  114. package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/review/report-card.json +44 -0
  115. package/docs/examples/local-handoff/roadmap-tracking.json +48 -0
  116. package/docs/examples/pdca-loop/BACKLOG.md +46 -0
  117. package/docs/examples/pdca-loop/README.md +58 -0
  118. package/docs/examples/pdca-loop/ROADMAP.md +133 -0
  119. package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/handoff/pr-brief.md +72 -0
  120. package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/handoff/status.md +29 -0
  121. package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/design.md +72 -0
  122. package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/task-manifest.json +201 -0
  123. package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/tasks.md +73 -0
  124. package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/review/report-card.json +44 -0
  125. package/docs/examples/pdca-loop/roadmap-tracking.json +114 -0
  126. package/docs/examples/scripts/check-example-bindings.sh +116 -0
  127. package/docs/guides/getting-started.md +94 -129
  128. package/docs/guides/getting-started.zh-CN.md +103 -84
  129. package/docs/skill-runtime-migration.md +46 -0
  130. package/docs/v4.3.0-migration-guide.md +111 -0
  131. package/lib/compiler/CLAUDE.md +55 -84
  132. package/lib/compiler/__tests__/drift.test.js +1 -1
  133. package/lib/compiler/__tests__/errors.test.js +0 -1
  134. package/lib/compiler/__tests__/integration.test.js +49 -3
  135. package/lib/compiler/__tests__/manifest.test.js +0 -156
  136. package/lib/compiler/__tests__/parser.test.js +33 -104
  137. package/lib/compiler/__tests__/schemas.test.js +30 -34
  138. package/lib/compiler/__tests__/skills-registry.test.js +114 -0
  139. package/lib/compiler/__tests__/transformer.test.js +5 -9
  140. package/lib/compiler/emitters/antigravity-emitter.js +5 -213
  141. package/lib/compiler/emitters/base-emitter.js +3 -298
  142. package/lib/compiler/emitters/codex-emitter.js +4 -202
  143. package/lib/compiler/emitters/cursor-emitter.js +3 -287
  144. package/lib/compiler/emitters/qwen-emitter.js +4 -176
  145. package/lib/compiler/index.js +65 -345
  146. package/lib/compiler/manifest.js +6 -68
  147. package/lib/compiler/parser.js +31 -63
  148. package/lib/compiler/platforms.js +32 -277
  149. package/lib/compiler/resource-copier.js +176 -6
  150. package/lib/compiler/rules-emitters/__tests__/antigravity-rules-emitter.test.js +3 -3
  151. package/lib/compiler/rules-emitters/__tests__/cursor-rules-emitter.test.js +14 -4
  152. package/lib/compiler/rules-emitters/__tests__/qwen-rules-emitter.test.js +16 -7
  153. package/lib/compiler/rules-emitters/antigravity-rules-emitter.js +10 -15
  154. package/lib/compiler/rules-emitters/base-rules-emitter.js +5 -5
  155. package/lib/compiler/rules-emitters/cursor-rules-emitter.js +7 -12
  156. package/lib/compiler/rules-emitters/index.js +6 -3
  157. package/lib/compiler/rules-emitters/qwen-rules-emitter.js +7 -7
  158. package/lib/compiler/schemas.js +8 -4
  159. package/lib/compiler/skills-registry.js +213 -15
  160. package/lib/compiler/transformer.js +1 -1
  161. package/lib/skill-runtime/CLAUDE.md +19 -0
  162. package/lib/skill-runtime/__tests__/autopilot.test.js +210 -0
  163. package/lib/skill-runtime/__tests__/cli-bootstrap.integration.test.js +181 -0
  164. package/lib/skill-runtime/__tests__/delegation.test.js +97 -0
  165. package/lib/skill-runtime/__tests__/dispatch.test.js +267 -0
  166. package/lib/skill-runtime/__tests__/intent.test.js +219 -0
  167. package/lib/skill-runtime/__tests__/lifecycle.test.js +169 -0
  168. package/lib/skill-runtime/__tests__/paths.test.js +42 -0
  169. package/lib/skill-runtime/__tests__/planner.tdd.test.js +250 -0
  170. package/lib/skill-runtime/__tests__/prepare-pr.test.js +139 -0
  171. package/lib/skill-runtime/__tests__/query.test.js +284 -0
  172. package/lib/skill-runtime/__tests__/runtime.integration.test.js +279 -0
  173. package/lib/skill-runtime/__tests__/schemas.test.js +207 -0
  174. package/lib/skill-runtime/__tests__/team-state.test.js +51 -0
  175. package/lib/skill-runtime/__tests__/worker-run.test.js +253 -0
  176. package/lib/skill-runtime/__tests__/worker.test.js +56 -0
  177. package/lib/skill-runtime/artifacts.js +93 -0
  178. package/lib/skill-runtime/delegation.js +533 -0
  179. package/lib/skill-runtime/index.js +34 -0
  180. package/lib/skill-runtime/intent.js +333 -0
  181. package/lib/skill-runtime/lifecycle.js +294 -0
  182. package/lib/skill-runtime/operations/CLAUDE.md +19 -0
  183. package/lib/skill-runtime/operations/approve.js +66 -0
  184. package/lib/skill-runtime/operations/autopilot-core.js +337 -0
  185. package/lib/skill-runtime/operations/autopilot-execution.js +307 -0
  186. package/lib/skill-runtime/operations/autopilot-shared.js +48 -0
  187. package/lib/skill-runtime/operations/autopilot.js +163 -0
  188. package/lib/skill-runtime/operations/dispatch.js +454 -0
  189. package/lib/skill-runtime/operations/init.js +64 -0
  190. package/lib/{harness → skill-runtime}/operations/janitor.js +9 -6
  191. package/lib/skill-runtime/operations/plan.js +59 -0
  192. package/lib/skill-runtime/operations/prepare-pr.js +25 -0
  193. package/lib/{harness → skill-runtime}/operations/release.js +18 -5
  194. package/lib/skill-runtime/operations/resume.js +143 -0
  195. package/lib/skill-runtime/operations/snapshot.js +45 -0
  196. package/lib/skill-runtime/operations/verify.js +170 -0
  197. package/lib/skill-runtime/operations/worker-run.js +529 -0
  198. package/lib/skill-runtime/operations/worker.js +33 -0
  199. package/lib/skill-runtime/paths.js +213 -0
  200. package/lib/skill-runtime/planner.js +519 -0
  201. package/lib/skill-runtime/query.js +157 -0
  202. package/lib/skill-runtime/review.js +557 -0
  203. package/lib/skill-runtime/schemas.js +400 -0
  204. package/lib/{harness → skill-runtime}/store.js +45 -30
  205. package/lib/skill-runtime/team-state.js +122 -0
  206. package/package.json +13 -11
  207. package/.claude/CLAUDE.md +0 -125
  208. package/.claude/agents/architecture-designer.md +0 -443
  209. package/.claude/agents/bug-analyzer.md +0 -381
  210. package/.claude/agents/checklist-agent.md +0 -175
  211. package/.claude/agents/clarify-analyst.md +0 -50
  212. package/.claude/agents/code-quality-reviewer.md +0 -205
  213. package/.claude/agents/code-reviewer.md +0 -71
  214. package/.claude/agents/codex-analyzer.md +0 -39
  215. package/.claude/agents/compatibility-checker.md +0 -579
  216. package/.claude/agents/consistency-checker.md +0 -532
  217. package/.claude/agents/dev-implementer.md +0 -195
  218. package/.claude/agents/flow-researcher.md +0 -132
  219. package/.claude/agents/impact-analyzer.md +0 -440
  220. package/.claude/agents/planner.md +0 -230
  221. package/.claude/agents/prd-writer.md +0 -320
  222. package/.claude/agents/project-guidelines-generator.md +0 -1329
  223. package/.claude/agents/qa-tester.md +0 -313
  224. package/.claude/agents/release-manager.md +0 -295
  225. package/.claude/agents/security-reviewer.md +0 -314
  226. package/.claude/agents/spec-reviewer.md +0 -221
  227. package/.claude/agents/style-guide-generator.md +0 -458
  228. package/.claude/agents/tech-architect.md +0 -516
  229. package/.claude/agents/ui-designer.md +0 -485
  230. package/.claude/commands/core/architecture.md +0 -459
  231. package/.claude/commands/core/guidelines.md +0 -511
  232. package/.claude/commands/core/roadmap.md +0 -468
  233. package/.claude/commands/core/style.md +0 -83
  234. package/.claude/commands/flow/CLAUDE.md +0 -28
  235. package/.claude/commands/flow/archive.md +0 -280
  236. package/.claude/commands/flow/checklist.md +0 -18
  237. package/.claude/commands/flow/clarify.md +0 -18
  238. package/.claude/commands/flow/constitution.md +0 -82
  239. package/.claude/commands/flow/context.md +0 -150
  240. package/.claude/commands/flow/delta.md +0 -245
  241. package/.claude/commands/flow/dev.md +0 -40
  242. package/.claude/commands/flow/fix.md +0 -217
  243. package/.claude/commands/flow/ideate.md +0 -214
  244. package/.claude/commands/flow/init.md +0 -38
  245. package/.claude/commands/flow/new.md +0 -23
  246. package/.claude/commands/flow/quality.md +0 -21
  247. package/.claude/commands/flow/release.md +0 -36
  248. package/.claude/commands/flow/restart.md +0 -97
  249. package/.claude/commands/flow/spec.md +0 -36
  250. package/.claude/commands/flow/status.md +0 -64
  251. package/.claude/commands/flow/update.md +0 -111
  252. package/.claude/commands/flow/upgrade.md +0 -115
  253. package/.claude/commands/flow/verify.md +0 -37
  254. package/.claude/commands/flow/workspace.md +0 -155
  255. package/.claude/commands/util/cancel-ralph.md +0 -60
  256. package/.claude/commands/util/code-review.md +0 -58
  257. package/.claude/commands/util/git-commit.md +0 -422
  258. package/.claude/commands/util/problem-analyzer.md +0 -60
  259. package/.claude/config/quality-gates.yml +0 -305
  260. package/.claude/config/quality-rules.yml +0 -161
  261. package/.claude/docs/SPEC_KIT_CONSTITUTION_ANALYSIS.md +0 -426
  262. package/.claude/docs/design/consistency-conflict-detection-algorithms.md +0 -658
  263. package/.claude/docs/design/intent-driven-input-design.md +0 -380
  264. package/.claude/docs/design/prd-version-management-design.md +0 -437
  265. package/.claude/docs/guides/INIT_TROUBLESHOOTING.md +0 -117
  266. package/.claude/docs/guides/NEW_TROUBLESHOOTING.md +0 -99
  267. package/.claude/docs/guides/ROADMAP_TROUBLESHOOTING.md +0 -188
  268. package/.claude/docs/guides/TASK_COMPLETION_MARKING.md +0 -338
  269. package/.claude/docs/guides/TEAM_MODE_GUIDE.md +0 -312
  270. package/.claude/docs/templates/ARCHITECTURE_TEMPLATE.md +0 -633
  271. package/.claude/docs/templates/ATTEMPT_TEMPLATE.md +0 -156
  272. package/.claude/docs/templates/BACKLOG_TEMPLATE.md +0 -261
  273. package/.claude/docs/templates/BRAINSTORM_TEMPLATE.md +0 -148
  274. package/.claude/docs/templates/CHECKLIST_TEMPLATE.md +0 -52
  275. package/.claude/docs/templates/CLARIFICATION_REPORT_TEMPLATE.md +0 -206
  276. package/.claude/docs/templates/CODE_REVIEW_TEMPLATE.md +0 -71
  277. package/.claude/docs/templates/DELTA_SPEC_TEMPLATE.md +0 -91
  278. package/.claude/docs/templates/DESIGN_DECISIONS_TEMPLATE.md +0 -151
  279. package/.claude/docs/templates/EPIC_TEMPLATE.md +0 -805
  280. package/.claude/docs/templates/ERROR_LOG_TEMPLATE.md +0 -80
  281. package/.claude/docs/templates/INIT_FLOW_TEMPLATE.md +0 -198
  282. package/.claude/docs/templates/INTENT_CLARIFICATION_TEMPLATE.md +0 -57
  283. package/.claude/docs/templates/JOURNAL_TEMPLATE.md +0 -75
  284. package/.claude/docs/templates/NEW_ORCHESTRATION_TEMPLATE.md +0 -76
  285. package/.claude/docs/templates/PRD_TEMPLATE.md +0 -562
  286. package/.claude/docs/templates/RESEARCH_TEMPLATE.md +0 -276
  287. package/.claude/docs/templates/REVIEW-HIGH.md +0 -57
  288. package/.claude/docs/templates/ROADMAP_DIALOGUE_TEMPLATE.md +0 -198
  289. package/.claude/docs/templates/ROADMAP_TEMPLATE.md +0 -310
  290. package/.claude/docs/templates/STYLE_TEMPLATE.md +0 -1266
  291. package/.claude/docs/templates/TASKS_TEMPLATE.md +0 -523
  292. package/.claude/docs/templates/TECH_DESIGN_TEMPLATE.md +0 -1019
  293. package/.claude/docs/templates/UI_PROTOTYPE_TEMPLATE.md +0 -1435
  294. package/.claude/docs/templates/_shared/CLAUDE.md +0 -36
  295. package/.claude/docs/templates/_shared/CONSTITUTION_CHECK.md +0 -125
  296. package/.claude/docs/templates/_shared/VALIDATION_CHECKLIST.md +0 -187
  297. package/.claude/docs/templates/_shared/YAML_FRONTMATTER.md +0 -164
  298. package/.claude/docs/templates/context/dev.jsonl.template +0 -6
  299. package/.claude/docs/templates/context/epic.jsonl.template +0 -5
  300. package/.claude/docs/templates/context/prd.jsonl.template +0 -4
  301. package/.claude/docs/templates/context/research.jsonl.template +0 -4
  302. package/.claude/docs/templates/context/review.jsonl.template +0 -5
  303. package/.claude/docs/templates/context/tech.jsonl.template +0 -5
  304. package/.claude/guides/agent-guides/agent-coordination-guide.md +0 -459
  305. package/.claude/guides/project-guidelines-system.md +0 -463
  306. package/.claude/guides/technical-guides/datetime-handling-guide.md +0 -563
  307. package/.claude/guides/technical-guides/git-github-guide.md +0 -642
  308. package/.claude/guides/technical-guides/test-execution-guide.md +0 -618
  309. package/.claude/guides/workflow-guides/bug-fix-orchestrator.md +0 -217
  310. package/.claude/guides/workflow-guides/flow-orchestrator.md +0 -48
  311. package/.claude/hooks/CLAUDE.md +0 -342
  312. package/.claude/hooks/checklist-gate.js +0 -397
  313. package/.claude/hooks/error-handling-reminder.sh +0 -12
  314. package/.claude/hooks/error-handling-reminder.ts +0 -459
  315. package/.claude/hooks/hooks.json +0 -15
  316. package/.claude/hooks/inject-agent-context.ts +0 -480
  317. package/.claude/hooks/inject-skill-context.ts +0 -359
  318. package/.claude/hooks/post-tool-use-tracker.sh +0 -280
  319. package/.claude/hooks/pre-tool-use-guardrail.sh +0 -36
  320. package/.claude/hooks/pre-tool-use-guardrail.ts +0 -342
  321. package/.claude/hooks/ralph-loop.ts +0 -931
  322. package/.claude/hooks/ralph-stop-hook.sh +0 -190
  323. package/.claude/hooks/skill-activation-prompt.sh +0 -36
  324. package/.claude/hooks/skill-activation-prompt.ts +0 -214
  325. package/.claude/hooks/state/skills-used-test-guard.json +0 -3
  326. package/.claude/hooks/task-completed-hook.ts +0 -593
  327. package/.claude/hooks/teammate-idle-hook.ts +0 -690
  328. package/.claude/hooks/types/team-types.d.ts +0 -238
  329. package/.claude/rules/devflow-conventions.md +0 -286
  330. package/.claude/rules/project-constitution.md +0 -1002
  331. package/.claude/rules/rationalization-library.md +0 -282
  332. package/.claude/schemas/constitution.schema.json +0 -43
  333. package/.claude/scripts/CLAUDE.md +0 -76
  334. package/.claude/scripts/analyze-upgrade-impact.sh +0 -200
  335. package/.claude/scripts/archive-requirement.sh +0 -394
  336. package/.claude/scripts/calculate-checklist-completion.sh +0 -243
  337. package/.claude/scripts/calculate-quarter.sh +0 -206
  338. package/.claude/scripts/check-dependencies.sh +0 -409
  339. package/.claude/scripts/check-prerequisites.sh +0 -232
  340. package/.claude/scripts/check-task-status.sh +0 -288
  341. package/.claude/scripts/checklist-errors.sh +0 -131
  342. package/.claude/scripts/common.sh +0 -1102
  343. package/.claude/scripts/consolidate-research.sh +0 -182
  344. package/.claude/scripts/create-requirement.sh +0 -451
  345. package/.claude/scripts/delta-parser.ts +0 -527
  346. package/.claude/scripts/detect-file-conflicts.sh +0 -151
  347. package/.claude/scripts/export-contracts.sh +0 -117
  348. package/.claude/scripts/extract-data-model.sh +0 -78
  349. package/.claude/scripts/flow-context-add.sh +0 -134
  350. package/.claude/scripts/flow-context-init.sh +0 -133
  351. package/.claude/scripts/flow-context-validate.sh +0 -144
  352. package/.claude/scripts/flow-delta-apply.sh +0 -297
  353. package/.claude/scripts/flow-delta-archive.sh +0 -71
  354. package/.claude/scripts/flow-delta-create.sh +0 -202
  355. package/.claude/scripts/flow-delta-list.sh +0 -142
  356. package/.claude/scripts/flow-delta-status.sh +0 -235
  357. package/.claude/scripts/flow-quality-full.sh +0 -215
  358. package/.claude/scripts/flow-quality-quick.sh +0 -119
  359. package/.claude/scripts/flow-workspace-init.sh +0 -117
  360. package/.claude/scripts/flow-workspace-record.sh +0 -164
  361. package/.claude/scripts/generate-clarification-questions.sh +0 -377
  362. package/.claude/scripts/generate-clarification-report.sh +0 -463
  363. package/.claude/scripts/generate-quickstart.sh +0 -146
  364. package/.claude/scripts/generate-research-tasks.sh +0 -157
  365. package/.claude/scripts/generate-status-report.sh +0 -523
  366. package/.claude/scripts/generate-tech-analysis.sh +0 -46
  367. package/.claude/scripts/get-workflow-status.sh +0 -415
  368. package/.claude/scripts/locate-requirement-in-roadmap.sh +0 -233
  369. package/.claude/scripts/manage-constitution.sh +0 -602
  370. package/.claude/scripts/mark-task-complete.sh +0 -198
  371. package/.claude/scripts/parse-task-dependencies.js +0 -334
  372. package/.claude/scripts/populate-research-tasks.sh +0 -284
  373. package/.claude/scripts/record-quality-error.sh +0 -165
  374. package/.claude/scripts/recover-workflow.sh +0 -463
  375. package/.claude/scripts/run-clarify-scan.sh +0 -601
  376. package/.claude/scripts/run-high-review.sh +0 -62
  377. package/.claude/scripts/run-problem-analysis.sh +0 -68
  378. package/.claude/scripts/run-quality-gates.sh +0 -242
  379. package/.claude/scripts/setup-epic.sh +0 -173
  380. package/.claude/scripts/setup-ralph-loop.sh +0 -155
  381. package/.claude/scripts/sync-roadmap-progress.sh +0 -300
  382. package/.claude/scripts/sync-task-marks.sh +0 -199
  383. package/.claude/scripts/team-dev-init.sh +0 -319
  384. package/.claude/scripts/team-state-recovery.sh +0 -229
  385. package/.claude/scripts/test-clarify-scan.sh +0 -515
  386. package/.claude/scripts/update-agent-context.sh +0 -806
  387. package/.claude/scripts/validate-constitution.sh +0 -567
  388. package/.claude/scripts/validate-hooks.sh +0 -487
  389. package/.claude/scripts/validate-research.sh +0 -332
  390. package/.claude/scripts/validate-scope-boundary.sh +0 -493
  391. package/.claude/scripts/verify-gate.sh +0 -269
  392. package/.claude/scripts/verify-setup.sh +0 -37
  393. package/.claude/scripts/workflow-status.ts +0 -433
  394. package/.claude/settings.json +0 -95
  395. package/.claude/skills/_reference-implementations/README.md +0 -96
  396. package/.claude/skills/_reference-implementations/backend-express-prisma/SKILL.md +0 -302
  397. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/architecture-overview.md +0 -451
  398. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/async-and-errors.md +0 -307
  399. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/complete-examples.md +0 -638
  400. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/configuration.md +0 -275
  401. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/database-patterns.md +0 -224
  402. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/middleware-guide.md +0 -213
  403. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/routing-and-controllers.md +0 -756
  404. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/sentry-and-monitoring.md +0 -336
  405. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/services-and-repositories.md +0 -789
  406. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/testing-guide.md +0 -235
  407. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/validation-patterns.md +0 -754
  408. package/.claude/skills/_reference-implementations/frontend-react-mui/SKILL.md +0 -399
  409. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/common-patterns.md +0 -331
  410. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/complete-examples.md +0 -872
  411. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/component-patterns.md +0 -502
  412. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/data-fetching.md +0 -767
  413. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/file-organization.md +0 -502
  414. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/loading-and-error-states.md +0 -501
  415. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/performance.md +0 -406
  416. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/routing-guide.md +0 -364
  417. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/styling-guide.md +0 -428
  418. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/typescript-standards.md +0 -418
  419. package/.claude/skills/cc-devflow-orchestrator/SKILL.md +0 -169
  420. package/.claude/skills/domain/attention-refresh/SKILL.md +0 -170
  421. package/.claude/skills/domain/brainstorming/SKILL.md +0 -161
  422. package/.claude/skills/domain/debugging/SKILL.md +0 -221
  423. package/.claude/skills/domain/finishing-branch/SKILL.md +0 -189
  424. package/.claude/skills/domain/receiving-review/SKILL.md +0 -153
  425. package/.claude/skills/domain/tdd/SKILL.md +0 -218
  426. package/.claude/skills/domain/verification/SKILL.md +0 -158
  427. package/.claude/skills/guardrail/constitution-guardian/SKILL.md +0 -306
  428. package/.claude/skills/guardrail/tdd-enforcer/SKILL.md +0 -192
  429. package/.claude/skills/skill-rules.json +0 -359
  430. package/.claude/skills/utility/constitution-quick-ref/SKILL.md +0 -374
  431. package/.claude/skills/utility/file-standards/SKILL.md +0 -353
  432. package/.claude/skills/utility/fractal-docs/SKILL.md +0 -45
  433. package/.claude/skills/utility/journey-checker/SKILL.md +0 -199
  434. package/.claude/skills/utility/journey-checker/pressure-scenarios.md +0 -164
  435. package/.claude/skills/utility/npm-release/SKILL.md +0 -314
  436. package/.claude/skills/utility/skill-creator/LICENSE.txt +0 -202
  437. package/.claude/skills/utility/skill-creator/SKILL.md +0 -356
  438. package/.claude/skills/utility/skill-creator/references/output-patterns.md +0 -82
  439. package/.claude/skills/utility/skill-creator/references/workflows.md +0 -28
  440. package/.claude/skills/utility/skill-creator/scripts/init_skill.py +0 -303
  441. package/.claude/skills/utility/skill-creator/scripts/package_skill.py +0 -110
  442. package/.claude/skills/utility/skill-creator/scripts/quick_validate.py +0 -95
  443. package/.claude/skills/workflow/CLAUDE.md +0 -24
  444. package/.claude/skills/workflow/flow-dev/CLAUDE.md +0 -16
  445. package/.claude/skills/workflow/flow-dev/SKILL.md +0 -94
  446. package/.claude/skills/workflow/flow-dev/assets/IMPLEMENTATION_PLAN_TEMPLATE.md +0 -71
  447. package/.claude/skills/workflow/flow-dev/context.jsonl +0 -4
  448. package/.claude/skills/workflow/flow-dev/dev-implementer.jsonl +0 -8
  449. package/.claude/skills/workflow/flow-dev/scripts/entry-gate.sh +0 -116
  450. package/.claude/skills/workflow/flow-dev/scripts/exit-gate.sh +0 -101
  451. package/.claude/skills/workflow/flow-dev/scripts/task-orchestrator.sh +0 -106
  452. package/.claude/skills/workflow/flow-fix/SKILL.md +0 -105
  453. package/.claude/skills/workflow/flow-fix/context.jsonl +0 -6
  454. package/.claude/skills/workflow/flow-fix/references/bug-analyzer.md +0 -381
  455. package/.claude/skills/workflow/flow-init/SKILL.md +0 -84
  456. package/.claude/skills/workflow/flow-init/assets/BRAINSTORM_TEMPLATE.md +0 -148
  457. package/.claude/skills/workflow/flow-init/assets/INIT_FLOW_TEMPLATE.md +0 -198
  458. package/.claude/skills/workflow/flow-init/assets/RESEARCH_TEMPLATE.md +0 -276
  459. package/.claude/skills/workflow/flow-init/context.jsonl +0 -5
  460. package/.claude/skills/workflow/flow-init/references/flow-researcher.md +0 -132
  461. package/.claude/skills/workflow/flow-init/scripts/check-prerequisites.sh +0 -240
  462. package/.claude/skills/workflow/flow-init/scripts/consolidate-research.sh +0 -182
  463. package/.claude/skills/workflow/flow-init/scripts/create-requirement.sh +0 -404
  464. package/.claude/skills/workflow/flow-init/scripts/generate-research-tasks.sh +0 -157
  465. package/.claude/skills/workflow/flow-init/scripts/populate-research-tasks.sh +0 -284
  466. package/.claude/skills/workflow/flow-init/scripts/validate-research.sh +0 -340
  467. package/.claude/skills/workflow/flow-quality/SKILL.md +0 -98
  468. package/.claude/skills/workflow/flow-quality/context.jsonl +0 -6
  469. package/.claude/skills/workflow/flow-quality/references/code-quality-reviewer.md +0 -205
  470. package/.claude/skills/workflow/flow-quality/references/qa-tester.md +0 -313
  471. package/.claude/skills/workflow/flow-quality/references/security-reviewer.md +0 -314
  472. package/.claude/skills/workflow/flow-quality/references/spec-reviewer.md +0 -221
  473. package/.claude/skills/workflow/flow-release/SKILL.md +0 -49
  474. package/.claude/skills/workflow/flow-release/context.jsonl +0 -5
  475. package/.claude/skills/workflow/flow-release/references/release-manager.md +0 -295
  476. package/.claude/skills/workflow/flow-spec/CLAUDE.md +0 -17
  477. package/.claude/skills/workflow/flow-spec/SKILL.md +0 -74
  478. package/.claude/skills/workflow/flow-spec/context.jsonl +0 -5
  479. package/.claude/skills/workflow/flow-spec/scripts/entry-gate.sh +0 -194
  480. package/.claude/skills/workflow/flow-spec/scripts/exit-gate.sh +0 -244
  481. package/.claude/skills/workflow/flow-spec/scripts/parallel-orchestrator.sh +0 -205
  482. package/.claude/skills/workflow/flow-spec/scripts/team-communication.sh +0 -353
  483. package/.claude/skills/workflow/flow-spec/scripts/team-init.sh +0 -195
  484. package/.claude/skills/workflow/flow-spec/scripts/test-team-mode.sh +0 -496
  485. package/.claude/skills/workflow/flow-spec/team-config.json +0 -165
  486. package/.claude/skills/workflow/flow-verify/CLAUDE.md +0 -10
  487. package/.claude/skills/workflow/flow-verify/SKILL.md +0 -53
  488. package/.claude/skills/workflow/flow-verify/context.jsonl +0 -5
  489. package/.claude/skills/workflow.yaml +0 -219
  490. package/.claude/tests/README.md +0 -300
  491. package/.claude/tests/TODO.md +0 -69
  492. package/.claude/tests/__pycache__/test_analyze_upgrade_impact.cpython-311-pytest-7.2.2.pyc +0 -0
  493. package/.claude/tests/__pycache__/test_consolidate_research.cpython-311-pytest-7.2.2.pyc +0 -0
  494. package/.claude/tests/__pycache__/test_export_contracts.cpython-311-pytest-7.2.2.pyc +0 -0
  495. package/.claude/tests/__pycache__/test_extract_data_model.cpython-311-pytest-7.2.2.pyc +0 -0
  496. package/.claude/tests/__pycache__/test_generate_quickstart.cpython-311-pytest-7.2.2.pyc +0 -0
  497. package/.claude/tests/__pycache__/test_generate_research_tasks.cpython-311-pytest-7.2.2.pyc +0 -0
  498. package/.claude/tests/constitution/run_all_constitution_tests.sh +0 -111
  499. package/.claude/tests/constitution/test_agent_assignment.sh +0 -207
  500. package/.claude/tests/constitution/test_article_coverage.sh +0 -201
  501. package/.claude/tests/constitution/test_template_completeness.sh +0 -150
  502. package/.claude/tests/constitution/test_version_consistency.sh +0 -120
  503. package/.claude/tests/fixtures/spec_delta_full.md +0 -16
  504. package/.claude/tests/fixtures/tasks_progress_sample.md +0 -5
  505. package/.claude/tests/run-all-tests.sh +0 -229
  506. package/.claude/tests/scripts/run.sh +0 -30
  507. package/.claude/tests/scripts/test-framework.sh +0 -128
  508. package/.claude/tests/scripts/test_check_prerequisites.sh +0 -511
  509. package/.claude/tests/scripts/test_check_prerequisites.sh.bak +0 -504
  510. package/.claude/tests/scripts/test_check_prerequisites.sh.bak2 +0 -505
  511. package/.claude/tests/scripts/test_check_prerequisites.sh.bak3 +0 -506
  512. package/.claude/tests/scripts/test_check_prerequisites.sh.bak4 +0 -507
  513. package/.claude/tests/scripts/test_check_prerequisites.sh.bak5 +0 -508
  514. package/.claude/tests/scripts/test_check_task_status.sh +0 -499
  515. package/.claude/tests/scripts/test_common.sh +0 -244
  516. package/.claude/tests/scripts/test_generate_status_report.sh +0 -71
  517. package/.claude/tests/scripts/test_mark_task_complete.sh +0 -441
  518. package/.claude/tests/scripts/test_mark_task_complete.sh.backup +0 -410
  519. package/.claude/tests/scripts/test_recover_workflow.sh +0 -304
  520. package/.claude/tests/scripts/test_setup_epic.sh +0 -437
  521. package/.claude/tests/scripts/test_sync_task_marks.sh +0 -196
  522. package/.claude/tests/scripts/test_validate_constitution.sh +0 -74
  523. package/.claude/tests/scripts/test_validate_research.sh +0 -462
  524. package/.claude/tests/slugify.bats +0 -82
  525. package/.claude/tests/test-framework.sh +0 -732
  526. package/.claude/tests/test_analyze_upgrade_impact.py +0 -34
  527. package/.claude/tests/test_consolidate_research.py +0 -48
  528. package/.claude/tests/test_export_contracts.py +0 -43
  529. package/.claude/tests/test_extract_data_model.py +0 -33
  530. package/.claude/tests/test_generate_quickstart.py +0 -50
  531. package/.claude/tests/test_generate_research_tasks.py +0 -52
  532. package/bin/harness.js +0 -22
  533. package/docs/commands/core-roadmap.md +0 -106
  534. package/docs/commands/core-roadmap.zh-CN.md +0 -102
  535. package/docs/commands/core-style.md +0 -53
  536. package/docs/commands/core-style.zh-CN.md +0 -53
  537. package/docs/commands/flow-init.md +0 -140
  538. package/docs/commands/flow-init.zh-CN.md +0 -169
  539. package/docs/commands/flow-new.md +0 -39
  540. package/docs/commands/flow-new.zh-CN.md +0 -39
  541. package/lib/compiler/__tests__/compile-regression.test.js +0 -103
  542. package/lib/compiler/__tests__/multi-module-emitters.test.js +0 -534
  543. package/lib/compiler/__tests__/resource-copier.test.js +0 -26
  544. package/lib/compiler/__tests__/skill-discovery.test.js +0 -72
  545. package/lib/compiler/context-expander.js +0 -179
  546. package/lib/compiler/rules-emitters/__tests__/codex-rules-emitter.test.js +0 -109
  547. package/lib/compiler/rules-emitters/codex-rules-emitter.js +0 -116
  548. package/lib/compiler/skill-discovery.js +0 -68
  549. package/lib/harness/CLAUDE.md +0 -21
  550. package/lib/harness/cli.js +0 -208
  551. package/lib/harness/index.js +0 -16
  552. package/lib/harness/operations/dispatch.js +0 -285
  553. package/lib/harness/operations/init.js +0 -48
  554. package/lib/harness/operations/pack.js +0 -100
  555. package/lib/harness/operations/plan.js +0 -29
  556. package/lib/harness/operations/resume.js +0 -44
  557. package/lib/harness/operations/verify.js +0 -163
  558. package/lib/harness/planner.js +0 -141
  559. package/lib/harness/schemas.js +0 -108
@@ -1,806 +0,0 @@
1
- #!/usr/bin/env bash
2
-
3
- # Update agent context files with information from plan.md
4
- #
5
- # This script maintains AI agent context files by parsing feature specifications
6
- # and updating agent-specific configuration files with project information.
7
- #
8
- # MAIN FUNCTIONS:
9
- # 1. Environment Validation
10
- # - Verifies git repository structure and branch information
11
- # - Checks for required plan.md files and templates
12
- # - Validates file permissions and accessibility
13
- #
14
- # 2. Plan Data Extraction
15
- # - Parses plan.md files to extract project metadata
16
- # - Identifies language/version, frameworks, databases, and project types
17
- # - Handles missing or incomplete specification data gracefully
18
- #
19
- # 3. Agent File Management
20
- # - Creates new agent context files from templates when needed
21
- # - Updates existing agent files with new project information
22
- # - Preserves manual additions and custom configurations
23
- # - Supports multiple AI agent formats and directory structures
24
- #
25
- # 4. Content Generation
26
- # - Generates language-specific build/test commands
27
- # - Creates appropriate project directory structures
28
- # - Updates technology stacks and recent changes sections
29
- # - Maintains consistent formatting and timestamps
30
- #
31
- # 5. Multi-Agent Support
32
- # - Handles agent-specific file paths and naming conventions
33
- # - Supports: Claude, Gemini, Copilot, Cursor, Qwen, opencode, Codex, Windsurf, Kilo Code, Auggie CLI, Roo Code, CodeBuddy CLI, Amp, or Amazon Q Developer CLI
34
- # - Can update single agents or all existing agent files
35
- # - Creates default Claude file if no agent files exist
36
- #
37
- # Usage: ./update-agent-context.sh [agent_type]
38
- # Agent types: claude|gemini|copilot|cursor-agent|qwen|opencode|codex|windsurf|kilocode|auggie|q
39
- # Leave empty to update all existing agent files
40
-
41
- set -e
42
-
43
- # Enable strict error handling
44
- set -u
45
- set -o pipefail
46
-
47
- #==============================================================================
48
- # Configuration and Global Variables
49
- #==============================================================================
50
-
51
- # Get script directory and load common functions
52
- SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
53
- # Load shared helpers and derive repo metadata (avoid spec-kit context)
54
- source "$SCRIPT_DIR/common.sh"
55
-
56
- REPO_ROOT="$(get_repo_root)"
57
- HAS_GIT="false"
58
- if has_git; then
59
- HAS_GIT="true"
60
- fi
61
-
62
- CURRENT_BRANCH="${DEVFLOW_BRANCH:-}"
63
- if [[ -z "$CURRENT_BRANCH" && "$HAS_GIT" == "true" ]]; then
64
- CURRENT_BRANCH=$(git rev-parse --abbrev-ref HEAD 2>/dev/null || "")
65
- fi
66
- if [[ -z "$CURRENT_BRANCH" ]]; then
67
- CURRENT_BRANCH="unknown-branch"
68
- fi
69
-
70
- NEW_PLAN="${DEVFLOW_CONTEXT_SOURCE:-${DEVFLOW_PLAN_PATH:-}}"
71
- if [[ -z "$NEW_PLAN" && -f "$REPO_ROOT/devflow/ROADMAP.md" ]]; then
72
- NEW_PLAN="$REPO_ROOT/devflow/ROADMAP.md"
73
- fi
74
-
75
- AGENT_TYPE="${1:-}"
76
- AGENT_CONTEXT_TEMPLATE="${DEVFLOW_AGENT_CONTEXT_TEMPLATE:-}"
77
-
78
- # Agent-specific file paths
79
- CLAUDE_FILE="$REPO_ROOT/CLAUDE.md"
80
- GEMINI_FILE="$REPO_ROOT/GEMINI.md"
81
- COPILOT_FILE="$REPO_ROOT/.github/copilot-instructions.md"
82
- CURSOR_FILE="$REPO_ROOT/.cursor/rules/specify-rules.mdc"
83
- QWEN_FILE="$REPO_ROOT/QWEN.md"
84
- AGENTS_FILE="$REPO_ROOT/AGENTS.md"
85
- WINDSURF_FILE="$REPO_ROOT/.windsurf/rules/specify-rules.md"
86
- KILOCODE_FILE="$REPO_ROOT/.kilocode/rules/specify-rules.md"
87
- AUGGIE_FILE="$REPO_ROOT/.augment/rules/specify-rules.md"
88
- ROO_FILE="$REPO_ROOT/.roo/rules/specify-rules.md"
89
- CODEBUDDY_FILE="$REPO_ROOT/CODEBUDDY.md"
90
- AMP_FILE="$REPO_ROOT/AGENTS.md"
91
- Q_FILE="$REPO_ROOT/AGENTS.md"
92
-
93
- # Global variables for parsed plan data
94
- NEW_LANG=""
95
- NEW_FRAMEWORK=""
96
- NEW_DB=""
97
- NEW_PROJECT_TYPE=""
98
-
99
- #==============================================================================
100
- # Utility Functions
101
- #==============================================================================
102
-
103
- log_info() {
104
- echo "INFO: $1"
105
- }
106
-
107
- log_success() {
108
- echo "✓ $1"
109
- }
110
-
111
- log_error() {
112
- echo "ERROR: $1" >&2
113
- }
114
-
115
- log_warning() {
116
- echo "WARNING: $1" >&2
117
- }
118
-
119
- # Cleanup function for temporary files
120
- cleanup() {
121
- local exit_code=$?
122
- rm -f /tmp/agent_update_*_$$
123
- rm -f /tmp/manual_additions_$$
124
- exit $exit_code
125
- }
126
-
127
- # Set up cleanup trap
128
- trap cleanup EXIT INT TERM
129
-
130
- #==============================================================================
131
- # Validation Functions
132
- #==============================================================================
133
-
134
- validate_environment() {
135
- if [[ "$CURRENT_BRANCH" == "unknown-branch" ]]; then
136
- log_warning "Unable to resolve current branch; context may lack feature-specific metadata."
137
- if [[ "$HAS_GIT" == "false" ]]; then
138
- log_info "Running outside git; set DEVFLOW_BRANCH to provide a stable branch name."
139
- fi
140
- else
141
- log_info "Detected branch: $CURRENT_BRANCH"
142
- fi
143
-
144
- if [[ -n "$NEW_PLAN" ]]; then
145
- if [[ ! -f "$NEW_PLAN" ]]; then
146
- log_warning "Plan file not found at $NEW_PLAN; context update will skip plan metadata."
147
- fi
148
- else
149
- log_info "No plan source configured; plan-based metadata extraction disabled."
150
- fi
151
-
152
- if [[ -n "$AGENT_CONTEXT_TEMPLATE" && ! -f "$AGENT_CONTEXT_TEMPLATE" ]]; then
153
- log_warning "Custom agent context template '$AGENT_CONTEXT_TEMPLATE' was not found. Using embedded template."
154
- fi
155
- }
156
-
157
- #==============================================================================
158
- # Plan Parsing Functions
159
- #==============================================================================
160
-
161
- extract_plan_field() {
162
- local field_pattern="$1"
163
- local plan_file="$2"
164
-
165
- grep "^\*\*${field_pattern}\*\*: " "$plan_file" 2>/dev/null | \
166
- head -1 | \
167
- sed "s|^\*\*${field_pattern}\*\*: ||" | \
168
- sed 's/^[ \t]*//;s/[ \t]*$//' | \
169
- grep -v "NEEDS CLARIFICATION" | \
170
- grep -v "^N/A$" || echo ""
171
- }
172
-
173
- parse_plan_data() {
174
- local plan_file="$1"
175
-
176
- if [[ -z "$plan_file" ]]; then
177
- log_info "Skipping plan parsing (no plan source)."
178
- return 0
179
- fi
180
-
181
- if [[ ! -f "$plan_file" ]]; then
182
- log_warning "Plan file not available: $plan_file. Skipping metadata extraction."
183
- return 0
184
- fi
185
-
186
- if [[ ! -r "$plan_file" ]]; then
187
- log_warning "Plan file is not readable: $plan_file. Skipping metadata extraction."
188
- return 0
189
- fi
190
-
191
- log_info "Parsing plan data from $plan_file"
192
-
193
- NEW_LANG=$(extract_plan_field "Language/Version" "$plan_file")
194
- NEW_FRAMEWORK=$(extract_plan_field "Primary Dependencies" "$plan_file")
195
- NEW_DB=$(extract_plan_field "Storage" "$plan_file")
196
- NEW_PROJECT_TYPE=$(extract_plan_field "Project Type" "$plan_file")
197
-
198
- # Log what we found
199
- if [[ -n "$NEW_LANG" ]]; then
200
- log_info "Found language: $NEW_LANG"
201
- else
202
- log_warning "No language information found in plan"
203
- fi
204
-
205
- if [[ -n "$NEW_FRAMEWORK" ]]; then
206
- log_info "Found framework: $NEW_FRAMEWORK"
207
- fi
208
-
209
- if [[ -n "$NEW_DB" ]] && [[ "$NEW_DB" != "N/A" ]]; then
210
- log_info "Found database: $NEW_DB"
211
- fi
212
-
213
- if [[ -n "$NEW_PROJECT_TYPE" ]]; then
214
- log_info "Found project type: $NEW_PROJECT_TYPE"
215
- fi
216
- }
217
-
218
- format_technology_stack() {
219
- local lang="$1"
220
- local framework="$2"
221
- local parts=()
222
-
223
- # Add non-empty parts
224
- [[ -n "$lang" && "$lang" != "NEEDS CLARIFICATION" ]] && parts+=("$lang")
225
- [[ -n "$framework" && "$framework" != "NEEDS CLARIFICATION" && "$framework" != "N/A" ]] && parts+=("$framework")
226
-
227
- # Join with proper formatting
228
- if [[ ${#parts[@]} -eq 0 ]]; then
229
- echo ""
230
- elif [[ ${#parts[@]} -eq 1 ]]; then
231
- echo "${parts[0]}"
232
- else
233
- # Join multiple parts with " + "
234
- local result="${parts[0]}"
235
- for ((i=1; i<${#parts[@]}; i++)); do
236
- result="$result + ${parts[i]}"
237
- done
238
- echo "$result"
239
- fi
240
- }
241
-
242
- #==============================================================================
243
- # Template and Content Generation Functions
244
- #==============================================================================
245
-
246
- get_project_structure() {
247
- local project_type="$1"
248
-
249
- if [[ "$project_type" == *"web"* ]]; then
250
- echo "backend/\\nfrontend/\\ntests/"
251
- else
252
- echo "src/\\ntests/"
253
- fi
254
- }
255
-
256
- get_commands_for_language() {
257
- local lang="$1"
258
-
259
- case "$lang" in
260
- *"Python"*)
261
- echo "cd src && pytest && ruff check ."
262
- ;;
263
- *"Rust"*)
264
- echo "cargo test && cargo clippy"
265
- ;;
266
- *"JavaScript"*|*"TypeScript"*)
267
- echo "npm test \\&\\& npm run lint"
268
- ;;
269
- *)
270
- echo "# Add commands for $lang"
271
- ;;
272
- esac
273
- }
274
-
275
- get_language_conventions() {
276
- local lang="$1"
277
- echo "$lang: Follow standard conventions"
278
- }
279
-
280
- create_new_agent_file() {
281
- local target_file="$1"
282
- local temp_file="$2"
283
- local project_name="$3"
284
- local current_date="$4"
285
-
286
- local template_source="$AGENT_CONTEXT_TEMPLATE"
287
-
288
- if [[ -n "$template_source" ]] && [[ -f "$template_source" ]]; then
289
- log_info "Creating new agent context file from custom template..."
290
- if ! cp "$template_source" "$temp_file"; then
291
- log_error "Failed to copy custom template: $template_source"
292
- return 1
293
- fi
294
- else
295
- if [[ -n "$template_source" ]]; then
296
- log_warning "Custom template '$template_source' is unavailable. Falling back to embedded template."
297
- else
298
- log_info "Creating new agent context file from embedded template."
299
- fi
300
-
301
- cat <<'EOF' > "$temp_file"
302
- # [PROJECT NAME] Agent Context
303
-
304
- **Last updated**: [DATE]
305
-
306
- ## Active Technologies
307
- [EXTRACTED FROM ALL PLAN.MD FILES]
308
-
309
- ## Expected Project Structure
310
- [ACTUAL STRUCTURE FROM PLANS]
311
-
312
- ## Command Access Notes
313
- [ONLY COMMANDS FOR ACTIVE TECHNOLOGIES]
314
-
315
- ## Language Guidance
316
- [LANGUAGE-SPECIFIC, ONLY FOR LANGUAGES IN USE]
317
-
318
- ## Recent Feature Highlights
319
- [LAST 3 FEATURES AND WHAT THEY ADDED]
320
-
321
- *Generated by cc-devflow adapter compiler for automated agent contexts.*
322
- EOF
323
- fi
324
-
325
- # Replace template placeholders
326
- local project_structure
327
- project_structure=$(get_project_structure "$NEW_PROJECT_TYPE")
328
-
329
- local commands
330
- commands=$(get_commands_for_language "$NEW_LANG")
331
-
332
- local language_conventions
333
- language_conventions=$(get_language_conventions "$NEW_LANG")
334
-
335
- # Perform substitutions with error checking using safer approach
336
- # Escape special characters for sed by using a different delimiter or escaping
337
- local escaped_lang=$(printf '%s\n' "$NEW_LANG" | sed 's/[\[\.*^$()+{}|]/\\&/g')
338
- local escaped_framework=$(printf '%s\n' "$NEW_FRAMEWORK" | sed 's/[\[\.*^$()+{}|]/\\&/g')
339
- local escaped_branch=$(printf '%s\n' "$CURRENT_BRANCH" | sed 's/[\[\.*^$()+{}|]/\\&/g')
340
-
341
- # Build technology stack and recent change strings conditionally
342
- local tech_stack
343
- if [[ -n "$escaped_lang" && -n "$escaped_framework" ]]; then
344
- tech_stack="- $escaped_lang + $escaped_framework ($escaped_branch)"
345
- elif [[ -n "$escaped_lang" ]]; then
346
- tech_stack="- $escaped_lang ($escaped_branch)"
347
- elif [[ -n "$escaped_framework" ]]; then
348
- tech_stack="- $escaped_framework ($escaped_branch)"
349
- else
350
- tech_stack="- ($escaped_branch)"
351
- fi
352
-
353
- local recent_change
354
- if [[ -n "$escaped_lang" && -n "$escaped_framework" ]]; then
355
- recent_change="- $escaped_branch: Added $escaped_lang + $escaped_framework"
356
- elif [[ -n "$escaped_lang" ]]; then
357
- recent_change="- $escaped_branch: Added $escaped_lang"
358
- elif [[ -n "$escaped_framework" ]]; then
359
- recent_change="- $escaped_branch: Added $escaped_framework"
360
- else
361
- recent_change="- $escaped_branch: Added"
362
- fi
363
-
364
- local substitutions=(
365
- "s|\[PROJECT NAME\]|$project_name|"
366
- "s|\[DATE\]|$current_date|"
367
- "s|\[EXTRACTED FROM ALL PLAN.MD FILES\]|$tech_stack|"
368
- "s|\[ACTUAL STRUCTURE FROM PLANS\]|$project_structure|g"
369
- "s|\[ONLY COMMANDS FOR ACTIVE TECHNOLOGIES\]|$commands|"
370
- "s|\[LANGUAGE-SPECIFIC, ONLY FOR LANGUAGES IN USE\]|$language_conventions|"
371
- "s|\[LAST 3 FEATURES AND WHAT THEY ADDED\]|$recent_change|"
372
- )
373
-
374
- for substitution in "${substitutions[@]}"; do
375
- if ! sed -i.bak -e "$substitution" "$temp_file"; then
376
- log_error "Failed to perform substitution: $substitution"
377
- rm -f "$temp_file" "$temp_file.bak"
378
- return 1
379
- fi
380
- done
381
-
382
- # Convert \n sequences to actual newlines
383
- newline=$(printf '\n')
384
- sed -i.bak2 "s/\\\\n/${newline}/g" "$temp_file"
385
-
386
- # Clean up backup files
387
- rm -f "$temp_file.bak" "$temp_file.bak2"
388
-
389
- return 0
390
- }
391
-
392
-
393
-
394
-
395
- update_existing_agent_file() {
396
- local target_file="$1"
397
- local current_date="$2"
398
-
399
- log_info "Updating existing agent context file..."
400
-
401
- # Use a single temporary file for atomic update
402
- local temp_file
403
- temp_file=$(mktemp) || {
404
- log_error "Failed to create temporary file"
405
- return 1
406
- }
407
-
408
- # Process the file in one pass
409
- local tech_stack=$(format_technology_stack "$NEW_LANG" "$NEW_FRAMEWORK")
410
- local new_tech_entries=()
411
- local new_change_entry=""
412
-
413
- # Prepare new technology entries
414
- if [[ -n "$tech_stack" ]] && ! grep -q "$tech_stack" "$target_file"; then
415
- new_tech_entries+=("- $tech_stack ($CURRENT_BRANCH)")
416
- fi
417
-
418
- if [[ -n "$NEW_DB" ]] && [[ "$NEW_DB" != "N/A" ]] && [[ "$NEW_DB" != "NEEDS CLARIFICATION" ]] && ! grep -q "$NEW_DB" "$target_file"; then
419
- new_tech_entries+=("- $NEW_DB ($CURRENT_BRANCH)")
420
- fi
421
-
422
- # Prepare new change entry
423
- if [[ -n "$tech_stack" ]]; then
424
- new_change_entry="- $CURRENT_BRANCH: Added $tech_stack"
425
- elif [[ -n "$NEW_DB" ]] && [[ "$NEW_DB" != "N/A" ]] && [[ "$NEW_DB" != "NEEDS CLARIFICATION" ]]; then
426
- new_change_entry="- $CURRENT_BRANCH: Added $NEW_DB"
427
- fi
428
-
429
- # Check if sections exist in the file
430
- local has_active_technologies=0
431
- local has_recent_changes=0
432
-
433
- if grep -q "^## Active Technologies" "$target_file" 2>/dev/null; then
434
- has_active_technologies=1
435
- fi
436
-
437
- if grep -q "^## Recent Changes" "$target_file" 2>/dev/null; then
438
- has_recent_changes=1
439
- fi
440
-
441
- # Process file line by line
442
- local in_tech_section=false
443
- local in_changes_section=false
444
- local tech_entries_added=false
445
- local changes_entries_added=false
446
- local existing_changes_count=0
447
- local file_ended=false
448
-
449
- while IFS= read -r line || [[ -n "$line" ]]; do
450
- # Handle Active Technologies section
451
- if [[ "$line" == "## Active Technologies" ]]; then
452
- echo "$line" >> "$temp_file"
453
- in_tech_section=true
454
- continue
455
- elif [[ $in_tech_section == true ]] && [[ "$line" =~ ^##[[:space:]] ]]; then
456
- # Add new tech entries before closing the section
457
- if [[ $tech_entries_added == false ]] && [[ ${#new_tech_entries[@]} -gt 0 ]]; then
458
- printf '%s\n' "${new_tech_entries[@]}" >> "$temp_file"
459
- tech_entries_added=true
460
- fi
461
- echo "$line" >> "$temp_file"
462
- in_tech_section=false
463
- continue
464
- elif [[ $in_tech_section == true ]] && [[ -z "$line" ]]; then
465
- # Add new tech entries before empty line in tech section
466
- if [[ $tech_entries_added == false ]] && [[ ${#new_tech_entries[@]} -gt 0 ]]; then
467
- printf '%s\n' "${new_tech_entries[@]}" >> "$temp_file"
468
- tech_entries_added=true
469
- fi
470
- echo "$line" >> "$temp_file"
471
- continue
472
- fi
473
-
474
- # Handle Recent Changes section
475
- if [[ "$line" == "## Recent Changes" ]]; then
476
- echo "$line" >> "$temp_file"
477
- # Add new change entry right after the heading
478
- if [[ -n "$new_change_entry" ]]; then
479
- echo "$new_change_entry" >> "$temp_file"
480
- fi
481
- in_changes_section=true
482
- changes_entries_added=true
483
- continue
484
- elif [[ $in_changes_section == true ]] && [[ "$line" =~ ^##[[:space:]] ]]; then
485
- echo "$line" >> "$temp_file"
486
- in_changes_section=false
487
- continue
488
- elif [[ $in_changes_section == true ]] && [[ "$line" == "- "* ]]; then
489
- # Keep only first 2 existing changes
490
- if [[ $existing_changes_count -lt 2 ]]; then
491
- echo "$line" >> "$temp_file"
492
- ((existing_changes_count++))
493
- fi
494
- continue
495
- fi
496
-
497
- # Update timestamp
498
- if [[ "$line" =~ \*\*Last\ updated\*\*:.*[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9] ]]; then
499
- echo "$line" | sed "s/[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]/$current_date/" >> "$temp_file"
500
- else
501
- echo "$line" >> "$temp_file"
502
- fi
503
- done < "$target_file"
504
-
505
- # Post-loop check: if we're still in the Active Technologies section and haven't added new entries
506
- if [[ $in_tech_section == true ]] && [[ $tech_entries_added == false ]] && [[ ${#new_tech_entries[@]} -gt 0 ]]; then
507
- printf '%s\n' "${new_tech_entries[@]}" >> "$temp_file"
508
- tech_entries_added=true
509
- fi
510
-
511
- # If sections don't exist, add them at the end of the file
512
- if [[ $has_active_technologies -eq 0 ]] && [[ ${#new_tech_entries[@]} -gt 0 ]]; then
513
- echo "" >> "$temp_file"
514
- echo "## Active Technologies" >> "$temp_file"
515
- printf '%s\n' "${new_tech_entries[@]}" >> "$temp_file"
516
- tech_entries_added=true
517
- fi
518
-
519
- if [[ $has_recent_changes -eq 0 ]] && [[ -n "$new_change_entry" ]]; then
520
- echo "" >> "$temp_file"
521
- echo "## Recent Changes" >> "$temp_file"
522
- echo "$new_change_entry" >> "$temp_file"
523
- changes_entries_added=true
524
- fi
525
-
526
- # Move temp file to target atomically
527
- if ! mv "$temp_file" "$target_file"; then
528
- log_error "Failed to update target file"
529
- rm -f "$temp_file"
530
- return 1
531
- fi
532
-
533
- return 0
534
- }
535
- #==============================================================================
536
- # Main Agent File Update Function
537
- #==============================================================================
538
-
539
- update_agent_file() {
540
- local target_file="$1"
541
- local agent_name="$2"
542
-
543
- if [[ -z "$target_file" ]] || [[ -z "$agent_name" ]]; then
544
- log_error "update_agent_file requires target_file and agent_name parameters"
545
- return 1
546
- fi
547
-
548
- log_info "Updating $agent_name context file: $target_file"
549
-
550
- local project_name
551
- project_name=$(basename "$REPO_ROOT")
552
- local current_date
553
- current_date=$(date +%Y-%m-%d)
554
-
555
- # Create directory if it doesn't exist
556
- local target_dir
557
- target_dir=$(dirname "$target_file")
558
- if [[ ! -d "$target_dir" ]]; then
559
- if ! mkdir -p "$target_dir"; then
560
- log_error "Failed to create directory: $target_dir"
561
- return 1
562
- fi
563
- fi
564
-
565
- if [[ ! -f "$target_file" ]]; then
566
- # Create new file from template
567
- local temp_file
568
- temp_file=$(mktemp) || {
569
- log_error "Failed to create temporary file"
570
- return 1
571
- }
572
-
573
- if create_new_agent_file "$target_file" "$temp_file" "$project_name" "$current_date"; then
574
- if mv "$temp_file" "$target_file"; then
575
- log_success "Created new $agent_name context file"
576
- else
577
- log_error "Failed to move temporary file to $target_file"
578
- rm -f "$temp_file"
579
- return 1
580
- fi
581
- else
582
- log_error "Failed to create new agent file"
583
- rm -f "$temp_file"
584
- return 1
585
- fi
586
- else
587
- # Update existing file
588
- if [[ ! -r "$target_file" ]]; then
589
- log_error "Cannot read existing file: $target_file"
590
- return 1
591
- fi
592
-
593
- if [[ ! -w "$target_file" ]]; then
594
- log_error "Cannot write to existing file: $target_file"
595
- return 1
596
- fi
597
-
598
- if update_existing_agent_file "$target_file" "$current_date"; then
599
- log_success "Updated existing $agent_name context file"
600
- else
601
- log_error "Failed to update existing agent file"
602
- return 1
603
- fi
604
- fi
605
-
606
- return 0
607
- }
608
-
609
- #==============================================================================
610
- # Agent Selection and Processing
611
- #==============================================================================
612
-
613
- update_specific_agent() {
614
- local agent_type="$1"
615
-
616
- case "$agent_type" in
617
- claude)
618
- update_agent_file "$CLAUDE_FILE" "Claude Code"
619
- ;;
620
- gemini)
621
- update_agent_file "$GEMINI_FILE" "Gemini CLI"
622
- ;;
623
- copilot)
624
- update_agent_file "$COPILOT_FILE" "GitHub Copilot"
625
- ;;
626
- cursor-agent)
627
- update_agent_file "$CURSOR_FILE" "Cursor IDE"
628
- ;;
629
- qwen)
630
- update_agent_file "$QWEN_FILE" "Qwen Code"
631
- ;;
632
- opencode)
633
- update_agent_file "$AGENTS_FILE" "opencode"
634
- ;;
635
- codex)
636
- update_agent_file "$AGENTS_FILE" "Codex CLI"
637
- ;;
638
- windsurf)
639
- update_agent_file "$WINDSURF_FILE" "Windsurf"
640
- ;;
641
- kilocode)
642
- update_agent_file "$KILOCODE_FILE" "Kilo Code"
643
- ;;
644
- auggie)
645
- update_agent_file "$AUGGIE_FILE" "Auggie CLI"
646
- ;;
647
- roo)
648
- update_agent_file "$ROO_FILE" "Roo Code"
649
- ;;
650
- codebuddy)
651
- update_agent_file "$CODEBUDDY_FILE" "CodeBuddy CLI"
652
- ;;
653
- amp)
654
- update_agent_file "$AMP_FILE" "Amp"
655
- ;;
656
- q)
657
- update_agent_file "$Q_FILE" "Amazon Q Developer CLI"
658
- ;;
659
- *)
660
- log_error "Unknown agent type '$agent_type'"
661
- log_error "Expected: claude|gemini|copilot|cursor-agent|qwen|opencode|codex|windsurf|kilocode|auggie|roo|amp|q"
662
- exit 1
663
- ;;
664
- esac
665
- }
666
-
667
- update_all_existing_agents() {
668
- local found_agent=false
669
-
670
- # Check each possible agent file and update if it exists
671
- if [[ -f "$CLAUDE_FILE" ]]; then
672
- update_agent_file "$CLAUDE_FILE" "Claude Code"
673
- found_agent=true
674
- fi
675
-
676
- if [[ -f "$GEMINI_FILE" ]]; then
677
- update_agent_file "$GEMINI_FILE" "Gemini CLI"
678
- found_agent=true
679
- fi
680
-
681
- if [[ -f "$COPILOT_FILE" ]]; then
682
- update_agent_file "$COPILOT_FILE" "GitHub Copilot"
683
- found_agent=true
684
- fi
685
-
686
- if [[ -f "$CURSOR_FILE" ]]; then
687
- update_agent_file "$CURSOR_FILE" "Cursor IDE"
688
- found_agent=true
689
- fi
690
-
691
- if [[ -f "$QWEN_FILE" ]]; then
692
- update_agent_file "$QWEN_FILE" "Qwen Code"
693
- found_agent=true
694
- fi
695
-
696
- if [[ -f "$AGENTS_FILE" ]]; then
697
- update_agent_file "$AGENTS_FILE" "Codex/opencode"
698
- found_agent=true
699
- fi
700
-
701
- if [[ -f "$WINDSURF_FILE" ]]; then
702
- update_agent_file "$WINDSURF_FILE" "Windsurf"
703
- found_agent=true
704
- fi
705
-
706
- if [[ -f "$KILOCODE_FILE" ]]; then
707
- update_agent_file "$KILOCODE_FILE" "Kilo Code"
708
- found_agent=true
709
- fi
710
-
711
- if [[ -f "$AUGGIE_FILE" ]]; then
712
- update_agent_file "$AUGGIE_FILE" "Auggie CLI"
713
- found_agent=true
714
- fi
715
-
716
- if [[ -f "$ROO_FILE" ]]; then
717
- update_agent_file "$ROO_FILE" "Roo Code"
718
- found_agent=true
719
- fi
720
-
721
- if [[ -f "$CODEBUDDY_FILE" ]]; then
722
- update_agent_file "$CODEBUDDY_FILE" "CodeBuddy CLI"
723
- found_agent=true
724
- fi
725
-
726
- if [[ -f "$Q_FILE" ]]; then
727
- update_agent_file "$Q_FILE" "Amazon Q Developer CLI"
728
- found_agent=true
729
- fi
730
-
731
- # If no agent files exist, create a default Claude file
732
- if [[ "$found_agent" == false ]]; then
733
- log_info "No existing agent files found, creating default Claude file..."
734
- update_agent_file "$CLAUDE_FILE" "Claude Code"
735
- fi
736
- }
737
- print_summary() {
738
- echo
739
- log_info "Summary of changes:"
740
-
741
- if [[ -n "$NEW_LANG" ]]; then
742
- echo " - Added language: $NEW_LANG"
743
- fi
744
-
745
- if [[ -n "$NEW_FRAMEWORK" ]]; then
746
- echo " - Added framework: $NEW_FRAMEWORK"
747
- fi
748
-
749
- if [[ -n "$NEW_DB" ]] && [[ "$NEW_DB" != "N/A" ]]; then
750
- echo " - Added database: $NEW_DB"
751
- fi
752
-
753
- echo
754
-
755
- log_info "Usage: $0 [claude|gemini|copilot|cursor-agent|qwen|opencode|codex|windsurf|kilocode|auggie|codebuddy|q]"
756
- }
757
-
758
- #==============================================================================
759
- # Main Execution
760
- #==============================================================================
761
-
762
- main() {
763
- # Validate environment before proceeding
764
- validate_environment
765
-
766
- log_info "=== Updating agent context files for feature $CURRENT_BRANCH ==="
767
-
768
- # Parse the plan file to extract project information
769
- if ! parse_plan_data "$NEW_PLAN"; then
770
- log_error "Failed to parse plan data"
771
- exit 1
772
- fi
773
-
774
- # Process based on agent type argument
775
- local success=true
776
-
777
- if [[ -z "$AGENT_TYPE" ]]; then
778
- # No specific agent provided - update all existing agent files
779
- log_info "No agent specified, updating all existing agent files..."
780
- if ! update_all_existing_agents; then
781
- success=false
782
- fi
783
- else
784
- # Specific agent provided - update only that agent
785
- log_info "Updating specific agent: $AGENT_TYPE"
786
- if ! update_specific_agent "$AGENT_TYPE"; then
787
- success=false
788
- fi
789
- fi
790
-
791
- # Print summary
792
- print_summary
793
-
794
- if [[ "$success" == true ]]; then
795
- log_success "Agent context update completed successfully"
796
- exit 0
797
- else
798
- log_error "Agent context update completed with errors"
799
- exit 1
800
- fi
801
- }
802
-
803
- # Execute main function if script is run directly
804
- if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
805
- main "$@"
806
- fi