@cregis-dev/cckit 0.3.0 → 0.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 (537) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +89 -85
  3. package/bin/cckit.js +3 -3
  4. package/package.json +7 -5
  5. package/registry.json +43 -9
  6. package/src/adapters/trae-adapter.js +90 -90
  7. package/src/cli.js +2 -2
  8. package/src/commands/init.js +337 -333
  9. package/src/commands/status.js +62 -62
  10. package/src/commands/sync.js +325 -325
  11. package/src/commands/update.js +430 -425
  12. package/src/core/config.js +82 -82
  13. package/src/core/differ.js +57 -57
  14. package/src/core/installer.js +97 -97
  15. package/src/core/plugin-installer.js +278 -232
  16. package/src/core/registry.js +75 -75
  17. package/src/core/templatize.js +42 -42
  18. package/src/core/upstream.js +357 -357
  19. package/src/utils/fs.js +55 -50
  20. package/src/utils/logger.js +16 -16
  21. package/templates/bmad/_config/agent-manifest.csv +12 -12
  22. package/templates/bmad/_config/agents/bmm-analyst.customize.yaml +41 -41
  23. package/templates/bmad/_config/agents/bmm-architect.customize.yaml +41 -41
  24. package/templates/bmad/_config/agents/bmm-dev.customize.yaml +41 -41
  25. package/templates/bmad/_config/agents/bmm-pm.customize.yaml +41 -41
  26. package/templates/bmad/_config/agents/bmm-qa.customize.yaml +41 -41
  27. package/templates/bmad/_config/agents/bmm-quick-flow-solo-dev.customize.yaml +41 -41
  28. package/templates/bmad/_config/agents/bmm-sm.customize.yaml +41 -41
  29. package/templates/bmad/_config/agents/bmm-tech-writer.customize.yaml +41 -41
  30. package/templates/bmad/_config/agents/bmm-ux-designer.customize.yaml +41 -41
  31. package/templates/bmad/_config/agents/core-bmad-master.customize.yaml +41 -41
  32. package/templates/bmad/_config/agents/tea-tea.customize.yaml +41 -41
  33. package/templates/bmad/_config/bmad-help.csv +48 -47
  34. package/templates/bmad/_config/files-manifest.csv +118 -112
  35. package/templates/bmad/_config/ides/claude-code.yaml +2 -2
  36. package/templates/bmad/_config/ides/opencode.yaml +5 -5
  37. package/templates/bmad/_config/ides/trae.yaml +2 -2
  38. package/templates/bmad/_config/task-manifest.csv +8 -7
  39. package/templates/bmad/_config/tool-manifest.csv +1 -1
  40. package/templates/bmad/_config/workflow-manifest.csv +35 -35
  41. package/templates/bmad/bmm/agents/analyst.md +78 -78
  42. package/templates/bmad/bmm/agents/architect.md +58 -58
  43. package/templates/bmad/bmm/agents/dev.md +69 -69
  44. package/templates/bmad/bmm/agents/pm.md +72 -72
  45. package/templates/bmad/bmm/agents/qa.md +92 -92
  46. package/templates/bmad/bmm/agents/quick-flow-solo-dev.md +69 -69
  47. package/templates/bmad/bmm/agents/sm.md +70 -70
  48. package/templates/bmad/bmm/agents/tech-writer/tech-writer.md +70 -70
  49. package/templates/bmad/bmm/agents/ux-designer.md +57 -57
  50. package/templates/bmad/bmm/config.yaml +15 -15
  51. package/templates/bmad/bmm/data/project-context-template.md +26 -26
  52. package/templates/bmad/bmm/module-help.csv +31 -31
  53. package/templates/bmad/bmm/teams/default-party.csv +20 -20
  54. package/templates/bmad/bmm/teams/team-fullstack.yaml +12 -12
  55. package/templates/bmad/bmm/workflows/1-analysis/create-product-brief/product-brief.template.md +10 -10
  56. package/templates/bmad/bmm/workflows/1-analysis/create-product-brief/steps/step-01-init.md +177 -177
  57. package/templates/bmad/bmm/workflows/1-analysis/create-product-brief/steps/step-01b-continue.md +161 -161
  58. package/templates/bmad/bmm/workflows/1-analysis/create-product-brief/steps/step-02-vision.md +199 -199
  59. package/templates/bmad/bmm/workflows/1-analysis/create-product-brief/steps/step-03-users.md +202 -202
  60. package/templates/bmad/bmm/workflows/1-analysis/create-product-brief/steps/step-04-metrics.md +205 -205
  61. package/templates/bmad/bmm/workflows/1-analysis/create-product-brief/steps/step-05-scope.md +219 -219
  62. package/templates/bmad/bmm/workflows/1-analysis/create-product-brief/steps/step-06-complete.md +162 -162
  63. package/templates/bmad/bmm/workflows/1-analysis/create-product-brief/workflow.md +57 -57
  64. package/templates/bmad/bmm/workflows/1-analysis/research/domain-steps/step-01-init.md +137 -137
  65. package/templates/bmad/bmm/workflows/1-analysis/research/domain-steps/step-02-domain-analysis.md +229 -229
  66. package/templates/bmad/bmm/workflows/1-analysis/research/domain-steps/step-03-competitive-landscape.md +238 -238
  67. package/templates/bmad/bmm/workflows/1-analysis/research/domain-steps/step-04-regulatory-focus.md +206 -206
  68. package/templates/bmad/bmm/workflows/1-analysis/research/domain-steps/step-05-technical-trends.md +234 -234
  69. package/templates/bmad/bmm/workflows/1-analysis/research/domain-steps/step-06-research-synthesis.md +444 -444
  70. package/templates/bmad/bmm/workflows/1-analysis/research/market-steps/step-01-init.md +182 -182
  71. package/templates/bmad/bmm/workflows/1-analysis/research/market-steps/step-02-customer-behavior.md +237 -237
  72. package/templates/bmad/bmm/workflows/1-analysis/research/market-steps/step-03-customer-pain-points.md +249 -249
  73. package/templates/bmad/bmm/workflows/1-analysis/research/market-steps/step-04-customer-decisions.md +259 -259
  74. package/templates/bmad/bmm/workflows/1-analysis/research/market-steps/step-05-competitive-analysis.md +177 -177
  75. package/templates/bmad/bmm/workflows/1-analysis/research/market-steps/step-06-research-completion.md +476 -476
  76. package/templates/bmad/bmm/workflows/1-analysis/research/research.template.md +29 -29
  77. package/templates/bmad/bmm/workflows/1-analysis/research/technical-steps/step-01-init.md +137 -137
  78. package/templates/bmad/bmm/workflows/1-analysis/research/technical-steps/step-02-technical-overview.md +239 -239
  79. package/templates/bmad/bmm/workflows/1-analysis/research/technical-steps/step-03-integration-patterns.md +248 -248
  80. package/templates/bmad/bmm/workflows/1-analysis/research/technical-steps/step-04-architectural-patterns.md +202 -202
  81. package/templates/bmad/bmm/workflows/1-analysis/research/technical-steps/step-05-implementation-research.md +233 -233
  82. package/templates/bmad/bmm/workflows/1-analysis/research/technical-steps/step-06-research-synthesis.md +487 -487
  83. package/templates/bmad/bmm/workflows/1-analysis/research/workflow-domain-research.md +54 -54
  84. package/templates/bmad/bmm/workflows/1-analysis/research/workflow-market-research.md +54 -54
  85. package/templates/bmad/bmm/workflows/1-analysis/research/workflow-technical-research.md +54 -54
  86. package/templates/bmad/bmm/workflows/2-plan-workflows/create-prd/data/domain-complexity.csv +14 -14
  87. package/templates/bmad/bmm/workflows/2-plan-workflows/create-prd/data/prd-purpose.md +197 -197
  88. package/templates/bmad/bmm/workflows/2-plan-workflows/create-prd/data/project-types.csv +10 -10
  89. package/templates/bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-01-init.md +191 -191
  90. package/templates/bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-01b-continue.md +152 -152
  91. package/templates/bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-02-discovery.md +224 -224
  92. package/templates/bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-02b-vision.md +154 -154
  93. package/templates/bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-02c-executive-summary.md +170 -170
  94. package/templates/bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-03-success.md +226 -226
  95. package/templates/bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-04-journeys.md +213 -213
  96. package/templates/bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-05-domain.md +207 -207
  97. package/templates/bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-06-innovation.md +226 -226
  98. package/templates/bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-07-project-type.md +237 -237
  99. package/templates/bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-08-scoping.md +228 -228
  100. package/templates/bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-09-functional.md +231 -231
  101. package/templates/bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-10-nonfunctional.md +242 -242
  102. package/templates/bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-11-polish.md +217 -217
  103. package/templates/bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-12-complete.md +124 -124
  104. package/templates/bmad/bmm/workflows/2-plan-workflows/create-prd/steps-e/step-e-01-discovery.md +247 -247
  105. package/templates/bmad/bmm/workflows/2-plan-workflows/create-prd/steps-e/step-e-01b-legacy-conversion.md +208 -208
  106. package/templates/bmad/bmm/workflows/2-plan-workflows/create-prd/steps-e/step-e-02-review.md +249 -249
  107. package/templates/bmad/bmm/workflows/2-plan-workflows/create-prd/steps-e/step-e-03-edit.md +253 -253
  108. package/templates/bmad/bmm/workflows/2-plan-workflows/create-prd/steps-e/step-e-04-complete.md +168 -168
  109. package/templates/bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-01-discovery.md +226 -226
  110. package/templates/bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-02-format-detection.md +191 -191
  111. package/templates/bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-02b-parity-check.md +209 -209
  112. package/templates/bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-03-density-validation.md +174 -174
  113. package/templates/bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-04-brief-coverage-validation.md +214 -214
  114. package/templates/bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-05-measurability-validation.md +228 -228
  115. package/templates/bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-06-traceability-validation.md +217 -217
  116. package/templates/bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-07-implementation-leakage-validation.md +205 -205
  117. package/templates/bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-08-domain-compliance-validation.md +243 -243
  118. package/templates/bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-09-project-type-validation.md +263 -263
  119. package/templates/bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-10-smart-validation.md +209 -209
  120. package/templates/bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-11-holistic-quality-validation.md +264 -264
  121. package/templates/bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-12-completeness-validation.md +242 -242
  122. package/templates/bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-13-report-complete.md +231 -231
  123. package/templates/bmad/bmm/workflows/2-plan-workflows/create-prd/templates/prd-template.md +10 -10
  124. package/templates/bmad/bmm/workflows/2-plan-workflows/create-prd/workflow-create-prd.md +63 -63
  125. package/templates/bmad/bmm/workflows/2-plan-workflows/create-prd/workflow-edit-prd.md +65 -65
  126. package/templates/bmad/bmm/workflows/2-plan-workflows/create-prd/workflow-validate-prd.md +63 -63
  127. package/templates/bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-01-init.md +135 -135
  128. package/templates/bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-01b-continue.md +127 -127
  129. package/templates/bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-02-discovery.md +190 -190
  130. package/templates/bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-03-core-experience.md +216 -216
  131. package/templates/bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-04-emotional-response.md +219 -219
  132. package/templates/bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-05-inspiration.md +234 -234
  133. package/templates/bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-06-design-system.md +252 -252
  134. package/templates/bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-07-defining-experience.md +254 -254
  135. package/templates/bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-08-visual-foundation.md +224 -224
  136. package/templates/bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-09-design-directions.md +224 -224
  137. package/templates/bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-10-user-journeys.md +241 -241
  138. package/templates/bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-11-component-strategy.md +248 -248
  139. package/templates/bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-12-ux-patterns.md +237 -237
  140. package/templates/bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-13-responsive-accessibility.md +264 -264
  141. package/templates/bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-14-complete.md +171 -171
  142. package/templates/bmad/bmm/workflows/2-plan-workflows/create-ux-design/ux-design-template.md +13 -13
  143. package/templates/bmad/bmm/workflows/2-plan-workflows/create-ux-design/workflow.md +42 -42
  144. package/templates/bmad/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-01-document-discovery.md +184 -184
  145. package/templates/bmad/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-02-prd-analysis.md +172 -172
  146. package/templates/bmad/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-03-epic-coverage-validation.md +173 -173
  147. package/templates/bmad/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-04-ux-alignment.md +133 -133
  148. package/templates/bmad/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-05-epic-quality-review.md +245 -245
  149. package/templates/bmad/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-06-final-assessment.md +129 -129
  150. package/templates/bmad/bmm/workflows/3-solutioning/check-implementation-readiness/templates/readiness-report-template.md +4 -4
  151. package/templates/bmad/bmm/workflows/3-solutioning/check-implementation-readiness/workflow.md +54 -54
  152. package/templates/bmad/bmm/workflows/3-solutioning/create-architecture/architecture-decision-template.md +12 -12
  153. package/templates/bmad/bmm/workflows/3-solutioning/create-architecture/data/domain-complexity.csv +12 -12
  154. package/templates/bmad/bmm/workflows/3-solutioning/create-architecture/data/project-types.csv +6 -6
  155. package/templates/bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-01-init.md +153 -153
  156. package/templates/bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-01b-continue.md +173 -173
  157. package/templates/bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-02-context.md +224 -224
  158. package/templates/bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-03-starter.md +329 -329
  159. package/templates/bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-04-decisions.md +318 -318
  160. package/templates/bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-05-patterns.md +359 -359
  161. package/templates/bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-06-structure.md +379 -379
  162. package/templates/bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-07-validation.md +359 -359
  163. package/templates/bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-08-complete.md +76 -76
  164. package/templates/bmad/bmm/workflows/3-solutioning/create-architecture/workflow.md +49 -49
  165. package/templates/bmad/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-01-validate-prerequisites.md +259 -259
  166. package/templates/bmad/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-02-design-epics.md +233 -233
  167. package/templates/bmad/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-03-create-stories.md +272 -272
  168. package/templates/bmad/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-04-final-validation.md +149 -149
  169. package/templates/bmad/bmm/workflows/3-solutioning/create-epics-and-stories/templates/epics-template.md +57 -57
  170. package/templates/bmad/bmm/workflows/3-solutioning/create-epics-and-stories/workflow.md +58 -58
  171. package/templates/bmad/bmm/workflows/4-implementation/code-review/checklist.md +23 -23
  172. package/templates/bmad/bmm/workflows/4-implementation/code-review/instructions.xml +226 -226
  173. package/templates/bmad/bmm/workflows/4-implementation/code-review/workflow.yaml +43 -43
  174. package/templates/bmad/bmm/workflows/4-implementation/correct-course/checklist.md +288 -288
  175. package/templates/bmad/bmm/workflows/4-implementation/correct-course/instructions.md +207 -207
  176. package/templates/bmad/bmm/workflows/4-implementation/correct-course/workflow.yaml +53 -53
  177. package/templates/bmad/bmm/workflows/4-implementation/create-story/checklist.md +358 -358
  178. package/templates/bmad/bmm/workflows/4-implementation/create-story/instructions.xml +346 -346
  179. package/templates/bmad/bmm/workflows/4-implementation/create-story/template.md +49 -49
  180. package/templates/bmad/bmm/workflows/4-implementation/create-story/workflow.yaml +52 -52
  181. package/templates/bmad/bmm/workflows/4-implementation/dev-story/checklist.md +80 -80
  182. package/templates/bmad/bmm/workflows/4-implementation/dev-story/instructions.xml +410 -410
  183. package/templates/bmad/bmm/workflows/4-implementation/dev-story/workflow.yaml +20 -20
  184. package/templates/bmad/bmm/workflows/4-implementation/retrospective/instructions.md +1444 -1444
  185. package/templates/bmad/bmm/workflows/4-implementation/retrospective/workflow.yaml +52 -52
  186. package/templates/bmad/bmm/workflows/4-implementation/sprint-planning/checklist.md +33 -33
  187. package/templates/bmad/bmm/workflows/4-implementation/sprint-planning/instructions.md +226 -226
  188. package/templates/bmad/bmm/workflows/4-implementation/sprint-planning/sprint-status-template.yaml +55 -55
  189. package/templates/bmad/bmm/workflows/4-implementation/sprint-planning/workflow.yaml +47 -47
  190. package/templates/bmad/bmm/workflows/4-implementation/sprint-status/instructions.md +230 -230
  191. package/templates/bmad/bmm/workflows/4-implementation/sprint-status/workflow.yaml +25 -25
  192. package/templates/bmad/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-01-mode-detection.md +174 -174
  193. package/templates/bmad/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-02-context-gathering.md +118 -118
  194. package/templates/bmad/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-03-execute.md +111 -111
  195. package/templates/bmad/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-04-self-check.md +111 -111
  196. package/templates/bmad/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-05-adversarial-review.md +104 -104
  197. package/templates/bmad/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-06-resolve-findings.md +146 -146
  198. package/templates/bmad/bmm/workflows/bmad-quick-flow/quick-dev/workflow.md +50 -50
  199. package/templates/bmad/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-01-understand.md +189 -189
  200. package/templates/bmad/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-02-investigate.md +143 -143
  201. package/templates/bmad/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-03-generate.md +126 -126
  202. package/templates/bmad/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-04-review.md +200 -200
  203. package/templates/bmad/bmm/workflows/bmad-quick-flow/quick-spec/tech-spec-template.md +74 -74
  204. package/templates/bmad/bmm/workflows/bmad-quick-flow/quick-spec/workflow.md +79 -79
  205. package/templates/bmad/bmm/workflows/document-project/checklist.md +245 -245
  206. package/templates/bmad/bmm/workflows/document-project/documentation-requirements.csv +12 -12
  207. package/templates/bmad/bmm/workflows/document-project/instructions.md +130 -130
  208. package/templates/bmad/bmm/workflows/document-project/templates/deep-dive-template.md +345 -345
  209. package/templates/bmad/bmm/workflows/document-project/templates/index-template.md +169 -169
  210. package/templates/bmad/bmm/workflows/document-project/templates/project-overview-template.md +103 -103
  211. package/templates/bmad/bmm/workflows/document-project/templates/project-scan-report-schema.json +160 -160
  212. package/templates/bmad/bmm/workflows/document-project/templates/source-tree-template.md +135 -135
  213. package/templates/bmad/bmm/workflows/document-project/workflow.yaml +22 -22
  214. package/templates/bmad/bmm/workflows/document-project/workflows/deep-dive-instructions.md +298 -298
  215. package/templates/bmad/bmm/workflows/document-project/workflows/deep-dive.yaml +31 -31
  216. package/templates/bmad/bmm/workflows/document-project/workflows/full-scan-instructions.md +1106 -1106
  217. package/templates/bmad/bmm/workflows/document-project/workflows/full-scan.yaml +31 -31
  218. package/templates/bmad/bmm/workflows/generate-project-context/project-context-template.md +21 -21
  219. package/templates/bmad/bmm/workflows/generate-project-context/steps/step-01-discover.md +184 -184
  220. package/templates/bmad/bmm/workflows/generate-project-context/steps/step-02-generate.md +318 -318
  221. package/templates/bmad/bmm/workflows/generate-project-context/steps/step-03-complete.md +278 -278
  222. package/templates/bmad/bmm/workflows/generate-project-context/workflow.md +49 -49
  223. package/templates/bmad/bmm/workflows/qa/automate/checklist.md +33 -33
  224. package/templates/bmad/bmm/workflows/qa/automate/instructions.md +110 -110
  225. package/templates/bmad/bmm/workflows/qa/automate/workflow.yaml +44 -44
  226. package/templates/bmad/bmm/workflows/qa-generate-e2e-tests/checklist.md +33 -33
  227. package/templates/bmad/bmm/workflows/qa-generate-e2e-tests/instructions.md +110 -110
  228. package/templates/bmad/bmm/workflows/qa-generate-e2e-tests/workflow.yaml +42 -42
  229. package/templates/bmad/commands/bmad-agent-bmad-master.md +15 -15
  230. package/templates/bmad/commands/bmad-agent-bmm-analyst.md +15 -15
  231. package/templates/bmad/commands/bmad-agent-bmm-architect.md +15 -15
  232. package/templates/bmad/commands/bmad-agent-bmm-dev.md +15 -15
  233. package/templates/bmad/commands/bmad-agent-bmm-pm.md +15 -15
  234. package/templates/bmad/commands/bmad-agent-bmm-qa.md +15 -15
  235. package/templates/bmad/commands/bmad-agent-bmm-quick-flow-solo-dev.md +15 -15
  236. package/templates/bmad/commands/bmad-agent-bmm-sm.md +15 -15
  237. package/templates/bmad/commands/bmad-agent-bmm-tech-writer.md +15 -15
  238. package/templates/bmad/commands/bmad-agent-bmm-ux-designer.md +15 -15
  239. package/templates/bmad/commands/bmad-agent-tea-tea.md +15 -15
  240. package/templates/bmad/commands/bmad-bmm-check-implementation-readiness.md +6 -6
  241. package/templates/bmad/commands/bmad-bmm-code-review.md +14 -14
  242. package/templates/bmad/commands/bmad-bmm-correct-course.md +14 -14
  243. package/templates/bmad/commands/bmad-bmm-create-architecture.md +6 -6
  244. package/templates/bmad/commands/bmad-bmm-create-epics-and-stories.md +6 -6
  245. package/templates/bmad/commands/bmad-bmm-create-prd.md +6 -6
  246. package/templates/bmad/commands/bmad-bmm-create-product-brief.md +6 -6
  247. package/templates/bmad/commands/bmad-bmm-create-story.md +14 -14
  248. package/templates/bmad/commands/bmad-bmm-create-ux-design.md +6 -6
  249. package/templates/bmad/commands/bmad-bmm-dev-story.md +14 -14
  250. package/templates/bmad/commands/bmad-bmm-document-project.md +14 -14
  251. package/templates/bmad/commands/bmad-bmm-domain-research.md +6 -6
  252. package/templates/bmad/commands/bmad-bmm-edit-prd.md +6 -6
  253. package/templates/bmad/commands/bmad-bmm-generate-project-context.md +6 -6
  254. package/templates/bmad/commands/bmad-bmm-market-research.md +6 -6
  255. package/templates/bmad/commands/bmad-bmm-qa-automate.md +15 -15
  256. package/templates/bmad/commands/bmad-bmm-qa-generate-e2e-tests.md +14 -14
  257. package/templates/bmad/commands/bmad-bmm-quick-dev.md +6 -6
  258. package/templates/bmad/commands/bmad-bmm-quick-spec.md +6 -6
  259. package/templates/bmad/commands/bmad-bmm-retrospective.md +14 -14
  260. package/templates/bmad/commands/bmad-bmm-sprint-planning.md +14 -14
  261. package/templates/bmad/commands/bmad-bmm-sprint-status.md +14 -14
  262. package/templates/bmad/commands/bmad-bmm-technical-research.md +6 -6
  263. package/templates/bmad/commands/bmad-bmm-validate-prd.md +6 -6
  264. package/templates/bmad/commands/bmad-brainstorming.md +6 -6
  265. package/templates/bmad/commands/bmad-editorial-review-prose.md +10 -10
  266. package/templates/bmad/commands/bmad-editorial-review-structure.md +10 -10
  267. package/templates/bmad/commands/bmad-help.md +10 -10
  268. package/templates/bmad/commands/bmad-index-docs.md +10 -10
  269. package/templates/bmad/commands/bmad-party-mode.md +6 -6
  270. package/templates/bmad/commands/bmad-review-adversarial-general.md +10 -10
  271. package/templates/bmad/commands/bmad-review-edge-case-hunter.md +10 -0
  272. package/templates/bmad/commands/bmad-shard-doc.md +10 -10
  273. package/templates/bmad/commands/bmad-tea-teach-me-testing.md +6 -6
  274. package/templates/bmad/commands/bmad-tea-testarch-atdd.md +14 -14
  275. package/templates/bmad/commands/bmad-tea-testarch-automate.md +14 -14
  276. package/templates/bmad/commands/bmad-tea-testarch-ci.md +14 -14
  277. package/templates/bmad/commands/bmad-tea-testarch-framework.md +14 -14
  278. package/templates/bmad/commands/bmad-tea-testarch-nfr.md +14 -14
  279. package/templates/bmad/commands/bmad-tea-testarch-test-design.md +14 -14
  280. package/templates/bmad/commands/bmad-tea-testarch-test-review.md +14 -14
  281. package/templates/bmad/commands/bmad-tea-testarch-trace.md +14 -14
  282. package/templates/bmad/core/agents/bmad-master.md +56 -56
  283. package/templates/bmad/core/config.yaml +8 -8
  284. package/templates/bmad/core/module-help.csv +10 -9
  285. package/templates/bmad/core/tasks/editorial-review-prose.xml +101 -101
  286. package/templates/bmad/core/tasks/editorial-review-structure.xml +207 -207
  287. package/templates/bmad/core/tasks/help.md +86 -86
  288. package/templates/bmad/core/tasks/index-docs.xml +64 -64
  289. package/templates/bmad/core/tasks/review-adversarial-general.xml +48 -48
  290. package/templates/bmad/core/tasks/review-edge-case-hunter.xml +63 -0
  291. package/templates/bmad/core/tasks/shard-doc.xml +107 -107
  292. package/templates/bmad/core/tasks/workflow.xml +234 -234
  293. package/templates/bmad/core/workflows/advanced-elicitation/methods.csv +51 -51
  294. package/templates/bmad/core/workflows/advanced-elicitation/workflow.xml +117 -117
  295. package/templates/bmad/core/workflows/brainstorming/brain-methods.csv +61 -61
  296. package/templates/bmad/core/workflows/brainstorming/steps/step-01-session-setup.md +210 -197
  297. package/templates/bmad/core/workflows/brainstorming/steps/step-01b-continue.md +122 -122
  298. package/templates/bmad/core/workflows/brainstorming/steps/step-02a-user-selected.md +225 -225
  299. package/templates/bmad/core/workflows/brainstorming/steps/step-02b-ai-recommended.md +237 -237
  300. package/templates/bmad/core/workflows/brainstorming/steps/step-02c-random-selection.md +209 -209
  301. package/templates/bmad/core/workflows/brainstorming/steps/step-02d-progressive-flow.md +264 -264
  302. package/templates/bmad/core/workflows/brainstorming/steps/step-03-technique-execution.md +399 -399
  303. package/templates/bmad/core/workflows/brainstorming/steps/step-04-idea-organization.md +303 -303
  304. package/templates/bmad/core/workflows/brainstorming/template.md +15 -15
  305. package/templates/bmad/core/workflows/brainstorming/workflow.md +60 -58
  306. package/templates/bmad/core/workflows/party-mode/steps/step-01-agent-loading.md +138 -138
  307. package/templates/bmad/core/workflows/party-mode/steps/step-02-discussion-orchestration.md +187 -187
  308. package/templates/bmad/core/workflows/party-mode/steps/step-03-graceful-exit.md +168 -168
  309. package/templates/bmad/core/workflows/party-mode/workflow.md +194 -194
  310. package/templates/bmad/tea/agents/tea.md +71 -71
  311. package/templates/bmad/tea/config.yaml +24 -20
  312. package/templates/bmad/tea/testarch/knowledge/contract-testing.md +24 -2
  313. package/templates/bmad/tea/testarch/knowledge/pact-mcp.md +204 -0
  314. package/templates/bmad/tea/testarch/knowledge/pactjs-utils-consumer-helpers.md +211 -0
  315. package/templates/bmad/tea/testarch/knowledge/pactjs-utils-overview.md +210 -0
  316. package/templates/bmad/tea/testarch/knowledge/pactjs-utils-provider-verifier.md +315 -0
  317. package/templates/bmad/tea/testarch/knowledge/pactjs-utils-request-filter.md +224 -0
  318. package/templates/bmad/tea/testarch/tea-index.csv +5 -0
  319. package/templates/bmad/tea/workflows/testarch/README.md +1 -1
  320. package/templates/bmad/tea/workflows/testarch/atdd/steps-c/step-01-preflight-and-context.md +30 -0
  321. package/templates/bmad/tea/workflows/testarch/atdd/steps-c/step-04-generate-tests.md +159 -57
  322. package/templates/bmad/tea/workflows/testarch/atdd/steps-c/step-04a-subagent-api-failing.md +215 -0
  323. package/templates/bmad/tea/workflows/testarch/atdd/steps-c/step-04b-subagent-e2e-failing.md +244 -0
  324. package/templates/bmad/tea/workflows/testarch/atdd/steps-c/step-04c-aggregate.md +31 -15
  325. package/templates/bmad/tea/workflows/testarch/atdd/validation-report-20260127-095021.md +1 -1
  326. package/templates/bmad/tea/workflows/testarch/atdd/validation-report-20260127-102401.md +3 -3
  327. package/templates/bmad/tea/workflows/testarch/atdd/workflow.yaml +2 -2
  328. package/templates/bmad/tea/workflows/testarch/automate/steps-c/step-01-preflight-and-context.md +32 -0
  329. package/templates/bmad/tea/workflows/testarch/automate/steps-c/step-03-generate-tests.md +215 -101
  330. package/templates/bmad/tea/workflows/testarch/automate/steps-c/step-03a-subagent-api.md +193 -0
  331. package/templates/bmad/tea/workflows/testarch/automate/steps-c/step-03b-subagent-backend.md +246 -0
  332. package/templates/bmad/tea/workflows/testarch/automate/steps-c/step-03b-subagent-e2e.md +213 -0
  333. package/templates/bmad/tea/workflows/testarch/automate/steps-c/step-03c-aggregate.md +38 -22
  334. package/templates/bmad/tea/workflows/testarch/automate/validation-report-20260127-095021.md +1 -1
  335. package/templates/bmad/tea/workflows/testarch/automate/validation-report-20260127-102401.md +3 -3
  336. package/templates/bmad/tea/workflows/testarch/automate/workflow.yaml +2 -2
  337. package/templates/bmad/tea/workflows/testarch/ci/steps-c/step-02-generate-pipeline.md +124 -1
  338. package/templates/bmad/tea/workflows/testarch/ci/steps-c/step-03-configure-quality-gates.md +7 -0
  339. package/templates/bmad/tea/workflows/testarch/ci/validation-report-20260127-095021.md +1 -1
  340. package/templates/bmad/tea/workflows/testarch/ci/validation-report-20260127-102401.md +3 -3
  341. package/templates/bmad/tea/workflows/testarch/ci/workflow.yaml +2 -2
  342. package/templates/bmad/tea/workflows/testarch/framework/steps-c/step-03-scaffold-framework.md +126 -3
  343. package/templates/bmad/tea/workflows/testarch/framework/validation-report-20260127-095021.md +1 -1
  344. package/templates/bmad/tea/workflows/testarch/framework/validation-report-20260127-102401.md +3 -3
  345. package/templates/bmad/tea/workflows/testarch/framework/workflow.yaml +2 -2
  346. package/templates/bmad/tea/workflows/testarch/nfr-assess/steps-c/step-04-evaluate-and-score.md +150 -36
  347. package/templates/bmad/tea/workflows/testarch/nfr-assess/steps-c/step-04a-subagent-security.md +138 -0
  348. package/templates/bmad/tea/workflows/testarch/nfr-assess/steps-c/step-04b-subagent-performance.md +84 -0
  349. package/templates/bmad/tea/workflows/testarch/nfr-assess/steps-c/step-04c-subagent-reliability.md +85 -0
  350. package/templates/bmad/tea/workflows/testarch/nfr-assess/steps-c/step-04d-subagent-scalability.md +88 -0
  351. package/templates/bmad/tea/workflows/testarch/nfr-assess/steps-c/step-04e-aggregate-nfr.md +27 -10
  352. package/templates/bmad/tea/workflows/testarch/nfr-assess/validation-report-20260127-095021.md +1 -1
  353. package/templates/bmad/tea/workflows/testarch/nfr-assess/validation-report-20260127-102401.md +3 -3
  354. package/templates/bmad/tea/workflows/testarch/nfr-assess/workflow.yaml +2 -2
  355. package/templates/bmad/tea/workflows/testarch/teach-me-testing/data/tea-resources-index.yaml +3 -3
  356. package/templates/bmad/tea/workflows/testarch/teach-me-testing/workflow-plan-teach-me-testing.md +6 -6
  357. package/templates/bmad/tea/workflows/testarch/teach-me-testing/workflow.md +1 -1
  358. package/templates/bmad/tea/workflows/testarch/test-design/steps-c/step-02-load-context.md +30 -0
  359. package/templates/bmad/tea/workflows/testarch/test-design/steps-c/step-05-generate-output.md +72 -1
  360. package/templates/bmad/tea/workflows/testarch/test-design/validation-report-20260127-095021.md +1 -1
  361. package/templates/bmad/tea/workflows/testarch/test-design/validation-report-20260127-102401.md +3 -3
  362. package/templates/bmad/tea/workflows/testarch/test-design/workflow.yaml +2 -2
  363. package/templates/bmad/tea/workflows/testarch/test-review/steps-c/step-01-load-context.md +29 -1
  364. package/templates/bmad/tea/workflows/testarch/test-review/steps-c/step-03-quality-evaluation.md +147 -46
  365. package/templates/bmad/tea/workflows/testarch/test-review/steps-c/step-03a-subagent-determinism.md +214 -0
  366. package/templates/bmad/tea/workflows/testarch/test-review/steps-c/step-03b-subagent-isolation.md +125 -0
  367. package/templates/bmad/tea/workflows/testarch/test-review/steps-c/step-03c-subagent-maintainability.md +102 -0
  368. package/templates/bmad/tea/workflows/testarch/test-review/steps-c/step-03e-subagent-performance.md +117 -0
  369. package/templates/bmad/tea/workflows/testarch/test-review/steps-c/step-03f-aggregate-scores.md +10 -10
  370. package/templates/bmad/tea/workflows/testarch/test-review/validation-report-20260127-095021.md +1 -1
  371. package/templates/bmad/tea/workflows/testarch/test-review/validation-report-20260127-102401.md +3 -3
  372. package/templates/bmad/tea/workflows/testarch/test-review/workflow.yaml +2 -2
  373. package/templates/bmad/tea/workflows/testarch/trace/steps-c/step-04-analyze-gaps.md +92 -1
  374. package/templates/bmad/tea/workflows/testarch/trace/validation-report-20260127-095021.md +1 -1
  375. package/templates/bmad/tea/workflows/testarch/trace/validation-report-20260127-102401.md +3 -3
  376. package/templates/bmad/tea/workflows/testarch/trace/workflow.yaml +2 -2
  377. package/templates/ecc/agents/chief-of-staff.md +151 -0
  378. package/templates/ecc/commands/claw.md +79 -0
  379. package/templates/ecc/rules/README.md +23 -2
  380. package/templates/ecc/rules/common/development-workflow.md +37 -0
  381. package/templates/ecc/rules/common/git-workflow.md +2 -23
  382. package/templates/ecc/rules/swift/coding-style.md +47 -0
  383. package/templates/ecc/rules/swift/hooks.md +20 -0
  384. package/templates/ecc/rules/swift/patterns.md +66 -0
  385. package/templates/ecc/rules/swift/security.md +33 -0
  386. package/templates/ecc/rules/swift/testing.md +45 -0
  387. package/templates/ecc/skills/api-design/SKILL.md +1 -0
  388. package/templates/ecc/skills/article-writing/SKILL.md +85 -0
  389. package/templates/ecc/skills/backend-patterns/SKILL.md +1 -0
  390. package/templates/ecc/skills/clickhouse-io/SKILL.md +1 -0
  391. package/templates/ecc/skills/coding-standards/SKILL.md +1 -0
  392. package/templates/ecc/skills/configure-ecc/SKILL.md +32 -4
  393. package/templates/ecc/skills/content-engine/SKILL.md +88 -0
  394. package/templates/ecc/skills/content-hash-cache-pattern/SKILL.md +1 -0
  395. package/templates/ecc/skills/continuous-learning/SKILL.md +2 -1
  396. package/templates/ecc/skills/continuous-learning-v2/SKILL.md +4 -1
  397. package/templates/ecc/skills/continuous-learning-v2/hooks/observe.sh +14 -7
  398. package/templates/ecc/skills/cost-aware-llm-pipeline/SKILL.md +1 -0
  399. package/templates/ecc/skills/cpp-coding-standards/SKILL.md +1 -0
  400. package/templates/ecc/skills/cpp-testing/SKILL.md +1 -0
  401. package/templates/ecc/skills/database-migrations/SKILL.md +1 -0
  402. package/templates/ecc/skills/deployment-patterns/SKILL.md +1 -0
  403. package/templates/ecc/skills/django-patterns/SKILL.md +1 -0
  404. package/templates/ecc/skills/django-security/SKILL.md +1 -0
  405. package/templates/ecc/skills/django-tdd/SKILL.md +1 -0
  406. package/templates/ecc/skills/django-verification/SKILL.md +1 -0
  407. package/templates/ecc/skills/docker-patterns/SKILL.md +1 -0
  408. package/templates/ecc/skills/e2e-testing/SKILL.md +1 -0
  409. package/templates/ecc/skills/eval-harness/SKILL.md +1 -0
  410. package/templates/ecc/skills/foundation-models-on-device/SKILL.md +243 -0
  411. package/templates/ecc/skills/frontend-patterns/SKILL.md +1 -0
  412. package/templates/ecc/skills/frontend-slides/SKILL.md +184 -0
  413. package/templates/ecc/skills/frontend-slides/STYLE_PRESETS.md +330 -0
  414. package/templates/ecc/skills/golang-patterns/SKILL.md +1 -0
  415. package/templates/ecc/skills/golang-testing/SKILL.md +1 -0
  416. package/templates/ecc/skills/investor-materials/SKILL.md +96 -0
  417. package/templates/ecc/skills/investor-outreach/SKILL.md +76 -0
  418. package/templates/ecc/skills/iterative-retrieval/SKILL.md +1 -0
  419. package/templates/ecc/skills/java-coding-standards/SKILL.md +1 -0
  420. package/templates/ecc/skills/jpa-patterns/SKILL.md +1 -0
  421. package/templates/ecc/skills/liquid-glass-design/SKILL.md +279 -0
  422. package/templates/ecc/skills/market-research/SKILL.md +75 -0
  423. package/templates/ecc/skills/nutrient-document-processing/SKILL.md +1 -1
  424. package/templates/ecc/skills/postgres-patterns/SKILL.md +1 -0
  425. package/templates/ecc/skills/project-guidelines-example/SKILL.md +1 -0
  426. package/templates/ecc/skills/python-patterns/SKILL.md +1 -0
  427. package/templates/ecc/skills/python-testing/SKILL.md +1 -0
  428. package/templates/ecc/skills/regex-vs-llm-structured-text/SKILL.md +1 -0
  429. package/templates/ecc/skills/search-first/SKILL.md +3 -1
  430. package/templates/ecc/skills/security-review/SKILL.md +1 -0
  431. package/templates/ecc/skills/security-scan/SKILL.md +1 -0
  432. package/templates/ecc/skills/skill-stocktake/SKILL.md +176 -0
  433. package/templates/ecc/skills/skill-stocktake/scripts/quick-diff.sh +87 -0
  434. package/templates/ecc/skills/skill-stocktake/scripts/save-results.sh +56 -0
  435. package/templates/ecc/skills/skill-stocktake/scripts/scan.sh +170 -0
  436. package/templates/ecc/skills/springboot-patterns/SKILL.md +1 -0
  437. package/templates/ecc/skills/springboot-security/SKILL.md +1 -0
  438. package/templates/ecc/skills/springboot-tdd/SKILL.md +1 -0
  439. package/templates/ecc/skills/springboot-verification/SKILL.md +1 -0
  440. package/templates/ecc/skills/strategic-compact/SKILL.md +1 -0
  441. package/templates/ecc/skills/swift-actor-persistence/SKILL.md +1 -0
  442. package/templates/ecc/skills/swift-concurrency-6-2/SKILL.md +216 -0
  443. package/templates/ecc/skills/swift-protocol-di-testing/SKILL.md +1 -0
  444. package/templates/ecc/skills/swiftui-patterns/SKILL.md +259 -0
  445. package/templates/ecc/skills/tdd-workflow/SKILL.md +1 -0
  446. package/templates/ecc/skills/verification-loop/SKILL.md +1 -0
  447. package/templates/ecc/skills/visa-doc-translate/README.md +86 -0
  448. package/templates/ecc/skills/visa-doc-translate/SKILL.md +117 -0
  449. package/templates/ext-skills/pinchtab/SKILL.md +89 -486
  450. package/templates/ext-skills/pinchtab/TRUST.md +69 -0
  451. package/templates/ext-skills/pinchtab/references/api.md +297 -0
  452. package/templates/ext-skills/pinchtab/references/env.md +45 -0
  453. package/templates/ext-skills/pinchtab/references/profiles.md +107 -0
  454. package/templates/mcp/claude-code/.mcp.json +35 -35
  455. package/templates/mcp/trae/mcp.json +35 -35
  456. package/templates/plugins/claude-code-setup/.claude-plugin/plugin.json +9 -0
  457. package/templates/plugins/claude-code-setup/LICENSE +202 -0
  458. package/templates/plugins/claude-code-setup/README.md +29 -0
  459. package/templates/plugins/claude-code-setup/automation-recommender-example.png +0 -0
  460. package/templates/plugins/claude-code-setup/skills/claude-automation-recommender/SKILL.md +288 -0
  461. package/templates/plugins/claude-code-setup/skills/claude-automation-recommender/references/hooks-patterns.md +226 -0
  462. package/templates/plugins/claude-code-setup/skills/claude-automation-recommender/references/mcp-servers.md +263 -0
  463. package/templates/plugins/claude-code-setup/skills/claude-automation-recommender/references/plugins-reference.md +98 -0
  464. package/templates/plugins/claude-code-setup/skills/claude-automation-recommender/references/skills-reference.md +408 -0
  465. package/templates/plugins/claude-code-setup/skills/claude-automation-recommender/references/subagent-templates.md +181 -0
  466. package/templates/plugins/claude-md-management/.claude-plugin/plugin.json +9 -0
  467. package/templates/plugins/claude-md-management/LICENSE +202 -0
  468. package/templates/plugins/claude-md-management/README.md +40 -0
  469. package/templates/plugins/claude-md-management/claude-md-improver-example.png +0 -0
  470. package/templates/plugins/claude-md-management/commands/revise-claude-md.md +54 -0
  471. package/templates/plugins/claude-md-management/revise-claude-md-example.png +0 -0
  472. package/templates/plugins/claude-md-management/skills/claude-md-improver/SKILL.md +179 -0
  473. package/templates/plugins/claude-md-management/skills/claude-md-improver/references/quality-criteria.md +109 -0
  474. package/templates/plugins/claude-md-management/skills/claude-md-improver/references/templates.md +253 -0
  475. package/templates/plugins/claude-md-management/skills/claude-md-improver/references/update-guidelines.md +150 -0
  476. package/templates/plugins/code-simplifier/.claude-plugin/plugin.json +9 -0
  477. package/templates/plugins/code-simplifier/LICENSE +202 -0
  478. package/templates/plugins/code-simplifier/agents/code-simplifier.md +52 -0
  479. package/templates/plugins/commit-commands/.claude-plugin/plugin.json +9 -0
  480. package/templates/plugins/commit-commands/LICENSE +202 -0
  481. package/templates/plugins/commit-commands/README.md +225 -0
  482. package/templates/plugins/commit-commands/commands/clean_gone.md +53 -0
  483. package/templates/plugins/commit-commands/commands/commit-push-pr.md +20 -0
  484. package/templates/plugins/commit-commands/commands/commit.md +17 -0
  485. package/templates/trae-bmad/rules/bmad-agent-bmad-master.md +15 -15
  486. package/templates/trae-bmad/rules/bmad-agent-bmm-analyst.md +15 -15
  487. package/templates/trae-bmad/rules/bmad-agent-bmm-architect.md +15 -15
  488. package/templates/trae-bmad/rules/bmad-agent-bmm-dev.md +15 -15
  489. package/templates/trae-bmad/rules/bmad-agent-bmm-pm.md +15 -15
  490. package/templates/trae-bmad/rules/bmad-agent-bmm-qa.md +15 -15
  491. package/templates/trae-bmad/rules/bmad-agent-bmm-quick-flow-solo-dev.md +15 -15
  492. package/templates/trae-bmad/rules/bmad-agent-bmm-sm.md +15 -15
  493. package/templates/trae-bmad/rules/bmad-agent-bmm-tech-writer.md +15 -15
  494. package/templates/trae-bmad/rules/bmad-agent-bmm-ux-designer.md +15 -15
  495. package/templates/trae-bmad/rules/bmad-agent-tea-tea.md +15 -15
  496. package/templates/trae-bmad/rules/bmad-bmm-check-implementation-readiness.md +6 -6
  497. package/templates/trae-bmad/rules/bmad-bmm-code-review.md +14 -14
  498. package/templates/trae-bmad/rules/bmad-bmm-correct-course.md +14 -14
  499. package/templates/trae-bmad/rules/bmad-bmm-create-architecture.md +6 -6
  500. package/templates/trae-bmad/rules/bmad-bmm-create-epics-and-stories.md +6 -6
  501. package/templates/trae-bmad/rules/bmad-bmm-create-prd.md +6 -6
  502. package/templates/trae-bmad/rules/bmad-bmm-create-product-brief.md +6 -6
  503. package/templates/trae-bmad/rules/bmad-bmm-create-story.md +14 -14
  504. package/templates/trae-bmad/rules/bmad-bmm-create-ux-design.md +6 -6
  505. package/templates/trae-bmad/rules/bmad-bmm-dev-story.md +14 -14
  506. package/templates/trae-bmad/rules/bmad-bmm-document-project.md +14 -14
  507. package/templates/trae-bmad/rules/bmad-bmm-domain-research.md +6 -6
  508. package/templates/trae-bmad/rules/bmad-bmm-edit-prd.md +6 -6
  509. package/templates/trae-bmad/rules/bmad-bmm-generate-project-context.md +6 -6
  510. package/templates/trae-bmad/rules/bmad-bmm-market-research.md +6 -6
  511. package/templates/trae-bmad/rules/bmad-bmm-qa-automate.md +15 -15
  512. package/templates/trae-bmad/rules/bmad-bmm-qa-generate-e2e-tests.md +14 -14
  513. package/templates/trae-bmad/rules/bmad-bmm-quick-dev.md +6 -6
  514. package/templates/trae-bmad/rules/bmad-bmm-quick-spec.md +6 -6
  515. package/templates/trae-bmad/rules/bmad-bmm-retrospective.md +14 -14
  516. package/templates/trae-bmad/rules/bmad-bmm-sprint-planning.md +14 -14
  517. package/templates/trae-bmad/rules/bmad-bmm-sprint-status.md +14 -14
  518. package/templates/trae-bmad/rules/bmad-bmm-technical-research.md +6 -6
  519. package/templates/trae-bmad/rules/bmad-bmm-validate-prd.md +6 -6
  520. package/templates/trae-bmad/rules/bmad-brainstorming.md +6 -6
  521. package/templates/trae-bmad/rules/bmad-editorial-review-prose.md +10 -10
  522. package/templates/trae-bmad/rules/bmad-editorial-review-structure.md +10 -10
  523. package/templates/trae-bmad/rules/bmad-help.md +10 -10
  524. package/templates/trae-bmad/rules/bmad-index-docs.md +10 -10
  525. package/templates/trae-bmad/rules/bmad-party-mode.md +6 -6
  526. package/templates/trae-bmad/rules/bmad-review-adversarial-general.md +10 -10
  527. package/templates/trae-bmad/rules/bmad-review-edge-case-hunter.md +10 -0
  528. package/templates/trae-bmad/rules/bmad-shard-doc.md +10 -10
  529. package/templates/trae-bmad/rules/bmad-tea-teach-me-testing.md +6 -6
  530. package/templates/trae-bmad/rules/bmad-tea-testarch-atdd.md +14 -14
  531. package/templates/trae-bmad/rules/bmad-tea-testarch-automate.md +14 -14
  532. package/templates/trae-bmad/rules/bmad-tea-testarch-ci.md +14 -14
  533. package/templates/trae-bmad/rules/bmad-tea-testarch-framework.md +14 -14
  534. package/templates/trae-bmad/rules/bmad-tea-testarch-nfr.md +14 -14
  535. package/templates/trae-bmad/rules/bmad-tea-testarch-test-design.md +14 -14
  536. package/templates/trae-bmad/rules/bmad-tea-testarch-test-review.md +14 -14
  537. package/templates/trae-bmad/rules/bmad-tea-testarch-trace.md +14 -14
