cc-devflow 4.3.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 (575) 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 +61 -4
  86. package/README.md +120 -756
  87. package/README.zh-CN.md +119 -756
  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 +60 -225
  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/skill-runtime/operations/release.js +96 -0
  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 -24
  235. package/.claude/commands/flow/archive.md +0 -280
  236. package/.claude/commands/flow/constitution.md +0 -82
  237. package/.claude/commands/flow/context.md +0 -150
  238. package/.claude/commands/flow/delta.md +0 -245
  239. package/.claude/commands/flow/dev.md +0 -40
  240. package/.claude/commands/flow/fix.md +0 -217
  241. package/.claude/commands/flow/ideate.md +0 -214
  242. package/.claude/commands/flow/init.md +0 -38
  243. package/.claude/commands/flow/release.md +0 -36
  244. package/.claude/commands/flow/restart.md +0 -97
  245. package/.claude/commands/flow/spec.md +0 -36
  246. package/.claude/commands/flow/status.md +0 -64
  247. package/.claude/commands/flow/update.md +0 -111
  248. package/.claude/commands/flow/upgrade.md +0 -115
  249. package/.claude/commands/flow/verify.md +0 -37
  250. package/.claude/commands/flow/workspace.md +0 -155
  251. package/.claude/commands/util/cancel-ralph.md +0 -60
  252. package/.claude/commands/util/code-review.md +0 -58
  253. package/.claude/commands/util/git-commit.md +0 -422
  254. package/.claude/commands/util/problem-analyzer.md +0 -60
  255. package/.claude/config/quality-gates.yml +0 -305
  256. package/.claude/config/quality-rules.yml +0 -161
  257. package/.claude/docs/SPEC_KIT_CONSTITUTION_ANALYSIS.md +0 -426
  258. package/.claude/docs/design/consistency-conflict-detection-algorithms.md +0 -658
  259. package/.claude/docs/design/intent-driven-input-design.md +0 -380
  260. package/.claude/docs/design/prd-version-management-design.md +0 -437
  261. package/.claude/docs/examples/design-inspiration-pool.md +0 -59
  262. package/.claude/docs/examples/ui-prototype-constitution-checklist.md +0 -75
  263. package/.claude/docs/guides/INIT_TROUBLESHOOTING.md +0 -117
  264. package/.claude/docs/guides/NEW_TROUBLESHOOTING.md +0 -99
  265. package/.claude/docs/guides/ROADMAP_TROUBLESHOOTING.md +0 -188
  266. package/.claude/docs/guides/TASK_COMPLETION_MARKING.md +0 -338
  267. package/.claude/docs/guides/TEAM_MODE_GUIDE.md +0 -312
  268. package/.claude/docs/implementation-summary-v7.md +0 -449
  269. package/.claude/docs/spec-format-guide.md +0 -349
  270. package/.claude/docs/state-consolidation-design.md +0 -323
  271. package/.claude/docs/templates/ARCHITECTURE_TEMPLATE.md +0 -332
  272. package/.claude/docs/templates/ATTEMPT_TEMPLATE.md +0 -156
  273. package/.claude/docs/templates/BACKLOG_TEMPLATE.md +0 -261
  274. package/.claude/docs/templates/BRAINSTORM_TEMPLATE.md +0 -148
  275. package/.claude/docs/templates/CHECKLIST_TEMPLATE.md +0 -52
  276. package/.claude/docs/templates/CLARIFICATION_REPORT_TEMPLATE.md +0 -206
  277. package/.claude/docs/templates/CODE_REVIEW_TEMPLATE.md +0 -71
  278. package/.claude/docs/templates/DELTA_SPEC_TEMPLATE.md +0 -91
  279. package/.claude/docs/templates/DESIGN_DECISIONS_TEMPLATE.md +0 -151
  280. package/.claude/docs/templates/DESIGN_TEMPLATE.md +0 -157
  281. package/.claude/docs/templates/ERROR_LOG_TEMPLATE.md +0 -80
  282. package/.claude/docs/templates/INIT_FLOW_TEMPLATE.md +0 -198
  283. package/.claude/docs/templates/INTENT_CLARIFICATION_TEMPLATE.md +0 -57
  284. package/.claude/docs/templates/JOURNAL_TEMPLATE.md +0 -75
  285. package/.claude/docs/templates/NEW_ORCHESTRATION_TEMPLATE.md +0 -76
  286. package/.claude/docs/templates/PROPOSAL_TEMPLATE.md +0 -91
  287. package/.claude/docs/templates/RESEARCH_TEMPLATE.md +0 -276
  288. package/.claude/docs/templates/REVIEW-HIGH.md +0 -57
  289. package/.claude/docs/templates/ROADMAP_DIALOGUE_TEMPLATE.md +0 -198
  290. package/.claude/docs/templates/ROADMAP_TEMPLATE.md +0 -310
  291. package/.claude/docs/templates/SPEC_TEMPLATE_DELTA.md +0 -139
  292. package/.claude/docs/templates/SPEC_TEMPLATE_PROJECT.md +0 -93
  293. package/.claude/docs/templates/STYLE_TEMPLATE.md +0 -479
  294. package/.claude/docs/templates/UI_PROTOTYPE_TEMPLATE.md +0 -373
  295. package/.claude/docs/templates/_shared/CLAUDE.md +0 -36
  296. package/.claude/docs/templates/_shared/CONSTITUTION_CHECK.md +0 -125
  297. package/.claude/docs/templates/_shared/VALIDATION_CHECKLIST.md +0 -187
  298. package/.claude/docs/templates/_shared/YAML_FRONTMATTER.md +0 -164
  299. package/.claude/docs/templates/context/dev.jsonl.template +0 -6
  300. package/.claude/docs/templates/context/epic.jsonl.template +0 -5
  301. package/.claude/docs/templates/context/prd.jsonl.template +0 -4
  302. package/.claude/docs/templates/context/research.jsonl.template +0 -4
  303. package/.claude/docs/templates/context/review.jsonl.template +0 -5
  304. package/.claude/docs/templates/context/tech.jsonl.template +0 -5
  305. package/.claude/guides/agent-guides/agent-coordination-guide.md +0 -459
  306. package/.claude/guides/project-guidelines-system.md +0 -463
  307. package/.claude/guides/technical-guides/datetime-handling-guide.md +0 -563
  308. package/.claude/guides/technical-guides/git-github-guide.md +0 -642
  309. package/.claude/guides/technical-guides/test-execution-guide.md +0 -618
  310. package/.claude/guides/workflow-guides/bug-fix-orchestrator.md +0 -217
  311. package/.claude/guides/workflow-guides/flow-orchestrator.md +0 -48
  312. package/.claude/hooks/CLAUDE.md +0 -342
  313. package/.claude/hooks/checklist-gate.js +0 -397
  314. package/.claude/hooks/error-handling-reminder.sh +0 -12
  315. package/.claude/hooks/error-handling-reminder.ts +0 -459
  316. package/.claude/hooks/hooks.json +0 -15
  317. package/.claude/hooks/inject-agent-context.ts +0 -480
  318. package/.claude/hooks/inject-skill-context.ts +0 -359
  319. package/.claude/hooks/post-tool-use-tracker.sh +0 -280
  320. package/.claude/hooks/pre-tool-use-guardrail.sh +0 -36
  321. package/.claude/hooks/pre-tool-use-guardrail.ts +0 -342
  322. package/.claude/hooks/ralph-loop.ts +0 -931
  323. package/.claude/hooks/ralph-stop-hook.sh +0 -190
  324. package/.claude/hooks/skill-activation-prompt.sh +0 -36
  325. package/.claude/hooks/skill-activation-prompt.ts +0 -214
  326. package/.claude/hooks/state/skills-used-test-guard.json +0 -3
  327. package/.claude/hooks/task-completed-hook.ts +0 -593
  328. package/.claude/hooks/teammate-idle-hook.ts +0 -690
  329. package/.claude/hooks/types/team-types.d.ts +0 -238
  330. package/.claude/rules/devflow-conventions.md +0 -286
  331. package/.claude/rules/project-constitution.md +0 -1002
  332. package/.claude/rules/rationalization-library.md +0 -282
  333. package/.claude/schemas/constitution.schema.json +0 -43
  334. package/.claude/scripts/.claude/commands/flow/export-openspec.md +0 -221
  335. package/.claude/scripts/.claude/commands/flow/import-openspec.md +0 -171
  336. package/.claude/scripts/CLAUDE.md +0 -76
  337. package/.claude/scripts/__tests__/openspec.test.js +0 -212
  338. package/.claude/scripts/analyze-upgrade-impact.sh +0 -200
  339. package/.claude/scripts/archive-requirement.sh +0 -394
  340. package/.claude/scripts/calculate-checklist-completion.sh +0 -243
  341. package/.claude/scripts/calculate-quarter.sh +0 -206
  342. package/.claude/scripts/check-dependencies.sh +0 -409
  343. package/.claude/scripts/check-prerequisites.sh +0 -232
  344. package/.claude/scripts/check-task-status.sh +0 -288
  345. package/.claude/scripts/checklist-errors.sh +0 -131
  346. package/.claude/scripts/common.sh +0 -1102
  347. package/.claude/scripts/consolidate-research.sh +0 -182
  348. package/.claude/scripts/create-requirement.sh +0 -451
  349. package/.claude/scripts/delta-parser.ts +0 -637
  350. package/.claude/scripts/detect-file-conflicts.sh +0 -151
  351. package/.claude/scripts/export-contracts.sh +0 -117
  352. package/.claude/scripts/export-openspec.js +0 -222
  353. package/.claude/scripts/extract-data-model.sh +0 -78
  354. package/.claude/scripts/flow-context-add.sh +0 -134
  355. package/.claude/scripts/flow-context-init.sh +0 -133
  356. package/.claude/scripts/flow-context-validate.sh +0 -144
  357. package/.claude/scripts/flow-delta-apply.sh +0 -297
  358. package/.claude/scripts/flow-delta-archive.sh +0 -71
  359. package/.claude/scripts/flow-delta-create.sh +0 -202
  360. package/.claude/scripts/flow-delta-list.sh +0 -142
  361. package/.claude/scripts/flow-delta-status.sh +0 -235
  362. package/.claude/scripts/flow-quality-full.sh +0 -215
  363. package/.claude/scripts/flow-quality-quick.sh +0 -119
  364. package/.claude/scripts/flow-workspace-init.sh +0 -117
  365. package/.claude/scripts/flow-workspace-record.sh +0 -164
  366. package/.claude/scripts/generate-clarification-questions.sh +0 -377
  367. package/.claude/scripts/generate-clarification-report.sh +0 -463
  368. package/.claude/scripts/generate-quickstart.sh +0 -146
  369. package/.claude/scripts/generate-research-tasks.sh +0 -157
  370. package/.claude/scripts/generate-status-report.sh +0 -523
  371. package/.claude/scripts/generate-tech-analysis.sh +0 -46
  372. package/.claude/scripts/get-workflow-status.sh +0 -415
  373. package/.claude/scripts/import-openspec.js +0 -272
  374. package/.claude/scripts/locate-requirement-in-roadmap.sh +0 -233
  375. package/.claude/scripts/manage-constitution.sh +0 -602
  376. package/.claude/scripts/mark-task-complete.sh +0 -198
  377. package/.claude/scripts/parse-task-dependencies.js +0 -334
  378. package/.claude/scripts/populate-research-tasks.sh +0 -284
  379. package/.claude/scripts/record-quality-error.sh +0 -165
  380. package/.claude/scripts/recover-workflow.sh +0 -463
  381. package/.claude/scripts/run-clarify-scan.sh +0 -601
  382. package/.claude/scripts/run-high-review.sh +0 -62
  383. package/.claude/scripts/run-problem-analysis.sh +0 -68
  384. package/.claude/scripts/run-quality-gates.sh +0 -242
  385. package/.claude/scripts/setup-epic.sh +0 -173
  386. package/.claude/scripts/setup-ralph-loop.sh +0 -155
  387. package/.claude/scripts/sync-roadmap-progress.sh +0 -300
  388. package/.claude/scripts/sync-task-marks.sh +0 -199
  389. package/.claude/scripts/team-dev-init.sh +0 -319
  390. package/.claude/scripts/team-state-recovery.sh +0 -229
  391. package/.claude/scripts/test-clarify-scan.sh +0 -515
  392. package/.claude/scripts/update-agent-context.sh +0 -806
  393. package/.claude/scripts/validate-constitution.sh +0 -567
  394. package/.claude/scripts/validate-hooks.sh +0 -487
  395. package/.claude/scripts/validate-research.sh +0 -332
  396. package/.claude/scripts/validate-scope-boundary.sh +0 -493
  397. package/.claude/scripts/validate-scope.sh +0 -200
  398. package/.claude/scripts/verify-gate.sh +0 -269
  399. package/.claude/scripts/verify-setup.sh +0 -37
  400. package/.claude/scripts/workflow-status.ts +0 -433
  401. package/.claude/settings.json +0 -95
  402. package/.claude/skills/_reference-implementations/README.md +0 -96
  403. package/.claude/skills/_reference-implementations/backend-express-prisma/SKILL.md +0 -302
  404. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/architecture-overview.md +0 -451
  405. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/async-and-errors.md +0 -307
  406. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/complete-examples.md +0 -638
  407. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/configuration.md +0 -275
  408. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/database-patterns.md +0 -224
  409. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/middleware-guide.md +0 -213
  410. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/routing-and-controllers.md +0 -756
  411. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/sentry-and-monitoring.md +0 -336
  412. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/services-and-repositories.md +0 -789
  413. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/testing-guide.md +0 -235
  414. package/.claude/skills/_reference-implementations/backend-express-prisma/resources/validation-patterns.md +0 -754
  415. package/.claude/skills/_reference-implementations/frontend-react-mui/SKILL.md +0 -399
  416. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/common-patterns.md +0 -331
  417. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/complete-examples.md +0 -872
  418. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/component-patterns.md +0 -502
  419. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/data-fetching.md +0 -767
  420. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/file-organization.md +0 -502
  421. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/loading-and-error-states.md +0 -501
  422. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/performance.md +0 -406
  423. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/routing-guide.md +0 -364
  424. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/styling-guide.md +0 -428
  425. package/.claude/skills/_reference-implementations/frontend-react-mui/resources/typescript-standards.md +0 -418
  426. package/.claude/skills/attention-refresh/SKILL.md +0 -170
  427. package/.claude/skills/brainstorming/SKILL.md +0 -161
  428. package/.claude/skills/cc-devflow-orchestrator/SKILL.md +0 -169
  429. package/.claude/skills/constitution-guardian/SKILL.md +0 -306
  430. package/.claude/skills/constitution-quick-ref/SKILL.md +0 -374
  431. package/.claude/skills/debugging/SKILL.md +0 -221
  432. package/.claude/skills/file-standards/SKILL.md +0 -353
  433. package/.claude/skills/finishing-branch/SKILL.md +0 -189
  434. package/.claude/skills/flow-dev/CLAUDE.md +0 -16
  435. package/.claude/skills/flow-dev/SKILL.md +0 -94
  436. package/.claude/skills/flow-dev/assets/IMPLEMENTATION_PLAN_TEMPLATE.md +0 -71
  437. package/.claude/skills/flow-dev/context.jsonl +0 -4
  438. package/.claude/skills/flow-dev/dev-implementer.jsonl +0 -8
  439. package/.claude/skills/flow-dev/scripts/entry-gate.sh +0 -116
  440. package/.claude/skills/flow-dev/scripts/exit-gate.sh +0 -101
  441. package/.claude/skills/flow-dev/scripts/task-orchestrator.sh +0 -106
  442. package/.claude/skills/flow-fix/SKILL.md +0 -105
  443. package/.claude/skills/flow-fix/context.jsonl +0 -6
  444. package/.claude/skills/flow-fix/references/bug-analyzer.md +0 -381
  445. package/.claude/skills/flow-init/SKILL.md +0 -105
  446. package/.claude/skills/flow-init/assets/BRAINSTORM_TEMPLATE.md +0 -148
  447. package/.claude/skills/flow-init/assets/INIT_FLOW_TEMPLATE.md +0 -198
  448. package/.claude/skills/flow-init/assets/RESEARCH_TEMPLATE.md +0 -276
  449. package/.claude/skills/flow-init/context.jsonl +0 -5
  450. package/.claude/skills/flow-init/references/flow-researcher.md +0 -132
  451. package/.claude/skills/flow-init/scripts/check-prerequisites.sh +0 -240
  452. package/.claude/skills/flow-init/scripts/consolidate-research.sh +0 -182
  453. package/.claude/skills/flow-init/scripts/create-requirement.sh +0 -404
  454. package/.claude/skills/flow-init/scripts/generate-research-tasks.sh +0 -157
  455. package/.claude/skills/flow-init/scripts/populate-research-tasks.sh +0 -284
  456. package/.claude/skills/flow-init/scripts/validate-research.sh +0 -340
  457. package/.claude/skills/flow-quality/SKILL.md +0 -98
  458. package/.claude/skills/flow-quality/context.jsonl +0 -6
  459. package/.claude/skills/flow-quality/references/code-quality-reviewer.md +0 -205
  460. package/.claude/skills/flow-quality/references/qa-tester.md +0 -313
  461. package/.claude/skills/flow-quality/references/security-reviewer.md +0 -314
  462. package/.claude/skills/flow-quality/references/spec-reviewer.md +0 -221
  463. package/.claude/skills/flow-release/SKILL.md +0 -60
  464. package/.claude/skills/flow-release/context.jsonl +0 -5
  465. package/.claude/skills/flow-release/references/release-manager.md +0 -295
  466. package/.claude/skills/flow-spec/CLAUDE.md +0 -17
  467. package/.claude/skills/flow-spec/SKILL.md +0 -102
  468. package/.claude/skills/flow-spec/context.jsonl +0 -5
  469. package/.claude/skills/flow-spec/scripts/entry-gate.sh +0 -194
  470. package/.claude/skills/flow-spec/scripts/exit-gate.sh +0 -244
  471. package/.claude/skills/flow-spec/scripts/parallel-orchestrator.sh +0 -205
  472. package/.claude/skills/flow-spec/scripts/team-communication.sh +0 -353
  473. package/.claude/skills/flow-spec/scripts/team-init.sh +0 -195
  474. package/.claude/skills/flow-spec/scripts/test-team-mode.sh +0 -496
  475. package/.claude/skills/flow-spec/team-config.json +0 -165
  476. package/.claude/skills/flow-verify/CLAUDE.md +0 -10
  477. package/.claude/skills/flow-verify/SKILL.md +0 -53
  478. package/.claude/skills/flow-verify/context.jsonl +0 -5
  479. package/.claude/skills/fractal-docs/SKILL.md +0 -45
  480. package/.claude/skills/journey-checker/SKILL.md +0 -199
  481. package/.claude/skills/journey-checker/pressure-scenarios.md +0 -164
  482. package/.claude/skills/receiving-review/SKILL.md +0 -153
  483. package/.claude/skills/skill-creator/LICENSE.txt +0 -202
  484. package/.claude/skills/skill-creator/SKILL.md +0 -356
  485. package/.claude/skills/skill-creator/references/output-patterns.md +0 -82
  486. package/.claude/skills/skill-creator/references/workflows.md +0 -28
  487. package/.claude/skills/skill-creator/scripts/init_skill.py +0 -303
  488. package/.claude/skills/skill-creator/scripts/package_skill.py +0 -110
  489. package/.claude/skills/skill-creator/scripts/quick_validate.py +0 -95
  490. package/.claude/skills/skill-rules.json +0 -359
  491. package/.claude/skills/tdd/SKILL.md +0 -218
  492. package/.claude/skills/tdd-enforcer/SKILL.md +0 -192
  493. package/.claude/skills/utility/npm-release/CLAUDE.md +0 -55
  494. package/.claude/skills/utility/npm-release/SKILL.md +0 -379
  495. package/.claude/skills/utility/npm-release/references/version-decision-guide.md +0 -134
  496. package/.claude/skills/utility/npm-release/scripts/atomic-version-bump.sh +0 -95
  497. package/.claude/skills/utility/npm-release/scripts/validate-version-sync.sh +0 -82
  498. package/.claude/skills/utility/npm-release/scripts/version-decision-tree.sh +0 -44
  499. package/.claude/skills/verification/SKILL.md +0 -158
  500. package/.claude/skills/workflow.yaml +0 -219
  501. package/.claude/tests/README.md +0 -300
  502. package/.claude/tests/TODO.md +0 -69
  503. package/.claude/tests/__pycache__/test_analyze_upgrade_impact.cpython-311-pytest-7.2.2.pyc +0 -0
  504. package/.claude/tests/__pycache__/test_consolidate_research.cpython-311-pytest-7.2.2.pyc +0 -0
  505. package/.claude/tests/__pycache__/test_export_contracts.cpython-311-pytest-7.2.2.pyc +0 -0
  506. package/.claude/tests/__pycache__/test_extract_data_model.cpython-311-pytest-7.2.2.pyc +0 -0
  507. package/.claude/tests/__pycache__/test_generate_quickstart.cpython-311-pytest-7.2.2.pyc +0 -0
  508. package/.claude/tests/__pycache__/test_generate_research_tasks.cpython-311-pytest-7.2.2.pyc +0 -0
  509. package/.claude/tests/constitution/run_all_constitution_tests.sh +0 -111
  510. package/.claude/tests/constitution/test_agent_assignment.sh +0 -207
  511. package/.claude/tests/constitution/test_article_coverage.sh +0 -201
  512. package/.claude/tests/constitution/test_template_completeness.sh +0 -150
  513. package/.claude/tests/constitution/test_version_consistency.sh +0 -120
  514. package/.claude/tests/fixtures/spec_delta_full.md +0 -16
  515. package/.claude/tests/fixtures/tasks_progress_sample.md +0 -5
  516. package/.claude/tests/run-all-tests.sh +0 -229
  517. package/.claude/tests/scripts/run.sh +0 -30
  518. package/.claude/tests/scripts/test-framework.sh +0 -128
  519. package/.claude/tests/scripts/test_check_prerequisites.sh +0 -511
  520. package/.claude/tests/scripts/test_check_prerequisites.sh.bak +0 -504
  521. package/.claude/tests/scripts/test_check_prerequisites.sh.bak2 +0 -505
  522. package/.claude/tests/scripts/test_check_prerequisites.sh.bak3 +0 -506
  523. package/.claude/tests/scripts/test_check_prerequisites.sh.bak4 +0 -507
  524. package/.claude/tests/scripts/test_check_prerequisites.sh.bak5 +0 -508
  525. package/.claude/tests/scripts/test_check_task_status.sh +0 -499
  526. package/.claude/tests/scripts/test_common.sh +0 -244
  527. package/.claude/tests/scripts/test_generate_status_report.sh +0 -71
  528. package/.claude/tests/scripts/test_mark_task_complete.sh +0 -441
  529. package/.claude/tests/scripts/test_mark_task_complete.sh.backup +0 -410
  530. package/.claude/tests/scripts/test_recover_workflow.sh +0 -304
  531. package/.claude/tests/scripts/test_setup_epic.sh +0 -437
  532. package/.claude/tests/scripts/test_sync_task_marks.sh +0 -196
  533. package/.claude/tests/scripts/test_validate_constitution.sh +0 -74
  534. package/.claude/tests/scripts/test_validate_research.sh +0 -462
  535. package/.claude/tests/slugify.bats +0 -82
  536. package/.claude/tests/test-framework.sh +0 -732
  537. package/.claude/tests/test_analyze_upgrade_impact.py +0 -34
  538. package/.claude/tests/test_consolidate_research.py +0 -48
  539. package/.claude/tests/test_export_contracts.py +0 -43
  540. package/.claude/tests/test_extract_data_model.py +0 -33
  541. package/.claude/tests/test_generate_quickstart.py +0 -50
  542. package/.claude/tests/test_generate_research_tasks.py +0 -52
  543. package/.claude/tsc-cache/70d2fc6d-2936-429b-b529-429f1aae8c88/affected-repos.txt +0 -1
  544. package/.claude/tsc-cache/70d2fc6d-2936-429b-b529-429f1aae8c88/edited-files.log +0 -2
  545. package/bin/harness.js +0 -22
  546. package/docs/commands/core-roadmap.md +0 -106
  547. package/docs/commands/core-roadmap.zh-CN.md +0 -102
  548. package/docs/commands/core-style.md +0 -53
  549. package/docs/commands/core-style.zh-CN.md +0 -53
  550. package/docs/commands/flow-init.md +0 -140
  551. package/docs/commands/flow-init.zh-CN.md +0 -169
  552. package/docs/commands/flow-new.md +0 -39
  553. package/docs/commands/flow-new.zh-CN.md +0 -39
  554. package/lib/compiler/__tests__/compile-regression.test.js +0 -103
  555. package/lib/compiler/__tests__/multi-module-emitters.test.js +0 -534
  556. package/lib/compiler/__tests__/resource-copier.test.js +0 -26
  557. package/lib/compiler/__tests__/skill-discovery.test.js +0 -72
  558. package/lib/compiler/context-expander.js +0 -179
  559. package/lib/compiler/rules-emitters/__tests__/codex-rules-emitter.test.js +0 -109
  560. package/lib/compiler/rules-emitters/codex-rules-emitter.js +0 -116
  561. package/lib/compiler/skill-discovery.js +0 -68
  562. package/lib/harness/CLAUDE.md +0 -22
  563. package/lib/harness/__tests__/planner.tdd.test.js +0 -125
  564. package/lib/harness/cli.js +0 -208
  565. package/lib/harness/index.js +0 -18
  566. package/lib/harness/operations/dispatch.js +0 -298
  567. package/lib/harness/operations/init.js +0 -48
  568. package/lib/harness/operations/pack.js +0 -100
  569. package/lib/harness/operations/plan.js +0 -83
  570. package/lib/harness/operations/release.js +0 -170
  571. package/lib/harness/operations/resume.js +0 -44
  572. package/lib/harness/operations/verify.js +0 -177
  573. package/lib/harness/planner.js +0 -272
  574. package/lib/harness/query.js +0 -126
  575. package/lib/harness/schemas.js +0 -129
@@ -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