@cregis-dev/cckit 0.2.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 (710) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +253 -0
  3. package/bin/cckit.js +3 -0
  4. package/package.json +52 -0
  5. package/registry.json +194 -0
  6. package/src/adapters/trae-adapter.js +90 -0
  7. package/src/cli.js +88 -0
  8. package/src/commands/add.js +192 -0
  9. package/src/commands/init.js +333 -0
  10. package/src/commands/status.js +62 -0
  11. package/src/commands/sync.js +325 -0
  12. package/src/commands/update.js +425 -0
  13. package/src/core/config.js +82 -0
  14. package/src/core/differ.js +57 -0
  15. package/src/core/installer.js +97 -0
  16. package/src/core/plugin-installer.js +237 -0
  17. package/src/core/registry.js +75 -0
  18. package/src/core/templatize.js +42 -0
  19. package/src/core/upstream.js +357 -0
  20. package/src/utils/fs.js +50 -0
  21. package/src/utils/logger.js +16 -0
  22. package/templates/bmad/_config/agent-manifest.csv +12 -0
  23. package/templates/bmad/_config/agents/bmm-analyst.customize.yaml +41 -0
  24. package/templates/bmad/_config/agents/bmm-architect.customize.yaml +41 -0
  25. package/templates/bmad/_config/agents/bmm-dev.customize.yaml +41 -0
  26. package/templates/bmad/_config/agents/bmm-pm.customize.yaml +41 -0
  27. package/templates/bmad/_config/agents/bmm-qa.customize.yaml +41 -0
  28. package/templates/bmad/_config/agents/bmm-quick-flow-solo-dev.customize.yaml +41 -0
  29. package/templates/bmad/_config/agents/bmm-sm.customize.yaml +41 -0
  30. package/templates/bmad/_config/agents/bmm-tech-writer.customize.yaml +41 -0
  31. package/templates/bmad/_config/agents/bmm-ux-designer.customize.yaml +41 -0
  32. package/templates/bmad/_config/agents/core-bmad-master.customize.yaml +41 -0
  33. package/templates/bmad/_config/agents/tea-tea.customize.yaml +41 -0
  34. package/templates/bmad/_config/bmad-help.csv +48 -0
  35. package/templates/bmad/_config/files-manifest.csv +431 -0
  36. package/templates/bmad/_config/ides/claude-code.yaml +5 -0
  37. package/templates/bmad/_config/ides/opencode.yaml +5 -0
  38. package/templates/bmad/_config/ides/trae.yaml +5 -0
  39. package/templates/bmad/_config/task-manifest.csv +7 -0
  40. package/templates/bmad/_config/tool-manifest.csv +1 -0
  41. package/templates/bmad/_config/workflow-manifest.csv +35 -0
  42. package/templates/bmad/bmm/agents/analyst.md +78 -0
  43. package/templates/bmad/bmm/agents/architect.md +58 -0
  44. package/templates/bmad/bmm/agents/dev.md +69 -0
  45. package/templates/bmad/bmm/agents/pm.md +72 -0
  46. package/templates/bmad/bmm/agents/qa.md +92 -0
  47. package/templates/bmad/bmm/agents/quick-flow-solo-dev.md +69 -0
  48. package/templates/bmad/bmm/agents/sm.md +70 -0
  49. package/templates/bmad/bmm/agents/tech-writer/tech-writer.md +70 -0
  50. package/templates/bmad/bmm/agents/ux-designer.md +57 -0
  51. package/templates/bmad/bmm/config.yaml +15 -0
  52. package/templates/bmad/bmm/data/project-context-template.md +26 -0
  53. package/templates/bmad/bmm/module-help.csv +31 -0
  54. package/templates/bmad/bmm/teams/default-party.csv +20 -0
  55. package/templates/bmad/bmm/teams/team-fullstack.yaml +12 -0
  56. package/templates/bmad/bmm/workflows/1-analysis/create-product-brief/product-brief.template.md +10 -0
  57. package/templates/bmad/bmm/workflows/1-analysis/create-product-brief/steps/step-01-init.md +177 -0
  58. package/templates/bmad/bmm/workflows/1-analysis/create-product-brief/steps/step-01b-continue.md +161 -0
  59. package/templates/bmad/bmm/workflows/1-analysis/create-product-brief/steps/step-02-vision.md +199 -0
  60. package/templates/bmad/bmm/workflows/1-analysis/create-product-brief/steps/step-03-users.md +202 -0
  61. package/templates/bmad/bmm/workflows/1-analysis/create-product-brief/steps/step-04-metrics.md +205 -0
  62. package/templates/bmad/bmm/workflows/1-analysis/create-product-brief/steps/step-05-scope.md +219 -0
  63. package/templates/bmad/bmm/workflows/1-analysis/create-product-brief/steps/step-06-complete.md +162 -0
  64. package/templates/bmad/bmm/workflows/1-analysis/create-product-brief/workflow.md +57 -0
  65. package/templates/bmad/bmm/workflows/1-analysis/research/domain-steps/step-01-init.md +137 -0
  66. package/templates/bmad/bmm/workflows/1-analysis/research/domain-steps/step-02-domain-analysis.md +229 -0
  67. package/templates/bmad/bmm/workflows/1-analysis/research/domain-steps/step-03-competitive-landscape.md +238 -0
  68. package/templates/bmad/bmm/workflows/1-analysis/research/domain-steps/step-04-regulatory-focus.md +206 -0
  69. package/templates/bmad/bmm/workflows/1-analysis/research/domain-steps/step-05-technical-trends.md +234 -0
  70. package/templates/bmad/bmm/workflows/1-analysis/research/domain-steps/step-06-research-synthesis.md +444 -0
  71. package/templates/bmad/bmm/workflows/1-analysis/research/market-steps/step-01-init.md +182 -0
  72. package/templates/bmad/bmm/workflows/1-analysis/research/market-steps/step-02-customer-behavior.md +237 -0
  73. package/templates/bmad/bmm/workflows/1-analysis/research/market-steps/step-03-customer-pain-points.md +249 -0
  74. package/templates/bmad/bmm/workflows/1-analysis/research/market-steps/step-04-customer-decisions.md +259 -0
  75. package/templates/bmad/bmm/workflows/1-analysis/research/market-steps/step-05-competitive-analysis.md +177 -0
  76. package/templates/bmad/bmm/workflows/1-analysis/research/market-steps/step-06-research-completion.md +476 -0
  77. package/templates/bmad/bmm/workflows/1-analysis/research/research.template.md +29 -0
  78. package/templates/bmad/bmm/workflows/1-analysis/research/technical-steps/step-01-init.md +137 -0
  79. package/templates/bmad/bmm/workflows/1-analysis/research/technical-steps/step-02-technical-overview.md +239 -0
  80. package/templates/bmad/bmm/workflows/1-analysis/research/technical-steps/step-03-integration-patterns.md +248 -0
  81. package/templates/bmad/bmm/workflows/1-analysis/research/technical-steps/step-04-architectural-patterns.md +202 -0
  82. package/templates/bmad/bmm/workflows/1-analysis/research/technical-steps/step-05-implementation-research.md +233 -0
  83. package/templates/bmad/bmm/workflows/1-analysis/research/technical-steps/step-06-research-synthesis.md +487 -0
  84. package/templates/bmad/bmm/workflows/1-analysis/research/workflow-domain-research.md +54 -0
  85. package/templates/bmad/bmm/workflows/1-analysis/research/workflow-market-research.md +54 -0
  86. package/templates/bmad/bmm/workflows/1-analysis/research/workflow-technical-research.md +54 -0
  87. package/templates/bmad/bmm/workflows/2-plan-workflows/create-prd/data/domain-complexity.csv +15 -0
  88. package/templates/bmad/bmm/workflows/2-plan-workflows/create-prd/data/prd-purpose.md +197 -0
  89. package/templates/bmad/bmm/workflows/2-plan-workflows/create-prd/data/project-types.csv +11 -0
  90. package/templates/bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-01-init.md +191 -0
  91. package/templates/bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-01b-continue.md +152 -0
  92. package/templates/bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-02-discovery.md +224 -0
  93. package/templates/bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-02b-vision.md +154 -0
  94. package/templates/bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-02c-executive-summary.md +170 -0
  95. package/templates/bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-03-success.md +226 -0
  96. package/templates/bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-04-journeys.md +213 -0
  97. package/templates/bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-05-domain.md +207 -0
  98. package/templates/bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-06-innovation.md +226 -0
  99. package/templates/bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-07-project-type.md +237 -0
  100. package/templates/bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-08-scoping.md +228 -0
  101. package/templates/bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-09-functional.md +231 -0
  102. package/templates/bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-10-nonfunctional.md +242 -0
  103. package/templates/bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-11-polish.md +217 -0
  104. package/templates/bmad/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-12-complete.md +124 -0
  105. package/templates/bmad/bmm/workflows/2-plan-workflows/create-prd/steps-e/step-e-01-discovery.md +247 -0
  106. package/templates/bmad/bmm/workflows/2-plan-workflows/create-prd/steps-e/step-e-01b-legacy-conversion.md +208 -0
  107. package/templates/bmad/bmm/workflows/2-plan-workflows/create-prd/steps-e/step-e-02-review.md +249 -0
  108. package/templates/bmad/bmm/workflows/2-plan-workflows/create-prd/steps-e/step-e-03-edit.md +253 -0
  109. package/templates/bmad/bmm/workflows/2-plan-workflows/create-prd/steps-e/step-e-04-complete.md +168 -0
  110. package/templates/bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-01-discovery.md +226 -0
  111. package/templates/bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-02-format-detection.md +191 -0
  112. package/templates/bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-02b-parity-check.md +209 -0
  113. package/templates/bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-03-density-validation.md +174 -0
  114. package/templates/bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-04-brief-coverage-validation.md +214 -0
  115. package/templates/bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-05-measurability-validation.md +228 -0
  116. package/templates/bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-06-traceability-validation.md +217 -0
  117. package/templates/bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-07-implementation-leakage-validation.md +205 -0
  118. package/templates/bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-08-domain-compliance-validation.md +243 -0
  119. package/templates/bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-09-project-type-validation.md +263 -0
  120. package/templates/bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-10-smart-validation.md +209 -0
  121. package/templates/bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-11-holistic-quality-validation.md +264 -0
  122. package/templates/bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-12-completeness-validation.md +242 -0
  123. package/templates/bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-13-report-complete.md +231 -0
  124. package/templates/bmad/bmm/workflows/2-plan-workflows/create-prd/templates/prd-template.md +10 -0
  125. package/templates/bmad/bmm/workflows/2-plan-workflows/create-prd/workflow-create-prd.md +63 -0
  126. package/templates/bmad/bmm/workflows/2-plan-workflows/create-prd/workflow-edit-prd.md +65 -0
  127. package/templates/bmad/bmm/workflows/2-plan-workflows/create-prd/workflow-validate-prd.md +63 -0
  128. package/templates/bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-01-init.md +135 -0
  129. package/templates/bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-01b-continue.md +127 -0
  130. package/templates/bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-02-discovery.md +190 -0
  131. package/templates/bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-03-core-experience.md +216 -0
  132. package/templates/bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-04-emotional-response.md +219 -0
  133. package/templates/bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-05-inspiration.md +234 -0
  134. package/templates/bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-06-design-system.md +252 -0
  135. package/templates/bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-07-defining-experience.md +254 -0
  136. package/templates/bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-08-visual-foundation.md +224 -0
  137. package/templates/bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-09-design-directions.md +224 -0
  138. package/templates/bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-10-user-journeys.md +241 -0
  139. package/templates/bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-11-component-strategy.md +248 -0
  140. package/templates/bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-12-ux-patterns.md +237 -0
  141. package/templates/bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-13-responsive-accessibility.md +264 -0
  142. package/templates/bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-14-complete.md +171 -0
  143. package/templates/bmad/bmm/workflows/2-plan-workflows/create-ux-design/ux-design-template.md +13 -0
  144. package/templates/bmad/bmm/workflows/2-plan-workflows/create-ux-design/workflow.md +42 -0
  145. package/templates/bmad/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-01-document-discovery.md +184 -0
  146. package/templates/bmad/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-02-prd-analysis.md +172 -0
  147. package/templates/bmad/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-03-epic-coverage-validation.md +173 -0
  148. package/templates/bmad/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-04-ux-alignment.md +133 -0
  149. package/templates/bmad/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-05-epic-quality-review.md +245 -0
  150. package/templates/bmad/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-06-final-assessment.md +129 -0
  151. package/templates/bmad/bmm/workflows/3-solutioning/check-implementation-readiness/templates/readiness-report-template.md +4 -0
  152. package/templates/bmad/bmm/workflows/3-solutioning/check-implementation-readiness/workflow.md +54 -0
  153. package/templates/bmad/bmm/workflows/3-solutioning/create-architecture/architecture-decision-template.md +12 -0
  154. package/templates/bmad/bmm/workflows/3-solutioning/create-architecture/data/domain-complexity.csv +13 -0
  155. package/templates/bmad/bmm/workflows/3-solutioning/create-architecture/data/project-types.csv +7 -0
  156. package/templates/bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-01-init.md +153 -0
  157. package/templates/bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-01b-continue.md +173 -0
  158. package/templates/bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-02-context.md +224 -0
  159. package/templates/bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-03-starter.md +329 -0
  160. package/templates/bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-04-decisions.md +318 -0
  161. package/templates/bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-05-patterns.md +359 -0
  162. package/templates/bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-06-structure.md +379 -0
  163. package/templates/bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-07-validation.md +359 -0
  164. package/templates/bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-08-complete.md +76 -0
  165. package/templates/bmad/bmm/workflows/3-solutioning/create-architecture/workflow.md +49 -0
  166. package/templates/bmad/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-01-validate-prerequisites.md +259 -0
  167. package/templates/bmad/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-02-design-epics.md +233 -0
  168. package/templates/bmad/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-03-create-stories.md +272 -0
  169. package/templates/bmad/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-04-final-validation.md +149 -0
  170. package/templates/bmad/bmm/workflows/3-solutioning/create-epics-and-stories/templates/epics-template.md +57 -0
  171. package/templates/bmad/bmm/workflows/3-solutioning/create-epics-and-stories/workflow.md +58 -0
  172. package/templates/bmad/bmm/workflows/4-implementation/code-review/checklist.md +23 -0
  173. package/templates/bmad/bmm/workflows/4-implementation/code-review/instructions.xml +227 -0
  174. package/templates/bmad/bmm/workflows/4-implementation/code-review/workflow.yaml +43 -0
  175. package/templates/bmad/bmm/workflows/4-implementation/correct-course/checklist.md +288 -0
  176. package/templates/bmad/bmm/workflows/4-implementation/correct-course/instructions.md +207 -0
  177. package/templates/bmad/bmm/workflows/4-implementation/correct-course/workflow.yaml +53 -0
  178. package/templates/bmad/bmm/workflows/4-implementation/create-story/checklist.md +358 -0
  179. package/templates/bmad/bmm/workflows/4-implementation/create-story/instructions.xml +346 -0
  180. package/templates/bmad/bmm/workflows/4-implementation/create-story/template.md +49 -0
  181. package/templates/bmad/bmm/workflows/4-implementation/create-story/workflow.yaml +52 -0
  182. package/templates/bmad/bmm/workflows/4-implementation/dev-story/checklist.md +80 -0
  183. package/templates/bmad/bmm/workflows/4-implementation/dev-story/instructions.xml +410 -0
  184. package/templates/bmad/bmm/workflows/4-implementation/dev-story/workflow.yaml +20 -0
  185. package/templates/bmad/bmm/workflows/4-implementation/retrospective/instructions.md +1444 -0
  186. package/templates/bmad/bmm/workflows/4-implementation/retrospective/workflow.yaml +52 -0
  187. package/templates/bmad/bmm/workflows/4-implementation/sprint-planning/checklist.md +33 -0
  188. package/templates/bmad/bmm/workflows/4-implementation/sprint-planning/instructions.md +226 -0
  189. package/templates/bmad/bmm/workflows/4-implementation/sprint-planning/sprint-status-template.yaml +55 -0
  190. package/templates/bmad/bmm/workflows/4-implementation/sprint-planning/workflow.yaml +47 -0
  191. package/templates/bmad/bmm/workflows/4-implementation/sprint-status/instructions.md +230 -0
  192. package/templates/bmad/bmm/workflows/4-implementation/sprint-status/workflow.yaml +25 -0
  193. package/templates/bmad/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-01-mode-detection.md +174 -0
  194. package/templates/bmad/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-02-context-gathering.md +118 -0
  195. package/templates/bmad/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-03-execute.md +111 -0
  196. package/templates/bmad/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-04-self-check.md +111 -0
  197. package/templates/bmad/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-05-adversarial-review.md +104 -0
  198. package/templates/bmad/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-06-resolve-findings.md +146 -0
  199. package/templates/bmad/bmm/workflows/bmad-quick-flow/quick-dev/workflow.md +50 -0
  200. package/templates/bmad/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-01-understand.md +189 -0
  201. package/templates/bmad/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-02-investigate.md +143 -0
  202. package/templates/bmad/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-03-generate.md +126 -0
  203. package/templates/bmad/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-04-review.md +200 -0
  204. package/templates/bmad/bmm/workflows/bmad-quick-flow/quick-spec/tech-spec-template.md +74 -0
  205. package/templates/bmad/bmm/workflows/bmad-quick-flow/quick-spec/workflow.md +79 -0
  206. package/templates/bmad/bmm/workflows/document-project/checklist.md +245 -0
  207. package/templates/bmad/bmm/workflows/document-project/documentation-requirements.csv +12 -0
  208. package/templates/bmad/bmm/workflows/document-project/instructions.md +130 -0
  209. package/templates/bmad/bmm/workflows/document-project/templates/deep-dive-template.md +345 -0
  210. package/templates/bmad/bmm/workflows/document-project/templates/index-template.md +169 -0
  211. package/templates/bmad/bmm/workflows/document-project/templates/project-overview-template.md +103 -0
  212. package/templates/bmad/bmm/workflows/document-project/templates/project-scan-report-schema.json +160 -0
  213. package/templates/bmad/bmm/workflows/document-project/templates/source-tree-template.md +135 -0
  214. package/templates/bmad/bmm/workflows/document-project/workflow.yaml +22 -0
  215. package/templates/bmad/bmm/workflows/document-project/workflows/deep-dive-instructions.md +298 -0
  216. package/templates/bmad/bmm/workflows/document-project/workflows/deep-dive.yaml +31 -0
  217. package/templates/bmad/bmm/workflows/document-project/workflows/full-scan-instructions.md +1106 -0
  218. package/templates/bmad/bmm/workflows/document-project/workflows/full-scan.yaml +31 -0
  219. package/templates/bmad/bmm/workflows/generate-project-context/project-context-template.md +21 -0
  220. package/templates/bmad/bmm/workflows/generate-project-context/steps/step-01-discover.md +184 -0
  221. package/templates/bmad/bmm/workflows/generate-project-context/steps/step-02-generate.md +318 -0
  222. package/templates/bmad/bmm/workflows/generate-project-context/steps/step-03-complete.md +278 -0
  223. package/templates/bmad/bmm/workflows/generate-project-context/workflow.md +49 -0
  224. package/templates/bmad/bmm/workflows/qa/automate/checklist.md +33 -0
  225. package/templates/bmad/bmm/workflows/qa/automate/instructions.md +110 -0
  226. package/templates/bmad/bmm/workflows/qa/automate/workflow.yaml +44 -0
  227. package/templates/bmad/bmm/workflows/qa-generate-e2e-tests/checklist.md +33 -0
  228. package/templates/bmad/bmm/workflows/qa-generate-e2e-tests/instructions.md +110 -0
  229. package/templates/bmad/bmm/workflows/qa-generate-e2e-tests/workflow.yaml +42 -0
  230. package/templates/bmad/commands/bmad-agent-bmad-master.md +15 -0
  231. package/templates/bmad/commands/bmad-agent-bmm-analyst.md +15 -0
  232. package/templates/bmad/commands/bmad-agent-bmm-architect.md +15 -0
  233. package/templates/bmad/commands/bmad-agent-bmm-dev.md +15 -0
  234. package/templates/bmad/commands/bmad-agent-bmm-pm.md +15 -0
  235. package/templates/bmad/commands/bmad-agent-bmm-qa.md +15 -0
  236. package/templates/bmad/commands/bmad-agent-bmm-quick-flow-solo-dev.md +15 -0
  237. package/templates/bmad/commands/bmad-agent-bmm-sm.md +15 -0
  238. package/templates/bmad/commands/bmad-agent-bmm-tech-writer.md +15 -0
  239. package/templates/bmad/commands/bmad-agent-bmm-ux-designer.md +15 -0
  240. package/templates/bmad/commands/bmad-agent-tea-tea.md +15 -0
  241. package/templates/bmad/commands/bmad-bmm-check-implementation-readiness.md +6 -0
  242. package/templates/bmad/commands/bmad-bmm-code-review.md +14 -0
  243. package/templates/bmad/commands/bmad-bmm-correct-course.md +14 -0
  244. package/templates/bmad/commands/bmad-bmm-create-architecture.md +6 -0
  245. package/templates/bmad/commands/bmad-bmm-create-epics-and-stories.md +6 -0
  246. package/templates/bmad/commands/bmad-bmm-create-prd.md +6 -0
  247. package/templates/bmad/commands/bmad-bmm-create-product-brief.md +6 -0
  248. package/templates/bmad/commands/bmad-bmm-create-story.md +14 -0
  249. package/templates/bmad/commands/bmad-bmm-create-ux-design.md +6 -0
  250. package/templates/bmad/commands/bmad-bmm-dev-story.md +14 -0
  251. package/templates/bmad/commands/bmad-bmm-document-project.md +14 -0
  252. package/templates/bmad/commands/bmad-bmm-domain-research.md +6 -0
  253. package/templates/bmad/commands/bmad-bmm-edit-prd.md +6 -0
  254. package/templates/bmad/commands/bmad-bmm-generate-project-context.md +6 -0
  255. package/templates/bmad/commands/bmad-bmm-market-research.md +6 -0
  256. package/templates/bmad/commands/bmad-bmm-qa-automate.md +15 -0
  257. package/templates/bmad/commands/bmad-bmm-qa-generate-e2e-tests.md +14 -0
  258. package/templates/bmad/commands/bmad-bmm-quick-dev.md +6 -0
  259. package/templates/bmad/commands/bmad-bmm-quick-spec.md +6 -0
  260. package/templates/bmad/commands/bmad-bmm-retrospective.md +14 -0
  261. package/templates/bmad/commands/bmad-bmm-sprint-planning.md +14 -0
  262. package/templates/bmad/commands/bmad-bmm-sprint-status.md +14 -0
  263. package/templates/bmad/commands/bmad-bmm-technical-research.md +6 -0
  264. package/templates/bmad/commands/bmad-bmm-validate-prd.md +6 -0
  265. package/templates/bmad/commands/bmad-brainstorming.md +6 -0
  266. package/templates/bmad/commands/bmad-editorial-review-prose.md +10 -0
  267. package/templates/bmad/commands/bmad-editorial-review-structure.md +10 -0
  268. package/templates/bmad/commands/bmad-help.md +10 -0
  269. package/templates/bmad/commands/bmad-index-docs.md +10 -0
  270. package/templates/bmad/commands/bmad-party-mode.md +6 -0
  271. package/templates/bmad/commands/bmad-review-adversarial-general.md +10 -0
  272. package/templates/bmad/commands/bmad-shard-doc.md +10 -0
  273. package/templates/bmad/commands/bmad-tea-teach-me-testing.md +6 -0
  274. package/templates/bmad/commands/bmad-tea-testarch-atdd.md +14 -0
  275. package/templates/bmad/commands/bmad-tea-testarch-automate.md +14 -0
  276. package/templates/bmad/commands/bmad-tea-testarch-ci.md +14 -0
  277. package/templates/bmad/commands/bmad-tea-testarch-framework.md +14 -0
  278. package/templates/bmad/commands/bmad-tea-testarch-nfr.md +14 -0
  279. package/templates/bmad/commands/bmad-tea-testarch-test-design.md +14 -0
  280. package/templates/bmad/commands/bmad-tea-testarch-test-review.md +14 -0
  281. package/templates/bmad/commands/bmad-tea-testarch-trace.md +14 -0
  282. package/templates/bmad/core/agents/bmad-master.md +56 -0
  283. package/templates/bmad/core/config.yaml +8 -0
  284. package/templates/bmad/core/module-help.csv +9 -0
  285. package/templates/bmad/core/tasks/editorial-review-prose.xml +102 -0
  286. package/templates/bmad/core/tasks/editorial-review-structure.xml +208 -0
  287. package/templates/bmad/core/tasks/help.md +86 -0
  288. package/templates/bmad/core/tasks/index-docs.xml +65 -0
  289. package/templates/bmad/core/tasks/review-adversarial-general.xml +49 -0
  290. package/templates/bmad/core/tasks/shard-doc.xml +108 -0
  291. package/templates/bmad/core/tasks/workflow.xml +235 -0
  292. package/templates/bmad/core/workflows/advanced-elicitation/methods.csv +51 -0
  293. package/templates/bmad/core/workflows/advanced-elicitation/workflow.xml +118 -0
  294. package/templates/bmad/core/workflows/brainstorming/brain-methods.csv +62 -0
  295. package/templates/bmad/core/workflows/brainstorming/steps/step-01-session-setup.md +197 -0
  296. package/templates/bmad/core/workflows/brainstorming/steps/step-01b-continue.md +122 -0
  297. package/templates/bmad/core/workflows/brainstorming/steps/step-02a-user-selected.md +225 -0
  298. package/templates/bmad/core/workflows/brainstorming/steps/step-02b-ai-recommended.md +237 -0
  299. package/templates/bmad/core/workflows/brainstorming/steps/step-02c-random-selection.md +209 -0
  300. package/templates/bmad/core/workflows/brainstorming/steps/step-02d-progressive-flow.md +264 -0
  301. package/templates/bmad/core/workflows/brainstorming/steps/step-03-technique-execution.md +399 -0
  302. package/templates/bmad/core/workflows/brainstorming/steps/step-04-idea-organization.md +303 -0
  303. package/templates/bmad/core/workflows/brainstorming/template.md +15 -0
  304. package/templates/bmad/core/workflows/brainstorming/workflow.md +58 -0
  305. package/templates/bmad/core/workflows/party-mode/steps/step-01-agent-loading.md +138 -0
  306. package/templates/bmad/core/workflows/party-mode/steps/step-02-discussion-orchestration.md +187 -0
  307. package/templates/bmad/core/workflows/party-mode/steps/step-03-graceful-exit.md +168 -0
  308. package/templates/bmad/core/workflows/party-mode/workflow.md +194 -0
  309. package/templates/bmad/tea/agents/tea.md +71 -0
  310. package/templates/bmad/tea/config.yaml +20 -0
  311. package/templates/bmad/tea/module-help.csv +10 -0
  312. package/templates/bmad/tea/teams/default-party.csv +2 -0
  313. package/templates/bmad/tea/testarch/knowledge/adr-quality-readiness-checklist.md +377 -0
  314. package/templates/bmad/tea/testarch/knowledge/api-request.md +563 -0
  315. package/templates/bmad/tea/testarch/knowledge/api-testing-patterns.md +915 -0
  316. package/templates/bmad/tea/testarch/knowledge/auth-session.md +548 -0
  317. package/templates/bmad/tea/testarch/knowledge/burn-in.md +273 -0
  318. package/templates/bmad/tea/testarch/knowledge/ci-burn-in.md +675 -0
  319. package/templates/bmad/tea/testarch/knowledge/component-tdd.md +486 -0
  320. package/templates/bmad/tea/testarch/knowledge/contract-testing.md +957 -0
  321. package/templates/bmad/tea/testarch/knowledge/data-factories.md +500 -0
  322. package/templates/bmad/tea/testarch/knowledge/email-auth.md +721 -0
  323. package/templates/bmad/tea/testarch/knowledge/error-handling.md +725 -0
  324. package/templates/bmad/tea/testarch/knowledge/feature-flags.md +750 -0
  325. package/templates/bmad/tea/testarch/knowledge/file-utils.md +456 -0
  326. package/templates/bmad/tea/testarch/knowledge/fixture-architecture.md +401 -0
  327. package/templates/bmad/tea/testarch/knowledge/fixtures-composition.md +382 -0
  328. package/templates/bmad/tea/testarch/knowledge/intercept-network-call.md +426 -0
  329. package/templates/bmad/tea/testarch/knowledge/log.md +426 -0
  330. package/templates/bmad/tea/testarch/knowledge/network-error-monitor.md +401 -0
  331. package/templates/bmad/tea/testarch/knowledge/network-first.md +486 -0
  332. package/templates/bmad/tea/testarch/knowledge/network-recorder.md +527 -0
  333. package/templates/bmad/tea/testarch/knowledge/nfr-criteria.md +670 -0
  334. package/templates/bmad/tea/testarch/knowledge/overview.md +286 -0
  335. package/templates/bmad/tea/testarch/knowledge/playwright-cli.md +165 -0
  336. package/templates/bmad/tea/testarch/knowledge/playwright-config.md +730 -0
  337. package/templates/bmad/tea/testarch/knowledge/probability-impact.md +601 -0
  338. package/templates/bmad/tea/testarch/knowledge/recurse.md +421 -0
  339. package/templates/bmad/tea/testarch/knowledge/risk-governance.md +615 -0
  340. package/templates/bmad/tea/testarch/knowledge/selective-testing.md +732 -0
  341. package/templates/bmad/tea/testarch/knowledge/selector-resilience.md +527 -0
  342. package/templates/bmad/tea/testarch/knowledge/test-healing-patterns.md +644 -0
  343. package/templates/bmad/tea/testarch/knowledge/test-levels-framework.md +473 -0
  344. package/templates/bmad/tea/testarch/knowledge/test-priorities-matrix.md +373 -0
  345. package/templates/bmad/tea/testarch/knowledge/test-quality.md +664 -0
  346. package/templates/bmad/tea/testarch/knowledge/timing-debugging.md +372 -0
  347. package/templates/bmad/tea/testarch/knowledge/visual-debugging.md +524 -0
  348. package/templates/bmad/tea/testarch/tea-index.csv +36 -0
  349. package/templates/bmad/tea/workflows/testarch/README.md +74 -0
  350. package/templates/bmad/tea/workflows/testarch/atdd/atdd-checklist-template.md +371 -0
  351. package/templates/bmad/tea/workflows/testarch/atdd/checklist.md +374 -0
  352. package/templates/bmad/tea/workflows/testarch/atdd/instructions.md +45 -0
  353. package/templates/bmad/tea/workflows/testarch/atdd/steps-c/step-01-preflight-and-context.md +196 -0
  354. package/templates/bmad/tea/workflows/testarch/atdd/steps-c/step-01b-resume.md +96 -0
  355. package/templates/bmad/tea/workflows/testarch/atdd/steps-c/step-02-generation-mode.md +125 -0
  356. package/templates/bmad/tea/workflows/testarch/atdd/steps-c/step-03-test-strategy.md +110 -0
  357. package/templates/bmad/tea/workflows/testarch/atdd/steps-c/step-04-generate-tests.md +229 -0
  358. package/templates/bmad/tea/workflows/testarch/atdd/steps-c/step-04a-subprocess-api-failing.md +215 -0
  359. package/templates/bmad/tea/workflows/testarch/atdd/steps-c/step-04b-subprocess-e2e-failing.md +244 -0
  360. package/templates/bmad/tea/workflows/testarch/atdd/steps-c/step-04c-aggregate.md +354 -0
  361. package/templates/bmad/tea/workflows/testarch/atdd/steps-c/step-05-validate-and-complete.md +106 -0
  362. package/templates/bmad/tea/workflows/testarch/atdd/steps-e/step-01-assess.md +65 -0
  363. package/templates/bmad/tea/workflows/testarch/atdd/steps-e/step-02-apply-edit.md +60 -0
  364. package/templates/bmad/tea/workflows/testarch/atdd/steps-v/step-01-validate.md +67 -0
  365. package/templates/bmad/tea/workflows/testarch/atdd/validation-report-20260127-095021.md +73 -0
  366. package/templates/bmad/tea/workflows/testarch/atdd/validation-report-20260127-102401.md +116 -0
  367. package/templates/bmad/tea/workflows/testarch/atdd/workflow-plan.md +21 -0
  368. package/templates/bmad/tea/workflows/testarch/atdd/workflow.md +41 -0
  369. package/templates/bmad/tea/workflows/testarch/atdd/workflow.yaml +46 -0
  370. package/templates/bmad/tea/workflows/testarch/automate/checklist.md +582 -0
  371. package/templates/bmad/tea/workflows/testarch/automate/instructions.md +50 -0
  372. package/templates/bmad/tea/workflows/testarch/automate/steps-c/step-01-preflight-and-context.md +205 -0
  373. package/templates/bmad/tea/workflows/testarch/automate/steps-c/step-01b-resume.md +94 -0
  374. package/templates/bmad/tea/workflows/testarch/automate/steps-c/step-02-identify-targets.md +145 -0
  375. package/templates/bmad/tea/workflows/testarch/automate/steps-c/step-03-generate-tests.md +278 -0
  376. package/templates/bmad/tea/workflows/testarch/automate/steps-c/step-03a-subprocess-api.md +183 -0
  377. package/templates/bmad/tea/workflows/testarch/automate/steps-c/step-03b-subprocess-backend.md +246 -0
  378. package/templates/bmad/tea/workflows/testarch/automate/steps-c/step-03b-subprocess-e2e.md +213 -0
  379. package/templates/bmad/tea/workflows/testarch/automate/steps-c/step-03c-aggregate.md +377 -0
  380. package/templates/bmad/tea/workflows/testarch/automate/steps-c/step-04-validate-and-summarize.md +106 -0
  381. package/templates/bmad/tea/workflows/testarch/automate/steps-e/step-01-assess.md +65 -0
  382. package/templates/bmad/tea/workflows/testarch/automate/steps-e/step-02-apply-edit.md +60 -0
  383. package/templates/bmad/tea/workflows/testarch/automate/steps-v/step-01-validate.md +67 -0
  384. package/templates/bmad/tea/workflows/testarch/automate/validation-report-20260127-095021.md +72 -0
  385. package/templates/bmad/tea/workflows/testarch/automate/validation-report-20260127-102401.md +114 -0
  386. package/templates/bmad/tea/workflows/testarch/automate/workflow-plan.md +20 -0
  387. package/templates/bmad/tea/workflows/testarch/automate/workflow.md +41 -0
  388. package/templates/bmad/tea/workflows/testarch/automate/workflow.yaml +53 -0
  389. package/templates/bmad/tea/workflows/testarch/ci/azure-pipelines-template.yaml +155 -0
  390. package/templates/bmad/tea/workflows/testarch/ci/checklist.md +288 -0
  391. package/templates/bmad/tea/workflows/testarch/ci/github-actions-template.yaml +210 -0
  392. package/templates/bmad/tea/workflows/testarch/ci/gitlab-ci-template.yaml +158 -0
  393. package/templates/bmad/tea/workflows/testarch/ci/harness-pipeline-template.yaml +159 -0
  394. package/templates/bmad/tea/workflows/testarch/ci/instructions.md +45 -0
  395. package/templates/bmad/tea/workflows/testarch/ci/jenkins-pipeline-template.groovy +129 -0
  396. package/templates/bmad/tea/workflows/testarch/ci/steps-c/step-01-preflight.md +158 -0
  397. package/templates/bmad/tea/workflows/testarch/ci/steps-c/step-01b-resume.md +110 -0
  398. package/templates/bmad/tea/workflows/testarch/ci/steps-c/step-02-generate-pipeline.md +118 -0
  399. package/templates/bmad/tea/workflows/testarch/ci/steps-c/step-03-configure-quality-gates.md +105 -0
  400. package/templates/bmad/tea/workflows/testarch/ci/steps-c/step-04-validate-and-summary.md +92 -0
  401. package/templates/bmad/tea/workflows/testarch/ci/steps-e/step-01-assess.md +65 -0
  402. package/templates/bmad/tea/workflows/testarch/ci/steps-e/step-02-apply-edit.md +60 -0
  403. package/templates/bmad/tea/workflows/testarch/ci/steps-v/step-01-validate.md +67 -0
  404. package/templates/bmad/tea/workflows/testarch/ci/validation-report-20260127-095021.md +72 -0
  405. package/templates/bmad/tea/workflows/testarch/ci/validation-report-20260127-102401.md +114 -0
  406. package/templates/bmad/tea/workflows/testarch/ci/workflow-plan.md +20 -0
  407. package/templates/bmad/tea/workflows/testarch/ci/workflow.md +41 -0
  408. package/templates/bmad/tea/workflows/testarch/ci/workflow.yaml +48 -0
  409. package/templates/bmad/tea/workflows/testarch/framework/checklist.md +321 -0
  410. package/templates/bmad/tea/workflows/testarch/framework/instructions.md +45 -0
  411. package/templates/bmad/tea/workflows/testarch/framework/steps-c/step-01-preflight.md +132 -0
  412. package/templates/bmad/tea/workflows/testarch/framework/steps-c/step-01b-resume.md +116 -0
  413. package/templates/bmad/tea/workflows/testarch/framework/steps-c/step-02-select-framework.md +117 -0
  414. package/templates/bmad/tea/workflows/testarch/framework/steps-c/step-03-scaffold-framework.md +196 -0
  415. package/templates/bmad/tea/workflows/testarch/framework/steps-c/step-04-docs-and-scripts.md +105 -0
  416. package/templates/bmad/tea/workflows/testarch/framework/steps-c/step-05-validate-and-summary.md +93 -0
  417. package/templates/bmad/tea/workflows/testarch/framework/steps-e/step-01-assess.md +65 -0
  418. package/templates/bmad/tea/workflows/testarch/framework/steps-e/step-02-apply-edit.md +60 -0
  419. package/templates/bmad/tea/workflows/testarch/framework/steps-v/step-01-validate.md +67 -0
  420. package/templates/bmad/tea/workflows/testarch/framework/validation-report-20260127-095021.md +73 -0
  421. package/templates/bmad/tea/workflows/testarch/framework/validation-report-20260127-102401.md +116 -0
  422. package/templates/bmad/tea/workflows/testarch/framework/workflow-plan.md +22 -0
  423. package/templates/bmad/tea/workflows/testarch/framework/workflow.md +41 -0
  424. package/templates/bmad/tea/workflows/testarch/framework/workflow.yaml +48 -0
  425. package/templates/bmad/tea/workflows/testarch/nfr-assess/checklist.md +407 -0
  426. package/templates/bmad/tea/workflows/testarch/nfr-assess/instructions.md +43 -0
  427. package/templates/bmad/tea/workflows/testarch/nfr-assess/nfr-report-template.md +470 -0
  428. package/templates/bmad/tea/workflows/testarch/nfr-assess/steps-c/step-01-load-context.md +138 -0
  429. package/templates/bmad/tea/workflows/testarch/nfr-assess/steps-c/step-01b-resume.md +106 -0
  430. package/templates/bmad/tea/workflows/testarch/nfr-assess/steps-c/step-02-define-thresholds.md +107 -0
  431. package/templates/bmad/tea/workflows/testarch/nfr-assess/steps-c/step-03-gather-evidence.md +108 -0
  432. package/templates/bmad/tea/workflows/testarch/nfr-assess/steps-c/step-04-evaluate-and-score.md +140 -0
  433. package/templates/bmad/tea/workflows/testarch/nfr-assess/steps-c/step-04a-subprocess-security.md +138 -0
  434. package/templates/bmad/tea/workflows/testarch/nfr-assess/steps-c/step-04b-subprocess-performance.md +84 -0
  435. package/templates/bmad/tea/workflows/testarch/nfr-assess/steps-c/step-04c-subprocess-reliability.md +85 -0
  436. package/templates/bmad/tea/workflows/testarch/nfr-assess/steps-c/step-04d-subprocess-scalability.md +88 -0
  437. package/templates/bmad/tea/workflows/testarch/nfr-assess/steps-c/step-04e-aggregate-nfr.md +247 -0
  438. package/templates/bmad/tea/workflows/testarch/nfr-assess/steps-c/step-05-generate-report.md +108 -0
  439. package/templates/bmad/tea/workflows/testarch/nfr-assess/steps-e/step-01-assess.md +65 -0
  440. package/templates/bmad/tea/workflows/testarch/nfr-assess/steps-e/step-02-apply-edit.md +60 -0
  441. package/templates/bmad/tea/workflows/testarch/nfr-assess/steps-v/step-01-validate.md +67 -0
  442. package/templates/bmad/tea/workflows/testarch/nfr-assess/validation-report-20260127-095021.md +73 -0
  443. package/templates/bmad/tea/workflows/testarch/nfr-assess/validation-report-20260127-102401.md +116 -0
  444. package/templates/bmad/tea/workflows/testarch/nfr-assess/workflow-plan.md +19 -0
  445. package/templates/bmad/tea/workflows/testarch/nfr-assess/workflow.md +41 -0
  446. package/templates/bmad/tea/workflows/testarch/nfr-assess/workflow.yaml +48 -0
  447. package/templates/bmad/tea/workflows/testarch/teach-me-testing/checklist.md +197 -0
  448. package/templates/bmad/tea/workflows/testarch/teach-me-testing/data/curriculum.yaml +129 -0
  449. package/templates/bmad/tea/workflows/testarch/teach-me-testing/data/quiz-questions.yaml +206 -0
  450. package/templates/bmad/tea/workflows/testarch/teach-me-testing/data/role-paths.yaml +136 -0
  451. package/templates/bmad/tea/workflows/testarch/teach-me-testing/data/session-content-map.yaml +207 -0
  452. package/templates/bmad/tea/workflows/testarch/teach-me-testing/data/tea-resources-index.yaml +359 -0
  453. package/templates/bmad/tea/workflows/testarch/teach-me-testing/instructions.md +130 -0
  454. package/templates/bmad/tea/workflows/testarch/teach-me-testing/steps-c/step-01-init.md +235 -0
  455. package/templates/bmad/tea/workflows/testarch/teach-me-testing/steps-c/step-01b-continue.md +147 -0
  456. package/templates/bmad/tea/workflows/testarch/teach-me-testing/steps-c/step-02-assess.md +258 -0
  457. package/templates/bmad/tea/workflows/testarch/teach-me-testing/steps-c/step-03-session-menu.md +219 -0
  458. package/templates/bmad/tea/workflows/testarch/teach-me-testing/steps-c/step-04-session-01.md +460 -0
  459. package/templates/bmad/tea/workflows/testarch/teach-me-testing/steps-c/step-04-session-02.md +465 -0
  460. package/templates/bmad/tea/workflows/testarch/teach-me-testing/steps-c/step-04-session-03.md +301 -0
  461. package/templates/bmad/tea/workflows/testarch/teach-me-testing/steps-c/step-04-session-04.md +234 -0
  462. package/templates/bmad/tea/workflows/testarch/teach-me-testing/steps-c/step-04-session-05.md +234 -0
  463. package/templates/bmad/tea/workflows/testarch/teach-me-testing/steps-c/step-04-session-06.md +209 -0
  464. package/templates/bmad/tea/workflows/testarch/teach-me-testing/steps-c/step-04-session-07.md +212 -0
  465. package/templates/bmad/tea/workflows/testarch/teach-me-testing/steps-c/step-05-completion.md +339 -0
  466. package/templates/bmad/tea/workflows/testarch/teach-me-testing/steps-e/step-e-01-assess-workflow.md +141 -0
  467. package/templates/bmad/tea/workflows/testarch/teach-me-testing/steps-e/step-e-02-apply-edits.md +122 -0
  468. package/templates/bmad/tea/workflows/testarch/teach-me-testing/steps-v/step-v-01-validate.md +263 -0
  469. package/templates/bmad/tea/workflows/testarch/teach-me-testing/templates/certificate-template.md +86 -0
  470. package/templates/bmad/tea/workflows/testarch/teach-me-testing/templates/progress-template.yaml +95 -0
  471. package/templates/bmad/tea/workflows/testarch/teach-me-testing/templates/session-notes-template.md +83 -0
  472. package/templates/bmad/tea/workflows/testarch/teach-me-testing/workflow-plan-teach-me-testing.md +950 -0
  473. package/templates/bmad/tea/workflows/testarch/teach-me-testing/workflow.md +90 -0
  474. package/templates/bmad/tea/workflows/testarch/test-design/checklist.md +464 -0
  475. package/templates/bmad/tea/workflows/testarch/test-design/instructions.md +105 -0
  476. package/templates/bmad/tea/workflows/testarch/test-design/steps-c/step-01-detect-mode.md +134 -0
  477. package/templates/bmad/tea/workflows/testarch/test-design/steps-c/step-01b-resume.md +102 -0
  478. package/templates/bmad/tea/workflows/testarch/test-design/steps-c/step-02-load-context.md +212 -0
  479. package/templates/bmad/tea/workflows/testarch/test-design/steps-c/step-03-risk-and-testability.md +110 -0
  480. package/templates/bmad/tea/workflows/testarch/test-design/steps-c/step-04-coverage-plan.md +123 -0
  481. package/templates/bmad/tea/workflows/testarch/test-design/steps-c/step-05-generate-output.md +151 -0
  482. package/templates/bmad/tea/workflows/testarch/test-design/steps-e/step-01-assess.md +65 -0
  483. package/templates/bmad/tea/workflows/testarch/test-design/steps-e/step-02-apply-edit.md +60 -0
  484. package/templates/bmad/tea/workflows/testarch/test-design/steps-v/step-01-validate.md +67 -0
  485. package/templates/bmad/tea/workflows/testarch/test-design/test-design-architecture-template.md +230 -0
  486. package/templates/bmad/tea/workflows/testarch/test-design/test-design-handoff-template.md +70 -0
  487. package/templates/bmad/tea/workflows/testarch/test-design/test-design-qa-template.md +396 -0
  488. package/templates/bmad/tea/workflows/testarch/test-design/test-design-template.md +344 -0
  489. package/templates/bmad/tea/workflows/testarch/test-design/validation-report-20260127-095021.md +73 -0
  490. package/templates/bmad/tea/workflows/testarch/test-design/validation-report-20260127-102401.md +116 -0
  491. package/templates/bmad/tea/workflows/testarch/test-design/workflow-plan.md +22 -0
  492. package/templates/bmad/tea/workflows/testarch/test-design/workflow.md +41 -0
  493. package/templates/bmad/tea/workflows/testarch/test-design/workflow.yaml +77 -0
  494. package/templates/bmad/tea/workflows/testarch/test-review/checklist.md +475 -0
  495. package/templates/bmad/tea/workflows/testarch/test-review/instructions.md +45 -0
  496. package/templates/bmad/tea/workflows/testarch/test-review/steps-c/step-01-load-context.md +169 -0
  497. package/templates/bmad/tea/workflows/testarch/test-review/steps-c/step-01b-resume.md +104 -0
  498. package/templates/bmad/tea/workflows/testarch/test-review/steps-c/step-02-discover-tests.md +113 -0
  499. package/templates/bmad/tea/workflows/testarch/test-review/steps-c/step-03-quality-evaluation.md +173 -0
  500. package/templates/bmad/tea/workflows/testarch/test-review/steps-c/step-03a-subprocess-determinism.md +214 -0
  501. package/templates/bmad/tea/workflows/testarch/test-review/steps-c/step-03b-subprocess-isolation.md +125 -0
  502. package/templates/bmad/tea/workflows/testarch/test-review/steps-c/step-03c-subprocess-maintainability.md +102 -0
  503. package/templates/bmad/tea/workflows/testarch/test-review/steps-c/step-03d-subprocess-coverage.md +111 -0
  504. package/templates/bmad/tea/workflows/testarch/test-review/steps-c/step-03e-subprocess-performance.md +117 -0
  505. package/templates/bmad/tea/workflows/testarch/test-review/steps-c/step-03f-aggregate-scores.md +277 -0
  506. package/templates/bmad/tea/workflows/testarch/test-review/steps-c/step-04-generate-report.md +111 -0
  507. package/templates/bmad/tea/workflows/testarch/test-review/steps-e/step-01-assess.md +65 -0
  508. package/templates/bmad/tea/workflows/testarch/test-review/steps-e/step-02-apply-edit.md +60 -0
  509. package/templates/bmad/tea/workflows/testarch/test-review/steps-v/step-01-validate.md +67 -0
  510. package/templates/bmad/tea/workflows/testarch/test-review/test-review-template.md +387 -0
  511. package/templates/bmad/tea/workflows/testarch/test-review/validation-report-20260127-095021.md +72 -0
  512. package/templates/bmad/tea/workflows/testarch/test-review/validation-report-20260127-102401.md +114 -0
  513. package/templates/bmad/tea/workflows/testarch/test-review/workflow-plan.md +18 -0
  514. package/templates/bmad/tea/workflows/testarch/test-review/workflow.md +41 -0
  515. package/templates/bmad/tea/workflows/testarch/test-review/workflow.yaml +48 -0
  516. package/templates/bmad/tea/workflows/testarch/trace/checklist.md +647 -0
  517. package/templates/bmad/tea/workflows/testarch/trace/instructions.md +43 -0
  518. package/templates/bmad/tea/workflows/testarch/trace/steps-c/step-01-load-context.md +105 -0
  519. package/templates/bmad/tea/workflows/testarch/trace/steps-c/step-01b-resume.md +102 -0
  520. package/templates/bmad/tea/workflows/testarch/trace/steps-c/step-02-discover-tests.md +112 -0
  521. package/templates/bmad/tea/workflows/testarch/trace/steps-c/step-03-map-criteria.md +97 -0
  522. package/templates/bmad/tea/workflows/testarch/trace/steps-c/step-04-analyze-gaps.md +330 -0
  523. package/templates/bmad/tea/workflows/testarch/trace/steps-c/step-05-gate-decision.md +266 -0
  524. package/templates/bmad/tea/workflows/testarch/trace/steps-e/step-01-assess.md +65 -0
  525. package/templates/bmad/tea/workflows/testarch/trace/steps-e/step-02-apply-edit.md +60 -0
  526. package/templates/bmad/tea/workflows/testarch/trace/steps-v/step-01-validate.md +67 -0
  527. package/templates/bmad/tea/workflows/testarch/trace/trace-template.md +708 -0
  528. package/templates/bmad/tea/workflows/testarch/trace/validation-report-20260127-095021.md +73 -0
  529. package/templates/bmad/tea/workflows/testarch/trace/validation-report-20260127-102401.md +116 -0
  530. package/templates/bmad/tea/workflows/testarch/trace/workflow-plan.md +21 -0
  531. package/templates/bmad/tea/workflows/testarch/trace/workflow.md +41 -0
  532. package/templates/bmad/tea/workflows/testarch/trace/workflow.yaml +56 -0
  533. package/templates/ecc/agents/architect.md +211 -0
  534. package/templates/ecc/agents/build-error-resolver.md +114 -0
  535. package/templates/ecc/agents/code-reviewer.md +224 -0
  536. package/templates/ecc/agents/database-reviewer.md +91 -0
  537. package/templates/ecc/agents/doc-updater.md +107 -0
  538. package/templates/ecc/agents/e2e-runner.md +107 -0
  539. package/templates/ecc/agents/go-build-resolver.md +94 -0
  540. package/templates/ecc/agents/go-reviewer.md +76 -0
  541. package/templates/ecc/agents/planner.md +212 -0
  542. package/templates/ecc/agents/python-reviewer.md +98 -0
  543. package/templates/ecc/agents/refactor-cleaner.md +85 -0
  544. package/templates/ecc/agents/security-reviewer.md +108 -0
  545. package/templates/ecc/agents/tdd-guide.md +80 -0
  546. package/templates/ecc/commands/build-fix.md +62 -0
  547. package/templates/ecc/commands/checkpoint.md +74 -0
  548. package/templates/ecc/commands/code-review.md +40 -0
  549. package/templates/ecc/commands/e2e.md +363 -0
  550. package/templates/ecc/commands/eval.md +120 -0
  551. package/templates/ecc/commands/evolve.md +193 -0
  552. package/templates/ecc/commands/go-build.md +183 -0
  553. package/templates/ecc/commands/go-review.md +148 -0
  554. package/templates/ecc/commands/go-test.md +268 -0
  555. package/templates/ecc/commands/instinct-export.md +91 -0
  556. package/templates/ecc/commands/instinct-import.md +142 -0
  557. package/templates/ecc/commands/instinct-status.md +86 -0
  558. package/templates/ecc/commands/learn-eval.md +91 -0
  559. package/templates/ecc/commands/learn.md +70 -0
  560. package/templates/ecc/commands/multi-backend.md +158 -0
  561. package/templates/ecc/commands/multi-execute.md +310 -0
  562. package/templates/ecc/commands/multi-frontend.md +158 -0
  563. package/templates/ecc/commands/multi-plan.md +261 -0
  564. package/templates/ecc/commands/multi-workflow.md +183 -0
  565. package/templates/ecc/commands/orchestrate.md +172 -0
  566. package/templates/ecc/commands/plan.md +113 -0
  567. package/templates/ecc/commands/pm2.md +272 -0
  568. package/templates/ecc/commands/python-review.md +297 -0
  569. package/templates/ecc/commands/refactor-clean.md +80 -0
  570. package/templates/ecc/commands/sessions.md +305 -0
  571. package/templates/ecc/commands/setup-pm.md +80 -0
  572. package/templates/ecc/commands/skill-create.md +174 -0
  573. package/templates/ecc/commands/tdd.md +326 -0
  574. package/templates/ecc/commands/test-coverage.md +69 -0
  575. package/templates/ecc/commands/update-codemaps.md +72 -0
  576. package/templates/ecc/commands/update-docs.md +84 -0
  577. package/templates/ecc/commands/verify.md +59 -0
  578. package/templates/ecc/rules/README.md +82 -0
  579. package/templates/ecc/rules/common/agents.md +49 -0
  580. package/templates/ecc/rules/common/coding-style.md +48 -0
  581. package/templates/ecc/rules/common/git-workflow.md +45 -0
  582. package/templates/ecc/rules/common/hooks.md +30 -0
  583. package/templates/ecc/rules/common/patterns.md +31 -0
  584. package/templates/ecc/rules/common/performance.md +55 -0
  585. package/templates/ecc/rules/common/security.md +29 -0
  586. package/templates/ecc/rules/common/testing.md +29 -0
  587. package/templates/ecc/rules/golang/coding-style.md +32 -0
  588. package/templates/ecc/rules/golang/hooks.md +17 -0
  589. package/templates/ecc/rules/golang/patterns.md +45 -0
  590. package/templates/ecc/rules/golang/security.md +34 -0
  591. package/templates/ecc/rules/golang/testing.md +31 -0
  592. package/templates/ecc/rules/python/coding-style.md +42 -0
  593. package/templates/ecc/rules/python/hooks.md +19 -0
  594. package/templates/ecc/rules/python/patterns.md +39 -0
  595. package/templates/ecc/rules/python/security.md +30 -0
  596. package/templates/ecc/rules/python/testing.md +38 -0
  597. package/templates/ecc/rules/typescript/coding-style.md +65 -0
  598. package/templates/ecc/rules/typescript/hooks.md +22 -0
  599. package/templates/ecc/rules/typescript/patterns.md +52 -0
  600. package/templates/ecc/rules/typescript/security.md +28 -0
  601. package/templates/ecc/rules/typescript/testing.md +18 -0
  602. package/templates/ecc/skills/api-design/SKILL.md +522 -0
  603. package/templates/ecc/skills/backend-patterns/SKILL.md +597 -0
  604. package/templates/ecc/skills/clickhouse-io/SKILL.md +438 -0
  605. package/templates/ecc/skills/coding-standards/SKILL.md +529 -0
  606. package/templates/ecc/skills/configure-ecc/SKILL.md +298 -0
  607. package/templates/ecc/skills/content-hash-cache-pattern/SKILL.md +160 -0
  608. package/templates/ecc/skills/continuous-learning/SKILL.md +118 -0
  609. package/templates/ecc/skills/continuous-learning/config.json +18 -0
  610. package/templates/ecc/skills/continuous-learning/evaluate-session.sh +69 -0
  611. package/templates/ecc/skills/continuous-learning-v2/SKILL.md +292 -0
  612. package/templates/ecc/skills/continuous-learning-v2/agents/observer.md +137 -0
  613. package/templates/ecc/skills/continuous-learning-v2/agents/start-observer.sh +143 -0
  614. package/templates/ecc/skills/continuous-learning-v2/config.json +41 -0
  615. package/templates/ecc/skills/continuous-learning-v2/hooks/observe.sh +157 -0
  616. package/templates/ecc/skills/continuous-learning-v2/scripts/instinct-cli.py +575 -0
  617. package/templates/ecc/skills/continuous-learning-v2/scripts/test_parse_instinct.py +82 -0
  618. package/templates/ecc/skills/cost-aware-llm-pipeline/SKILL.md +182 -0
  619. package/templates/ecc/skills/cpp-coding-standards/SKILL.md +722 -0
  620. package/templates/ecc/skills/cpp-testing/SKILL.md +322 -0
  621. package/templates/ecc/skills/database-migrations/SKILL.md +334 -0
  622. package/templates/ecc/skills/deployment-patterns/SKILL.md +426 -0
  623. package/templates/ecc/skills/django-patterns/SKILL.md +733 -0
  624. package/templates/ecc/skills/django-security/SKILL.md +592 -0
  625. package/templates/ecc/skills/django-tdd/SKILL.md +728 -0
  626. package/templates/ecc/skills/django-verification/SKILL.md +468 -0
  627. package/templates/ecc/skills/docker-patterns/SKILL.md +363 -0
  628. package/templates/ecc/skills/e2e-testing/SKILL.md +325 -0
  629. package/templates/ecc/skills/eval-harness/SKILL.md +235 -0
  630. package/templates/ecc/skills/frontend-patterns/SKILL.md +641 -0
  631. package/templates/ecc/skills/golang-patterns/SKILL.md +673 -0
  632. package/templates/ecc/skills/golang-testing/SKILL.md +719 -0
  633. package/templates/ecc/skills/iterative-retrieval/SKILL.md +210 -0
  634. package/templates/ecc/skills/java-coding-standards/SKILL.md +146 -0
  635. package/templates/ecc/skills/jpa-patterns/SKILL.md +150 -0
  636. package/templates/ecc/skills/nutrient-document-processing/SKILL.md +165 -0
  637. package/templates/ecc/skills/postgres-patterns/SKILL.md +146 -0
  638. package/templates/ecc/skills/project-guidelines-example/SKILL.md +348 -0
  639. package/templates/ecc/skills/python-patterns/SKILL.md +749 -0
  640. package/templates/ecc/skills/python-testing/SKILL.md +815 -0
  641. package/templates/ecc/skills/regex-vs-llm-structured-text/SKILL.md +219 -0
  642. package/templates/ecc/skills/search-first/SKILL.md +159 -0
  643. package/templates/ecc/skills/security-review/SKILL.md +494 -0
  644. package/templates/ecc/skills/security-review/cloud-infrastructure-security.md +361 -0
  645. package/templates/ecc/skills/security-scan/SKILL.md +164 -0
  646. package/templates/ecc/skills/springboot-patterns/SKILL.md +313 -0
  647. package/templates/ecc/skills/springboot-security/SKILL.md +271 -0
  648. package/templates/ecc/skills/springboot-tdd/SKILL.md +157 -0
  649. package/templates/ecc/skills/springboot-verification/SKILL.md +230 -0
  650. package/templates/ecc/skills/strategic-compact/SKILL.md +102 -0
  651. package/templates/ecc/skills/strategic-compact/suggest-compact.sh +54 -0
  652. package/templates/ecc/skills/swift-actor-persistence/SKILL.md +142 -0
  653. package/templates/ecc/skills/swift-protocol-di-testing/SKILL.md +189 -0
  654. package/templates/ecc/skills/tdd-workflow/SKILL.md +409 -0
  655. package/templates/ecc/skills/verification-loop/SKILL.md +125 -0
  656. package/templates/ext-skills/pinchtab/SKILL.md +570 -0
  657. package/templates/mcp/claude-code/.mcp.json +35 -0
  658. package/templates/mcp/trae/mcp.json +35 -0
  659. package/templates/trae-bmad/rules/bmad-agent-bmad-master.md +15 -0
  660. package/templates/trae-bmad/rules/bmad-agent-bmm-analyst.md +15 -0
  661. package/templates/trae-bmad/rules/bmad-agent-bmm-architect.md +15 -0
  662. package/templates/trae-bmad/rules/bmad-agent-bmm-dev.md +15 -0
  663. package/templates/trae-bmad/rules/bmad-agent-bmm-pm.md +15 -0
  664. package/templates/trae-bmad/rules/bmad-agent-bmm-qa.md +15 -0
  665. package/templates/trae-bmad/rules/bmad-agent-bmm-quick-flow-solo-dev.md +15 -0
  666. package/templates/trae-bmad/rules/bmad-agent-bmm-sm.md +15 -0
  667. package/templates/trae-bmad/rules/bmad-agent-bmm-tech-writer.md +15 -0
  668. package/templates/trae-bmad/rules/bmad-agent-bmm-ux-designer.md +15 -0
  669. package/templates/trae-bmad/rules/bmad-agent-tea-tea.md +15 -0
  670. package/templates/trae-bmad/rules/bmad-bmm-check-implementation-readiness.md +6 -0
  671. package/templates/trae-bmad/rules/bmad-bmm-code-review.md +14 -0
  672. package/templates/trae-bmad/rules/bmad-bmm-correct-course.md +14 -0
  673. package/templates/trae-bmad/rules/bmad-bmm-create-architecture.md +6 -0
  674. package/templates/trae-bmad/rules/bmad-bmm-create-epics-and-stories.md +6 -0
  675. package/templates/trae-bmad/rules/bmad-bmm-create-prd.md +6 -0
  676. package/templates/trae-bmad/rules/bmad-bmm-create-product-brief.md +6 -0
  677. package/templates/trae-bmad/rules/bmad-bmm-create-story.md +14 -0
  678. package/templates/trae-bmad/rules/bmad-bmm-create-ux-design.md +6 -0
  679. package/templates/trae-bmad/rules/bmad-bmm-dev-story.md +14 -0
  680. package/templates/trae-bmad/rules/bmad-bmm-document-project.md +14 -0
  681. package/templates/trae-bmad/rules/bmad-bmm-domain-research.md +6 -0
  682. package/templates/trae-bmad/rules/bmad-bmm-edit-prd.md +6 -0
  683. package/templates/trae-bmad/rules/bmad-bmm-generate-project-context.md +6 -0
  684. package/templates/trae-bmad/rules/bmad-bmm-market-research.md +6 -0
  685. package/templates/trae-bmad/rules/bmad-bmm-qa-automate.md +15 -0
  686. package/templates/trae-bmad/rules/bmad-bmm-qa-generate-e2e-tests.md +14 -0
  687. package/templates/trae-bmad/rules/bmad-bmm-quick-dev.md +6 -0
  688. package/templates/trae-bmad/rules/bmad-bmm-quick-spec.md +6 -0
  689. package/templates/trae-bmad/rules/bmad-bmm-retrospective.md +14 -0
  690. package/templates/trae-bmad/rules/bmad-bmm-sprint-planning.md +14 -0
  691. package/templates/trae-bmad/rules/bmad-bmm-sprint-status.md +14 -0
  692. package/templates/trae-bmad/rules/bmad-bmm-technical-research.md +6 -0
  693. package/templates/trae-bmad/rules/bmad-bmm-validate-prd.md +6 -0
  694. package/templates/trae-bmad/rules/bmad-brainstorming.md +6 -0
  695. package/templates/trae-bmad/rules/bmad-editorial-review-prose.md +10 -0
  696. package/templates/trae-bmad/rules/bmad-editorial-review-structure.md +10 -0
  697. package/templates/trae-bmad/rules/bmad-help.md +10 -0
  698. package/templates/trae-bmad/rules/bmad-index-docs.md +10 -0
  699. package/templates/trae-bmad/rules/bmad-party-mode.md +6 -0
  700. package/templates/trae-bmad/rules/bmad-review-adversarial-general.md +10 -0
  701. package/templates/trae-bmad/rules/bmad-shard-doc.md +10 -0
  702. package/templates/trae-bmad/rules/bmad-tea-teach-me-testing.md +6 -0
  703. package/templates/trae-bmad/rules/bmad-tea-testarch-atdd.md +14 -0
  704. package/templates/trae-bmad/rules/bmad-tea-testarch-automate.md +14 -0
  705. package/templates/trae-bmad/rules/bmad-tea-testarch-ci.md +14 -0
  706. package/templates/trae-bmad/rules/bmad-tea-testarch-framework.md +14 -0
  707. package/templates/trae-bmad/rules/bmad-tea-testarch-nfr.md +14 -0
  708. package/templates/trae-bmad/rules/bmad-tea-testarch-test-design.md +14 -0
  709. package/templates/trae-bmad/rules/bmad-tea-testarch-test-review.md +14 -0
  710. package/templates/trae-bmad/rules/bmad-tea-testarch-trace.md +14 -0
