@delorenj/pjangler 1.1.3

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 (898) hide show
  1. package/README.md +34 -0
  2. package/dist/index.js +2620 -0
  3. package/dist/mcp-server.js +1491 -0
  4. package/package.json +46 -0
  5. package/templates/commonproject/.augment/commands/bmad/agents/bmb-agent-builder.md +14 -0
  6. package/templates/commonproject/.augment/commands/bmad/agents/bmb-module-builder.md +14 -0
  7. package/templates/commonproject/.augment/commands/bmad/agents/bmb-workflow-builder.md +14 -0
  8. package/templates/commonproject/.augment/commands/bmad/agents/bmm-analyst.md +14 -0
  9. package/templates/commonproject/.augment/commands/bmad/agents/bmm-architect.md +14 -0
  10. package/templates/commonproject/.augment/commands/bmad/agents/bmm-dev.md +14 -0
  11. package/templates/commonproject/.augment/commands/bmad/agents/bmm-pm.md +14 -0
  12. package/templates/commonproject/.augment/commands/bmad/agents/bmm-quick-flow-solo-dev.md +14 -0
  13. package/templates/commonproject/.augment/commands/bmad/agents/bmm-sm.md +14 -0
  14. package/templates/commonproject/.augment/commands/bmad/agents/bmm-tea.md +14 -0
  15. package/templates/commonproject/.augment/commands/bmad/agents/bmm-tech-writer.md +14 -0
  16. package/templates/commonproject/.augment/commands/bmad/agents/bmm-ux-designer.md +14 -0
  17. package/templates/commonproject/.augment/commands/bmad/agents/cis-brainstorming-coach.md +14 -0
  18. package/templates/commonproject/.augment/commands/bmad/agents/cis-creative-problem-solver.md +14 -0
  19. package/templates/commonproject/.augment/commands/bmad/agents/cis-design-thinking-coach.md +14 -0
  20. package/templates/commonproject/.augment/commands/bmad/agents/cis-innovation-strategist.md +14 -0
  21. package/templates/commonproject/.augment/commands/bmad/agents/cis-presentation-master.md +14 -0
  22. package/templates/commonproject/.augment/commands/bmad/agents/cis-storyteller.md +14 -0
  23. package/templates/commonproject/.augment/commands/bmad/agents/core-bmad-master.md +14 -0
  24. package/templates/commonproject/.augment/commands/bmad/tasks/core-index-docs.md +74 -0
  25. package/templates/commonproject/.augment/commands/bmad/tasks/core-shard-doc.md +118 -0
  26. package/templates/commonproject/.augment/commands/bmad/workflows/bmb-agent.md +5 -0
  27. package/templates/commonproject/.augment/commands/bmad/workflows/bmb-module.md +5 -0
  28. package/templates/commonproject/.augment/commands/bmad/workflows/bmb-workflow.md +5 -0
  29. package/templates/commonproject/.augment/commands/bmad/workflows/bmm-check-implementation-readiness.md +5 -0
  30. package/templates/commonproject/.augment/commands/bmad/workflows/bmm-code-review.md +13 -0
  31. package/templates/commonproject/.augment/commands/bmad/workflows/bmm-correct-course.md +13 -0
  32. package/templates/commonproject/.augment/commands/bmad/workflows/bmm-create-architecture.md +5 -0
  33. package/templates/commonproject/.augment/commands/bmad/workflows/bmm-create-epics-and-stories.md +5 -0
  34. package/templates/commonproject/.augment/commands/bmad/workflows/bmm-create-excalidraw-dataflow.md +13 -0
  35. package/templates/commonproject/.augment/commands/bmad/workflows/bmm-create-excalidraw-diagram.md +13 -0
  36. package/templates/commonproject/.augment/commands/bmad/workflows/bmm-create-excalidraw-flowchart.md +13 -0
  37. package/templates/commonproject/.augment/commands/bmad/workflows/bmm-create-excalidraw-wireframe.md +13 -0
  38. package/templates/commonproject/.augment/commands/bmad/workflows/bmm-create-product-brief.md +5 -0
  39. package/templates/commonproject/.augment/commands/bmad/workflows/bmm-create-story.md +13 -0
  40. package/templates/commonproject/.augment/commands/bmad/workflows/bmm-create-ux-design.md +5 -0
  41. package/templates/commonproject/.augment/commands/bmad/workflows/bmm-dev-story.md +13 -0
  42. package/templates/commonproject/.augment/commands/bmad/workflows/bmm-document-project.md +13 -0
  43. package/templates/commonproject/.augment/commands/bmad/workflows/bmm-generate-project-context.md +5 -0
  44. package/templates/commonproject/.augment/commands/bmad/workflows/bmm-prd.md +5 -0
  45. package/templates/commonproject/.augment/commands/bmad/workflows/bmm-quick-dev.md +5 -0
  46. package/templates/commonproject/.augment/commands/bmad/workflows/bmm-quick-spec.md +5 -0
  47. package/templates/commonproject/.augment/commands/bmad/workflows/bmm-research.md +5 -0
  48. package/templates/commonproject/.augment/commands/bmad/workflows/bmm-retrospective.md +13 -0
  49. package/templates/commonproject/.augment/commands/bmad/workflows/bmm-sprint-planning.md +13 -0
  50. package/templates/commonproject/.augment/commands/bmad/workflows/bmm-sprint-status.md +13 -0
  51. package/templates/commonproject/.augment/commands/bmad/workflows/bmm-testarch-atdd.md +13 -0
  52. package/templates/commonproject/.augment/commands/bmad/workflows/bmm-testarch-automate.md +13 -0
  53. package/templates/commonproject/.augment/commands/bmad/workflows/bmm-testarch-ci.md +13 -0
  54. package/templates/commonproject/.augment/commands/bmad/workflows/bmm-testarch-framework.md +13 -0
  55. package/templates/commonproject/.augment/commands/bmad/workflows/bmm-testarch-nfr.md +13 -0
  56. package/templates/commonproject/.augment/commands/bmad/workflows/bmm-testarch-test-design.md +13 -0
  57. package/templates/commonproject/.augment/commands/bmad/workflows/bmm-testarch-test-review.md +13 -0
  58. package/templates/commonproject/.augment/commands/bmad/workflows/bmm-testarch-trace.md +13 -0
  59. package/templates/commonproject/.augment/commands/bmad/workflows/bmm-workflow-init.md +13 -0
  60. package/templates/commonproject/.augment/commands/bmad/workflows/bmm-workflow-status.md +13 -0
  61. package/templates/commonproject/.augment/commands/bmad/workflows/cis-design-thinking.md +13 -0
  62. package/templates/commonproject/.augment/commands/bmad/workflows/cis-innovation-strategy.md +13 -0
  63. package/templates/commonproject/.augment/commands/bmad/workflows/cis-problem-solving.md +13 -0
  64. package/templates/commonproject/.augment/commands/bmad/workflows/cis-storytelling.md +13 -0
  65. package/templates/commonproject/.augment/commands/bmad/workflows/core-brainstorming.md +5 -0
  66. package/templates/commonproject/.augment/commands/bmad/workflows/core-party-mode.md +5 -0
  67. package/templates/commonproject/.augment/commands/bmad/workflows/custom-ticket-lifecycle.md +5 -0
  68. package/templates/commonproject/.claude/commands/bmad/bmb/agents/agent-builder.md +14 -0
  69. package/templates/commonproject/.claude/commands/bmad/bmb/agents/module-builder.md +14 -0
  70. package/templates/commonproject/.claude/commands/bmad/bmb/agents/workflow-builder.md +14 -0
  71. package/templates/commonproject/.claude/commands/bmad/bmb/workflows/agent.md +5 -0
  72. package/templates/commonproject/.claude/commands/bmad/bmb/workflows/module.md +5 -0
  73. package/templates/commonproject/.claude/commands/bmad/bmb/workflows/workflow.md +5 -0
  74. package/templates/commonproject/.claude/commands/bmad/bmm/agents/analyst.md +14 -0
  75. package/templates/commonproject/.claude/commands/bmad/bmm/agents/architect.md +14 -0
  76. package/templates/commonproject/.claude/commands/bmad/bmm/agents/dev.md +14 -0
  77. package/templates/commonproject/.claude/commands/bmad/bmm/agents/pm.md +14 -0
  78. package/templates/commonproject/.claude/commands/bmad/bmm/agents/quick-flow-solo-dev.md +14 -0
  79. package/templates/commonproject/.claude/commands/bmad/bmm/agents/sm.md +14 -0
  80. package/templates/commonproject/.claude/commands/bmad/bmm/agents/tea.md +14 -0
  81. package/templates/commonproject/.claude/commands/bmad/bmm/agents/tech-writer.md +14 -0
  82. package/templates/commonproject/.claude/commands/bmad/bmm/agents/ux-designer.md +14 -0
  83. package/templates/commonproject/.claude/commands/bmad/bmm/workflows/check-implementation-readiness.md +5 -0
  84. package/templates/commonproject/.claude/commands/bmad/bmm/workflows/code-review.md +13 -0
  85. package/templates/commonproject/.claude/commands/bmad/bmm/workflows/correct-course.md +13 -0
  86. package/templates/commonproject/.claude/commands/bmad/bmm/workflows/create-architecture.md +5 -0
  87. package/templates/commonproject/.claude/commands/bmad/bmm/workflows/create-epics-and-stories.md +5 -0
  88. package/templates/commonproject/.claude/commands/bmad/bmm/workflows/create-excalidraw-dataflow.md +13 -0
  89. package/templates/commonproject/.claude/commands/bmad/bmm/workflows/create-excalidraw-diagram.md +13 -0
  90. package/templates/commonproject/.claude/commands/bmad/bmm/workflows/create-excalidraw-flowchart.md +13 -0
  91. package/templates/commonproject/.claude/commands/bmad/bmm/workflows/create-excalidraw-wireframe.md +13 -0
  92. package/templates/commonproject/.claude/commands/bmad/bmm/workflows/create-product-brief.md +5 -0
  93. package/templates/commonproject/.claude/commands/bmad/bmm/workflows/create-story.md +13 -0
  94. package/templates/commonproject/.claude/commands/bmad/bmm/workflows/create-ux-design.md +5 -0
  95. package/templates/commonproject/.claude/commands/bmad/bmm/workflows/dev-story.md +13 -0
  96. package/templates/commonproject/.claude/commands/bmad/bmm/workflows/document-project.md +13 -0
  97. package/templates/commonproject/.claude/commands/bmad/bmm/workflows/generate-project-context.md +5 -0
  98. package/templates/commonproject/.claude/commands/bmad/bmm/workflows/prd.md +5 -0
  99. package/templates/commonproject/.claude/commands/bmad/bmm/workflows/quick-dev.md +5 -0
  100. package/templates/commonproject/.claude/commands/bmad/bmm/workflows/quick-spec.md +5 -0
  101. package/templates/commonproject/.claude/commands/bmad/bmm/workflows/research.md +5 -0
  102. package/templates/commonproject/.claude/commands/bmad/bmm/workflows/retrospective.md +13 -0
  103. package/templates/commonproject/.claude/commands/bmad/bmm/workflows/sprint-planning.md +13 -0
  104. package/templates/commonproject/.claude/commands/bmad/bmm/workflows/sprint-status.md +13 -0
  105. package/templates/commonproject/.claude/commands/bmad/bmm/workflows/testarch-atdd.md +13 -0
  106. package/templates/commonproject/.claude/commands/bmad/bmm/workflows/testarch-automate.md +13 -0
  107. package/templates/commonproject/.claude/commands/bmad/bmm/workflows/testarch-ci.md +13 -0
  108. package/templates/commonproject/.claude/commands/bmad/bmm/workflows/testarch-framework.md +13 -0
  109. package/templates/commonproject/.claude/commands/bmad/bmm/workflows/testarch-nfr.md +13 -0
  110. package/templates/commonproject/.claude/commands/bmad/bmm/workflows/testarch-test-design.md +13 -0
  111. package/templates/commonproject/.claude/commands/bmad/bmm/workflows/testarch-test-review.md +13 -0
  112. package/templates/commonproject/.claude/commands/bmad/bmm/workflows/testarch-trace.md +13 -0
  113. package/templates/commonproject/.claude/commands/bmad/bmm/workflows/workflow-init.md +13 -0
  114. package/templates/commonproject/.claude/commands/bmad/bmm/workflows/workflow-status.md +13 -0
  115. package/templates/commonproject/.claude/commands/bmad/cis/agents/brainstorming-coach.md +14 -0
  116. package/templates/commonproject/.claude/commands/bmad/cis/agents/creative-problem-solver.md +14 -0
  117. package/templates/commonproject/.claude/commands/bmad/cis/agents/design-thinking-coach.md +14 -0
  118. package/templates/commonproject/.claude/commands/bmad/cis/agents/innovation-strategist.md +14 -0
  119. package/templates/commonproject/.claude/commands/bmad/cis/agents/presentation-master.md +14 -0
  120. package/templates/commonproject/.claude/commands/bmad/cis/agents/storyteller.md +14 -0
  121. package/templates/commonproject/.claude/commands/bmad/cis/workflows/design-thinking.md +13 -0
  122. package/templates/commonproject/.claude/commands/bmad/cis/workflows/innovation-strategy.md +13 -0
  123. package/templates/commonproject/.claude/commands/bmad/cis/workflows/problem-solving.md +13 -0
  124. package/templates/commonproject/.claude/commands/bmad/cis/workflows/storytelling.md +13 -0
  125. package/templates/commonproject/.claude/commands/bmad/core/agents/bmad-master.md +14 -0
  126. package/templates/commonproject/.claude/commands/bmad/core/tasks/index-docs.md +9 -0
  127. package/templates/commonproject/.claude/commands/bmad/core/tasks/shard-doc.md +9 -0
  128. package/templates/commonproject/.claude/commands/bmad/core/workflows/brainstorming.md +5 -0
  129. package/templates/commonproject/.claude/commands/bmad/core/workflows/party-mode.md +5 -0
  130. package/templates/commonproject/.claude/commands/bmad/custom/workflows/ticket-lifecycle.md +5 -0
  131. package/templates/commonproject/.copier-answers.yml +4 -0
  132. package/templates/commonproject/.gemini/commands/bmad-agent-bmb-agent-builder.toml +12 -0
  133. package/templates/commonproject/.gemini/commands/bmad-agent-bmb-module-builder.toml +12 -0
  134. package/templates/commonproject/.gemini/commands/bmad-agent-bmb-workflow-builder.toml +12 -0
  135. package/templates/commonproject/.gemini/commands/bmad-agent-bmm-analyst.toml +12 -0
  136. package/templates/commonproject/.gemini/commands/bmad-agent-bmm-architect.toml +12 -0
  137. package/templates/commonproject/.gemini/commands/bmad-agent-bmm-dev.toml +12 -0
  138. package/templates/commonproject/.gemini/commands/bmad-agent-bmm-pm.toml +12 -0
  139. package/templates/commonproject/.gemini/commands/bmad-agent-bmm-quick-flow-solo-dev.toml +12 -0
  140. package/templates/commonproject/.gemini/commands/bmad-agent-bmm-sm.toml +12 -0
  141. package/templates/commonproject/.gemini/commands/bmad-agent-bmm-tea.toml +12 -0
  142. package/templates/commonproject/.gemini/commands/bmad-agent-bmm-tech-writer.toml +12 -0
  143. package/templates/commonproject/.gemini/commands/bmad-agent-bmm-ux-designer.toml +12 -0
  144. package/templates/commonproject/.gemini/commands/bmad-agent-cis-brainstorming-coach.toml +12 -0
  145. package/templates/commonproject/.gemini/commands/bmad-agent-cis-creative-problem-solver.toml +12 -0
  146. package/templates/commonproject/.gemini/commands/bmad-agent-cis-design-thinking-coach.toml +12 -0
  147. package/templates/commonproject/.gemini/commands/bmad-agent-cis-innovation-strategist.toml +12 -0
  148. package/templates/commonproject/.gemini/commands/bmad-agent-cis-presentation-master.toml +12 -0
  149. package/templates/commonproject/.gemini/commands/bmad-agent-cis-storyteller.toml +12 -0
  150. package/templates/commonproject/.gemini/commands/bmad-agent-core-bmad-master.toml +12 -0
  151. package/templates/commonproject/.gemini/commands/bmad-task-core-index-docs.toml +12 -0
  152. package/templates/commonproject/.gemini/commands/bmad-task-core-review-adversarial-general.toml +12 -0
  153. package/templates/commonproject/.gemini/commands/bmad-task-core-shard-doc.toml +12 -0
  154. package/templates/commonproject/.gemini/commands/bmad-task-core-workflow.toml +12 -0
  155. package/templates/commonproject/.gemini/commands/bmad-workflow-bmb-agent.toml +4 -0
  156. package/templates/commonproject/.gemini/commands/bmad-workflow-bmb-module.toml +4 -0
  157. package/templates/commonproject/.gemini/commands/bmad-workflow-bmb-workflow.toml +4 -0
  158. package/templates/commonproject/.gemini/commands/bmad-workflow-bmm-check-implementation-readiness.toml +4 -0
  159. package/templates/commonproject/.gemini/commands/bmad-workflow-bmm-code-review.toml +12 -0
  160. package/templates/commonproject/.gemini/commands/bmad-workflow-bmm-correct-course.toml +12 -0
  161. package/templates/commonproject/.gemini/commands/bmad-workflow-bmm-create-architecture.toml +4 -0
  162. package/templates/commonproject/.gemini/commands/bmad-workflow-bmm-create-epics-and-stories.toml +4 -0
  163. package/templates/commonproject/.gemini/commands/bmad-workflow-bmm-create-excalidraw-dataflow.toml +12 -0
  164. package/templates/commonproject/.gemini/commands/bmad-workflow-bmm-create-excalidraw-diagram.toml +12 -0
  165. package/templates/commonproject/.gemini/commands/bmad-workflow-bmm-create-excalidraw-flowchart.toml +12 -0
  166. package/templates/commonproject/.gemini/commands/bmad-workflow-bmm-create-excalidraw-wireframe.toml +12 -0
  167. package/templates/commonproject/.gemini/commands/bmad-workflow-bmm-create-product-brief.toml +4 -0
  168. package/templates/commonproject/.gemini/commands/bmad-workflow-bmm-create-story.toml +12 -0
  169. package/templates/commonproject/.gemini/commands/bmad-workflow-bmm-create-ux-design.toml +4 -0
  170. package/templates/commonproject/.gemini/commands/bmad-workflow-bmm-dev-story.toml +12 -0
  171. package/templates/commonproject/.gemini/commands/bmad-workflow-bmm-document-project.toml +12 -0
  172. package/templates/commonproject/.gemini/commands/bmad-workflow-bmm-generate-project-context.toml +4 -0
  173. package/templates/commonproject/.gemini/commands/bmad-workflow-bmm-prd.toml +4 -0
  174. package/templates/commonproject/.gemini/commands/bmad-workflow-bmm-quick-dev.toml +4 -0
  175. package/templates/commonproject/.gemini/commands/bmad-workflow-bmm-quick-spec.toml +4 -0
  176. package/templates/commonproject/.gemini/commands/bmad-workflow-bmm-research.toml +4 -0
  177. package/templates/commonproject/.gemini/commands/bmad-workflow-bmm-retrospective.toml +12 -0
  178. package/templates/commonproject/.gemini/commands/bmad-workflow-bmm-sprint-planning.toml +12 -0
  179. package/templates/commonproject/.gemini/commands/bmad-workflow-bmm-sprint-status.toml +12 -0
  180. package/templates/commonproject/.gemini/commands/bmad-workflow-bmm-testarch-atdd.toml +12 -0
  181. package/templates/commonproject/.gemini/commands/bmad-workflow-bmm-testarch-automate.toml +12 -0
  182. package/templates/commonproject/.gemini/commands/bmad-workflow-bmm-testarch-ci.toml +12 -0
  183. package/templates/commonproject/.gemini/commands/bmad-workflow-bmm-testarch-framework.toml +12 -0
  184. package/templates/commonproject/.gemini/commands/bmad-workflow-bmm-testarch-nfr.toml +12 -0
  185. package/templates/commonproject/.gemini/commands/bmad-workflow-bmm-testarch-test-design.toml +12 -0
  186. package/templates/commonproject/.gemini/commands/bmad-workflow-bmm-testarch-test-review.toml +12 -0
  187. package/templates/commonproject/.gemini/commands/bmad-workflow-bmm-testarch-trace.toml +12 -0
  188. package/templates/commonproject/.gemini/commands/bmad-workflow-bmm-workflow-init.toml +12 -0
  189. package/templates/commonproject/.gemini/commands/bmad-workflow-bmm-workflow-status.toml +12 -0
  190. package/templates/commonproject/.gemini/commands/bmad-workflow-cis-design-thinking.toml +12 -0
  191. package/templates/commonproject/.gemini/commands/bmad-workflow-cis-innovation-strategy.toml +12 -0
  192. package/templates/commonproject/.gemini/commands/bmad-workflow-cis-problem-solving.toml +12 -0
  193. package/templates/commonproject/.gemini/commands/bmad-workflow-cis-storytelling.toml +12 -0
  194. package/templates/commonproject/.gemini/commands/bmad-workflow-core-brainstorming.toml +4 -0
  195. package/templates/commonproject/.gemini/commands/bmad-workflow-core-party-mode.toml +4 -0
  196. package/templates/commonproject/.gemini/commands/bmad-workflow-custom-ticket-lifecycle.toml +4 -0
  197. package/templates/commonproject/.github/agents/bmd-custom-bmb-agent-builder.agent.md +17 -0
  198. package/templates/commonproject/.github/agents/bmd-custom-bmb-module-builder.agent.md +17 -0
  199. package/templates/commonproject/.github/agents/bmd-custom-bmb-workflow-builder.agent.md +17 -0
  200. package/templates/commonproject/.github/agents/bmd-custom-bmm-analyst.agent.md +17 -0
  201. package/templates/commonproject/.github/agents/bmd-custom-bmm-architect.agent.md +17 -0
  202. package/templates/commonproject/.github/agents/bmd-custom-bmm-dev.agent.md +17 -0
  203. package/templates/commonproject/.github/agents/bmd-custom-bmm-pm.agent.md +17 -0
  204. package/templates/commonproject/.github/agents/bmd-custom-bmm-quick-flow-solo-dev.agent.md +17 -0
  205. package/templates/commonproject/.github/agents/bmd-custom-bmm-sm.agent.md +17 -0
  206. package/templates/commonproject/.github/agents/bmd-custom-bmm-tea.agent.md +17 -0
  207. package/templates/commonproject/.github/agents/bmd-custom-bmm-tech-writer.agent.md +17 -0
  208. package/templates/commonproject/.github/agents/bmd-custom-bmm-ux-designer.agent.md +17 -0
  209. package/templates/commonproject/.github/agents/bmd-custom-cis-brainstorming-coach.agent.md +17 -0
  210. package/templates/commonproject/.github/agents/bmd-custom-cis-creative-problem-solver.agent.md +17 -0
  211. package/templates/commonproject/.github/agents/bmd-custom-cis-design-thinking-coach.agent.md +17 -0
  212. package/templates/commonproject/.github/agents/bmd-custom-cis-innovation-strategist.agent.md +17 -0
  213. package/templates/commonproject/.github/agents/bmd-custom-cis-presentation-master.agent.md +17 -0
  214. package/templates/commonproject/.github/agents/bmd-custom-cis-storyteller.agent.md +17 -0
  215. package/templates/commonproject/.github/agents/bmd-custom-core-bmad-master.agent.md +17 -0
  216. package/templates/commonproject/.mcp.json +12 -0
  217. package/templates/commonproject/.mise/scripts/claude +13 -0
  218. package/templates/commonproject/.mise/scripts/create-plane-project.sh +123 -0
  219. package/templates/commonproject/.mise/scripts/init-project.sh +314 -0
  220. package/templates/commonproject/.mise/scripts/link-agentfiles.sh +9 -0
  221. package/templates/commonproject/.opencode/agent/bmad-agent-bmb-agent-builder.md +14 -0
  222. package/templates/commonproject/.opencode/agent/bmad-agent-bmb-module-builder.md +14 -0
  223. package/templates/commonproject/.opencode/agent/bmad-agent-bmb-workflow-builder.md +14 -0
  224. package/templates/commonproject/.opencode/agent/bmad-agent-bmm-analyst.md +14 -0
  225. package/templates/commonproject/.opencode/agent/bmad-agent-bmm-architect.md +14 -0
  226. package/templates/commonproject/.opencode/agent/bmad-agent-bmm-dev.md +14 -0
  227. package/templates/commonproject/.opencode/agent/bmad-agent-bmm-pm.md +14 -0
  228. package/templates/commonproject/.opencode/agent/bmad-agent-bmm-quick-flow-solo-dev.md +14 -0
  229. package/templates/commonproject/.opencode/agent/bmad-agent-bmm-sm.md +14 -0
  230. package/templates/commonproject/.opencode/agent/bmad-agent-bmm-tea.md +14 -0
  231. package/templates/commonproject/.opencode/agent/bmad-agent-bmm-tech-writer.md +14 -0
  232. package/templates/commonproject/.opencode/agent/bmad-agent-bmm-ux-designer.md +14 -0
  233. package/templates/commonproject/.opencode/agent/bmad-agent-cis-brainstorming-coach.md +14 -0
  234. package/templates/commonproject/.opencode/agent/bmad-agent-cis-creative-problem-solver.md +14 -0
  235. package/templates/commonproject/.opencode/agent/bmad-agent-cis-design-thinking-coach.md +14 -0
  236. package/templates/commonproject/.opencode/agent/bmad-agent-cis-innovation-strategist.md +14 -0
  237. package/templates/commonproject/.opencode/agent/bmad-agent-cis-presentation-master.md +14 -0
  238. package/templates/commonproject/.opencode/agent/bmad-agent-cis-storyteller.md +14 -0
  239. package/templates/commonproject/.opencode/agent/bmad-agent-core-bmad-master.md +14 -0
  240. package/templates/commonproject/.opencode/command/bmad-bmb-agent.md +5 -0
  241. package/templates/commonproject/.opencode/command/bmad-bmb-module.md +5 -0
  242. package/templates/commonproject/.opencode/command/bmad-bmb-workflow.md +5 -0
  243. package/templates/commonproject/.opencode/command/bmad-bmm-check-implementation-readiness.md +5 -0
  244. package/templates/commonproject/.opencode/command/bmad-bmm-code-review.md +13 -0
  245. package/templates/commonproject/.opencode/command/bmad-bmm-correct-course.md +13 -0
  246. package/templates/commonproject/.opencode/command/bmad-bmm-create-architecture.md +5 -0
  247. package/templates/commonproject/.opencode/command/bmad-bmm-create-epics-and-stories.md +5 -0
  248. package/templates/commonproject/.opencode/command/bmad-bmm-create-excalidraw-dataflow.md +13 -0
  249. package/templates/commonproject/.opencode/command/bmad-bmm-create-excalidraw-diagram.md +13 -0
  250. package/templates/commonproject/.opencode/command/bmad-bmm-create-excalidraw-flowchart.md +13 -0
  251. package/templates/commonproject/.opencode/command/bmad-bmm-create-excalidraw-wireframe.md +13 -0
  252. package/templates/commonproject/.opencode/command/bmad-bmm-create-product-brief.md +5 -0
  253. package/templates/commonproject/.opencode/command/bmad-bmm-create-story.md +13 -0
  254. package/templates/commonproject/.opencode/command/bmad-bmm-create-ux-design.md +5 -0
  255. package/templates/commonproject/.opencode/command/bmad-bmm-dev-story.md +13 -0
  256. package/templates/commonproject/.opencode/command/bmad-bmm-document-project.md +13 -0
  257. package/templates/commonproject/.opencode/command/bmad-bmm-generate-project-context.md +5 -0
  258. package/templates/commonproject/.opencode/command/bmad-bmm-prd.md +5 -0
  259. package/templates/commonproject/.opencode/command/bmad-bmm-quick-dev.md +5 -0
  260. package/templates/commonproject/.opencode/command/bmad-bmm-quick-spec.md +5 -0
  261. package/templates/commonproject/.opencode/command/bmad-bmm-research.md +5 -0
  262. package/templates/commonproject/.opencode/command/bmad-bmm-retrospective.md +13 -0
  263. package/templates/commonproject/.opencode/command/bmad-bmm-sprint-planning.md +13 -0
  264. package/templates/commonproject/.opencode/command/bmad-bmm-sprint-status.md +13 -0
  265. package/templates/commonproject/.opencode/command/bmad-bmm-testarch-atdd.md +13 -0
  266. package/templates/commonproject/.opencode/command/bmad-bmm-testarch-automate.md +13 -0
  267. package/templates/commonproject/.opencode/command/bmad-bmm-testarch-ci.md +13 -0
  268. package/templates/commonproject/.opencode/command/bmad-bmm-testarch-framework.md +13 -0
  269. package/templates/commonproject/.opencode/command/bmad-bmm-testarch-nfr.md +13 -0
  270. package/templates/commonproject/.opencode/command/bmad-bmm-testarch-test-design.md +13 -0
  271. package/templates/commonproject/.opencode/command/bmad-bmm-testarch-test-review.md +13 -0
  272. package/templates/commonproject/.opencode/command/bmad-bmm-testarch-trace.md +13 -0
  273. package/templates/commonproject/.opencode/command/bmad-bmm-workflow-init.md +13 -0
  274. package/templates/commonproject/.opencode/command/bmad-bmm-workflow-status.md +13 -0
  275. package/templates/commonproject/.opencode/command/bmad-cis-design-thinking.md +13 -0
  276. package/templates/commonproject/.opencode/command/bmad-cis-innovation-strategy.md +13 -0
  277. package/templates/commonproject/.opencode/command/bmad-cis-problem-solving.md +13 -0
  278. package/templates/commonproject/.opencode/command/bmad-cis-storytelling.md +13 -0
  279. package/templates/commonproject/.opencode/command/bmad-core-brainstorming.md +5 -0
  280. package/templates/commonproject/.opencode/command/bmad-core-party-mode.md +5 -0
  281. package/templates/commonproject/.opencode/command/bmad-custom-ticket-lifecycle.md +5 -0
  282. package/templates/commonproject/.opencode/command/bmad-task-core-index-docs.md +9 -0
  283. package/templates/commonproject/.opencode/command/bmad-task-core-shard-doc.md +9 -0
  284. package/templates/commonproject/.plane.json +6 -0
  285. package/templates/commonproject/.scripts/test-template.sh +63 -0
  286. package/templates/commonproject/AGENTS.md +86 -0
  287. package/templates/commonproject/README.md +172 -0
  288. package/templates/commonproject/_bmad/_config/agent-manifest.csv +20 -0
  289. package/templates/commonproject/_bmad/_config/agents/bmb-agent-builder.customize.yaml +41 -0
  290. package/templates/commonproject/_bmad/_config/agents/bmb-module-builder.customize.yaml +41 -0
  291. package/templates/commonproject/_bmad/_config/agents/bmb-workflow-builder.customize.yaml +41 -0
  292. package/templates/commonproject/_bmad/_config/agents/bmm-analyst.customize.yaml +41 -0
  293. package/templates/commonproject/_bmad/_config/agents/bmm-architect.customize.yaml +41 -0
  294. package/templates/commonproject/_bmad/_config/agents/bmm-dev.customize.yaml +41 -0
  295. package/templates/commonproject/_bmad/_config/agents/bmm-pm.customize.yaml +41 -0
  296. package/templates/commonproject/_bmad/_config/agents/bmm-quick-flow-solo-dev.customize.yaml +41 -0
  297. package/templates/commonproject/_bmad/_config/agents/bmm-sm.customize.yaml +41 -0
  298. package/templates/commonproject/_bmad/_config/agents/bmm-tea.customize.yaml +41 -0
  299. package/templates/commonproject/_bmad/_config/agents/bmm-tech-writer.customize.yaml +41 -0
  300. package/templates/commonproject/_bmad/_config/agents/bmm-ux-designer.customize.yaml +41 -0
  301. package/templates/commonproject/_bmad/_config/agents/cis-brainstorming-coach.customize.yaml +41 -0
  302. package/templates/commonproject/_bmad/_config/agents/cis-creative-problem-solver.customize.yaml +41 -0
  303. package/templates/commonproject/_bmad/_config/agents/cis-design-thinking-coach.customize.yaml +41 -0
  304. package/templates/commonproject/_bmad/_config/agents/cis-innovation-strategist.customize.yaml +41 -0
  305. package/templates/commonproject/_bmad/_config/agents/cis-presentation-master.customize.yaml +41 -0
  306. package/templates/commonproject/_bmad/_config/agents/cis-storyteller.customize.yaml +41 -0
  307. package/templates/commonproject/_bmad/_config/agents/core-bmad-master.customize.yaml +41 -0
  308. package/templates/commonproject/_bmad/_config/custom/cache-manifest.yaml +4 -0
  309. package/templates/commonproject/_bmad/_config/custom/custom/module.yaml +8 -0
  310. package/templates/commonproject/_bmad/_config/custom/custom/workflows/ticket-lifecycle/data/ac-sufficiency-rubric.md +33 -0
  311. package/templates/commonproject/_bmad/_config/custom/custom/workflows/ticket-lifecycle/data/audit-comment-template.md +54 -0
  312. package/templates/commonproject/_bmad/_config/custom/custom/workflows/ticket-lifecycle/data/event-schemas.md +58 -0
  313. package/templates/commonproject/_bmad/_config/custom/custom/workflows/ticket-lifecycle/steps-c/step-01-init.md +173 -0
  314. package/templates/commonproject/_bmad/_config/custom/custom/workflows/ticket-lifecycle/steps-c/step-02-triage.md +159 -0
  315. package/templates/commonproject/_bmad/_config/custom/custom/workflows/ticket-lifecycle/steps-c/step-03-refine.md +149 -0
  316. package/templates/commonproject/_bmad/_config/custom/custom/workflows/ticket-lifecycle/steps-c/step-04-implement.md +147 -0
  317. package/templates/commonproject/_bmad/_config/custom/custom/workflows/ticket-lifecycle/steps-c/step-05-review.md +146 -0
  318. package/templates/commonproject/_bmad/_config/custom/custom/workflows/ticket-lifecycle/steps-c/step-06-qa.md +199 -0
  319. package/templates/commonproject/_bmad/_config/custom/custom/workflows/ticket-lifecycle/steps-c/step-07-complete.md +141 -0
  320. package/templates/commonproject/_bmad/_config/custom/custom/workflows/ticket-lifecycle/steps-e/step-01-assess.md +102 -0
  321. package/templates/commonproject/_bmad/_config/custom/custom/workflows/ticket-lifecycle/steps-e/step-02-apply.md +85 -0
  322. package/templates/commonproject/_bmad/_config/custom/custom/workflows/ticket-lifecycle/steps-v/step-01-validate.md +154 -0
  323. package/templates/commonproject/_bmad/_config/custom/custom/workflows/ticket-lifecycle/workflow-plan-ticket-lifecycle.md +346 -0
  324. package/templates/commonproject/_bmad/_config/custom/custom/workflows/ticket-lifecycle/workflow.md +84 -0
  325. package/templates/commonproject/_bmad/_config/custom/custom/workflows/ticket-lifecycle/workflow.yaml +39 -0
  326. package/templates/commonproject/_bmad/_config/files-manifest.csv +483 -0
  327. package/templates/commonproject/_bmad/_config/ides/claude-code.yaml +6 -0
  328. package/templates/commonproject/_bmad/_config/ides/codex.yaml +5 -0
  329. package/templates/commonproject/_bmad/_config/manifest.yaml +18 -0
  330. package/templates/commonproject/_bmad/_config/task-manifest.csv +5 -0
  331. package/templates/commonproject/_bmad/_config/tool-manifest.csv +1 -0
  332. package/templates/commonproject/_bmad/_config/workflow-manifest.csv +43 -0
  333. package/templates/commonproject/_bmad/_memory/config.yaml +11 -0
  334. package/templates/commonproject/_bmad/_memory/storyteller-sidecar/stories-told.md +7 -0
  335. package/templates/commonproject/_bmad/_memory/storyteller-sidecar/story-preferences.md +7 -0
  336. package/templates/commonproject/_bmad/bmb/README.md +25 -0
  337. package/templates/commonproject/_bmad/bmb/agents/agent-builder.md +64 -0
  338. package/templates/commonproject/_bmad/bmb/agents/module-builder.md +65 -0
  339. package/templates/commonproject/_bmad/bmb/agents/workflow-builder.md +66 -0
  340. package/templates/commonproject/_bmad/bmb/config.yaml +12 -0
  341. package/templates/commonproject/_bmad/bmb/workflows/agent/data/agent-compilation.md +273 -0
  342. package/templates/commonproject/_bmad/bmb/workflows/agent/data/agent-menu-patterns.md +233 -0
  343. package/templates/commonproject/_bmad/bmb/workflows/agent/data/agent-metadata.md +208 -0
  344. package/templates/commonproject/_bmad/bmb/workflows/agent/data/brainstorm-context.md +146 -0
  345. package/templates/commonproject/_bmad/bmb/workflows/agent/data/communication-presets.csv +61 -0
  346. package/templates/commonproject/_bmad/bmb/workflows/agent/data/critical-actions.md +120 -0
  347. package/templates/commonproject/_bmad/bmb/workflows/agent/data/expert-agent-architecture.md +236 -0
  348. package/templates/commonproject/_bmad/bmb/workflows/agent/data/expert-agent-validation.md +174 -0
  349. package/templates/commonproject/_bmad/bmb/workflows/agent/data/module-agent-validation.md +126 -0
  350. package/templates/commonproject/_bmad/bmb/workflows/agent/data/persona-properties.md +266 -0
  351. package/templates/commonproject/_bmad/bmb/workflows/agent/data/principles-crafting.md +292 -0
  352. package/templates/commonproject/_bmad/bmb/workflows/agent/data/reference/module-examples/architect.md +68 -0
  353. package/templates/commonproject/_bmad/bmb/workflows/agent/data/simple-agent-architecture.md +204 -0
  354. package/templates/commonproject/_bmad/bmb/workflows/agent/data/simple-agent-validation.md +133 -0
  355. package/templates/commonproject/_bmad/bmb/workflows/agent/data/understanding-agent-types.md +222 -0
  356. package/templates/commonproject/_bmad/bmb/workflows/agent/steps-c/step-01-brainstorm.md +128 -0
  357. package/templates/commonproject/_bmad/bmb/workflows/agent/steps-c/step-02-discovery.md +170 -0
  358. package/templates/commonproject/_bmad/bmb/workflows/agent/steps-c/step-03-type-metadata.md +296 -0
  359. package/templates/commonproject/_bmad/bmb/workflows/agent/steps-c/step-04-persona.md +212 -0
  360. package/templates/commonproject/_bmad/bmb/workflows/agent/steps-c/step-05-commands-menu.md +178 -0
  361. package/templates/commonproject/_bmad/bmb/workflows/agent/steps-c/step-06-activation.md +279 -0
  362. package/templates/commonproject/_bmad/bmb/workflows/agent/steps-c/step-07a-build-simple.md +187 -0
  363. package/templates/commonproject/_bmad/bmb/workflows/agent/steps-c/step-07b-build-expert.md +201 -0
  364. package/templates/commonproject/_bmad/bmb/workflows/agent/steps-c/step-07c-build-module.md +258 -0
  365. package/templates/commonproject/_bmad/bmb/workflows/agent/steps-c/step-08-celebrate.md +249 -0
  366. package/templates/commonproject/_bmad/bmb/workflows/agent/steps-e/e-01-load-existing.md +221 -0
  367. package/templates/commonproject/_bmad/bmb/workflows/agent/steps-e/e-02-discover-edits.md +193 -0
  368. package/templates/commonproject/_bmad/bmb/workflows/agent/steps-e/e-03-placeholder.md +1 -0
  369. package/templates/commonproject/_bmad/bmb/workflows/agent/steps-e/e-04-type-metadata.md +124 -0
  370. package/templates/commonproject/_bmad/bmb/workflows/agent/steps-e/e-05-persona.md +134 -0
  371. package/templates/commonproject/_bmad/bmb/workflows/agent/steps-e/e-06-commands-menu.md +122 -0
  372. package/templates/commonproject/_bmad/bmb/workflows/agent/steps-e/e-07-activation.md +125 -0
  373. package/templates/commonproject/_bmad/bmb/workflows/agent/steps-e/e-08a-edit-simple.md +137 -0
  374. package/templates/commonproject/_bmad/bmb/workflows/agent/steps-e/e-08b-edit-expert.md +119 -0
  375. package/templates/commonproject/_bmad/bmb/workflows/agent/steps-e/e-08c-edit-module.md +123 -0
  376. package/templates/commonproject/_bmad/bmb/workflows/agent/steps-e/e-09-celebrate.md +155 -0
  377. package/templates/commonproject/_bmad/bmb/workflows/agent/steps-v/v-01-load-review.md +136 -0
  378. package/templates/commonproject/_bmad/bmb/workflows/agent/steps-v/v-02a-validate-metadata.md +116 -0
  379. package/templates/commonproject/_bmad/bmb/workflows/agent/steps-v/v-02b-validate-persona.md +124 -0
  380. package/templates/commonproject/_bmad/bmb/workflows/agent/steps-v/v-02c-validate-menu.md +145 -0
  381. package/templates/commonproject/_bmad/bmb/workflows/agent/steps-v/v-02d-validate-structure.md +136 -0
  382. package/templates/commonproject/_bmad/bmb/workflows/agent/steps-v/v-02e-validate-sidecar.md +136 -0
  383. package/templates/commonproject/_bmad/bmb/workflows/agent/steps-v/v-03-summary.md +104 -0
  384. package/templates/commonproject/_bmad/bmb/workflows/agent/templates/agent-plan.template.md +5 -0
  385. package/templates/commonproject/_bmad/bmb/workflows/agent/templates/expert-agent-template/expert-agent.template.md +77 -0
  386. package/templates/commonproject/_bmad/bmb/workflows/agent/templates/simple-agent.template.md +72 -0
  387. package/templates/commonproject/_bmad/bmb/workflows/agent/workflow.md +123 -0
  388. package/templates/commonproject/_bmad/bmb/workflows/module/data/agent-architecture.md +179 -0
  389. package/templates/commonproject/_bmad/bmb/workflows/module/data/agent-spec-template.md +79 -0
  390. package/templates/commonproject/_bmad/bmb/workflows/module/data/module-installer-standards.md +348 -0
  391. package/templates/commonproject/_bmad/bmb/workflows/module/data/module-standards.md +280 -0
  392. package/templates/commonproject/_bmad/bmb/workflows/module/data/module-yaml-conventions.md +392 -0
  393. package/templates/commonproject/_bmad/bmb/workflows/module/steps-b/step-01-welcome.md +147 -0
  394. package/templates/commonproject/_bmad/bmb/workflows/module/steps-b/step-02-spark.md +140 -0
  395. package/templates/commonproject/_bmad/bmb/workflows/module/steps-b/step-03-module-type.md +148 -0
  396. package/templates/commonproject/_bmad/bmb/workflows/module/steps-b/step-04-vision.md +82 -0
  397. package/templates/commonproject/_bmad/bmb/workflows/module/steps-b/step-05-identity.md +96 -0
  398. package/templates/commonproject/_bmad/bmb/workflows/module/steps-b/step-06-users.md +85 -0
  399. package/templates/commonproject/_bmad/bmb/workflows/module/steps-b/step-07-value.md +75 -0
  400. package/templates/commonproject/_bmad/bmb/workflows/module/steps-b/step-08-agents.md +96 -0
  401. package/templates/commonproject/_bmad/bmb/workflows/module/steps-b/step-09-workflows.md +82 -0
  402. package/templates/commonproject/_bmad/bmb/workflows/module/steps-b/step-10-tools.md +90 -0
  403. package/templates/commonproject/_bmad/bmb/workflows/module/steps-b/step-11-scenarios.md +83 -0
  404. package/templates/commonproject/_bmad/bmb/workflows/module/steps-b/step-12-creative.md +94 -0
  405. package/templates/commonproject/_bmad/bmb/workflows/module/steps-b/step-13-review.md +104 -0
  406. package/templates/commonproject/_bmad/bmb/workflows/module/steps-b/step-14-finalize.md +117 -0
  407. package/templates/commonproject/_bmad/bmb/workflows/module/steps-c/step-01-load-brief.md +178 -0
  408. package/templates/commonproject/_bmad/bmb/workflows/module/steps-c/step-01b-continue.md +83 -0
  409. package/templates/commonproject/_bmad/bmb/workflows/module/steps-c/step-02-structure.md +109 -0
  410. package/templates/commonproject/_bmad/bmb/workflows/module/steps-c/step-03-config.md +118 -0
  411. package/templates/commonproject/_bmad/bmb/workflows/module/steps-c/step-04-installer.md +160 -0
  412. package/templates/commonproject/_bmad/bmb/workflows/module/steps-c/step-05-agents.md +167 -0
  413. package/templates/commonproject/_bmad/bmb/workflows/module/steps-c/step-06-workflows.md +183 -0
  414. package/templates/commonproject/_bmad/bmb/workflows/module/steps-c/step-07-docs.md +402 -0
  415. package/templates/commonproject/_bmad/bmb/workflows/module/steps-c/step-08-complete.md +123 -0
  416. package/templates/commonproject/_bmad/bmb/workflows/module/steps-e/step-01-load-target.md +81 -0
  417. package/templates/commonproject/_bmad/bmb/workflows/module/steps-e/step-02-select-edit.md +77 -0
  418. package/templates/commonproject/_bmad/bmb/workflows/module/steps-e/step-03-apply-edit.md +77 -0
  419. package/templates/commonproject/_bmad/bmb/workflows/module/steps-e/step-04-review.md +80 -0
  420. package/templates/commonproject/_bmad/bmb/workflows/module/steps-e/step-05-confirm.md +75 -0
  421. package/templates/commonproject/_bmad/bmb/workflows/module/steps-v/step-01-load-target.md +96 -0
  422. package/templates/commonproject/_bmad/bmb/workflows/module/steps-v/step-02-file-structure.md +94 -0
  423. package/templates/commonproject/_bmad/bmb/workflows/module/steps-v/step-03-module-yaml.md +99 -0
  424. package/templates/commonproject/_bmad/bmb/workflows/module/steps-v/step-04-agent-specs.md +152 -0
  425. package/templates/commonproject/_bmad/bmb/workflows/module/steps-v/step-05-workflow-specs.md +152 -0
  426. package/templates/commonproject/_bmad/bmb/workflows/module/steps-v/step-06-documentation.md +143 -0
  427. package/templates/commonproject/_bmad/bmb/workflows/module/steps-v/step-07-installation.md +113 -0
  428. package/templates/commonproject/_bmad/bmb/workflows/module/steps-v/step-08-report.md +197 -0
  429. package/templates/commonproject/_bmad/bmb/workflows/module/templates/brief-template.md +154 -0
  430. package/templates/commonproject/_bmad/bmb/workflows/module/templates/workflow-spec-template.md +96 -0
  431. package/templates/commonproject/_bmad/bmb/workflows/module/workflow.md +100 -0
  432. package/templates/commonproject/_bmad/bmb/workflows/workflow/data/architecture.md +152 -0
  433. package/templates/commonproject/_bmad/bmb/workflows/workflow/data/common-workflow-tools.csv +19 -0
  434. package/templates/commonproject/_bmad/bmb/workflows/workflow/data/csv-data-file-standards.md +81 -0
  435. package/templates/commonproject/_bmad/bmb/workflows/workflow/data/frontmatter-standards.md +225 -0
  436. package/templates/commonproject/_bmad/bmb/workflows/workflow/data/input-discovery-standards.md +269 -0
  437. package/templates/commonproject/_bmad/bmb/workflows/workflow/data/intent-vs-prescriptive-spectrum.md +50 -0
  438. package/templates/commonproject/_bmad/bmb/workflows/workflow/data/menu-handling-standards.md +167 -0
  439. package/templates/commonproject/_bmad/bmb/workflows/workflow/data/output-format-standards.md +188 -0
  440. package/templates/commonproject/_bmad/bmb/workflows/workflow/data/step-file-rules.md +235 -0
  441. package/templates/commonproject/_bmad/bmb/workflows/workflow/data/step-type-patterns.md +311 -0
  442. package/templates/commonproject/_bmad/bmb/workflows/workflow/data/subprocess-optimization-patterns.md +386 -0
  443. package/templates/commonproject/_bmad/bmb/workflows/workflow/data/trimodal-workflow-structure.md +209 -0
  444. package/templates/commonproject/_bmad/bmb/workflows/workflow/data/workflow-chaining-standards.md +271 -0
  445. package/templates/commonproject/_bmad/bmb/workflows/workflow/data/workflow-examples.md +276 -0
  446. package/templates/commonproject/_bmad/bmb/workflows/workflow/data/workflow-type-criteria.md +172 -0
  447. package/templates/commonproject/_bmad/bmb/workflows/workflow/steps-c/step-00-conversion.md +262 -0
  448. package/templates/commonproject/_bmad/bmb/workflows/workflow/steps-c/step-01-discovery.md +194 -0
  449. package/templates/commonproject/_bmad/bmb/workflows/workflow/steps-c/step-01b-continuation.md +3 -0
  450. package/templates/commonproject/_bmad/bmb/workflows/workflow/steps-c/step-02-classification.md +269 -0
  451. package/templates/commonproject/_bmad/bmb/workflows/workflow/steps-c/step-03-requirements.md +282 -0
  452. package/templates/commonproject/_bmad/bmb/workflows/workflow/steps-c/step-04-tools.md +281 -0
  453. package/templates/commonproject/_bmad/bmb/workflows/workflow/steps-c/step-05-plan-review.md +242 -0
  454. package/templates/commonproject/_bmad/bmb/workflows/workflow/steps-c/step-06-design.md +329 -0
  455. package/templates/commonproject/_bmad/bmb/workflows/workflow/steps-c/step-07-foundation.md +238 -0
  456. package/templates/commonproject/_bmad/bmb/workflows/workflow/steps-c/step-08-build-step-01.md +377 -0
  457. package/templates/commonproject/_bmad/bmb/workflows/workflow/steps-c/step-09-build-next-step.md +350 -0
  458. package/templates/commonproject/_bmad/bmb/workflows/workflow/steps-c/step-10-confirmation.md +320 -0
  459. package/templates/commonproject/_bmad/bmb/workflows/workflow/steps-c/step-11-completion.md +191 -0
  460. package/templates/commonproject/_bmad/bmb/workflows/workflow/steps-e/step-e-01-assess-workflow.md +237 -0
  461. package/templates/commonproject/_bmad/bmb/workflows/workflow/steps-e/step-e-02-discover-edits.md +248 -0
  462. package/templates/commonproject/_bmad/bmb/workflows/workflow/steps-e/step-e-03-fix-validation.md +252 -0
  463. package/templates/commonproject/_bmad/bmb/workflows/workflow/steps-e/step-e-04-direct-edit.md +275 -0
  464. package/templates/commonproject/_bmad/bmb/workflows/workflow/steps-e/step-e-05-apply-edit.md +154 -0
  465. package/templates/commonproject/_bmad/bmb/workflows/workflow/steps-e/step-e-06-validate-after.md +190 -0
  466. package/templates/commonproject/_bmad/bmb/workflows/workflow/steps-e/step-e-07-complete.md +206 -0
  467. package/templates/commonproject/_bmad/bmb/workflows/workflow/steps-v/step-01-validate-max-mode.md +109 -0
  468. package/templates/commonproject/_bmad/bmb/workflows/workflow/steps-v/step-01-validate.md +221 -0
  469. package/templates/commonproject/_bmad/bmb/workflows/workflow/steps-v/step-01b-structure.md +152 -0
  470. package/templates/commonproject/_bmad/bmb/workflows/workflow/steps-v/step-02-frontmatter-validation.md +199 -0
  471. package/templates/commonproject/_bmad/bmb/workflows/workflow/steps-v/step-02b-path-violations.md +265 -0
  472. package/templates/commonproject/_bmad/bmb/workflows/workflow/steps-v/step-03-menu-validation.md +164 -0
  473. package/templates/commonproject/_bmad/bmb/workflows/workflow/steps-v/step-04-step-type-validation.md +211 -0
  474. package/templates/commonproject/_bmad/bmb/workflows/workflow/steps-v/step-05-output-format-validation.md +200 -0
  475. package/templates/commonproject/_bmad/bmb/workflows/workflow/steps-v/step-06-validation-design-check.md +195 -0
  476. package/templates/commonproject/_bmad/bmb/workflows/workflow/steps-v/step-07-instruction-style-check.md +209 -0
  477. package/templates/commonproject/_bmad/bmb/workflows/workflow/steps-v/step-08-collaborative-experience-check.md +199 -0
  478. package/templates/commonproject/_bmad/bmb/workflows/workflow/steps-v/step-08b-subprocess-optimization.md +179 -0
  479. package/templates/commonproject/_bmad/bmb/workflows/workflow/steps-v/step-09-cohesive-review.md +186 -0
  480. package/templates/commonproject/_bmad/bmb/workflows/workflow/steps-v/step-10-report-complete.md +154 -0
  481. package/templates/commonproject/_bmad/bmb/workflows/workflow/steps-v/step-11-plan-validation.md +237 -0
  482. package/templates/commonproject/_bmad/bmb/workflows/workflow/templates/minimal-output-template.md +11 -0
  483. package/templates/commonproject/_bmad/bmb/workflows/workflow/templates/step-01-init-continuable-template.md +241 -0
  484. package/templates/commonproject/_bmad/bmb/workflows/workflow/templates/step-1b-template.md +223 -0
  485. package/templates/commonproject/_bmad/bmb/workflows/workflow/templates/step-template.md +290 -0
  486. package/templates/commonproject/_bmad/bmb/workflows/workflow/templates/workflow-template.md +102 -0
  487. package/templates/commonproject/_bmad/bmb/workflows/workflow/workflow.md +109 -0
  488. package/templates/commonproject/_bmad/bmm/agents/analyst.md +82 -0
  489. package/templates/commonproject/_bmad/bmm/agents/architect.md +74 -0
  490. package/templates/commonproject/_bmad/bmm/agents/dev.md +76 -0
  491. package/templates/commonproject/_bmad/bmm/agents/pm.md +78 -0
  492. package/templates/commonproject/_bmad/bmm/agents/quick-flow-solo-dev.md +74 -0
  493. package/templates/commonproject/_bmad/bmm/agents/sm.md +77 -0
  494. package/templates/commonproject/_bmad/bmm/agents/tea.md +77 -0
  495. package/templates/commonproject/_bmad/bmm/agents/tech-writer.md +78 -0
  496. package/templates/commonproject/_bmad/bmm/agents/ux-designer.md +74 -0
  497. package/templates/commonproject/_bmad/bmm/config.yaml +18 -0
  498. package/templates/commonproject/_bmad/bmm/data/README.md +29 -0
  499. package/templates/commonproject/_bmad/bmm/data/documentation-standards.md +262 -0
  500. package/templates/commonproject/_bmad/bmm/data/project-context-template.md +40 -0
  501. package/templates/commonproject/_bmad/bmm/teams/default-party.csv +21 -0
  502. package/templates/commonproject/_bmad/bmm/teams/team-fullstack.yaml +12 -0
  503. package/templates/commonproject/_bmad/bmm/testarch/knowledge/api-request.md +442 -0
  504. package/templates/commonproject/_bmad/bmm/testarch/knowledge/api-testing-patterns.md +843 -0
  505. package/templates/commonproject/_bmad/bmm/testarch/knowledge/auth-session.md +552 -0
  506. package/templates/commonproject/_bmad/bmm/testarch/knowledge/burn-in.md +273 -0
  507. package/templates/commonproject/_bmad/bmm/testarch/knowledge/ci-burn-in.md +675 -0
  508. package/templates/commonproject/_bmad/bmm/testarch/knowledge/component-tdd.md +486 -0
  509. package/templates/commonproject/_bmad/bmm/testarch/knowledge/contract-testing.md +957 -0
  510. package/templates/commonproject/_bmad/bmm/testarch/knowledge/data-factories.md +500 -0
  511. package/templates/commonproject/_bmad/bmm/testarch/knowledge/email-auth.md +721 -0
  512. package/templates/commonproject/_bmad/bmm/testarch/knowledge/error-handling.md +725 -0
  513. package/templates/commonproject/_bmad/bmm/testarch/knowledge/feature-flags.md +750 -0
  514. package/templates/commonproject/_bmad/bmm/testarch/knowledge/file-utils.md +463 -0
  515. package/templates/commonproject/_bmad/bmm/testarch/knowledge/fixture-architecture.md +401 -0
  516. package/templates/commonproject/_bmad/bmm/testarch/knowledge/fixtures-composition.md +382 -0
  517. package/templates/commonproject/_bmad/bmm/testarch/knowledge/intercept-network-call.md +430 -0
  518. package/templates/commonproject/_bmad/bmm/testarch/knowledge/log.md +429 -0
  519. package/templates/commonproject/_bmad/bmm/testarch/knowledge/network-error-monitor.md +405 -0
  520. package/templates/commonproject/_bmad/bmm/testarch/knowledge/network-first.md +486 -0
  521. package/templates/commonproject/_bmad/bmm/testarch/knowledge/network-recorder.md +527 -0
  522. package/templates/commonproject/_bmad/bmm/testarch/knowledge/nfr-criteria.md +670 -0
  523. package/templates/commonproject/_bmad/bmm/testarch/knowledge/overview.md +286 -0
  524. package/templates/commonproject/_bmad/bmm/testarch/knowledge/playwright-config.md +730 -0
  525. package/templates/commonproject/_bmad/bmm/testarch/knowledge/probability-impact.md +601 -0
  526. package/templates/commonproject/_bmad/bmm/testarch/knowledge/recurse.md +421 -0
  527. package/templates/commonproject/_bmad/bmm/testarch/knowledge/risk-governance.md +615 -0
  528. package/templates/commonproject/_bmad/bmm/testarch/knowledge/selective-testing.md +732 -0
  529. package/templates/commonproject/_bmad/bmm/testarch/knowledge/selector-resilience.md +527 -0
  530. package/templates/commonproject/_bmad/bmm/testarch/knowledge/test-healing-patterns.md +644 -0
  531. package/templates/commonproject/_bmad/bmm/testarch/knowledge/test-levels-framework.md +473 -0
  532. package/templates/commonproject/_bmad/bmm/testarch/knowledge/test-priorities-matrix.md +373 -0
  533. package/templates/commonproject/_bmad/bmm/testarch/knowledge/test-quality.md +664 -0
  534. package/templates/commonproject/_bmad/bmm/testarch/knowledge/timing-debugging.md +372 -0
  535. package/templates/commonproject/_bmad/bmm/testarch/knowledge/visual-debugging.md +524 -0
  536. package/templates/commonproject/_bmad/bmm/testarch/tea-index.csv +34 -0
  537. package/templates/commonproject/_bmad/bmm/workflows/1-analysis/create-product-brief/product-brief.template.md +10 -0
  538. package/templates/commonproject/_bmad/bmm/workflows/1-analysis/create-product-brief/steps/step-01-init.md +177 -0
  539. package/templates/commonproject/_bmad/bmm/workflows/1-analysis/create-product-brief/steps/step-01b-continue.md +161 -0
  540. package/templates/commonproject/_bmad/bmm/workflows/1-analysis/create-product-brief/steps/step-02-vision.md +199 -0
  541. package/templates/commonproject/_bmad/bmm/workflows/1-analysis/create-product-brief/steps/step-03-users.md +202 -0
  542. package/templates/commonproject/_bmad/bmm/workflows/1-analysis/create-product-brief/steps/step-04-metrics.md +205 -0
  543. package/templates/commonproject/_bmad/bmm/workflows/1-analysis/create-product-brief/steps/step-05-scope.md +219 -0
  544. package/templates/commonproject/_bmad/bmm/workflows/1-analysis/create-product-brief/steps/step-06-complete.md +194 -0
  545. package/templates/commonproject/_bmad/bmm/workflows/1-analysis/create-product-brief/workflow.md +58 -0
  546. package/templates/commonproject/_bmad/bmm/workflows/1-analysis/research/domain-steps/step-01-init.md +137 -0
  547. package/templates/commonproject/_bmad/bmm/workflows/1-analysis/research/domain-steps/step-02-domain-analysis.md +229 -0
  548. package/templates/commonproject/_bmad/bmm/workflows/1-analysis/research/domain-steps/step-03-competitive-landscape.md +238 -0
  549. package/templates/commonproject/_bmad/bmm/workflows/1-analysis/research/domain-steps/step-04-regulatory-focus.md +206 -0
  550. package/templates/commonproject/_bmad/bmm/workflows/1-analysis/research/domain-steps/step-05-technical-trends.md +234 -0
  551. package/templates/commonproject/_bmad/bmm/workflows/1-analysis/research/domain-steps/step-06-research-synthesis.md +443 -0
  552. package/templates/commonproject/_bmad/bmm/workflows/1-analysis/research/market-steps/step-01-init.md +182 -0
  553. package/templates/commonproject/_bmad/bmm/workflows/1-analysis/research/market-steps/step-02-customer-behavior.md +237 -0
  554. package/templates/commonproject/_bmad/bmm/workflows/1-analysis/research/market-steps/step-02-customer-insights.md +200 -0
  555. package/templates/commonproject/_bmad/bmm/workflows/1-analysis/research/market-steps/step-03-customer-pain-points.md +249 -0
  556. package/templates/commonproject/_bmad/bmm/workflows/1-analysis/research/market-steps/step-04-customer-decisions.md +259 -0
  557. package/templates/commonproject/_bmad/bmm/workflows/1-analysis/research/market-steps/step-05-competitive-analysis.md +177 -0
  558. package/templates/commonproject/_bmad/bmm/workflows/1-analysis/research/market-steps/step-06-research-completion.md +475 -0
  559. package/templates/commonproject/_bmad/bmm/workflows/1-analysis/research/research.template.md +29 -0
  560. package/templates/commonproject/_bmad/bmm/workflows/1-analysis/research/technical-steps/step-01-init.md +137 -0
  561. package/templates/commonproject/_bmad/bmm/workflows/1-analysis/research/technical-steps/step-02-technical-overview.md +239 -0
  562. package/templates/commonproject/_bmad/bmm/workflows/1-analysis/research/technical-steps/step-03-integration-patterns.md +248 -0
  563. package/templates/commonproject/_bmad/bmm/workflows/1-analysis/research/technical-steps/step-04-architectural-patterns.md +202 -0
  564. package/templates/commonproject/_bmad/bmm/workflows/1-analysis/research/technical-steps/step-05-implementation-research.md +239 -0
  565. package/templates/commonproject/_bmad/bmm/workflows/1-analysis/research/technical-steps/step-06-research-synthesis.md +486 -0
  566. package/templates/commonproject/_bmad/bmm/workflows/1-analysis/research/workflow.md +173 -0
  567. package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-01-init.md +135 -0
  568. package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-01b-continue.md +127 -0
  569. package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-02-discovery.md +190 -0
  570. package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-03-core-experience.md +216 -0
  571. package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-04-emotional-response.md +219 -0
  572. package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-05-inspiration.md +234 -0
  573. package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-06-design-system.md +252 -0
  574. package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-07-defining-experience.md +254 -0
  575. package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-08-visual-foundation.md +224 -0
  576. package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-09-design-directions.md +224 -0
  577. package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-10-user-journeys.md +241 -0
  578. package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-11-component-strategy.md +248 -0
  579. package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-12-ux-patterns.md +237 -0
  580. package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-13-responsive-accessibility.md +264 -0
  581. package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-14-complete.md +228 -0
  582. package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/ux-design-template.md +13 -0
  583. package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/workflow.md +43 -0
  584. package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/prd/data/domain-complexity.csv +13 -0
  585. package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/prd/data/prd-purpose.md +197 -0
  586. package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/prd/data/project-types.csv +11 -0
  587. package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/prd/steps-c/step-01-init.md +191 -0
  588. package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/prd/steps-c/step-01b-continue.md +153 -0
  589. package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/prd/steps-c/step-02-discovery.md +224 -0
  590. package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/prd/steps-c/step-03-success.md +226 -0
  591. package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/prd/steps-c/step-04-journeys.md +213 -0
  592. package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/prd/steps-c/step-05-domain.md +207 -0
  593. package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/prd/steps-c/step-06-innovation.md +226 -0
  594. package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/prd/steps-c/step-07-project-type.md +237 -0
  595. package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/prd/steps-c/step-08-scoping.md +228 -0
  596. package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/prd/steps-c/step-09-functional.md +231 -0
  597. package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/prd/steps-c/step-10-nonfunctional.md +242 -0
  598. package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/prd/steps-c/step-11-polish.md +217 -0
  599. package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/prd/steps-c/step-12-complete.md +180 -0
  600. package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/prd/steps-e/step-e-01-discovery.md +247 -0
  601. package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/prd/steps-e/step-e-01b-legacy-conversion.md +208 -0
  602. package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/prd/steps-e/step-e-02-review.md +249 -0
  603. package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/prd/steps-e/step-e-03-edit.md +253 -0
  604. package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/prd/steps-e/step-e-04-complete.md +168 -0
  605. package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-01-discovery.md +218 -0
  606. package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-02-format-detection.md +191 -0
  607. package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-02b-parity-check.md +209 -0
  608. package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-03-density-validation.md +174 -0
  609. package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-04-brief-coverage-validation.md +214 -0
  610. package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-05-measurability-validation.md +228 -0
  611. package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-06-traceability-validation.md +217 -0
  612. package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-07-implementation-leakage-validation.md +205 -0
  613. package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-08-domain-compliance-validation.md +243 -0
  614. package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-09-project-type-validation.md +263 -0
  615. package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-10-smart-validation.md +209 -0
  616. package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-11-holistic-quality-validation.md +264 -0
  617. package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-12-completeness-validation.md +242 -0
  618. package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-13-report-complete.md +232 -0
  619. package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/prd/templates/prd-template.md +10 -0
  620. package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/prd/validation-report-prd-workflow.md +433 -0
  621. package/templates/commonproject/_bmad/bmm/workflows/2-plan-workflows/prd/workflow.md +150 -0
  622. package/templates/commonproject/_bmad/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-01-document-discovery.md +190 -0
  623. package/templates/commonproject/_bmad/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-02-prd-analysis.md +178 -0
  624. package/templates/commonproject/_bmad/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-03-epic-coverage-validation.md +179 -0
  625. package/templates/commonproject/_bmad/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-04-ux-alignment.md +139 -0
  626. package/templates/commonproject/_bmad/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-05-epic-quality-review.md +252 -0
  627. package/templates/commonproject/_bmad/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-06-final-assessment.md +133 -0
  628. package/templates/commonproject/_bmad/bmm/workflows/3-solutioning/check-implementation-readiness/templates/readiness-report-template.md +4 -0
  629. package/templates/commonproject/_bmad/bmm/workflows/3-solutioning/check-implementation-readiness/workflow.md +55 -0
  630. package/templates/commonproject/_bmad/bmm/workflows/3-solutioning/create-architecture/architecture-decision-template.md +12 -0
  631. package/templates/commonproject/_bmad/bmm/workflows/3-solutioning/create-architecture/data/domain-complexity.csv +11 -0
  632. package/templates/commonproject/_bmad/bmm/workflows/3-solutioning/create-architecture/data/project-types.csv +7 -0
  633. package/templates/commonproject/_bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-01-init.md +153 -0
  634. package/templates/commonproject/_bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-01b-continue.md +164 -0
  635. package/templates/commonproject/_bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-02-context.md +224 -0
  636. package/templates/commonproject/_bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-03-starter.md +331 -0
  637. package/templates/commonproject/_bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-04-decisions.md +318 -0
  638. package/templates/commonproject/_bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-05-patterns.md +359 -0
  639. package/templates/commonproject/_bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-06-structure.md +379 -0
  640. package/templates/commonproject/_bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-07-validation.md +359 -0
  641. package/templates/commonproject/_bmad/bmm/workflows/3-solutioning/create-architecture/steps/step-08-complete.md +352 -0
  642. package/templates/commonproject/_bmad/bmm/workflows/3-solutioning/create-architecture/workflow.md +50 -0
  643. package/templates/commonproject/_bmad/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-01-validate-prerequisites.md +259 -0
  644. package/templates/commonproject/_bmad/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-02-design-epics.md +233 -0
  645. package/templates/commonproject/_bmad/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-03-create-stories.md +272 -0
  646. package/templates/commonproject/_bmad/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-04-final-validation.md +145 -0
  647. package/templates/commonproject/_bmad/bmm/workflows/3-solutioning/create-epics-and-stories/templates/epics-template.md +57 -0
  648. package/templates/commonproject/_bmad/bmm/workflows/3-solutioning/create-epics-and-stories/workflow.md +59 -0
  649. package/templates/commonproject/_bmad/bmm/workflows/4-implementation/code-review/checklist.md +23 -0
  650. package/templates/commonproject/_bmad/bmm/workflows/4-implementation/code-review/instructions.xml +227 -0
  651. package/templates/commonproject/_bmad/bmm/workflows/4-implementation/code-review/workflow.yaml +50 -0
  652. package/templates/commonproject/_bmad/bmm/workflows/4-implementation/correct-course/checklist.md +279 -0
  653. package/templates/commonproject/_bmad/bmm/workflows/4-implementation/correct-course/instructions.md +206 -0
  654. package/templates/commonproject/_bmad/bmm/workflows/4-implementation/correct-course/workflow.yaml +58 -0
  655. package/templates/commonproject/_bmad/bmm/workflows/4-implementation/create-story/checklist.md +358 -0
  656. package/templates/commonproject/_bmad/bmm/workflows/4-implementation/create-story/instructions.xml +345 -0
  657. package/templates/commonproject/_bmad/bmm/workflows/4-implementation/create-story/template.md +49 -0
  658. package/templates/commonproject/_bmad/bmm/workflows/4-implementation/create-story/workflow.yaml +59 -0
  659. package/templates/commonproject/_bmad/bmm/workflows/4-implementation/dev-story/checklist.md +80 -0
  660. package/templates/commonproject/_bmad/bmm/workflows/4-implementation/dev-story/instructions.xml +410 -0
  661. package/templates/commonproject/_bmad/bmm/workflows/4-implementation/dev-story/workflow.yaml +25 -0
  662. package/templates/commonproject/_bmad/bmm/workflows/4-implementation/retrospective/instructions.md +1443 -0
  663. package/templates/commonproject/_bmad/bmm/workflows/4-implementation/retrospective/workflow.yaml +57 -0
  664. package/templates/commonproject/_bmad/bmm/workflows/4-implementation/sprint-planning/checklist.md +33 -0
  665. package/templates/commonproject/_bmad/bmm/workflows/4-implementation/sprint-planning/instructions.md +225 -0
  666. package/templates/commonproject/_bmad/bmm/workflows/4-implementation/sprint-planning/sprint-status-template.yaml +55 -0
  667. package/templates/commonproject/_bmad/bmm/workflows/4-implementation/sprint-planning/workflow.yaml +52 -0
  668. package/templates/commonproject/_bmad/bmm/workflows/4-implementation/sprint-status/instructions.md +229 -0
  669. package/templates/commonproject/_bmad/bmm/workflows/4-implementation/sprint-status/workflow.yaml +35 -0
  670. package/templates/commonproject/_bmad/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-01-mode-detection.md +156 -0
  671. package/templates/commonproject/_bmad/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-02-context-gathering.md +120 -0
  672. package/templates/commonproject/_bmad/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-03-execute.md +113 -0
  673. package/templates/commonproject/_bmad/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-04-self-check.md +113 -0
  674. package/templates/commonproject/_bmad/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-05-adversarial-review.md +106 -0
  675. package/templates/commonproject/_bmad/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-06-resolve-findings.md +140 -0
  676. package/templates/commonproject/_bmad/bmm/workflows/bmad-quick-flow/quick-dev/workflow.md +52 -0
  677. package/templates/commonproject/_bmad/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-01-understand.md +189 -0
  678. package/templates/commonproject/_bmad/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-02-investigate.md +144 -0
  679. package/templates/commonproject/_bmad/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-03-generate.md +128 -0
  680. package/templates/commonproject/_bmad/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-04-review.md +173 -0
  681. package/templates/commonproject/_bmad/bmm/workflows/bmad-quick-flow/quick-spec/tech-spec-template.md +74 -0
  682. package/templates/commonproject/_bmad/bmm/workflows/bmad-quick-flow/quick-spec/workflow.md +79 -0
  683. package/templates/commonproject/_bmad/bmm/workflows/document-project/checklist.md +245 -0
  684. package/templates/commonproject/_bmad/bmm/workflows/document-project/documentation-requirements.csv +12 -0
  685. package/templates/commonproject/_bmad/bmm/workflows/document-project/instructions.md +221 -0
  686. package/templates/commonproject/_bmad/bmm/workflows/document-project/templates/deep-dive-template.md +345 -0
  687. package/templates/commonproject/_bmad/bmm/workflows/document-project/templates/index-template.md +169 -0
  688. package/templates/commonproject/_bmad/bmm/workflows/document-project/templates/project-overview-template.md +103 -0
  689. package/templates/commonproject/_bmad/bmm/workflows/document-project/templates/project-scan-report-schema.json +160 -0
  690. package/templates/commonproject/_bmad/bmm/workflows/document-project/templates/source-tree-template.md +135 -0
  691. package/templates/commonproject/_bmad/bmm/workflows/document-project/workflow.yaml +28 -0
  692. package/templates/commonproject/_bmad/bmm/workflows/document-project/workflows/deep-dive-instructions.md +298 -0
  693. package/templates/commonproject/_bmad/bmm/workflows/document-project/workflows/deep-dive.yaml +31 -0
  694. package/templates/commonproject/_bmad/bmm/workflows/document-project/workflows/full-scan-instructions.md +1106 -0
  695. package/templates/commonproject/_bmad/bmm/workflows/document-project/workflows/full-scan.yaml +31 -0
  696. package/templates/commonproject/_bmad/bmm/workflows/excalidraw-diagrams/_shared/excalidraw-library.json +90 -0
  697. package/templates/commonproject/_bmad/bmm/workflows/excalidraw-diagrams/_shared/excalidraw-templates.yaml +127 -0
  698. package/templates/commonproject/_bmad/bmm/workflows/excalidraw-diagrams/create-dataflow/checklist.md +39 -0
  699. package/templates/commonproject/_bmad/bmm/workflows/excalidraw-diagrams/create-dataflow/instructions.md +130 -0
  700. package/templates/commonproject/_bmad/bmm/workflows/excalidraw-diagrams/create-dataflow/workflow.yaml +26 -0
  701. package/templates/commonproject/_bmad/bmm/workflows/excalidraw-diagrams/create-diagram/checklist.md +43 -0
  702. package/templates/commonproject/_bmad/bmm/workflows/excalidraw-diagrams/create-diagram/instructions.md +141 -0
  703. package/templates/commonproject/_bmad/bmm/workflows/excalidraw-diagrams/create-diagram/workflow.yaml +26 -0
  704. package/templates/commonproject/_bmad/bmm/workflows/excalidraw-diagrams/create-flowchart/checklist.md +49 -0
  705. package/templates/commonproject/_bmad/bmm/workflows/excalidraw-diagrams/create-flowchart/instructions.md +241 -0
  706. package/templates/commonproject/_bmad/bmm/workflows/excalidraw-diagrams/create-flowchart/workflow.yaml +26 -0
  707. package/templates/commonproject/_bmad/bmm/workflows/excalidraw-diagrams/create-wireframe/checklist.md +38 -0
  708. package/templates/commonproject/_bmad/bmm/workflows/excalidraw-diagrams/create-wireframe/instructions.md +133 -0
  709. package/templates/commonproject/_bmad/bmm/workflows/excalidraw-diagrams/create-wireframe/workflow.yaml +26 -0
  710. package/templates/commonproject/_bmad/bmm/workflows/generate-project-context/project-context-template.md +21 -0
  711. package/templates/commonproject/_bmad/bmm/workflows/generate-project-context/steps/step-01-discover.md +184 -0
  712. package/templates/commonproject/_bmad/bmm/workflows/generate-project-context/steps/step-02-generate.md +318 -0
  713. package/templates/commonproject/_bmad/bmm/workflows/generate-project-context/steps/step-03-complete.md +278 -0
  714. package/templates/commonproject/_bmad/bmm/workflows/generate-project-context/workflow.md +49 -0
  715. package/templates/commonproject/_bmad/bmm/workflows/testarch/atdd/atdd-checklist-template.md +364 -0
  716. package/templates/commonproject/_bmad/bmm/workflows/testarch/atdd/checklist.md +374 -0
  717. package/templates/commonproject/_bmad/bmm/workflows/testarch/atdd/instructions.md +806 -0
  718. package/templates/commonproject/_bmad/bmm/workflows/testarch/atdd/workflow.yaml +45 -0
  719. package/templates/commonproject/_bmad/bmm/workflows/testarch/automate/checklist.md +582 -0
  720. package/templates/commonproject/_bmad/bmm/workflows/testarch/automate/instructions.md +1324 -0
  721. package/templates/commonproject/_bmad/bmm/workflows/testarch/automate/workflow.yaml +52 -0
  722. package/templates/commonproject/_bmad/bmm/workflows/testarch/ci/checklist.md +248 -0
  723. package/templates/commonproject/_bmad/bmm/workflows/testarch/ci/github-actions-template.yaml +198 -0
  724. package/templates/commonproject/_bmad/bmm/workflows/testarch/ci/gitlab-ci-template.yaml +149 -0
  725. package/templates/commonproject/_bmad/bmm/workflows/testarch/ci/instructions.md +536 -0
  726. package/templates/commonproject/_bmad/bmm/workflows/testarch/ci/workflow.yaml +45 -0
  727. package/templates/commonproject/_bmad/bmm/workflows/testarch/framework/checklist.md +321 -0
  728. package/templates/commonproject/_bmad/bmm/workflows/testarch/framework/instructions.md +481 -0
  729. package/templates/commonproject/_bmad/bmm/workflows/testarch/framework/workflow.yaml +47 -0
  730. package/templates/commonproject/_bmad/bmm/workflows/testarch/nfr-assess/checklist.md +407 -0
  731. package/templates/commonproject/_bmad/bmm/workflows/testarch/nfr-assess/instructions.md +722 -0
  732. package/templates/commonproject/_bmad/bmm/workflows/testarch/nfr-assess/nfr-report-template.md +445 -0
  733. package/templates/commonproject/_bmad/bmm/workflows/testarch/nfr-assess/workflow.yaml +47 -0
  734. package/templates/commonproject/_bmad/bmm/workflows/testarch/test-design/checklist.md +235 -0
  735. package/templates/commonproject/_bmad/bmm/workflows/testarch/test-design/instructions.md +788 -0
  736. package/templates/commonproject/_bmad/bmm/workflows/testarch/test-design/test-design-template.md +294 -0
  737. package/templates/commonproject/_bmad/bmm/workflows/testarch/test-design/workflow.yaml +54 -0
  738. package/templates/commonproject/_bmad/bmm/workflows/testarch/test-review/checklist.md +472 -0
  739. package/templates/commonproject/_bmad/bmm/workflows/testarch/test-review/instructions.md +628 -0
  740. package/templates/commonproject/_bmad/bmm/workflows/testarch/test-review/test-review-template.md +390 -0
  741. package/templates/commonproject/_bmad/bmm/workflows/testarch/test-review/workflow.yaml +46 -0
  742. package/templates/commonproject/_bmad/bmm/workflows/testarch/trace/checklist.md +655 -0
  743. package/templates/commonproject/_bmad/bmm/workflows/testarch/trace/instructions.md +1047 -0
  744. package/templates/commonproject/_bmad/bmm/workflows/testarch/trace/trace-template.md +675 -0
  745. package/templates/commonproject/_bmad/bmm/workflows/testarch/trace/workflow.yaml +55 -0
  746. package/templates/commonproject/_bmad/bmm/workflows/workflow-status/init/instructions.md +346 -0
  747. package/templates/commonproject/_bmad/bmm/workflows/workflow-status/init/workflow.yaml +29 -0
  748. package/templates/commonproject/_bmad/bmm/workflows/workflow-status/instructions.md +395 -0
  749. package/templates/commonproject/_bmad/bmm/workflows/workflow-status/paths/enterprise-brownfield.yaml +103 -0
  750. package/templates/commonproject/_bmad/bmm/workflows/workflow-status/paths/enterprise-greenfield.yaml +100 -0
  751. package/templates/commonproject/_bmad/bmm/workflows/workflow-status/paths/method-brownfield.yaml +103 -0
  752. package/templates/commonproject/_bmad/bmm/workflows/workflow-status/paths/method-greenfield.yaml +100 -0
  753. package/templates/commonproject/_bmad/bmm/workflows/workflow-status/project-levels.yaml +59 -0
  754. package/templates/commonproject/_bmad/bmm/workflows/workflow-status/workflow-status-template.yaml +24 -0
  755. package/templates/commonproject/_bmad/bmm/workflows/workflow-status/workflow.yaml +30 -0
  756. package/templates/commonproject/_bmad/cis/agents/brainstorming-coach.md +66 -0
  757. package/templates/commonproject/_bmad/cis/agents/creative-problem-solver.md +66 -0
  758. package/templates/commonproject/_bmad/cis/agents/design-thinking-coach.md +66 -0
  759. package/templates/commonproject/_bmad/cis/agents/innovation-strategist.md +66 -0
  760. package/templates/commonproject/_bmad/cis/agents/presentation-master.md +72 -0
  761. package/templates/commonproject/_bmad/cis/agents/storyteller/storyteller.md +63 -0
  762. package/templates/commonproject/_bmad/cis/config.yaml +11 -0
  763. package/templates/commonproject/_bmad/cis/teams/creative-squad.yaml +7 -0
  764. package/templates/commonproject/_bmad/cis/teams/default-party.csv +12 -0
  765. package/templates/commonproject/_bmad/cis/workflows/README.md +139 -0
  766. package/templates/commonproject/_bmad/cis/workflows/design-thinking/README.md +56 -0
  767. package/templates/commonproject/_bmad/cis/workflows/design-thinking/design-methods.csv +31 -0
  768. package/templates/commonproject/_bmad/cis/workflows/design-thinking/instructions.md +202 -0
  769. package/templates/commonproject/_bmad/cis/workflows/design-thinking/template.md +111 -0
  770. package/templates/commonproject/_bmad/cis/workflows/design-thinking/workflow.yaml +27 -0
  771. package/templates/commonproject/_bmad/cis/workflows/innovation-strategy/README.md +56 -0
  772. package/templates/commonproject/_bmad/cis/workflows/innovation-strategy/innovation-frameworks.csv +31 -0
  773. package/templates/commonproject/_bmad/cis/workflows/innovation-strategy/instructions.md +276 -0
  774. package/templates/commonproject/_bmad/cis/workflows/innovation-strategy/template.md +189 -0
  775. package/templates/commonproject/_bmad/cis/workflows/innovation-strategy/workflow.yaml +27 -0
  776. package/templates/commonproject/_bmad/cis/workflows/problem-solving/README.md +56 -0
  777. package/templates/commonproject/_bmad/cis/workflows/problem-solving/instructions.md +252 -0
  778. package/templates/commonproject/_bmad/cis/workflows/problem-solving/solving-methods.csv +31 -0
  779. package/templates/commonproject/_bmad/cis/workflows/problem-solving/template.md +165 -0
  780. package/templates/commonproject/_bmad/cis/workflows/problem-solving/workflow.yaml +27 -0
  781. package/templates/commonproject/_bmad/cis/workflows/storytelling/README.md +58 -0
  782. package/templates/commonproject/_bmad/cis/workflows/storytelling/instructions.md +293 -0
  783. package/templates/commonproject/_bmad/cis/workflows/storytelling/story-types.csv +26 -0
  784. package/templates/commonproject/_bmad/cis/workflows/storytelling/template.md +113 -0
  785. package/templates/commonproject/_bmad/cis/workflows/storytelling/workflow.yaml +27 -0
  786. package/templates/commonproject/_bmad/core/agents/bmad-master.md +63 -0
  787. package/templates/commonproject/_bmad/core/config.yaml +9 -0
  788. package/templates/commonproject/_bmad/core/resources/excalidraw/README.md +160 -0
  789. package/templates/commonproject/_bmad/core/resources/excalidraw/excalidraw-helpers.md +127 -0
  790. package/templates/commonproject/_bmad/core/resources/excalidraw/library-loader.md +50 -0
  791. package/templates/commonproject/_bmad/core/resources/excalidraw/validate-json-instructions.md +79 -0
  792. package/templates/commonproject/_bmad/core/tasks/index-docs.xml +65 -0
  793. package/templates/commonproject/_bmad/core/tasks/review-adversarial-general.xml +41 -0
  794. package/templates/commonproject/_bmad/core/tasks/shard-doc.xml +109 -0
  795. package/templates/commonproject/_bmad/core/tasks/workflow.xml +235 -0
  796. package/templates/commonproject/_bmad/core/workflows/advanced-elicitation/methods.csv +51 -0
  797. package/templates/commonproject/_bmad/core/workflows/advanced-elicitation/workflow.xml +117 -0
  798. package/templates/commonproject/_bmad/core/workflows/brainstorming/brain-methods.csv +62 -0
  799. package/templates/commonproject/_bmad/core/workflows/brainstorming/steps/step-01-session-setup.md +197 -0
  800. package/templates/commonproject/_bmad/core/workflows/brainstorming/steps/step-01b-continue.md +122 -0
  801. package/templates/commonproject/_bmad/core/workflows/brainstorming/steps/step-02a-user-selected.md +225 -0
  802. package/templates/commonproject/_bmad/core/workflows/brainstorming/steps/step-02b-ai-recommended.md +237 -0
  803. package/templates/commonproject/_bmad/core/workflows/brainstorming/steps/step-02c-random-selection.md +209 -0
  804. package/templates/commonproject/_bmad/core/workflows/brainstorming/steps/step-02d-progressive-flow.md +264 -0
  805. package/templates/commonproject/_bmad/core/workflows/brainstorming/steps/step-03-technique-execution.md +399 -0
  806. package/templates/commonproject/_bmad/core/workflows/brainstorming/steps/step-04-idea-organization.md +303 -0
  807. package/templates/commonproject/_bmad/core/workflows/brainstorming/template.md +15 -0
  808. package/templates/commonproject/_bmad/core/workflows/brainstorming/workflow.md +58 -0
  809. package/templates/commonproject/_bmad/core/workflows/party-mode/steps/step-01-agent-loading.md +139 -0
  810. package/templates/commonproject/_bmad/core/workflows/party-mode/steps/step-02-discussion-orchestration.md +204 -0
  811. package/templates/commonproject/_bmad/core/workflows/party-mode/steps/step-03-graceful-exit.md +159 -0
  812. package/templates/commonproject/_bmad/core/workflows/party-mode/workflow.md +206 -0
  813. package/templates/commonproject/_bmad/custom/config.yaml +11 -0
  814. package/templates/commonproject/_bmad/custom/workflows/ticket-lifecycle/data/ac-sufficiency-rubric.md +33 -0
  815. package/templates/commonproject/_bmad/custom/workflows/ticket-lifecycle/data/audit-comment-template.md +54 -0
  816. package/templates/commonproject/_bmad/custom/workflows/ticket-lifecycle/data/event-schemas.md +58 -0
  817. package/templates/commonproject/_bmad/custom/workflows/ticket-lifecycle/steps-c/step-01-init.md +173 -0
  818. package/templates/commonproject/_bmad/custom/workflows/ticket-lifecycle/steps-c/step-02-triage.md +159 -0
  819. package/templates/commonproject/_bmad/custom/workflows/ticket-lifecycle/steps-c/step-03-refine.md +149 -0
  820. package/templates/commonproject/_bmad/custom/workflows/ticket-lifecycle/steps-c/step-04-implement.md +147 -0
  821. package/templates/commonproject/_bmad/custom/workflows/ticket-lifecycle/steps-c/step-05-review.md +146 -0
  822. package/templates/commonproject/_bmad/custom/workflows/ticket-lifecycle/steps-c/step-06-qa.md +199 -0
  823. package/templates/commonproject/_bmad/custom/workflows/ticket-lifecycle/steps-c/step-07-complete.md +141 -0
  824. package/templates/commonproject/_bmad/custom/workflows/ticket-lifecycle/steps-e/step-01-assess.md +102 -0
  825. package/templates/commonproject/_bmad/custom/workflows/ticket-lifecycle/steps-e/step-02-apply.md +85 -0
  826. package/templates/commonproject/_bmad/custom/workflows/ticket-lifecycle/steps-v/step-01-validate.md +154 -0
  827. package/templates/commonproject/_bmad/custom/workflows/ticket-lifecycle/workflow-plan-ticket-lifecycle.md +346 -0
  828. package/templates/commonproject/_bmad/custom/workflows/ticket-lifecycle/workflow.md +84 -0
  829. package/templates/commonproject/_bmad/custom/workflows/ticket-lifecycle/workflow.yaml +39 -0
  830. package/templates/commonproject/copier.yml +90 -0
  831. package/templates/commonproject/mise.toml +38 -0
  832. package/templates/commonproject/template/.copier-answers.yml.jinja +2 -0
  833. package/templates/commonproject/template/.env.op +2 -0
  834. package/templates/commonproject/template/.mise/scripts/link-agentfiles.sh +9 -0
  835. package/templates/commonproject/template/.project.json.jinja +19 -0
  836. package/templates/commonproject/template/AGENTS.md.jinja +7 -0
  837. package/templates/commonproject/template/mise.toml.jinja +26 -0
  838. package/templates/hermes-agent/README.md +149 -0
  839. package/templates/hermes-agent/copier.yml +167 -0
  840. package/templates/hermes-agent/docs/architecture.md +111 -0
  841. package/templates/hermes-agent/docs/operations.md +238 -0
  842. package/templates/hermes-agent/docs/runbooks/runtime-checkpoint-repair.md +167 -0
  843. package/templates/hermes-agent/docs/scrum-master/README.md +118 -0
  844. package/templates/hermes-agent/docs/scrum-master/architecture.md +203 -0
  845. package/templates/hermes-agent/docs/scrum-master/development.md +313 -0
  846. package/templates/hermes-agent/docs/scrum-master/providers.md +203 -0
  847. package/templates/hermes-agent/docs/scrum-master-sentinel.md +17 -0
  848. package/templates/hermes-agent/install-local.sh +214 -0
  849. package/templates/hermes-agent/runtime-scaffold/.gitattributes +10 -0
  850. package/templates/hermes-agent/runtime-scaffold/README.md +52 -0
  851. package/templates/hermes-agent/runtime-scaffold/bloodbank-consumer.py +147 -0
  852. package/templates/hermes-agent/runtime-scaffold/decisions/.gitkeep +2 -0
  853. package/templates/hermes-agent/runtime-scaffold/logs/.gitkeep +1 -0
  854. package/templates/hermes-agent/runtime-scaffold/memories/MEMORY.md +47 -0
  855. package/templates/hermes-agent/runtime-scaffold/memories/USER.md +51 -0
  856. package/templates/hermes-agent/scripts/backfill-fleet-sot.sh +279 -0
  857. package/templates/hermes-agent/scripts/repair-runtime-checkpoint.sh +122 -0
  858. package/templates/hermes-agent/scripts/retrofit-70-envfile.sh +129 -0
  859. package/templates/hermes-agent/template/.gitignore.jinja +6 -0
  860. package/templates/hermes-agent/template/.runtime-scaffold/.gitattributes +10 -0
  861. package/templates/hermes-agent/template/.runtime-scaffold/README.md +52 -0
  862. package/templates/hermes-agent/template/.runtime-scaffold/bloodbank-consumer.py +147 -0
  863. package/templates/hermes-agent/template/.runtime-scaffold/decisions/.gitkeep +2 -0
  864. package/templates/hermes-agent/template/.runtime-scaffold/logs/.gitkeep +1 -0
  865. package/templates/hermes-agent/template/.runtime-scaffold/memories/MEMORY.md +47 -0
  866. package/templates/hermes-agent/template/.runtime-scaffold/memories/USER.md +51 -0
  867. package/templates/hermes-agent/template/.scripts/00-banner.sh +21 -0
  868. package/templates/hermes-agent/template/.scripts/01-config.sh +49 -0
  869. package/templates/hermes-agent/template/.scripts/05-fleet-env.sh +54 -0
  870. package/templates/hermes-agent/template/.scripts/10-hermes-profile.sh +130 -0
  871. package/templates/hermes-agent/template/.scripts/20-runtime-repo.sh +144 -0
  872. package/templates/hermes-agent/template/.scripts/30-telegram.sh +84 -0
  873. package/templates/hermes-agent/template/.scripts/40-plane.sh +51 -0
  874. package/templates/hermes-agent/template/.scripts/42-ticket-provider.sh +187 -0
  875. package/templates/hermes-agent/template/.scripts/60-bloodbank.sh +75 -0
  876. package/templates/hermes-agent/template/.scripts/70-systemd.sh +120 -0
  877. package/templates/hermes-agent/template/.scripts/75-scrum-master.sh +117 -0
  878. package/templates/hermes-agent/template/.scripts/80-registry.sh +53 -0
  879. package/templates/hermes-agent/template/.scripts/90-chain-scrum-master.sh +45 -0
  880. package/templates/hermes-agent/template/.scripts/99-summary.sh +38 -0
  881. package/templates/hermes-agent/template/.scripts/_lib.sh +208 -0
  882. package/templates/hermes-agent/template/.scripts/checkpoint.sh +17 -0
  883. package/templates/hermes-agent/template/.scripts/config.example.toml +55 -0
  884. package/templates/hermes-agent/template/.scripts/lib/ticket-provider.sh +102 -0
  885. package/templates/hermes-agent/template/.scripts/providers/linear.sh +176 -0
  886. package/templates/hermes-agent/template/.scripts/providers/plane.sh +196 -0
  887. package/templates/hermes-agent/template/.scripts/providers/trello.sh +160 -0
  888. package/templates/hermes-agent/template/.scripts/scrum-master/bin/emit-event.py +106 -0
  889. package/templates/hermes-agent/template/.scripts/scrum-master/bin/issue-autonomous-review.sh +125 -0
  890. package/templates/hermes-agent/template/.scripts/scrum-master/bin/issue-close-gate.sh +62 -0
  891. package/templates/hermes-agent/template/.scripts/scrum-master/continuous-ticket-sentinel.prompt.md.jinja +94 -0
  892. package/templates/hermes-agent/template/.scripts/scrum-master/continuous-ticket-sentinel.sh +207 -0
  893. package/templates/hermes-agent/template/.scripts/scrum-master/docs/autonomous-delegated-review.md +168 -0
  894. package/templates/hermes-agent/template/.scripts/scrum-master/docs/bloodbank-events.md +49 -0
  895. package/templates/hermes-agent/template/.scripts/scrum-master/docs/continuous-ticket-orchestration.md +75 -0
  896. package/templates/hermes-agent/template/SOUL.md.jinja +119 -0
  897. package/templates/hermes-agent/template/hermes.jinja +74 -0
  898. package/templates/hermes-agent/template/role.yaml.jinja +75 -0