@@ -1,232 +1,278 @@
1
- /**
2
- * Plugin installer — handles distributing plugins to Claude Code and Trae.
3
- *
4
- * Claude Code: writes plugin IDs into `.claude/settings.json` enabledPlugins.
5
- * Trae: extracts skills/commands/agents from plugin templates into `.trae/`.
6
- */
7
-
8
- import path from 'node:path'
9
- import fse from 'fs-extra'
10
- import { listFiles, copyWithInterpolation, interpolate } from '../utils/fs.js'
11
- import { convertAgentForTrae, convertCommandForTrae } from '../adapters/trae-adapter.js'
12
-
13
- // ─── Plugin Resolution ──────────────────────────────────────────────────────
14
-
15
- /**
16
- * Get plugin IDs marked as default in the registry.
17
- *
18
- * @param {object} registry - Registry object with plugins section
19
- * @returns {string[]} Default plugin IDs
20
- */
21
- export function getDefaultPlugins(registry) {
22
- const plugins = registry.plugins || {}
23
- return Object.entries(plugins)
24
- .filter(([, def]) => def.default)
25
- .map(([id]) => id)
26
- }
27
-
28
- /**
29
- * Resolve requested plugin IDs to plugin definitions with constructed template paths.
30
- * Note: Template directory existence is validated later by installPlugins().
31
- *
32
- * @param {object} registry - Registry object
33
- * @param {string[]} pluginIds - Requested plugin IDs
34
- * @param {string} templateBase - Absolute path to cckit templates/ directory
35
- * @param {object} logger - Logger instance
36
- * @returns {{ found: Array<{ id: string, def: object, templateDir: string }>, skipped: Array<{ id: string, reason: string }> }}
37
- */
38
- export function resolvePlugins(registry, pluginIds, templateBase, logger) {
39
- const plugins = registry.plugins || {}
40
- const found = []
41
- const skipped = []
42
-
43
- for (const id of pluginIds) {
44
- const def = plugins[id]
45
- if (!def) {
46
- logger.warn(`Plugin "${id}" not found in registry, skipping`)
47
- skipped.push({ id, reason: 'not in registry' })
48
- continue
49
- }
50
-
51
- const templateDir = path.join(templateBase, 'plugins', id)
52
- found.push({ id, def, templateDir })
53
- }
54
-
55
- return { found, skipped }
56
- }
57
-
58
- // ─── Claude Code Installation ───────────────────────────────────────────────
59
-
60
- /**
61
- * Install plugins for Claude Code by writing enabledPlugins to settings.json.
62
- *
63
- * @param {Array<{ id: string, def: object }>} plugins - Resolved plugins
64
- * @param {string} targetDir - Project root directory
65
- * @param {object} logger - Logger instance
66
- * @returns {Promise<string[]>} List of enabled plugin keys
67
- */
68
- export async function installForClaudeCode(plugins, targetDir, logger) {
69
- const settingsPath = path.join(targetDir, '.claude', 'settings.json')
70
- let existing = {}
71
-
72
- try {
73
- if (await fse.pathExists(settingsPath)) {
74
- const raw = await fse.readFile(settingsPath, 'utf8')
75
- existing = JSON.parse(raw)
76
- }
77
- } catch (err) {
78
- logger.warn(`settings.json parse error, backing up and recreating: ${err.message}`)
79
- const backupPath = `${settingsPath}.bak.${Date.now()}`
80
- await fse.copy(settingsPath, backupPath)
81
- existing = {}
82
- }
83
-
84
- const newPlugins = {}
85
- for (const { id, def } of plugins) {
86
- const key = `${id}@${def.marketplace}`
87
- newPlugins[key] = true
88
- }
89
-
90
- const merged = {
91
- ...existing,
92
- enabledPlugins: {
93
- ...(existing.enabledPlugins || {}),
94
- ...newPlugins,
95
- },
96
- }
97
-
98
- await fse.ensureDir(path.dirname(settingsPath))
99
- await fse.writeFile(settingsPath, JSON.stringify(merged, null, 2) + '\n', 'utf8')
100
-
101
- const enabledKeys = Object.keys(newPlugins)
102
- logger.debug(`Claude Code: enabled ${enabledKeys.length} plugins in settings.json`)
103
- return enabledKeys
104
- }
105
-
106
- // ─── Trae Installation ──────────────────────────────────────────────────────
107
-
108
- /**
109
- * Install a category of plugin markdown files with adapter transformation.
110
- *
111
- * @param {string} srcDir - Source directory containing .md files
112
- * @param {string} destDir - Destination directory
113
- * @param {Function} adapter - Content transform function (content, filename) => content
114
- * @param {object} variables - Interpolation variables
115
- * @returns {Promise<number>} Number of files installed
116
- */
117
- async function installPluginCategory(srcDir, destDir, adapter, variables) {
118
- if (!await fse.pathExists(srcDir)) return 0
119
-
120
- await fse.ensureDir(destDir)
121
- const files = await listFiles(srcDir)
122
- let count = 0
123
-
124
- for (const relPath of files) {
125
- if (!relPath.endsWith('.md')) continue
126
- const srcFile = path.join(srcDir, relPath)
127
- let content = await fse.readFile(srcFile, 'utf8')
128
- content = interpolate(content, variables)
129
-
130
- const destName = `${path.basename(relPath, '.md')}.md`
131
- content = adapter(content, destName)
132
- await fse.writeFile(path.join(destDir, destName), content, 'utf8')
133
- count++
134
- }
135
-
136
- return count
137
- }
138
-
139
- /**
140
- * Install plugins for Trae by extracting skills/commands/agents.
141
- *
142
- * @param {Array<{ id: string, def: object, templateDir: string }>} plugins - Resolved plugins with template paths
143
- * @param {string} targetDir - Project root directory
144
- * @param {object} variables - Interpolation variables
145
- * @param {object} logger - Logger instance
146
- * @returns {Promise<{ files: number, details: Array<{ id: string, skills: number, commands: number, agents: number }> }>}
147
- */
148
- export async function installForTrae(plugins, targetDir, variables, logger) {
149
- let totalFiles = 0
150
- const details = []
151
-
152
- for (const { id, templateDir } of plugins) {
153
- try {
154
- const counts = { skills: 0, commands: 0, agents: 0 }
155
-
156
- // Skills .trae/skills/<pluginId>/ (direct copy + interpolation)
157
- const skillsSrc = path.join(templateDir, 'skills')
158
- if (await fse.pathExists(skillsSrc)) {
159
- const skillsDest = path.join(targetDir, '.trae', 'skills', id)
160
- counts.skills = await copyWithInterpolation(skillsSrc, skillsDest, variables)
161
- totalFiles += counts.skills
162
- }
163
-
164
- // Commands → .trae/rules/<pluginId>/commands/<name>.md (with adapter)
165
- counts.commands = await installPluginCategory(
166
- path.join(templateDir, 'commands'),
167
- path.join(targetDir, '.trae', 'rules', id, 'commands'),
168
- convertCommandForTrae,
169
- variables
170
- )
171
- totalFiles += counts.commands
172
-
173
- // Agents → .trae/rules/<pluginId>/agents/<name>.md (with adapter)
174
- counts.agents = await installPluginCategory(
175
- path.join(templateDir, 'agents'),
176
- path.join(targetDir, '.trae', 'rules', id, 'agents'),
177
- convertAgentForTrae,
178
- variables
179
- )
180
- totalFiles += counts.agents
181
-
182
- details.push({ id, ...counts })
183
- logger.debug(` Trae plugin "${id}": ${counts.skills} skills, ${counts.commands} commands, ${counts.agents} agents`)
184
- } catch (err) {
185
- throw new Error(`Failed to install Trae content for plugin "${id}": ${err.message}`)
186
- }
187
- }
188
-
189
- return { files: totalFiles, details }
190
- }
191
-
192
- // ─── Main Entry ─────────────────────────────────────────────────────────────
193
-
194
- /**
195
- * Install plugins for all selected IDEs.
196
- *
197
- * @param {{
198
- * plugins: Array<{ id: string, def: object, templateDir: string }>,
199
- * targetDir: string,
200
- * ides: string[],
201
- * variables: object,
202
- * logger: object
203
- * }} opts
204
- * @returns {Promise<{ claudeCode: string[], trae: object, installed: string[] }>}
205
- */
206
- export async function installPlugins({ plugins, targetDir, ides, variables, logger }) {
207
- const result = { claudeCode: [], trae: { files: 0, details: [] }, installed: [] }
208
-
209
- // Claude Code: write ALL plugin IDs to settings.json (no templates needed)
210
- if (ides.includes('claude-code') && plugins.length > 0) {
211
- result.claudeCode = await installForClaudeCode(plugins, targetDir, logger)
212
- }
213
-
214
- // Trae: extract content from plugins that have templates
215
- const available = []
216
- for (const p of plugins) {
217
- if (await fse.pathExists(p.templateDir)) {
218
- available.push(p)
219
- } else {
220
- logger.warn(`Plugin "${p.id}" template not found at ${p.templateDir}, skipping Trae extraction`)
221
- }
222
- }
223
-
224
- if (ides.includes('trae') && available.length > 0) {
225
- result.trae = await installForTrae(available, targetDir, variables, logger)
226
- }
227
-
228
- // Track all plugins as installed (settings.json counts even without templates)
229
- result.installed = plugins.map(p => p.id)
230
- return result
231
- }
232
-
1
+ /**
2
+ * Plugin installer — handles distributing plugins to Claude Code and Trae.
3
+ *
4
+ * Claude Code: writes plugin IDs into `.claude/settings.json` enabledPlugins.
5
+ * Trae: extracts skills/commands/agents from plugin templates into `.trae/`.
6
+ */
7
+
8
+ import path from 'node:path'
9
+ import fse from 'fs-extra'
10
+ import { listFiles, copyWithInterpolation, interpolate } from '../utils/fs.js'
11
+ import { convertAgentForTrae, convertCommandForTrae } from '../adapters/trae-adapter.js'
12
+
13
+ // ─── Claude Code Base Settings ──────────────────────────────────────────────
14
+
15
+ /**
16
+ * Default environment overrides written to `.claude/settings.json`.
17
+ * These disable telemetry, error reporting, and the /bug command.
18
+ */
19
+ const CLAUDE_CODE_ENV_DEFAULTS = {
20
+ DISABLE_BUG_COMMAND: '1',
21
+ DISABLE_ERROR_REPORTING: '1',
22
+ DISABLE_TELEMETRY: '1',
23
+ MCP_TIMEOUT: '60000',
24
+ MAX_THINKING_TOKENS: '31999',
25
+ CLAUDE_CODE_MAX_OUTPUT_TOKENS: '64000',
26
+ }
27
+
28
+ // ─── Plugin Resolution ──────────────────────────────────────────────────────
29
+
30
+ /**
31
+ * Get plugin IDs marked as default in the registry.
32
+ *
33
+ * @param {object} registry - Registry object with plugins section
34
+ * @returns {string[]} Default plugin IDs
35
+ */
36
+ export function getDefaultPlugins(registry) {
37
+ const plugins = registry.plugins || {}
38
+ return Object.entries(plugins)
39
+ .filter(([, def]) => def.default)
40
+ .map(([id]) => id)
41
+ }
42
+
43
+ /**
44
+ * Resolve requested plugin IDs to plugin definitions with constructed template paths.
45
+ * Note: Template directory existence is validated later by installPlugins().
46
+ *
47
+ * @param {object} registry - Registry object
48
+ * @param {string[]} pluginIds - Requested plugin IDs
49
+ * @param {string} templateBase - Absolute path to cckit templates/ directory
50
+ * @param {object} logger - Logger instance
51
+ * @returns {{ found: Array<{ id: string, def: object, templateDir: string }>, skipped: Array<{ id: string, reason: string }> }}
52
+ */
53
+ export function resolvePlugins(registry, pluginIds, templateBase, logger) {
54
+ const plugins = registry.plugins || {}
55
+ const found = []
56
+ const skipped = []
57
+
58
+ for (const id of pluginIds) {
59
+ const def = plugins[id]
60
+ if (!def) {
61
+ logger.warn(`Plugin "${id}" not found in registry, skipping`)
62
+ skipped.push({ id, reason: 'not in registry' })
63
+ continue
64
+ }
65
+
66
+ const templateDir = path.join(templateBase, 'plugins', id)
67
+ found.push({ id, def, templateDir })
68
+ }
69
+
70
+ return { found, skipped }
71
+ }
72
+
73
+ // ─── Claude Code Installation ───────────────────────────────────────────────
74
+
75
+ /**
76
+ * Install plugins for Claude Code by writing enabledPlugins and
77
+ * extraKnownMarketplaces (for non-built-in marketplaces) to settings.json.
78
+ *
79
+ * Plugins with a `marketplaceSource` field in their registry definition will
80
+ * have their marketplace source added to `extraKnownMarketplaces`, enabling
81
+ * Claude Code to auto-prompt users for marketplace trust and plugin installation.
82
+ *
83
+ * @param {Array<{ id: string, def: object }>} plugins - Resolved plugins
84
+ * @param {string} targetDir - Project root directory
85
+ * @param {object} logger - Logger instance
86
+ * @returns {Promise<string[]>} List of enabled plugin keys
87
+ */
88
+ export async function installForClaudeCode(plugins, targetDir, logger) {
89
+ const settingsPath = path.join(targetDir, '.claude', 'settings.json')
90
+ let existing = {}
91
+
92
+ try {
93
+ if (await fse.pathExists(settingsPath)) {
94
+ const raw = await fse.readFile(settingsPath, 'utf8')
95
+ existing = JSON.parse(raw)
96
+ }
97
+ } catch (err) {
98
+ logger.warn(`settings.json parse error, backing up and recreating: ${err.message}`)
99
+ const backupPath = `${settingsPath}.bak.${Date.now()}`
100
+ await fse.copy(settingsPath, backupPath)
101
+ existing = {}
102
+ }
103
+
104
+ const newPlugins = {}
105
+ const newMarketplaces = {}
106
+
107
+ for (const { id, def } of plugins) {
108
+ const key = `${id}@${def.marketplace}`
109
+ newPlugins[key] = true
110
+
111
+ // Collect non-built-in marketplace sources (dedupe by marketplace name)
112
+ if (def.marketplaceSource && !newMarketplaces[def.marketplace]) {
113
+ newMarketplaces[def.marketplace] = { source: { ...def.marketplaceSource } }
114
+ }
115
+ }
116
+
117
+ const merged = {
118
+ ...existing,
119
+ env: {
120
+ ...(existing.env || {}),
121
+ ...CLAUDE_CODE_ENV_DEFAULTS,
122
+ },
123
+ enabledPlugins: {
124
+ ...(existing.enabledPlugins || {}),
125
+ ...newPlugins,
126
+ },
127
+ }
128
+
129
+ const enabledKeys = Object.keys(newPlugins)
130
+ const marketplaceNames = Object.keys(newMarketplaces)
131
+
132
+ // Only write extraKnownMarketplaces when there are non-built-in marketplaces
133
+ if (marketplaceNames.length > 0) {
134
+ merged.extraKnownMarketplaces = {
135
+ ...(existing.extraKnownMarketplaces || {}),
136
+ ...newMarketplaces,
137
+ }
138
+ }
139
+
140
+ await fse.ensureDir(path.dirname(settingsPath))
141
+ await fse.writeFile(settingsPath, JSON.stringify(merged, null, 2) + '\n', 'utf8')
142
+
143
+ logger.debug(`Claude Code: enabled ${enabledKeys.length} plugins in settings.json`)
144
+ if (marketplaceNames.length > 0) {
145
+ logger.debug(`Claude Code: registered ${marketplaceNames.length} extra marketplace(s): ${marketplaceNames.join(', ')}`)
146
+ }
147
+ return enabledKeys
148
+ }
149
+
150
+ // ─── Trae Installation ──────────────────────────────────────────────────────
151
+
152
+ /**
153
+ * Install a category of plugin markdown files with adapter transformation.
154
+ *
155
+ * @param {string} srcDir - Source directory containing .md files
156
+ * @param {string} destDir - Destination directory
157
+ * @param {Function} adapter - Content transform function (content, filename) => content
158
+ * @param {object} variables - Interpolation variables
159
+ * @returns {Promise<number>} Number of files installed
160
+ */
161
+ async function installPluginCategory(srcDir, destDir, adapter, variables) {
162
+ if (!await fse.pathExists(srcDir)) return 0
163
+
164
+ await fse.ensureDir(destDir)
165
+ const files = await listFiles(srcDir)
166
+ let count = 0
167
+
168
+ for (const relPath of files) {
169
+ if (!relPath.endsWith('.md')) continue
170
+ const srcFile = path.join(srcDir, relPath)
171
+ let content = await fse.readFile(srcFile, 'utf8')
172
+ content = interpolate(content, variables)
173
+
174
+ const destName = `${path.basename(relPath, '.md')}.md`
175
+ content = adapter(content, destName)
176
+ await fse.writeFile(path.join(destDir, destName), content, 'utf8')
177
+ count++
178
+ }
179
+
180
+ return count
181
+ }
182
+
183
+ /**
184
+ * Install plugins for Trae by extracting skills/commands/agents.
185
+ *
186
+ * @param {Array<{ id: string, def: object, templateDir: string }>} plugins - Resolved plugins with template paths
187
+ * @param {string} targetDir - Project root directory
188
+ * @param {object} variables - Interpolation variables
189
+ * @param {object} logger - Logger instance
190
+ * @returns {Promise<{ files: number, details: Array<{ id: string, skills: number, commands: number, agents: number }> }>}
191
+ */
192
+ export async function installForTrae(plugins, targetDir, variables, logger) {
193
+ let totalFiles = 0
194
+ const details = []
195
+
196
+ for (const { id, templateDir } of plugins) {
197
+ try {
198
+ const counts = { skills: 0, commands: 0, agents: 0 }
199
+
200
+ // Skills → .trae/skills/<pluginId>/ (direct copy + interpolation)
201
+ const skillsSrc = path.join(templateDir, 'skills')
202
+ if (await fse.pathExists(skillsSrc)) {
203
+ const skillsDest = path.join(targetDir, '.trae', 'skills', id)
204
+ counts.skills = await copyWithInterpolation(skillsSrc, skillsDest, variables)
205
+ totalFiles += counts.skills
206
+ }
207
+
208
+ // Commands → .trae/rules/<pluginId>/commands/<name>.md (with adapter)
209
+ counts.commands = await installPluginCategory(
210
+ path.join(templateDir, 'commands'),
211
+ path.join(targetDir, '.trae', 'rules', id, 'commands'),
212
+ convertCommandForTrae,
213
+ variables
214
+ )
215
+ totalFiles += counts.commands
216
+
217
+ // Agents .trae/rules/<pluginId>/agents/<name>.md (with adapter)
218
+ counts.agents = await installPluginCategory(
219
+ path.join(templateDir, 'agents'),
220
+ path.join(targetDir, '.trae', 'rules', id, 'agents'),
221
+ convertAgentForTrae,
222
+ variables
223
+ )
224
+ totalFiles += counts.agents
225
+
226
+ details.push({ id, ...counts })
227
+ logger.debug(` Trae plugin "${id}": ${counts.skills} skills, ${counts.commands} commands, ${counts.agents} agents`)
228
+ } catch (err) {
229
+ throw new Error(`Failed to install Trae content for plugin "${id}": ${err.message}`)
230
+ }
231
+ }
232
+
233
+ return { files: totalFiles, details }
234
+ }
235
+
236
+ // ─── Main Entry ─────────────────────────────────────────────────────────────
237
+
238
+ /**
239
+ * Install plugins for all selected IDEs.
240
+ *
241
+ * @param {{
242
+ * plugins: Array<{ id: string, def: object, templateDir: string }>,
243
+ * targetDir: string,
244
+ * ides: string[],
245
+ * variables: object,
246
+ * logger: object
247
+ * }} opts
248
+ * @returns {Promise<{ claudeCode: string[], trae: object, installed: string[] }>}
249
+ */
250
+ export async function installPlugins({ plugins, targetDir, ides, variables, logger }) {
251
+ const result = { claudeCode: [], trae: { files: 0, details: [] }, installed: [] }
252
+
253
+ // Claude Code: write settings.json (env defaults + plugin IDs + marketplace sources)
254
+ if (ides.includes('claude-code')) {
255
+ result.claudeCode = await installForClaudeCode(plugins, targetDir, logger)
256
+ }
257
+
258
+ // Trae: extract content from plugins that have templates
259
+ if (ides.includes('trae') && plugins.length > 0) {
260
+ const available = []
261
+ for (const p of plugins) {
262
+ if (await fse.pathExists(p.templateDir)) {
263
+ available.push(p)
264
+ } else {
265
+ logger.warn(`Plugin "${p.id}" template not found at ${p.templateDir}, skipping Trae extraction`)
266
+ }
267
+ }
268
+
269
+ if (available.length > 0) {
270
+ result.trae = await installForTrae(available, targetDir, variables, logger)
271
+ }
272
+ }
273
+
274
+ // Track all plugins as installed (settings.json counts even without templates)
275
+ result.installed = plugins.map(p => p.id)
276
+ return result
277
+ }
278
+