@@ -0,0 +1,157 @@
1
+ ---
2
+ name: springboot-tdd
3
+ description: Test-driven development for Spring Boot using JUnit 5, Mockito, MockMvc, Testcontainers, and JaCoCo. Use when adding features, fixing bugs, or refactoring.
4
+ ---
5
+
6
+ # Spring Boot TDD Workflow
7
+
8
+ TDD guidance for Spring Boot services with 80%+ coverage (unit + integration).
9
+
10
+ ## When to Use
11
+
12
+ - New features or endpoints
13
+ - Bug fixes or refactors
14
+ - Adding data access logic or security rules
15
+
16
+ ## Workflow
17
+
18
+ 1) Write tests first (they should fail)
19
+ 2) Implement minimal code to pass
20
+ 3) Refactor with tests green
21
+ 4) Enforce coverage (JaCoCo)
22
+
23
+ ## Unit Tests (JUnit 5 + Mockito)
24
+
25
+ ```java
26
+ @ExtendWith(MockitoExtension.class)
27
+ class MarketServiceTest {
28
+ @Mock MarketRepository repo;
29
+ @InjectMocks MarketService service;
30
+
31
+ @Test
32
+ void createsMarket() {
33
+ CreateMarketRequest req = new CreateMarketRequest("name", "desc", Instant.now(), List.of("cat"));
34
+ when(repo.save(any())).thenAnswer(inv -> inv.getArgument(0));
35
+
36
+ Market result = service.create(req);
37
+
38
+ assertThat(result.name()).isEqualTo("name");
39
+ verify(repo).save(any());
40
+ }
41
+ }
42
+ ```
43
+
44
+ Patterns:
45
+ - Arrange-Act-Assert
46
+ - Avoid partial mocks; prefer explicit stubbing
47
+ - Use `@ParameterizedTest` for variants
48
+
49
+ ## Web Layer Tests (MockMvc)
50
+
51
+ ```java
52
+ @WebMvcTest(MarketController.class)
53
+ class MarketControllerTest {
54
+ @Autowired MockMvc mockMvc;
55
+ @MockBean MarketService marketService;
56
+
57
+ @Test
58
+ void returnsMarkets() throws Exception {
59
+ when(marketService.list(any())).thenReturn(Page.empty());
60
+
61
+ mockMvc.perform(get("/api/markets"))
62
+ .andExpect(status().isOk())
63
+ .andExpect(jsonPath("$.content").isArray());
64
+ }
65
+ }
66
+ ```
67
+
68
+ ## Integration Tests (SpringBootTest)
69
+
70
+ ```java
71
+ @SpringBootTest
72
+ @AutoConfigureMockMvc
73
+ @ActiveProfiles("test")
74
+ class MarketIntegrationTest {
75
+ @Autowired MockMvc mockMvc;
76
+
77
+ @Test
78
+ void createsMarket() throws Exception {
79
+ mockMvc.perform(post("/api/markets")
80
+ .contentType(MediaType.APPLICATION_JSON)
81
+ .content("""
82
+ {"name":"Test","description":"Desc","endDate":"2030-01-01T00:00:00Z","categories":["general"]}
83
+ """))
84
+ .andExpect(status().isCreated());
85
+ }
86
+ }
87
+ ```
88
+
89
+ ## Persistence Tests (DataJpaTest)
90
+
91
+ ```java
92
+ @DataJpaTest
93
+ @AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE)
94
+ @Import(TestContainersConfig.class)
95
+ class MarketRepositoryTest {
96
+ @Autowired MarketRepository repo;
97
+
98
+ @Test
99
+ void savesAndFinds() {
100
+ MarketEntity entity = new MarketEntity();
101
+ entity.setName("Test");
102
+ repo.save(entity);
103
+
104
+ Optional<MarketEntity> found = repo.findByName("Test");
105
+ assertThat(found).isPresent();
106
+ }
107
+ }
108
+ ```
109
+
110
+ ## Testcontainers
111
+
112
+ - Use reusable containers for Postgres/Redis to mirror production
113
+ - Wire via `@DynamicPropertySource` to inject JDBC URLs into Spring context
114
+
115
+ ## Coverage (JaCoCo)
116
+
117
+ Maven snippet:
118
+ ```xml
119
+ <plugin>
120
+ <groupId>org.jacoco</groupId>
121
+ <artifactId>jacoco-maven-plugin</artifactId>
122
+ <version>0.8.14</version>
123
+ <executions>
124
+ <execution>
125
+ <goals><goal>prepare-agent</goal></goals>
126
+ </execution>
127
+ <execution>
128
+ <id>report</id>
129
+ <phase>verify</phase>
130
+ <goals><goal>report</goal></goals>
131
+ </execution>
132
+ </executions>
133
+ </plugin>
134
+ ```
135
+
136
+ ## Assertions
137
+
138
+ - Prefer AssertJ (`assertThat`) for readability
139
+ - For JSON responses, use `jsonPath`
140
+ - For exceptions: `assertThatThrownBy(...)`
141
+
142
+ ## Test Data Builders
143
+
144
+ ```java
145
+ class MarketBuilder {
146
+ private String name = "Test";
147
+ MarketBuilder withName(String name) { this.name = name; return this; }
148
+ Market build() { return new Market(null, name, MarketStatus.ACTIVE); }
149
+ }
150
+ ```
151
+
152
+ ## CI Commands
153
+
154
+ - Maven: `mvn -T 4 test` or `mvn verify`
155
+ - Gradle: `./gradlew test jacocoTestReport`
156
+
157
+ **Remember**: Keep tests fast, isolated, and deterministic. Test behavior, not implementation details.
@@ -0,0 +1,230 @@
1
+ ---
2
+ name: springboot-verification
3
+ description: "Verification loop for Spring Boot projects: build, static analysis, tests with coverage, security scans, and diff review before release or PR."
4
+ ---
5
+
6
+ # Spring Boot Verification Loop
7
+
8
+ Run before PRs, after major changes, and pre-deploy.
9
+
10
+ ## When to Activate
11
+
12
+ - Before opening a pull request for a Spring Boot service
13
+ - After major refactoring or dependency upgrades
14
+ - Pre-deployment verification for staging or production
15
+ - Running full build → lint → test → security scan pipeline
16
+ - Validating test coverage meets thresholds
17
+
18
+ ## Phase 1: Build
19
+
20
+ ```bash
21
+ mvn -T 4 clean verify -DskipTests
22
+ # or
23
+ ./gradlew clean assemble -x test
24
+ ```
25
+
26
+ If build fails, stop and fix.
27
+
28
+ ## Phase 2: Static Analysis
29
+
30
+ Maven (common plugins):
31
+ ```bash
32
+ mvn -T 4 spotbugs:check pmd:check checkstyle:check
33
+ ```
34
+
35
+ Gradle (if configured):
36
+ ```bash
37
+ ./gradlew checkstyleMain pmdMain spotbugsMain
38
+ ```
39
+
40
+ ## Phase 3: Tests + Coverage
41
+
42
+ ```bash
43
+ mvn -T 4 test
44
+ mvn jacoco:report # verify 80%+ coverage
45
+ # or
46
+ ./gradlew test jacocoTestReport
47
+ ```
48
+
49
+ Report:
50
+ - Total tests, passed/failed
51
+ - Coverage % (lines/branches)
52
+
53
+ ### Unit Tests
54
+
55
+ Test service logic in isolation with mocked dependencies:
56
+
57
+ ```java
58
+ @ExtendWith(MockitoExtension.class)
59
+ class UserServiceTest {
60
+
61
+ @Mock private UserRepository userRepository;
62
+ @InjectMocks private UserService userService;
63
+
64
+ @Test
65
+ void createUser_validInput_returnsUser() {
66
+ var dto = new CreateUserDto("Alice", "alice@example.com");
67
+ var expected = new User(1L, "Alice", "alice@example.com");
68
+ when(userRepository.save(any(User.class))).thenReturn(expected);
69
+
70
+ var result = userService.create(dto);
71
+
72
+ assertThat(result.name()).isEqualTo("Alice");
73
+ verify(userRepository).save(any(User.class));
74
+ }
75
+
76
+ @Test
77
+ void createUser_duplicateEmail_throwsException() {
78
+ var dto = new CreateUserDto("Alice", "existing@example.com");
79
+ when(userRepository.existsByEmail(dto.email())).thenReturn(true);
80
+
81
+ assertThatThrownBy(() -> userService.create(dto))
82
+ .isInstanceOf(DuplicateEmailException.class);
83
+ }
84
+ }
85
+ ```
86
+
87
+ ### Integration Tests with Testcontainers
88
+
89
+ Test against a real database instead of H2:
90
+
91
+ ```java
92
+ @SpringBootTest
93
+ @Testcontainers
94
+ class UserRepositoryIntegrationTest {
95
+
96
+ @Container
97
+ static PostgreSQLContainer<?> postgres = new PostgreSQLContainer<>("postgres:16-alpine")
98
+ .withDatabaseName("testdb");
99
+
100
+ @DynamicPropertySource
101
+ static void configureProperties(DynamicPropertyRegistry registry) {
102
+ registry.add("spring.datasource.url", postgres::getJdbcUrl);
103
+ registry.add("spring.datasource.username", postgres::getUsername);
104
+ registry.add("spring.datasource.password", postgres::getPassword);
105
+ }
106
+
107
+ @Autowired private UserRepository userRepository;
108
+
109
+ @Test
110
+ void findByEmail_existingUser_returnsUser() {
111
+ userRepository.save(new User("Alice", "alice@example.com"));
112
+
113
+ var found = userRepository.findByEmail("alice@example.com");
114
+
115
+ assertThat(found).isPresent();
116
+ assertThat(found.get().getName()).isEqualTo("Alice");
117
+ }
118
+ }
119
+ ```
120
+
121
+ ### API Tests with MockMvc
122
+
123
+ Test controller layer with full Spring context:
124
+
125
+ ```java
126
+ @WebMvcTest(UserController.class)
127
+ class UserControllerTest {
128
+
129
+ @Autowired private MockMvc mockMvc;
130
+ @MockBean private UserService userService;
131
+
132
+ @Test
133
+ void createUser_validInput_returns201() throws Exception {
134
+ var user = new UserDto(1L, "Alice", "alice@example.com");
135
+ when(userService.create(any())).thenReturn(user);
136
+
137
+ mockMvc.perform(post("/api/users")
138
+ .contentType(MediaType.APPLICATION_JSON)
139
+ .content("""
140
+ {"name": "Alice", "email": "alice@example.com"}
141
+ """))
142
+ .andExpect(status().isCreated())
143
+ .andExpect(jsonPath("$.name").value("Alice"));
144
+ }
145
+
146
+ @Test
147
+ void createUser_invalidEmail_returns400() throws Exception {
148
+ mockMvc.perform(post("/api/users")
149
+ .contentType(MediaType.APPLICATION_JSON)
150
+ .content("""
151
+ {"name": "Alice", "email": "not-an-email"}
152
+ """))
153
+ .andExpect(status().isBadRequest());
154
+ }
155
+ }
156
+ ```
157
+
158
+ ## Phase 4: Security Scan
159
+
160
+ ```bash
161
+ # Dependency CVEs
162
+ mvn org.owasp:dependency-check-maven:check
163
+ # or
164
+ ./gradlew dependencyCheckAnalyze
165
+
166
+ # Secrets in source
167
+ grep -rn "password\s*=\s*\"" src/ --include="*.java" --include="*.yml" --include="*.properties"
168
+ grep -rn "sk-\|api_key\|secret" src/ --include="*.java" --include="*.yml"
169
+
170
+ # Secrets (git history)
171
+ git secrets --scan # if configured
172
+ ```
173
+
174
+ ### Common Security Findings
175
+
176
+ ```
177
+ # Check for System.out.println (use logger instead)
178
+ grep -rn "System\.out\.print" src/main/ --include="*.java"
179
+
180
+ # Check for raw exception messages in responses
181
+ grep -rn "e\.getMessage()" src/main/ --include="*.java"
182
+
183
+ # Check for wildcard CORS
184
+ grep -rn "allowedOrigins.*\*" src/main/ --include="*.java"
185
+ ```
186
+
187
+ ## Phase 5: Lint/Format (optional gate)
188
+
189
+ ```bash
190
+ mvn spotless:apply # if using Spotless plugin
191
+ ./gradlew spotlessApply
192
+ ```
193
+
194
+ ## Phase 6: Diff Review
195
+
196
+ ```bash
197
+ git diff --stat
198
+ git diff
199
+ ```
200
+
201
+ Checklist:
202
+ - No debugging logs left (`System.out`, `log.debug` without guards)
203
+ - Meaningful errors and HTTP statuses
204
+ - Transactions and validation present where needed
205
+ - Config changes documented
206
+
207
+ ## Output Template
208
+
209
+ ```
210
+ VERIFICATION REPORT
211
+ ===================
212
+ Build: [PASS/FAIL]
213
+ Static: [PASS/FAIL] (spotbugs/pmd/checkstyle)
214
+ Tests: [PASS/FAIL] (X/Y passed, Z% coverage)
215
+ Security: [PASS/FAIL] (CVE findings: N)
216
+ Diff: [X files changed]
217
+
218
+ Overall: [READY / NOT READY]
219
+
220
+ Issues to Fix:
221
+ 1. ...
222
+ 2. ...
223
+ ```
224
+
225
+ ## Continuous Mode
226
+
227
+ - Re-run phases on significant changes or every 30–60 minutes in long sessions
228
+ - Keep a short loop: `mvn -T 4 test` + spotbugs for quick feedback
229
+
230
+ **Remember**: Fast feedback beats late surprises. Keep the gate strict—treat warnings as defects in production systems.
@@ -0,0 +1,102 @@
1
+ ---
2
+ name: strategic-compact
3
+ description: Suggests manual context compaction at logical intervals to preserve context through task phases rather than arbitrary auto-compaction.
4
+ ---
5
+
6
+ # Strategic Compact Skill
7
+
8
+ Suggests manual `/compact` at strategic points in your workflow rather than relying on arbitrary auto-compaction.
9
+
10
+ ## When to Activate
11
+
12
+ - Running long sessions that approach context limits (200K+ tokens)
13
+ - Working on multi-phase tasks (research → plan → implement → test)
14
+ - Switching between unrelated tasks within the same session
15
+ - After completing a major milestone and starting new work
16
+ - When responses slow down or become less coherent (context pressure)
17
+
18
+ ## Why Strategic Compaction?
19
+
20
+ Auto-compaction triggers at arbitrary points:
21
+ - Often mid-task, losing important context
22
+ - No awareness of logical task boundaries
23
+ - Can interrupt complex multi-step operations
24
+
25
+ Strategic compaction at logical boundaries:
26
+ - **After exploration, before execution** — Compact research context, keep implementation plan
27
+ - **After completing a milestone** — Fresh start for next phase
28
+ - **Before major context shifts** — Clear exploration context before different task
29
+
30
+ ## How It Works
31
+
32
+ The `suggest-compact.js` script runs on PreToolUse (Edit/Write) and:
33
+
34
+ 1. **Tracks tool calls** — Counts tool invocations in session
35
+ 2. **Threshold detection** — Suggests at configurable threshold (default: 50 calls)
36
+ 3. **Periodic reminders** — Reminds every 25 calls after threshold
37
+
38
+ ## Hook Setup
39
+
40
+ Add to your `~/.claude/settings.json`:
41
+
42
+ ```json
43
+ {
44
+ "hooks": {
45
+ "PreToolUse": [
46
+ {
47
+ "matcher": "Edit",
48
+ "hooks": [{ "type": "command", "command": "node ~/.claude/skills/strategic-compact/suggest-compact.js" }]
49
+ },
50
+ {
51
+ "matcher": "Write",
52
+ "hooks": [{ "type": "command", "command": "node ~/.claude/skills/strategic-compact/suggest-compact.js" }]
53
+ }
54
+ ]
55
+ }
56
+ }
57
+ ```
58
+
59
+ ## Configuration
60
+
61
+ Environment variables:
62
+ - `COMPACT_THRESHOLD` — Tool calls before first suggestion (default: 50)
63
+
64
+ ## Compaction Decision Guide
65
+
66
+ Use this table to decide when to compact:
67
+
68
+ | Phase Transition | Compact? | Why |
69
+ |-----------------|----------|-----|
70
+ | Research → Planning | Yes | Research context is bulky; plan is the distilled output |
71
+ | Planning → Implementation | Yes | Plan is in TodoWrite or a file; free up context for code |
72
+ | Implementation → Testing | Maybe | Keep if tests reference recent code; compact if switching focus |
73
+ | Debugging → Next feature | Yes | Debug traces pollute context for unrelated work |
74
+ | Mid-implementation | No | Losing variable names, file paths, and partial state is costly |
75
+ | After a failed approach | Yes | Clear the dead-end reasoning before trying a new approach |
76
+
77
+ ## What Survives Compaction
78
+
79
+ Understanding what persists helps you compact with confidence:
80
+
81
+ | Persists | Lost |
82
+ |----------|------|
83
+ | CLAUDE.md instructions | Intermediate reasoning and analysis |
84
+ | TodoWrite task list | File contents you previously read |
85
+ | Memory files (`~/.claude/memory/`) | Multi-step conversation context |
86
+ | Git state (commits, branches) | Tool call history and counts |
87
+ | Files on disk | Nuanced user preferences stated verbally |
88
+
89
+ ## Best Practices
90
+
91
+ 1. **Compact after planning** — Once plan is finalized in TodoWrite, compact to start fresh
92
+ 2. **Compact after debugging** — Clear error-resolution context before continuing
93
+ 3. **Don't compact mid-implementation** — Preserve context for related changes
94
+ 4. **Read the suggestion** — The hook tells you *when*, you decide *if*
95
+ 5. **Write before compacting** — Save important context to files or memory before compacting
96
+ 6. **Use `/compact` with a summary** — Add a custom message: `/compact Focus on implementing auth middleware next`
97
+
98
+ ## Related
99
+
100
+ - [The Longform Guide](https://x.com/affaanmustafa/status/2014040193557471352) — Token optimization section
101
+ - Memory persistence hooks — For state that survives compaction
102
+ - `continuous-learning` skill — Extracts patterns before session ends
@@ -0,0 +1,54 @@
1
+ #!/bin/bash
2
+ # Strategic Compact Suggester
3
+ # Runs on PreToolUse or periodically to suggest manual compaction at logical intervals
4
+ #
5
+ # Why manual over auto-compact:
6
+ # - Auto-compact happens at arbitrary points, often mid-task
7
+ # - Strategic compacting preserves context through logical phases
8
+ # - Compact after exploration, before execution
9
+ # - Compact after completing a milestone, before starting next
10
+ #
11
+ # Hook config (in ~/.claude/settings.json):
12
+ # {
13
+ # "hooks": {
14
+ # "PreToolUse": [{
15
+ # "matcher": "Edit|Write",
16
+ # "hooks": [{
17
+ # "type": "command",
18
+ # "command": "~/.claude/skills/strategic-compact/suggest-compact.sh"
19
+ # }]
20
+ # }]
21
+ # }
22
+ # }
23
+ #
24
+ # Criteria for suggesting compact:
25
+ # - Session has been running for extended period
26
+ # - Large number of tool calls made
27
+ # - Transitioning from research/exploration to implementation
28
+ # - Plan has been finalized
29
+
30
+ # Track tool call count (increment in a temp file)
31
+ # Use CLAUDE_SESSION_ID for session-specific counter (not $$ which changes per invocation)
32
+ SESSION_ID="${CLAUDE_SESSION_ID:-${PPID:-default}}"
33
+ COUNTER_FILE="/tmp/claude-tool-count-${SESSION_ID}"
34
+ THRESHOLD=${COMPACT_THRESHOLD:-50}
35
+
36
+ # Initialize or increment counter
37
+ if [ -f "$COUNTER_FILE" ]; then
38
+ count=$(cat "$COUNTER_FILE")
39
+ count=$((count + 1))
40
+ echo "$count" > "$COUNTER_FILE"
41
+ else
42
+ echo "1" > "$COUNTER_FILE"
43
+ count=1
44
+ fi
45
+
46
+ # Suggest compact after threshold tool calls
47
+ if [ "$count" -eq "$THRESHOLD" ]; then
48
+ echo "[StrategicCompact] $THRESHOLD tool calls reached - consider /compact if transitioning phases" >&2
49
+ fi
50
+
51
+ # Suggest at regular intervals after threshold
52
+ if [ "$count" -gt "$THRESHOLD" ] && [ $((count % 25)) -eq 0 ]; then
53
+ echo "[StrategicCompact] $count tool calls - good checkpoint for /compact if context is stale" >&2
54
+ fi
@@ -0,0 +1,142 @@
1
+ ---
2
+ name: swift-actor-persistence
3
+ description: Thread-safe data persistence in Swift using actors — in-memory cache with file-backed storage, eliminating data races by design.
4
+ ---
5
+
6
+ # Swift Actors for Thread-Safe Persistence
7
+
8
+ Patterns for building thread-safe data persistence layers using Swift actors. Combines in-memory caching with file-backed storage, leveraging the actor model to eliminate data races at compile time.
9
+
10
+ ## When to Activate
11
+
12
+ - Building a data persistence layer in Swift 5.5+
13
+ - Need thread-safe access to shared mutable state
14
+ - Want to eliminate manual synchronization (locks, DispatchQueues)
15
+ - Building offline-first apps with local storage
16
+
17
+ ## Core Pattern
18
+
19
+ ### Actor-Based Repository
20
+
21
+ The actor model guarantees serialized access — no data races, enforced by the compiler.
22
+
23
+ ```swift
24
+ public actor LocalRepository<T: Codable & Identifiable> where T.ID == String {
25
+ private var cache: [String: T] = [:]
26
+ private let fileURL: URL
27
+
28
+ public init(directory: URL = .documentsDirectory, filename: String = "data.json") {
29
+ self.fileURL = directory.appendingPathComponent(filename)
30
+ // Synchronous load during init (actor isolation not yet active)
31
+ self.cache = Self.loadSynchronously(from: fileURL)
32
+ }
33
+
34
+ // MARK: - Public API
35
+
36
+ public func save(_ item: T) throws {
37
+ cache[item.id] = item
38
+ try persistToFile()
39
+ }
40
+
41
+ public func delete(_ id: String) throws {
42
+ cache[id] = nil
43
+ try persistToFile()
44
+ }
45
+
46
+ public func find(by id: String) -> T? {
47
+ cache[id]
48
+ }
49
+
50
+ public func loadAll() -> [T] {
51
+ Array(cache.values)
52
+ }
53
+
54
+ // MARK: - Private
55
+
56
+ private func persistToFile() throws {
57
+ let data = try JSONEncoder().encode(Array(cache.values))
58
+ try data.write(to: fileURL, options: .atomic)
59
+ }
60
+
61
+ private static func loadSynchronously(from url: URL) -> [String: T] {
62
+ guard let data = try? Data(contentsOf: url),
63
+ let items = try? JSONDecoder().decode([T].self, from: data) else {
64
+ return [:]
65
+ }
66
+ return Dictionary(uniqueKeysWithValues: items.map { ($0.id, $0) })
67
+ }
68
+ }
69
+ ```
70
+
71
+ ### Usage
72
+
73
+ All calls are automatically async due to actor isolation:
74
+
75
+ ```swift
76
+ let repository = LocalRepository<Question>()
77
+
78
+ // Read — fast O(1) lookup from in-memory cache
79
+ let question = await repository.find(by: "q-001")
80
+ let allQuestions = await repository.loadAll()
81
+
82
+ // Write — updates cache and persists to file atomically
83
+ try await repository.save(newQuestion)
84
+ try await repository.delete("q-001")
85
+ ```
86
+
87
+ ### Combining with @Observable ViewModel
88
+
89
+ ```swift
90
+ @Observable
91
+ final class QuestionListViewModel {
92
+ private(set) var questions: [Question] = []
93
+ private let repository: LocalRepository<Question>
94
+
95
+ init(repository: LocalRepository<Question> = LocalRepository()) {
96
+ self.repository = repository
97
+ }
98
+
99
+ func load() async {
100
+ questions = await repository.loadAll()
101
+ }
102
+
103
+ func add(_ question: Question) async throws {
104
+ try await repository.save(question)
105
+ questions = await repository.loadAll()
106
+ }
107
+ }
108
+ ```
109
+
110
+ ## Key Design Decisions
111
+
112
+ | Decision | Rationale |
113
+ |----------|-----------|
114
+ | Actor (not class + lock) | Compiler-enforced thread safety, no manual synchronization |
115
+ | In-memory cache + file persistence | Fast reads from cache, durable writes to disk |
116
+ | Synchronous init loading | Avoids async initialization complexity |
117
+ | Dictionary keyed by ID | O(1) lookups by identifier |
118
+ | Generic over `Codable & Identifiable` | Reusable across any model type |
119
+ | Atomic file writes (`.atomic`) | Prevents partial writes on crash |
120
+
121
+ ## Best Practices
122
+
123
+ - **Use `Sendable` types** for all data crossing actor boundaries
124
+ - **Keep the actor's public API minimal** — only expose domain operations, not persistence details
125
+ - **Use `.atomic` writes** to prevent data corruption if the app crashes mid-write
126
+ - **Load synchronously in `init`** — async initializers add complexity with minimal benefit for local files
127
+ - **Combine with `@Observable`** ViewModels for reactive UI updates
128
+
129
+ ## Anti-Patterns to Avoid
130
+
131
+ - Using `DispatchQueue` or `NSLock` instead of actors for new Swift concurrency code
132
+ - Exposing the internal cache dictionary to external callers
133
+ - Making the file URL configurable without validation
134
+ - Forgetting that all actor method calls are `await` — callers must handle async context
135
+ - Using `nonisolated` to bypass actor isolation (defeats the purpose)
136
+
137
+ ## When to Use
138
+
139
+ - Local data storage in iOS/macOS apps (user data, settings, cached content)
140
+ - Offline-first architectures that sync to a server later
141
+ - Any shared mutable state that multiple parts of the app access concurrently
142
+ - Replacing legacy `DispatchQueue`-based thread safety with modern Swift concurrency