@@ -0,0 +1,1491 @@
1
+ #!/usr/bin/env node
2
+ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
3
+ get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
4
+ }) : x)(function(x) {
5
+ if (typeof require !== "undefined") return require.apply(this, arguments);
6
+ throw Error('Dynamic require of "' + x + '" is not supported');
7
+ });
8
+
9
+ // src/mcp-server.ts
10
+ import { resolve } from "node:path";
11
+ import { existsSync as existsSync5, statSync } from "node:fs";
12
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
13
+ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
14
+ import { z } from "zod";
15
+
16
+ // src/commands/Command.ts
17
+ var Command = class {
18
+ context;
19
+ constructor(context) {
20
+ this.context = context;
21
+ }
22
+ /**
23
+ * Format message with [DRY RUN] prefix if in dry-run mode
24
+ */
25
+ formatMessage(message) {
26
+ return this.context.dryRun ? `[DRY RUN] ${message}` : message;
27
+ }
28
+ fileExists(filePath) {
29
+ const { existsSync: existsSync6 } = __require("fs");
30
+ const { join: join6 } = __require("path");
31
+ const fullPath = join6(this.context.targetDir, filePath);
32
+ return existsSync6(fullPath);
33
+ }
34
+ writeFile(filePath, content) {
35
+ if (this.context.dryRun) {
36
+ return;
37
+ }
38
+ const { writeFileSync: writeFileSync2, mkdirSync: mkdirSync3 } = __require("fs");
39
+ const { join: join6, dirname: dirname3 } = __require("path");
40
+ const fullPath = join6(this.context.targetDir, filePath);
41
+ const dir = dirname3(fullPath);
42
+ mkdirSync3(dir, { recursive: true });
43
+ writeFileSync2(fullPath, content);
44
+ }
45
+ createDirectory(dirPath) {
46
+ if (this.context.dryRun) {
47
+ return;
48
+ }
49
+ const { mkdirSync: mkdirSync3 } = __require("fs");
50
+ const { join: join6 } = __require("path");
51
+ const fullPath = join6(this.context.targetDir, dirPath);
52
+ mkdirSync3(fullPath, { recursive: true });
53
+ }
54
+ };
55
+
56
+ // src/recipes/Recipe.ts
57
+ var Recipe = class {
58
+ context;
59
+ ingredients = [];
60
+ constructor(context) {
61
+ this.context = context;
62
+ }
63
+ addIngredient(CommandClass) {
64
+ this.ingredients.push(new CommandClass(this.context));
65
+ return this;
66
+ }
67
+ async execute() {
68
+ const dryRunPrefix = this.context.dryRun ? "[DRY RUN] " : "";
69
+ console.log(`${dryRunPrefix}\u{1F680} Initializing ${this.constructor.name.replace("Recipe", "").toLowerCase()} subsystem...`);
70
+ if (this.context.dryRun) {
71
+ console.log("\u26A0\uFE0F Dry-run mode: No files will be modified");
72
+ console.log("");
73
+ }
74
+ for (const command of this.ingredients) {
75
+ const result = await command.invoke();
76
+ if (result.success) {
77
+ console.log(result.message);
78
+ } else {
79
+ console.log(result.message);
80
+ }
81
+ }
82
+ if (!this.context.dryRun) {
83
+ this.printNextSteps();
84
+ } else {
85
+ console.log("");
86
+ console.log("\u2713 Dry-run complete - no files were modified");
87
+ console.log(" Remove --dry-run flag to apply changes");
88
+ }
89
+ }
90
+ };
91
+
92
+ // src/commands/AddMiseToml.ts
93
+ var AddMiseToml = class extends Command {
94
+ async invoke() {
95
+ const filePath = "mise.toml";
96
+ if (this.fileExists(filePath) && !this.context.force) {
97
+ return {
98
+ success: false,
99
+ message: this.formatMessage("\u26A0\uFE0F mise.toml already exists"),
100
+ filePath
101
+ };
102
+ }
103
+ const content = `# Mise configuration
104
+ [tools]
105
+ python = "3.11"
106
+ node = "20"
107
+
108
+ [env]
109
+ NODE_ENV = "development"
110
+ `;
111
+ this.writeFile(filePath, content);
112
+ return {
113
+ success: true,
114
+ message: this.formatMessage(this.context.dryRun ? "Would create mise.toml" : "\u2705 Created mise.toml"),
115
+ filePath
116
+ };
117
+ }
118
+ };
119
+
120
+ // src/commands/AddDotenv.ts
121
+ var AddDotenv = class extends Command {
122
+ async invoke() {
123
+ const filePath = ".env";
124
+ if (this.fileExists(filePath) && !this.context.force) {
125
+ return {
126
+ success: false,
127
+ message: this.formatMessage("\u26A0\uFE0F .env already exists"),
128
+ filePath
129
+ };
130
+ }
131
+ const content = `# Environment variables
132
+ DATABASE_URL=""
133
+ API_KEY=""
134
+ SECRET_KEY=""
135
+ `;
136
+ this.writeFile(filePath, content);
137
+ return {
138
+ success: true,
139
+ message: this.formatMessage(this.context.dryRun ? "Would create .env" : "\u2705 Created .env"),
140
+ filePath
141
+ };
142
+ }
143
+ };
144
+
145
+ // src/commands/AddMiseTasksStructure.ts
146
+ var AddMiseTasksStructure = class extends Command {
147
+ async invoke() {
148
+ this.createDirectory(".mise/tasks/scripts");
149
+ return {
150
+ success: true,
151
+ message: this.formatMessage(this.context.dryRun ? "Would create .mise directory structure" : "\u2705 Created .mise directory structure"),
152
+ filePath: ".mise/tasks/scripts"
153
+ };
154
+ }
155
+ };
156
+
157
+ // src/commands/AddMiseBaseToml.ts
158
+ var AddMiseBaseToml = class extends Command {
159
+ async invoke() {
160
+ const filePath = ".mise/tasks/base.toml";
161
+ if (this.fileExists(filePath) && !this.context.force) {
162
+ return {
163
+ success: false,
164
+ message: this.formatMessage("\u26A0\uFE0F .mise/tasks/base.toml already exists"),
165
+ filePath
166
+ };
167
+ }
168
+ const content = `# Base tasks configuration
169
+ [tasks.setup]
170
+ run = "python scripts/base.py"
171
+ description = "Setup base environment"
172
+
173
+ [tasks.clean]
174
+ run = "rm -rf node_modules dist build"
175
+ description = "Clean build artifacts"
176
+
177
+ [tasks.dev]
178
+ run = "mise run setup"
179
+ description = "Initialize development environment"
180
+ `;
181
+ this.writeFile(filePath, content);
182
+ return {
183
+ success: true,
184
+ message: this.formatMessage(this.context.dryRun ? "Would create .mise/tasks/base.toml" : "\u2705 Created .mise/tasks/base.toml"),
185
+ filePath
186
+ };
187
+ }
188
+ };
189
+
190
+ // src/commands/AddMiseBaseScript.ts
191
+ var AddMiseBaseScript = class extends Command {
192
+ async invoke() {
193
+ const filePath = ".mise/tasks/scripts/base.py";
194
+ if (this.fileExists(filePath) && !this.context.force) {
195
+ return {
196
+ success: false,
197
+ message: this.formatMessage("\u26A0\uFE0F .mise/tasks/scripts/base.py already exists"),
198
+ filePath
199
+ };
200
+ }
201
+ const content = `#!/usr/bin/env python3
202
+ """Base setup script"""
203
+ import os
204
+ import sys
205
+ from pathlib import Path
206
+
207
+ def main():
208
+ print("\u{1F527} Setting up base environment...")
209
+
210
+ dirs_to_create = ["logs", "temp", "data"]
211
+ for dir_name in dirs_to_create:
212
+ Path(dir_name).mkdir(exist_ok=True)
213
+ print(f" Created {dir_name}/ directory")
214
+
215
+ print(" Base environment setup complete!")
216
+ print(" Run 'mise run dev' to start development")
217
+
218
+ if __name__ == "__main__":
219
+ main()
220
+ `;
221
+ this.writeFile(filePath, content);
222
+ return {
223
+ success: true,
224
+ message: this.formatMessage(this.context.dryRun ? "Would create .mise/tasks/scripts/base.py" : "\u2705 Created .mise/tasks/scripts/base.py"),
225
+ filePath
226
+ };
227
+ }
228
+ };
229
+
230
+ // src/recipes/MiseRecipe.ts
231
+ var MiseRecipe = class extends Recipe {
232
+ constructor(context) {
233
+ super(context);
234
+ this.addIngredient(AddMiseToml).addIngredient(AddDotenv).addIngredient(AddMiseTasksStructure).addIngredient(AddMiseBaseToml).addIngredient(AddMiseBaseScript);
235
+ }
236
+ printNextSteps() {
237
+ console.log("\u{1F389} Mise subsystem initialized successfully!");
238
+ console.log(" Next steps:");
239
+ console.log(" 1. mise install");
240
+ console.log(" 2. mise run dev");
241
+ }
242
+ };
243
+
244
+ // src/commands/AddDockerfile.ts
245
+ var AddDockerfile = class extends Command {
246
+ async invoke() {
247
+ const filePath = "Dockerfile";
248
+ if (this.fileExists(filePath) && !this.context.force) {
249
+ return {
250
+ success: false,
251
+ message: this.formatMessage("\u26A0\uFE0F Dockerfile already exists"),
252
+ filePath
253
+ };
254
+ }
255
+ const content = `FROM node:20-alpine
256
+
257
+ WORKDIR /app
258
+
259
+ COPY package.json bun.lockb ./
260
+ RUN bun install
261
+
262
+ COPY . .
263
+
264
+ RUN bun run build
265
+
266
+ EXPOSE 3000
267
+
268
+ CMD ["bun", "run", "start"]
269
+ `;
270
+ this.writeFile(filePath, content);
271
+ return {
272
+ success: true,
273
+ message: this.formatMessage(this.context.dryRun ? "Would create Dockerfile" : "\u2705 Created Dockerfile"),
274
+ filePath
275
+ };
276
+ }
277
+ };
278
+
279
+ // src/commands/AddDockerCompose.ts
280
+ var AddDockerCompose = class extends Command {
281
+ async invoke() {
282
+ const filePath = "docker-compose.yml";
283
+ if (this.fileExists(filePath) && !this.context.force) {
284
+ return {
285
+ success: false,
286
+ message: this.formatMessage("\u26A0\uFE0F docker-compose.yml already exists"),
287
+ filePath
288
+ };
289
+ }
290
+ const content = `version: '3.8'
291
+
292
+ services:
293
+ app:
294
+ build: .
295
+ ports:
296
+ - "3000:3000"
297
+ environment:
298
+ - NODE_ENV=production
299
+ volumes:
300
+ - ./logs:/app/logs
301
+ restart: unless-stopped
302
+
303
+ redis:
304
+ image: redis:7-alpine
305
+ ports:
306
+ - "6379:6379"
307
+ volumes:
308
+ - redis_data:/data
309
+ restart: unless-stopped
310
+
311
+ volumes:
312
+ redis_data:
313
+ `;
314
+ this.writeFile(filePath, content);
315
+ return {
316
+ success: true,
317
+ message: this.formatMessage(this.context.dryRun ? "Would create docker-compose.yml" : "\u2705 Created docker-compose.yml"),
318
+ filePath
319
+ };
320
+ }
321
+ };
322
+
323
+ // src/commands/AddDockerignore.ts
324
+ var AddDockerignore = class extends Command {
325
+ async invoke() {
326
+ const filePath = ".dockerignore";
327
+ if (this.fileExists(filePath) && !this.context.force) {
328
+ return {
329
+ success: false,
330
+ message: this.formatMessage("\u26A0\uFE0F .dockerignore already exists"),
331
+ filePath
332
+ };
333
+ }
334
+ const content = `node_modules
335
+ npm-debug.log
336
+ dist
337
+ build
338
+ .env
339
+ .git
340
+ *.md
341
+ `;
342
+ this.writeFile(filePath, content);
343
+ return {
344
+ success: true,
345
+ message: this.formatMessage(this.context.dryRun ? "Would create .dockerignore" : "\u2705 Created .dockerignore"),
346
+ filePath
347
+ };
348
+ }
349
+ };
350
+
351
+ // src/recipes/DockerRecipe.ts
352
+ var DockerRecipe = class extends Recipe {
353
+ constructor(context) {
354
+ super(context);
355
+ this.addIngredient(AddDockerfile).addIngredient(AddDockerCompose).addIngredient(AddDockerignore);
356
+ }
357
+ printNextSteps() {
358
+ console.log("\u{1F389} Docker subsystem initialized successfully!");
359
+ console.log(" Next steps:");
360
+ console.log(" 1. docker-compose up -d");
361
+ console.log(" 2. docker-compose logs -f");
362
+ }
363
+ };
364
+
365
+ // src/commands/NodeCommands.ts
366
+ var AddPackageJson = class extends Command {
367
+ async invoke() {
368
+ const filePath = "package.json";
369
+ if (this.fileExists(filePath) && !this.context.force) {
370
+ return {
371
+ success: false,
372
+ message: "\u26A0\uFE0F package.json already exists",
373
+ filePath
374
+ };
375
+ }
376
+ const content = `{
377
+ "name": "my-project",
378
+ "version": "1.0.0",
379
+ "description": "A new project",
380
+ "main": "index.js",
381
+ "scripts": {
382
+ "start": "node index.js",
383
+ "dev": "node --watch index.js",
384
+ "test": "echo \\"Error: no test specified\\" && exit 1"
385
+ },
386
+ "keywords": [],
387
+ "author": "",
388
+ "license": "ISC"
389
+ }
390
+ `;
391
+ this.writeFile(filePath, content);
392
+ return {
393
+ success: true,
394
+ message: "\u2705 Created package.json",
395
+ filePath
396
+ };
397
+ }
398
+ };
399
+ var AddReadme = class extends Command {
400
+ async invoke() {
401
+ const filePath = "README.md";
402
+ if (this.fileExists(filePath) && !this.context.force) {
403
+ return {
404
+ success: false,
405
+ message: "\u26A0\uFE0F README.md already exists",
406
+ filePath
407
+ };
408
+ }
409
+ const content = `# My Project
410
+
411
+ A new project initialized with pjangler.
412
+
413
+ ## Getting Started
414
+
415
+ 1. Install dependencies: \`mise install\`
416
+ 2. Start development: \`mise run dev\`
417
+
418
+ ## Project Structure
419
+
420
+ - \`mise.toml\` - Environment configuration
421
+ - \`.mise/tasks/\` - Task definitions
422
+ - \`src/\` - Source code
423
+ `;
424
+ this.writeFile(filePath, content);
425
+ return {
426
+ success: true,
427
+ message: "\u2705 Created README.md",
428
+ filePath
429
+ };
430
+ }
431
+ };
432
+ var AddSrcDirectory = class extends Command {
433
+ async invoke() {
434
+ this.createDirectory("src");
435
+ const indexJsPath = "src/index.js";
436
+ const content = `console.log("Hello, World!");
437
+ `;
438
+ this.writeFile(indexJsPath, content);
439
+ return {
440
+ success: true,
441
+ message: "\u2705 Created src/ directory with index.js",
442
+ filePath: "src/index.js"
443
+ };
444
+ }
445
+ };
446
+
447
+ // src/recipes/NodeRecipe.ts
448
+ var NodeRecipe = class extends Recipe {
449
+ constructor(context) {
450
+ super(context);
451
+ this.addIngredient(AddPackageJson).addIngredient(AddReadme).addIngredient(AddSrcDirectory);
452
+ }
453
+ printNextSteps() {
454
+ console.log("\u{1F389} Node.js project initialized successfully!");
455
+ console.log(" Next steps:");
456
+ console.log(" 1. mise install");
457
+ console.log(" 2. mise run dev");
458
+ }
459
+ };
460
+
461
+ // src/commands/hermes/EnsureTemplateConfig.ts
462
+ import { homedir, platform } from "node:os";
463
+ import { existsSync, mkdirSync, writeFileSync } from "node:fs";
464
+ import { join, dirname } from "node:path";
465
+ function resolveTemplateConfigPath() {
466
+ const fromEnv = process.env.HERMES_TEMPLATE_CONFIG;
467
+ if (fromEnv && fromEnv.trim()) return fromEnv.trim();
468
+ const xdg = process.env.XDG_CONFIG_HOME?.trim();
469
+ const base = xdg && xdg.length ? xdg : join(homedir(), ".config");
470
+ return join(base, "hermes-agent-template", "config.toml");
471
+ }
472
+ function detectHermesBin(home) {
473
+ const candidates = [
474
+ join(home, "code", "hermes-agent", "venv", "bin", "hermes"),
475
+ join(home, "code", "hermes-agent", ".venv", "bin", "hermes"),
476
+ join(home, ".local", "bin", "hermes")
477
+ ];
478
+ for (const c of candidates) {
479
+ if (existsSync(c)) return c;
480
+ }
481
+ return candidates[0];
482
+ }
483
+ function renderHostConfig() {
484
+ const home = homedir();
485
+ const hermesBin = detectHermesBin(home);
486
+ const hermesRepo = join(home, "code", "hermes-agent");
487
+ const scaffoldDir = join(home, "code", "hermes-agent-template", "runtime-scaffold");
488
+ const skillsDir = join(home, ".agents", "skills");
489
+ return `# hermes-agent-template \u2014 host configuration
490
+ # Bootstrapped by \`pjangler config bootstrap\` for $HOME=${home} (platform=${platform()}).
491
+ #
492
+ # [fleet] paths below were derived from THIS machine. The identity values in
493
+ # [github]/[plane]/[bloodbank] are intentionally left to be confirmed before a
494
+ # CLOUD provision (\`pjangler hermes\` without --local); they are unused by the
495
+ # default local-only provision.
496
+ #
497
+ # Resolution precedence per value: env var > ~/.hermes/fleet.env > this file > fallback.
498
+
499
+ [fleet]
500
+ home = "~/.hermes"
501
+ hermes_bin = "${hermesBin}"
502
+ hermes_repo = "${hermesRepo}"
503
+ runtime_scaffold_dir = "${scaffoldDir}"
504
+ fleet_env = "~/.hermes/fleet.env"
505
+ registry_file = "~/.hermes/agents-registry.yaml"
506
+ canonical_skills_dir = "${skillsDir}"
507
+ symlinked_runtime_skills = []
508
+
509
+ [github]
510
+ # Owner of the per-agent runtime repos (creates <owner>/agent-hm-<repo>-<role>).
511
+ # REQUIRED before a cloud provision. Leave empty for local-only runs.
512
+ runtime_repo_owner = ""
513
+
514
+ [plane]
515
+ # Plane instance + workspace (one project per agent). Confirm before cloud provision.
516
+ base = "https://plane.delo.sh"
517
+ workspace = "33god"
518
+
519
+ [bloodbank]
520
+ # NATS endpoint the consumer connects to. For a remote fleet node, point this at
521
+ # the bloodbank host over Tailscale rather than localhost.
522
+ nats_host = "127.0.0.1"
523
+ nats_port = 4222
524
+ compose_dir = "~/code/33GOD/bloodbank"
525
+ `;
526
+ }
527
+ var EnsureTemplateConfig = class extends Command {
528
+ async invoke() {
529
+ const ctx = this.context;
530
+ const force = ctx.forceConfig === true || process.env.PJANGLER_FORCE_CONFIG === "1";
531
+ const path = resolveTemplateConfigPath();
532
+ const exists = existsSync(path);
533
+ if (exists && !force) {
534
+ console.log(`\u2713 Config present: ${path}`);
535
+ return { success: true, message: "" };
536
+ }
537
+ if (ctx.dryRun) {
538
+ console.log(`[DRY RUN] Would ${exists ? "overwrite" : "create"} config: ${path}`);
539
+ return { success: true, message: "" };
540
+ }
541
+ try {
542
+ mkdirSync(dirname(path), { recursive: true });
543
+ writeFileSync(path, renderHostConfig());
544
+ } catch (err) {
545
+ const msg = err instanceof Error ? err.message : String(err);
546
+ return { success: false, message: `\u2717 Failed to write ${path}: ${msg}` };
547
+ }
548
+ console.log(`\u2713 Bootstrapped config: ${path}`);
549
+ console.log(" Review [github].runtime_repo_owner + [plane] + [bloodbank] before a cloud provision.");
550
+ return { success: true, message: "" };
551
+ }
552
+ };
553
+
554
+ // src/commands/hermes/PromptForAgentConfig.ts
555
+ import { basename, join as join2 } from "node:path";
556
+ import { readFileSync } from "node:fs";
557
+ import * as p from "@clack/prompts";
558
+
559
+ // src/commands/hermes/types.ts
560
+ var HERMES_AGENT_TEMPLATE = "gh:delorenj/hermes-agent-template";
561
+ var SOUL_TONES = ["direct", "playful", "formal", "terse"];
562
+ var ROLE_CHOICES = [
563
+ { value: "pm", label: "Project Manager (pm)", hint: "triage, planning, ticket authorship" },
564
+ {
565
+ value: "scrum-master",
566
+ label: "Scrum Master (Ticket Sentinel)",
567
+ hint: "continuous ticket sentinel + autonomous delegated review"
568
+ },
569
+ { value: "dev", label: "Developer (dev)", hint: "implements tickets" },
570
+ { value: "review", label: "Reviewer (review)", hint: "adversarial code review" },
571
+ { value: "ops", label: "Ops (ops)", hint: "deploy / infra" },
572
+ { value: "qa", label: "QA (qa)", hint: "test authorship + verification" }
573
+ ];
574
+ var TICKET_PROVIDERS = [
575
+ { value: "plane", label: "Plane", hint: "self-hosted at plane.delo.sh (default)" },
576
+ { value: "linear", label: "Linear", hint: "team board (created in Linear UI)" },
577
+ { value: "trello", label: "Trello", hint: "board = project" }
578
+ ];
579
+ function deriveAgentId(repo, role) {
580
+ return `${repo}-${role}`.toLowerCase();
581
+ }
582
+ function deriveProfileName(repo, role) {
583
+ return deriveAgentId(repo, role);
584
+ }
585
+
586
+ // src/commands/hermes/PromptForAgentConfig.ts
587
+ function detectTicketProvider(targetDir) {
588
+ try {
589
+ const t = JSON.parse(readFileSync(join2(targetDir, ".project.json"), "utf8"))?.ticket_provider?.type;
590
+ return t === "plane" || t === "linear" || t === "trello" ? t : void 0;
591
+ } catch {
592
+ return void 0;
593
+ }
594
+ }
595
+ var PromptForAgentConfig = class extends Command {
596
+ async invoke() {
597
+ const ctx = this.context;
598
+ const defaultRepo = basename(ctx.targetDir).toLowerCase();
599
+ const defaultRole = "pm";
600
+ if (ctx.yes) {
601
+ ctx.targetRepo = (ctx.targetRepo ?? defaultRepo).toLowerCase();
602
+ ctx.role ??= defaultRole;
603
+ ctx.agentPurpose ??= `${ctx.role} agent for ${ctx.targetRepo}`;
604
+ ctx.soulTone ??= "direct";
605
+ ctx.modelProvider ??= "";
606
+ ctx.modelName ??= "";
607
+ ctx.ticketProvider ??= detectTicketProvider(ctx.targetDir) ?? "plane";
608
+ ctx.withScrumMaster ??= false;
609
+ ctx.skipTelegram ??= true;
610
+ ctx.skipEmail ??= true;
611
+ ctx.agentId = deriveAgentId(ctx.targetRepo, ctx.role);
612
+ ctx.profileName = deriveProfileName(ctx.targetRepo, ctx.role);
613
+ return {
614
+ success: true,
615
+ message: this.formatMessage(
616
+ `\u2713 Non-interactive mode \u2014 using defaults (repo=${ctx.targetRepo}, role=${ctx.role}, profile=${ctx.profileName})`
617
+ )
618
+ };
619
+ }
620
+ p.intro("\u2695 hermes-agent \xB7 add a new agent role to this repo");
621
+ if (!ctx.targetRepo) {
622
+ const answer = await p.text({
623
+ message: "Target repo name",
624
+ placeholder: defaultRepo,
625
+ initialValue: defaultRepo,
626
+ validate: (v) => v && v.trim() ? void 0 : "required"
627
+ });
628
+ if (p.isCancel(answer)) return this.cancelled();
629
+ ctx.targetRepo = String(answer).trim().toLowerCase();
630
+ }
631
+ if (!ctx.role) {
632
+ const answer = await p.select({
633
+ message: "Role",
634
+ options: ROLE_CHOICES.map((r) => ({ value: r.value, label: r.label, hint: r.hint })),
635
+ initialValue: defaultRole
636
+ });
637
+ if (p.isCancel(answer)) return this.cancelled();
638
+ ctx.role = String(answer).trim();
639
+ }
640
+ if (ctx.ticketProvider === void 0) {
641
+ const detected = detectTicketProvider(ctx.targetDir);
642
+ const answer = await p.select({
643
+ message: "Ticket board provider",
644
+ options: TICKET_PROVIDERS.map((t) => ({
645
+ value: t.value,
646
+ label: t.label,
647
+ hint: t.value === detected ? `${t.hint} \u2014 current .project.json` : t.hint
648
+ })),
649
+ initialValue: detected ?? "plane"
650
+ });
651
+ if (p.isCancel(answer)) return this.cancelled();
652
+ ctx.ticketProvider = answer;
653
+ }
654
+ if (ctx.role === "pm" && ctx.withScrumMaster === void 0) {
655
+ const answer = await p.confirm({
656
+ message: "Also provision the paired Scrum Master (Ticket Sentinel) for this repo?",
657
+ initialValue: true
658
+ });
659
+ if (p.isCancel(answer)) return this.cancelled();
660
+ ctx.withScrumMaster = answer === true;
661
+ }
662
+ if (!ctx.agentPurpose) {
663
+ const answer = await p.text({
664
+ message: "One-line purpose",
665
+ placeholder: `${ctx.role} agent for ${ctx.targetRepo}`,
666
+ initialValue: `${ctx.role} agent for ${ctx.targetRepo}`
667
+ });
668
+ if (p.isCancel(answer)) return this.cancelled();
669
+ ctx.agentPurpose = String(answer).trim();
670
+ }
671
+ if (!ctx.soulTone) {
672
+ const answer = await p.select({
673
+ message: "Personality tone",
674
+ options: SOUL_TONES.map((t) => ({
675
+ value: t,
676
+ label: t,
677
+ hint: t === "direct" ? "decision-forward, no preamble (default)" : t === "terse" ? "minimum words, conclusion-first" : t === "playful" ? "warm, mildly funny" : "precise, structured"
678
+ })),
679
+ initialValue: "direct"
680
+ });
681
+ if (p.isCancel(answer)) return this.cancelled();
682
+ ctx.soulTone = answer;
683
+ }
684
+ if (ctx.modelProvider === void 0) {
685
+ const answer = await p.text({
686
+ message: "Provider override (empty = inherit shared default profile)",
687
+ placeholder: ""
688
+ });
689
+ if (p.isCancel(answer)) return this.cancelled();
690
+ ctx.modelProvider = String(answer).trim();
691
+ }
692
+ if (ctx.modelName === void 0) {
693
+ const answer = await p.text({
694
+ message: "Model name override (empty = inherit shared default profile)",
695
+ placeholder: ""
696
+ });
697
+ if (p.isCancel(answer)) return this.cancelled();
698
+ ctx.modelName = String(answer).trim();
699
+ }
700
+ if (ctx.skipTelegram === void 0) {
701
+ const wire = await p.confirm({
702
+ message: `Wire up the Telegram bot (@${ctx.targetRepo}_${ctx.role}_bot) now?`,
703
+ initialValue: true
704
+ });
705
+ if (p.isCancel(wire)) return this.cancelled();
706
+ ctx.skipTelegram = !wire;
707
+ }
708
+ if (ctx.skipEmail === void 0) {
709
+ const wire = await p.confirm({
710
+ message: `Provision the delo.sh email address (${ctx.targetRepo}-${ctx.role}@delo.sh) now?`,
711
+ initialValue: true
712
+ });
713
+ if (p.isCancel(wire)) return this.cancelled();
714
+ ctx.skipEmail = !wire;
715
+ }
716
+ ctx.agentId = deriveAgentId(ctx.targetRepo, ctx.role);
717
+ ctx.profileName = deriveProfileName(ctx.targetRepo, ctx.role);
718
+ return {
719
+ success: true,
720
+ message: this.formatMessage(
721
+ `\u2713 Collected agent config (agent_id=${ctx.agentId}, profile=${ctx.profileName})`
722
+ )
723
+ };
724
+ }
725
+ cancelled() {
726
+ p.cancel("Aborted by user.");
727
+ return { success: false, message: "Aborted by user." };
728
+ }
729
+ };
730
+
731
+ // src/commands/hermes/RunCopierTemplate.ts
732
+ import { spawnSync } from "node:child_process";
733
+ import { homedir as homedir2 } from "node:os";
734
+ import { join as join3, dirname as dirname2 } from "node:path";
735
+ import { existsSync as existsSync2, mkdirSync as mkdirSync2 } from "node:fs";
736
+ import { fileURLToPath } from "node:url";
737
+ import * as p2 from "@clack/prompts";
738
+ function resolveVendoredTemplate(name) {
739
+ let dir;
740
+ try {
741
+ dir = dirname2(fileURLToPath(import.meta.url));
742
+ } catch {
743
+ return void 0;
744
+ }
745
+ for (let i = 0; i < 8; i++) {
746
+ const candidate = join3(dir, "templates", name);
747
+ if (existsSync2(join3(candidate, "copier.yml"))) return candidate;
748
+ const parent = dirname2(dir);
749
+ if (parent === dir) break;
750
+ dir = parent;
751
+ }
752
+ return void 0;
753
+ }
754
+ var RunCopierTemplate = class extends Command {
755
+ async invoke() {
756
+ const ctx = this.context;
757
+ const { targetRepo, role, agentPurpose, soulTone, modelProvider, modelName } = ctx;
758
+ const ticketProvider = ctx.ticketProvider ?? "plane";
759
+ const profileName = ctx.profileName ?? (targetRepo && role ? deriveProfileName(targetRepo, role) : void 0);
760
+ const withScrumMaster = role === "pm" && ctx.withScrumMaster === true;
761
+ if (!targetRepo || !role) {
762
+ return {
763
+ success: false,
764
+ message: "PromptForAgentConfig must run before RunCopierTemplate (targetRepo/role unset)"
765
+ };
766
+ }
767
+ const roleDir = join3(ctx.targetDir, "agents", "hermes", role);
768
+ ctx.roleDir = roleDir;
769
+ ctx.runtimeRepo = `delorenj/agent-hm-${targetRepo}-${role}`;
770
+ const which = spawnSync("which", ["copier"], { encoding: "utf8" });
771
+ if (which.status !== 0) {
772
+ return {
773
+ success: false,
774
+ message: "\u2717 copier not found on PATH. Install with: `uv tool install copier` or `pip install copier`"
775
+ };
776
+ }
777
+ if (existsSync2(join3(roleDir, "role.yaml")) && !ctx.force) {
778
+ if (ctx.yes) {
779
+ ctx.force = true;
780
+ } else {
781
+ const proceed = await p2.confirm({
782
+ message: `${role}/role.yaml already exists \u2014 re-render with --overwrite?`,
783
+ initialValue: false
784
+ });
785
+ if (p2.isCancel(proceed) || !proceed) {
786
+ return {
787
+ success: false,
788
+ message: `Skipped: ${roleDir} already provisioned (use --force to re-render)`
789
+ };
790
+ }
791
+ ctx.force = true;
792
+ }
793
+ }
794
+ const env = {
795
+ ...process.env,
796
+ SKIP_TELEGRAM: "1",
797
+ SKIP_EMAIL: "1",
798
+ // We DO want copier to run runtime-repo + plane + bloodbank + systemd.
799
+ SKIP_RUNTIME_REPO: ctx.skipRuntimeRepo ? "1" : "0",
800
+ SKIP_PLANE: ctx.skipPlane ? "1" : "0",
801
+ SKIP_BLOODBANK: ctx.skipBloodbank ? "1" : "0",
802
+ SKIP_SYSTEMD: ctx.skipSystemd ? "1" : "0"
803
+ };
804
+ const LOCAL_TEMPLATE = join3(homedir2(), "code", "hermes-agent-template");
805
+ const vendored = resolveVendoredTemplate("hermes-agent");
806
+ const templateSrc = process.env.PJANGLER_HERMES_TEMPLATE || vendored || (existsSync2(join3(LOCAL_TEMPLATE, "copier.yml")) ? LOCAL_TEMPLATE : HERMES_AGENT_TEMPLATE);
807
+ const args = [
808
+ "copy",
809
+ templateSrc,
810
+ roleDir,
811
+ "--data",
812
+ `target_repo=${targetRepo}`,
813
+ "--data",
814
+ `role=${role}`,
815
+ "--data",
816
+ `agent_purpose=${agentPurpose ?? ""}`,
817
+ "--data",
818
+ `model_provider=${modelProvider ?? ""}`,
819
+ "--data",
820
+ `model_name=${modelName ?? ""}`,
821
+ "--data",
822
+ `profile_name=${profileName ?? ""}`,
823
+ "--data",
824
+ `soul_tone=${soulTone ?? "direct"}`,
825
+ "--data",
826
+ `ticket_provider=${ticketProvider}`,
827
+ "--data",
828
+ `with_scrum_master=${withScrumMaster}`,
829
+ "--trust",
830
+ "--vcs-ref=HEAD"
831
+ ];
832
+ if (ctx.force) args.push("--overwrite");
833
+ if (ctx.dryRun) {
834
+ return {
835
+ success: true,
836
+ message: this.formatMessage(`Would run: copier ${args.join(" ")}`)
837
+ };
838
+ }
839
+ mkdirSync2(join3(ctx.targetDir, "agents", "hermes"), { recursive: true });
840
+ const spinner4 = p2.spinner();
841
+ spinner4.start(`Running copier copy (target: agents/hermes/${role})`);
842
+ const result = spawnSync("copier", args, {
843
+ stdio: "inherit",
844
+ // pass the interactive output through; copier prints its own progress
845
+ env,
846
+ cwd: ctx.targetDir
847
+ });
848
+ spinner4.stop(result.status === 0 ? "\u2713 copier run complete" : "\u2717 copier failed");
849
+ if (result.status !== 0) {
850
+ return {
851
+ success: false,
852
+ message: `\u2717 copier exited with status ${result.status}. Check the output above; re-run with the same flags after fixing.`
853
+ };
854
+ }
855
+ return {
856
+ success: true,
857
+ message: `\u2713 Provisioned ${roleDir} (runtime: gh:${ctx.runtimeRepo})`
858
+ };
859
+ }
860
+ };
861
+
862
+ // src/commands/hermes/WireTelegram.ts
863
+ import { spawnSync as spawnSync2 } from "node:child_process";
864
+ import { join as join4 } from "node:path";
865
+ import { existsSync as existsSync3, unlinkSync } from "node:fs";
866
+ import * as p3 from "@clack/prompts";
867
+ var WireTelegram = class extends Command {
868
+ async invoke() {
869
+ const ctx = this.context;
870
+ if (ctx.skipTelegram) {
871
+ return { success: true, message: "\u2192 Telegram wire-up skipped" };
872
+ }
873
+ if (ctx.dryRun) {
874
+ return { success: true, message: this.formatMessage("Would run BotFather token capture") };
875
+ }
876
+ const { targetRepo, role, roleDir } = ctx;
877
+ if (!targetRepo || !role || !roleDir) {
878
+ return { success: false, message: "Cannot wire telegram: missing target_repo/role/roleDir" };
879
+ }
880
+ const botHandle = `${targetRepo.toLowerCase().replace(/-/g, "_")}_${role.toLowerCase()}_bot`;
881
+ const displayName = `${cap(targetRepo)} ${role.length <= 3 ? role.toUpperCase() : cap(role)}`;
882
+ const vaultTitle = `Telegram-Hermes-${targetRepo.toLowerCase()}-${role.toLowerCase()}`;
883
+ const vaultRef = `op://DeLoSecrets/${vaultTitle}/token`;
884
+ let token = process.env.TELEGRAM_BOT_TOKEN;
885
+ let source = token ? "env" : null;
886
+ if (!token) {
887
+ const tryOp = spawnSync2("op", ["read", vaultRef], { encoding: "utf8" });
888
+ if (tryOp.status === 0) {
889
+ token = tryOp.stdout.trim();
890
+ source = "op";
891
+ p3.log.info(`\u2713 Telegram token loaded from ${vaultRef}`);
892
+ }
893
+ }
894
+ if (!token) {
895
+ p3.log.step("BotFather steps");
896
+ p3.log.info(
897
+ [
898
+ " 1. Open Telegram, message @BotFather",
899
+ " 2. /newbot",
900
+ ` 3. Display name: ${displayName}`,
901
+ ` 4. Username: ${botHandle} (must end in _bot)`,
902
+ " 5. Copy the HTTP API token from the reply.",
903
+ " 6. /setjoingroups Disable",
904
+ " 7. /setprivacy Disable"
905
+ ].join("\n")
906
+ );
907
+ const tokenAnswer = await p3.password({
908
+ message: `Paste the bot token for @${botHandle}`,
909
+ mask: "\u2022",
910
+ validate: (v) => {
911
+ const s = String(v ?? "").trim();
912
+ if (!s) return "required";
913
+ if (!/^[0-9]+:.+/.test(s)) return "expected '<digits>:<secret>' shape";
914
+ }
915
+ });
916
+ if (p3.isCancel(tokenAnswer)) {
917
+ return { success: true, message: "\u2192 Telegram skipped (no token). Re-run later." };
918
+ }
919
+ token = String(tokenAnswer).trim();
920
+ source = "prompt";
921
+ const persist = await p3.confirm({
922
+ message: `Save to ${vaultRef} for next time?`,
923
+ initialValue: true
924
+ });
925
+ if (!p3.isCancel(persist) && persist) {
926
+ const create = spawnSync2(
927
+ "op",
928
+ [
929
+ "item",
930
+ "create",
931
+ "--category=API Credential",
932
+ "--vault=DeLoSecrets",
933
+ `--title=${vaultTitle}`,
934
+ `token=${token}`,
935
+ `bot_handle=${botHandle}`
936
+ ],
937
+ { stdio: "inherit" }
938
+ );
939
+ if (create.status !== 0) {
940
+ p3.log.warn("Could not store in 1Password \u2014 token is still set for this run.");
941
+ }
942
+ }
943
+ }
944
+ const allowedAnswer = await p3.text({
945
+ message: "Your Telegram user id (allow-list for this bot)",
946
+ placeholder: process.env.TELEGRAM_ALLOWED_USERS ?? "",
947
+ initialValue: process.env.TELEGRAM_ALLOWED_USERS ?? "",
948
+ validate: (v) => /^[0-9](?:[0-9,]*[0-9])?$/.test(String(v).trim()) ? void 0 : "comma-separated numeric ids"
949
+ });
950
+ if (p3.isCancel(allowedAnswer)) {
951
+ return { success: false, message: "\u2717 Aborted; Telegram step deferred." };
952
+ }
953
+ const script = join4(roleDir, ".scripts", "30-telegram.sh");
954
+ if (!existsSync3(script)) {
955
+ return {
956
+ success: false,
957
+ message: `\u2717 ${script} not found. Did copier finish? Re-run with --skip-runtime-repo=0 if you skipped it.`
958
+ };
959
+ }
960
+ const marker = join4(roleDir, ".scripts", ".done-30-telegram");
961
+ if (existsSync3(marker)) unlinkSync(marker);
962
+ const spinner4 = p3.spinner();
963
+ spinner4.start("Verifying token + wiring profile");
964
+ const result = spawnSync2("bash", [script], {
965
+ stdio: "inherit",
966
+ env: {
967
+ ...process.env,
968
+ SKIP_TELEGRAM: "0",
969
+ TELEGRAM_BOT_TOKEN: token,
970
+ TELEGRAM_ALLOWED_USERS: String(allowedAnswer).trim()
971
+ },
972
+ cwd: roleDir
973
+ });
974
+ spinner4.stop(result.status === 0 ? "\u2713 Telegram wired" : "\u2717 Telegram step failed");
975
+ if (result.status !== 0) {
976
+ return { success: false, message: "Telegram wire-up failed. See output above." };
977
+ }
978
+ const sourceLabel = source === "env" ? " (token: env)" : source === "op" ? " (token: op)" : "";
979
+ return { success: true, message: `\u2713 Telegram: @${botHandle} ready${sourceLabel}` };
980
+ }
981
+ };
982
+ function cap(s) {
983
+ return s.charAt(0).toUpperCase() + s.slice(1);
984
+ }
985
+
986
+ // src/commands/hermes/WireEmail.ts
987
+ import { spawnSync as spawnSync3 } from "node:child_process";
988
+ import { join as join5 } from "node:path";
989
+ import { existsSync as existsSync4, unlinkSync as unlinkSync2 } from "node:fs";
990
+ import * as p4 from "@clack/prompts";
991
+ var WireEmail = class extends Command {
992
+ async invoke() {
993
+ const ctx = this.context;
994
+ if (ctx.skipEmail) {
995
+ return { success: true, message: "\u2192 Email wire-up skipped" };
996
+ }
997
+ if (ctx.dryRun) {
998
+ return { success: true, message: this.formatMessage("Would create CF Email Routing rule") };
999
+ }
1000
+ const { targetRepo, role, roleDir } = ctx;
1001
+ if (!targetRepo || !role || !roleDir) {
1002
+ return { success: false, message: "Cannot wire email: missing target_repo/role/roleDir" };
1003
+ }
1004
+ const script = join5(roleDir, ".scripts", "50-email.sh");
1005
+ if (!existsSync4(script)) {
1006
+ return { success: false, message: `\u2717 ${script} not found` };
1007
+ }
1008
+ let token = process.env.CF_EMAIL_ROUTING_TOKEN;
1009
+ if (!token) {
1010
+ const tryOp = spawnSync3(
1011
+ "op",
1012
+ ["read", "op://DeLoSecrets/Cloudflare-EmailRouting/token"],
1013
+ { encoding: "utf8" }
1014
+ );
1015
+ if (tryOp.status === 0) {
1016
+ token = tryOp.stdout.trim();
1017
+ }
1018
+ }
1019
+ if (!token) {
1020
+ p4.log.warn("CF Email Routing token not found. Required scopes:");
1021
+ p4.log.info(
1022
+ [
1023
+ " Zone (delo.sh) \u2192 Email Routing Rules : Edit",
1024
+ " Zone (delo.sh) \u2192 Email Routing Settings : Read",
1025
+ " Account \u2192 Email Routing Addresses : Read",
1026
+ "Create at: https://dash.cloudflare.com/profile/api-tokens"
1027
+ ].join("\n")
1028
+ );
1029
+ const provideNow = await p4.confirm({
1030
+ message: "Paste a token now? (skipping leaves email unwired until you re-run.)",
1031
+ initialValue: false
1032
+ });
1033
+ if (p4.isCancel(provideNow) || !provideNow) {
1034
+ return { success: true, message: "\u2192 Email skipped (no token). Re-run later." };
1035
+ }
1036
+ const tokenAnswer = await p4.password({
1037
+ message: "CF token (will be passed via env, not stored)",
1038
+ mask: "\u2022",
1039
+ validate: (v) => String(v ?? "").trim() ? void 0 : "required"
1040
+ });
1041
+ if (p4.isCancel(tokenAnswer)) {
1042
+ return { success: true, message: "\u2192 Email skipped (cancelled)" };
1043
+ }
1044
+ token = String(tokenAnswer).trim();
1045
+ const persist = await p4.confirm({
1046
+ message: "Save to op://DeLoSecrets/Cloudflare-EmailRouting/token for next time?",
1047
+ initialValue: true
1048
+ });
1049
+ if (!p4.isCancel(persist) && persist) {
1050
+ const create = spawnSync3(
1051
+ "op",
1052
+ [
1053
+ "item",
1054
+ "create",
1055
+ "--category=API Credential",
1056
+ "--vault=DeLoSecrets",
1057
+ "--title=Cloudflare-EmailRouting",
1058
+ `token=${token}`
1059
+ ],
1060
+ { stdio: "inherit" }
1061
+ );
1062
+ if (create.status !== 0) {
1063
+ p4.log.warn("Could not store in 1Password \u2014 token is still set for this run.");
1064
+ }
1065
+ }
1066
+ }
1067
+ const marker = join5(roleDir, ".scripts", ".done-50-email");
1068
+ if (existsSync4(marker)) unlinkSync2(marker);
1069
+ const spinner4 = p4.spinner();
1070
+ spinner4.start("Creating Cloudflare Email Routing rule");
1071
+ const result = spawnSync3("bash", [script], {
1072
+ stdio: "inherit",
1073
+ env: { ...process.env, SKIP_EMAIL: "0", CF_EMAIL_ROUTING_TOKEN: token },
1074
+ cwd: roleDir
1075
+ });
1076
+ spinner4.stop(result.status === 0 ? "\u2713 Email rule created" : "\u2717 Email step failed");
1077
+ if (result.status !== 0) {
1078
+ return { success: false, message: "Email rule creation failed. See output above." };
1079
+ }
1080
+ return {
1081
+ success: true,
1082
+ message: `\u2713 Email: ${targetRepo}-${role}@delo.sh \u2192 jaradd@gmail.com`
1083
+ };
1084
+ }
1085
+ };
1086
+
1087
+ // src/commands/hermes/PrintHermesSummary.ts
1088
+ import * as p5 from "@clack/prompts";
1089
+ var PrintHermesSummary = class extends Command {
1090
+ async invoke() {
1091
+ const ctx = this.context;
1092
+ const { targetRepo, role, agentId, runtimeRepo, skipTelegram, skipEmail } = ctx;
1093
+ const botHandle = `${targetRepo?.toLowerCase().replace(/-/g, "_")}_${role?.toLowerCase()}_bot`;
1094
+ const email = `${targetRepo}-${role}@delo.sh`;
1095
+ const gw = `hermes-${agentId}-gateway.service`;
1096
+ const csm = `hermes-${agentId}-consumer.service`;
1097
+ const ckpt = `hermes-${agentId}-checkpoint.timer`;
1098
+ const lines = [];
1099
+ lines.push(`agent_id ${agentId}`);
1100
+ lines.push(`role dir ${ctx.roleDir}`);
1101
+ lines.push(`runtime gh:${runtimeRepo}`);
1102
+ lines.push(`telegram @${botHandle}${skipTelegram ? " (NOT yet wired)" : ""}`);
1103
+ lines.push(`email ${email}${skipEmail ? " (NOT yet wired)" : ""}`);
1104
+ lines.push("");
1105
+ lines.push("Start daemons:");
1106
+ lines.push(` systemctl --user start ${csm}`);
1107
+ lines.push(` systemctl --user start ${ckpt}`);
1108
+ if (!skipTelegram) {
1109
+ lines.push(` systemctl --user start ${gw}`);
1110
+ } else {
1111
+ lines.push(` # gateway needs Telegram wired first (re-run with --skip-telegram=0)`);
1112
+ }
1113
+ lines.push("");
1114
+ lines.push("Talk locally:");
1115
+ lines.push(` ${ctx.roleDir}/hermes chat "status"`);
1116
+ if (skipTelegram || skipEmail) {
1117
+ lines.push("");
1118
+ lines.push("Deferred \u2014 re-run pjangler hermes-agent without --yes (or with explicit flags):");
1119
+ if (skipTelegram) lines.push(" pjangler hermes-agent --skip-telegram=false # wire just telegram");
1120
+ if (skipEmail) lines.push(" pjangler hermes-agent --skip-email=false # wire just email");
1121
+ }
1122
+ p5.note(lines.join("\n"), `Provisioned ${agentId}`);
1123
+ p5.outro("Done.");
1124
+ return { success: true, message: "" };
1125
+ }
1126
+ };
1127
+
1128
+ // src/recipes/HermesAgentRecipe.ts
1129
+ var HermesAgentRecipe = class extends Recipe {
1130
+ constructor(context) {
1131
+ super(context);
1132
+ this.addIngredient(EnsureTemplateConfig).addIngredient(PromptForAgentConfig).addIngredient(RunCopierTemplate).addIngredient(WireTelegram).addIngredient(WireEmail).addIngredient(PrintHermesSummary);
1133
+ }
1134
+ // Override execute() to suppress the base class's per-command logging since
1135
+ // our commands already render their own UI via @clack/prompts.
1136
+ async execute() {
1137
+ for (const command of this.ingredients) {
1138
+ const result = await command.invoke();
1139
+ if (!result.success && result.message.startsWith("\u2717")) {
1140
+ console.error(result.message);
1141
+ return;
1142
+ }
1143
+ if (result.message && !result.message.startsWith("\u2713 Collected")) {
1144
+ if (result.message.startsWith("\u2192") || result.message.startsWith("\u2713 Provisioned")) {
1145
+ console.log(result.message);
1146
+ }
1147
+ }
1148
+ }
1149
+ }
1150
+ printNextSteps() {
1151
+ }
1152
+ };
1153
+
1154
+ // src/utils/registry.ts
1155
+ var RECIPE_REGISTRY = {
1156
+ mise: {
1157
+ name: "mise",
1158
+ description: "Mise task runner and environment setup",
1159
+ class: MiseRecipe,
1160
+ commands: ["AddMiseToml", "AddDotenv", "AddMiseTasksStructure", "AddMiseBaseToml", "AddMiseBaseScript"]
1161
+ },
1162
+ docker: {
1163
+ name: "docker",
1164
+ description: "Docker containerization setup",
1165
+ class: DockerRecipe,
1166
+ commands: ["AddDockerfile", "AddDockerCompose", "AddDockerignore"]
1167
+ },
1168
+ node: {
1169
+ name: "node",
1170
+ description: "Node.js project template",
1171
+ class: NodeRecipe,
1172
+ commands: ["NodeCommands"]
1173
+ // Placeholder - actual commands in NodeCommands.ts
1174
+ },
1175
+ "hermes-agent": {
1176
+ name: "hermes-agent",
1177
+ description: "Add a Hermes agent role to this repo (copier + BotFather + CF email + submodule)",
1178
+ class: HermesAgentRecipe,
1179
+ commands: [
1180
+ "EnsureTemplateConfig",
1181
+ "PromptForAgentConfig",
1182
+ "RunCopierTemplate",
1183
+ "WireTelegram",
1184
+ "WireEmail",
1185
+ "PrintHermesSummary"
1186
+ ]
1187
+ }
1188
+ };
1189
+ var COMMAND_REGISTRY = {
1190
+ AddDockerfile: {
1191
+ name: "AddDockerfile",
1192
+ description: "Create Dockerfile for containerization",
1193
+ group: "docker",
1194
+ class: AddDockerfile
1195
+ },
1196
+ AddDockerCompose: {
1197
+ name: "AddDockerCompose",
1198
+ description: "Create docker-compose.yml for multi-service setup",
1199
+ group: "docker",
1200
+ class: AddDockerCompose
1201
+ },
1202
+ AddDockerignore: {
1203
+ name: "AddDockerignore",
1204
+ description: "Create .dockerignore file",
1205
+ group: "docker",
1206
+ class: AddDockerignore
1207
+ },
1208
+ AddMiseToml: {
1209
+ name: "AddMiseToml",
1210
+ description: "Create mise.toml for version management",
1211
+ group: "mise",
1212
+ class: AddMiseToml
1213
+ },
1214
+ AddMiseBaseToml: {
1215
+ name: "AddMiseBaseToml",
1216
+ description: "Create base mise configuration",
1217
+ group: "mise",
1218
+ class: AddMiseBaseToml
1219
+ },
1220
+ AddMiseTasksStructure: {
1221
+ name: "AddMiseTasksStructure",
1222
+ description: "Create .mise/tasks directory structure",
1223
+ group: "mise",
1224
+ class: AddMiseTasksStructure
1225
+ },
1226
+ AddMiseBaseScript: {
1227
+ name: "AddMiseBaseScript",
1228
+ description: "Create base mise task scripts",
1229
+ group: "mise",
1230
+ class: AddMiseBaseScript
1231
+ },
1232
+ AddDotenv: {
1233
+ name: "AddDotenv",
1234
+ description: "Create .env.example file",
1235
+ group: "environment",
1236
+ class: AddDotenv
1237
+ }
1238
+ };
1239
+ function getRecipeNames() {
1240
+ return Object.keys(RECIPE_REGISTRY);
1241
+ }
1242
+ function getRecipeInfo(name) {
1243
+ return RECIPE_REGISTRY[name] || null;
1244
+ }
1245
+ function createRecipe(name, context) {
1246
+ const info = getRecipeInfo(name);
1247
+ if (!info) return null;
1248
+ return new info.class(context);
1249
+ }
1250
+
1251
+ // src/mcp-server.ts
1252
+ var server = new McpServer({
1253
+ name: "pjangler-mcp",
1254
+ version: "1.0.0"
1255
+ });
1256
+ function resolveTargetDir(targetDir) {
1257
+ const dir = resolve(targetDir ?? process.cwd());
1258
+ if (!existsSync5(dir)) {
1259
+ throw new Error(`Target directory does not exist: ${dir}`);
1260
+ }
1261
+ if (!statSync(dir).isDirectory()) {
1262
+ throw new Error(`Target path is not a directory: ${dir}`);
1263
+ }
1264
+ return dir;
1265
+ }
1266
+ async function runRecipeWithCapture(recipeName, context) {
1267
+ const recipe = createRecipe(recipeName, context);
1268
+ if (!recipe) {
1269
+ return {
1270
+ success: false,
1271
+ logs: [],
1272
+ errors: [`Unknown recipe: ${recipeName}. Available: ${getRecipeNames().join(", ")}`]
1273
+ };
1274
+ }
1275
+ const logs = [];
1276
+ const errors = [];
1277
+ const origLog = console.log;
1278
+ const origError = console.error;
1279
+ console.log = (...args) => {
1280
+ logs.push(args.map((a) => String(a)).join(" "));
1281
+ };
1282
+ console.error = (...args) => {
1283
+ errors.push(args.map((a) => String(a)).join(" "));
1284
+ };
1285
+ try {
1286
+ await recipe.execute();
1287
+ const combined = [...logs, ...errors].join("\n");
1288
+ const success = !combined.match(/(^|\n)✗/);
1289
+ return { success, logs, errors };
1290
+ } catch (err) {
1291
+ errors.push(err instanceof Error ? err.message : String(err));
1292
+ return { success: false, logs, errors };
1293
+ } finally {
1294
+ console.log = origLog;
1295
+ console.error = origError;
1296
+ }
1297
+ }
1298
+ server.registerTool(
1299
+ "pjangler_list_capabilities",
1300
+ {
1301
+ title: "List pjangler capabilities",
1302
+ description: "Returns available recipes and commands exposed by pjangler.",
1303
+ inputSchema: {}
1304
+ },
1305
+ async () => {
1306
+ const payload = {
1307
+ recipes: Object.values(RECIPE_REGISTRY).map((r) => ({
1308
+ name: r.name,
1309
+ description: r.description,
1310
+ commands: r.commands
1311
+ })),
1312
+ commands: Object.values(COMMAND_REGISTRY).map((c) => ({
1313
+ name: c.name,
1314
+ description: c.description,
1315
+ group: c.group
1316
+ }))
1317
+ };
1318
+ return {
1319
+ content: [{ type: "text", text: JSON.stringify(payload, null, 2) }]
1320
+ };
1321
+ }
1322
+ );
1323
+ server.registerTool(
1324
+ "pjangler_describe_recipe",
1325
+ {
1326
+ title: "Describe recipe",
1327
+ description: "Returns metadata for a specific pjangler recipe.",
1328
+ inputSchema: {
1329
+ recipe: z.string()
1330
+ }
1331
+ },
1332
+ async ({ recipe }) => {
1333
+ const info = getRecipeInfo(recipe);
1334
+ if (!info) {
1335
+ return {
1336
+ isError: true,
1337
+ content: [{ type: "text", text: `Recipe not found: ${recipe}` }]
1338
+ };
1339
+ }
1340
+ return {
1341
+ content: [
1342
+ {
1343
+ type: "text",
1344
+ text: JSON.stringify(
1345
+ {
1346
+ name: info.name,
1347
+ description: info.description,
1348
+ commands: info.commands
1349
+ },
1350
+ null,
1351
+ 2
1352
+ )
1353
+ }
1354
+ ]
1355
+ };
1356
+ }
1357
+ );
1358
+ server.registerTool(
1359
+ "pjangler_run_recipe",
1360
+ {
1361
+ title: "Run recipe",
1362
+ description: "Executes any pjangler recipe against a target directory.",
1363
+ inputSchema: {
1364
+ recipe: z.enum(getRecipeNames()),
1365
+ targetDir: z.string().optional(),
1366
+ force: z.boolean().optional(),
1367
+ dryRun: z.boolean().optional()
1368
+ }
1369
+ },
1370
+ async ({ recipe, targetDir, force, dryRun }) => {
1371
+ try {
1372
+ const resolvedTarget = resolveTargetDir(targetDir);
1373
+ const context = {
1374
+ targetDir: resolvedTarget,
1375
+ force: force ?? false,
1376
+ dryRun: dryRun ?? false
1377
+ };
1378
+ const result = await runRecipeWithCapture(recipe, context);
1379
+ return {
1380
+ isError: !result.success,
1381
+ content: [
1382
+ {
1383
+ type: "text",
1384
+ text: JSON.stringify(
1385
+ {
1386
+ success: result.success,
1387
+ recipe,
1388
+ targetDir: resolvedTarget,
1389
+ logs: result.logs,
1390
+ errors: result.errors
1391
+ },
1392
+ null,
1393
+ 2
1394
+ )
1395
+ }
1396
+ ]
1397
+ };
1398
+ } catch (err) {
1399
+ return {
1400
+ isError: true,
1401
+ content: [{ type: "text", text: err instanceof Error ? err.message : String(err) }]
1402
+ };
1403
+ }
1404
+ }
1405
+ );
1406
+ server.registerTool(
1407
+ "pjangler_deploy_hermes_agent",
1408
+ {
1409
+ title: "Deploy Hermes agent",
1410
+ description: "Provision a Hermes agent role with an inherited named profile and optional integrations (Telegram, email, runtime repo, Plane, Bloodbank, systemd).",
1411
+ inputSchema: {
1412
+ targetDir: z.string(),
1413
+ targetRepo: z.string(),
1414
+ role: z.string(),
1415
+ agentPurpose: z.string().optional(),
1416
+ soulTone: z.enum(["direct", "playful", "formal", "terse"]).optional(),
1417
+ modelProvider: z.string().optional(),
1418
+ modelName: z.string().optional(),
1419
+ force: z.boolean().optional(),
1420
+ dryRun: z.boolean().optional(),
1421
+ skipTelegram: z.boolean().optional(),
1422
+ skipEmail: z.boolean().optional(),
1423
+ skipRuntimeRepo: z.boolean().optional(),
1424
+ skipPlane: z.boolean().optional(),
1425
+ skipBloodbank: z.boolean().optional(),
1426
+ skipSystemd: z.boolean().optional()
1427
+ }
1428
+ },
1429
+ async (input) => {
1430
+ try {
1431
+ const resolvedTarget = resolveTargetDir(input.targetDir);
1432
+ const context = {
1433
+ targetDir: resolvedTarget,
1434
+ yes: true,
1435
+ targetRepo: input.targetRepo,
1436
+ role: input.role,
1437
+ agentPurpose: input.agentPurpose,
1438
+ soulTone: input.soulTone,
1439
+ modelProvider: input.modelProvider,
1440
+ modelName: input.modelName,
1441
+ force: input.force ?? false,
1442
+ dryRun: input.dryRun ?? false,
1443
+ skipTelegram: input.skipTelegram ?? true,
1444
+ skipEmail: input.skipEmail ?? true,
1445
+ skipRuntimeRepo: input.skipRuntimeRepo ?? false,
1446
+ skipPlane: input.skipPlane ?? false,
1447
+ skipBloodbank: input.skipBloodbank ?? false,
1448
+ skipSystemd: input.skipSystemd ?? false
1449
+ };
1450
+ const result = await runRecipeWithCapture("hermes-agent", context);
1451
+ return {
1452
+ isError: !result.success,
1453
+ content: [
1454
+ {
1455
+ type: "text",
1456
+ text: JSON.stringify(
1457
+ {
1458
+ success: result.success,
1459
+ recipe: "hermes-agent",
1460
+ targetDir: resolvedTarget,
1461
+ context: {
1462
+ targetRepo: context.targetRepo,
1463
+ role: context.role,
1464
+ dryRun: context.dryRun,
1465
+ force: context.force,
1466
+ skipTelegram: context.skipTelegram,
1467
+ skipEmail: context.skipEmail,
1468
+ skipRuntimeRepo: context.skipRuntimeRepo,
1469
+ skipPlane: context.skipPlane,
1470
+ skipBloodbank: context.skipBloodbank,
1471
+ skipSystemd: context.skipSystemd
1472
+ },
1473
+ logs: result.logs,
1474
+ errors: result.errors
1475
+ },
1476
+ null,
1477
+ 2
1478
+ )
1479
+ }
1480
+ ]
1481
+ };
1482
+ } catch (err) {
1483
+ return {
1484
+ isError: true,
1485
+ content: [{ type: "text", text: err instanceof Error ? err.message : String(err) }]
1486
+ };
1487
+ }
1488
+ }
1489
+ );
1490
+ var transport = new StdioServerTransport();
1491
+ await server.connect(transport);