cc-devflow 4.3.0 → 4.5.0

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