macro-agent 0.1.1 → 0.1.2

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 (406) hide show
  1. package/.sudocode/issues.jsonl +28 -0
  2. package/.sudocode/specs.jsonl +4 -0
  3. package/CLAUDE.md +9 -3
  4. package/dist/agent/agent-manager.d.ts.map +1 -1
  5. package/dist/agent/agent-manager.js +111 -48
  6. package/dist/agent/agent-manager.js.map +1 -1
  7. package/dist/agent/types.d.ts +7 -0
  8. package/dist/agent/types.d.ts.map +1 -1
  9. package/dist/agent/types.js.map +1 -1
  10. package/dist/api/server.d.ts +5 -1
  11. package/dist/api/server.d.ts.map +1 -1
  12. package/dist/api/server.js +100 -3
  13. package/dist/api/server.js.map +1 -1
  14. package/dist/api/types.d.ts +1 -1
  15. package/dist/api/types.d.ts.map +1 -1
  16. package/dist/cli/acp.d.ts.map +1 -1
  17. package/dist/cli/acp.js +71 -1
  18. package/dist/cli/acp.js.map +1 -1
  19. package/dist/cli/index.js +5 -1
  20. package/dist/cli/index.js.map +1 -1
  21. package/dist/cli/mcp.js +27 -8
  22. package/dist/cli/mcp.js.map +1 -1
  23. package/dist/config/project-config.d.ts +13 -2
  24. package/dist/config/project-config.d.ts.map +1 -1
  25. package/dist/config/project-config.js +12 -2
  26. package/dist/config/project-config.js.map +1 -1
  27. package/dist/index.d.ts +1 -0
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/index.js +2 -0
  30. package/dist/index.js.map +1 -1
  31. package/dist/lifecycle/handlers/index.d.ts +7 -3
  32. package/dist/lifecycle/handlers/index.d.ts.map +1 -1
  33. package/dist/lifecycle/handlers/index.js +25 -8
  34. package/dist/lifecycle/handlers/index.js.map +1 -1
  35. package/dist/lifecycle/types.d.ts +2 -0
  36. package/dist/lifecycle/types.d.ts.map +1 -1
  37. package/dist/lifecycle/types.js.map +1 -1
  38. package/dist/map/adapter/extensions/index.d.ts +4 -1
  39. package/dist/map/adapter/extensions/index.d.ts.map +1 -1
  40. package/dist/map/adapter/extensions/index.js +27 -0
  41. package/dist/map/adapter/extensions/index.js.map +1 -1
  42. package/dist/map/adapter/extensions/streams.d.ts +95 -0
  43. package/dist/map/adapter/extensions/streams.d.ts.map +1 -0
  44. package/dist/map/adapter/extensions/streams.js +515 -0
  45. package/dist/map/adapter/extensions/streams.js.map +1 -0
  46. package/dist/map/adapter/index.d.ts +1 -1
  47. package/dist/map/adapter/index.d.ts.map +1 -1
  48. package/dist/map/adapter/index.js +3 -1
  49. package/dist/map/adapter/index.js.map +1 -1
  50. package/dist/map/adapter/types.d.ts +1 -1
  51. package/dist/map/adapter/types.d.ts.map +1 -1
  52. package/dist/mcp/mcp-server.d.ts +2 -0
  53. package/dist/mcp/mcp-server.d.ts.map +1 -1
  54. package/dist/mcp/mcp-server.js +12 -3
  55. package/dist/mcp/mcp-server.js.map +1 -1
  56. package/dist/mcp/tools/done.d.ts.map +1 -1
  57. package/dist/mcp/tools/done.js +18 -0
  58. package/dist/mcp/tools/done.js.map +1 -1
  59. package/dist/roles/builtin/coordinator.d.ts.map +1 -1
  60. package/dist/roles/builtin/coordinator.js +2 -1
  61. package/dist/roles/builtin/coordinator.js.map +1 -1
  62. package/dist/roles/builtin/integrator.d.ts.map +1 -1
  63. package/dist/roles/builtin/integrator.js +2 -1
  64. package/dist/roles/builtin/integrator.js.map +1 -1
  65. package/dist/roles/builtin/worker.d.ts.map +1 -1
  66. package/dist/roles/builtin/worker.js +3 -1
  67. package/dist/roles/builtin/worker.js.map +1 -1
  68. package/dist/roles/capabilities.d.ts +6 -0
  69. package/dist/roles/capabilities.d.ts.map +1 -1
  70. package/dist/roles/capabilities.js +10 -0
  71. package/dist/roles/capabilities.js.map +1 -1
  72. package/dist/roles/config-loader.d.ts +1 -1
  73. package/dist/roles/config-loader.d.ts.map +1 -1
  74. package/dist/roles/config-loader.js +3 -2
  75. package/dist/roles/config-loader.js.map +1 -1
  76. package/dist/roles/types.d.ts +3 -1
  77. package/dist/roles/types.d.ts.map +1 -1
  78. package/dist/server/combined-server.d.ts +8 -1
  79. package/dist/server/combined-server.d.ts.map +1 -1
  80. package/dist/server/combined-server.js +6 -2
  81. package/dist/server/combined-server.js.map +1 -1
  82. package/dist/store/event-store.d.ts.map +1 -1
  83. package/dist/store/event-store.js +12 -5
  84. package/dist/store/event-store.js.map +1 -1
  85. package/dist/store/instance.d.ts +1 -1
  86. package/dist/store/instance.d.ts.map +1 -1
  87. package/dist/store/instance.js +2 -2
  88. package/dist/store/instance.js.map +1 -1
  89. package/dist/store/types/agents.d.ts +5 -0
  90. package/dist/store/types/agents.d.ts.map +1 -1
  91. package/dist/task/backend/opentasks/daemon-manager.d.ts.map +1 -1
  92. package/dist/task/backend/opentasks/daemon-manager.js +1 -1
  93. package/dist/task/backend/opentasks/daemon-manager.js.map +1 -1
  94. package/dist/teams/index.d.ts +3 -1
  95. package/dist/teams/index.d.ts.map +1 -1
  96. package/dist/teams/index.js +2 -0
  97. package/dist/teams/index.js.map +1 -1
  98. package/dist/teams/seed-defaults.d.ts +20 -0
  99. package/dist/teams/seed-defaults.d.ts.map +1 -0
  100. package/dist/teams/seed-defaults.js +71 -0
  101. package/dist/teams/seed-defaults.js.map +1 -0
  102. package/dist/teams/team-loader.d.ts +6 -2
  103. package/dist/teams/team-loader.d.ts.map +1 -1
  104. package/dist/teams/team-loader.js +154 -162
  105. package/dist/teams/team-loader.js.map +1 -1
  106. package/dist/teams/team-manager.d.ts +112 -0
  107. package/dist/teams/team-manager.d.ts.map +1 -0
  108. package/dist/teams/team-manager.js +305 -0
  109. package/dist/teams/team-manager.js.map +1 -0
  110. package/dist/teams/team-runtime.d.ts +125 -19
  111. package/dist/teams/team-runtime.d.ts.map +1 -1
  112. package/dist/teams/team-runtime.js +527 -119
  113. package/dist/teams/team-runtime.js.map +1 -1
  114. package/dist/teams/types.d.ts +41 -151
  115. package/dist/teams/types.d.ts.map +1 -1
  116. package/dist/teams/types.js +2 -3
  117. package/dist/teams/types.js.map +1 -1
  118. package/docs/teams.md +73 -0
  119. package/package.json +2 -1
  120. package/references/minimem/.claude/settings.json +7 -0
  121. package/references/minimem/.sudocode/issues.jsonl +18 -0
  122. package/references/minimem/.sudocode/specs.jsonl +1 -0
  123. package/references/minimem/CLAUDE.md +310 -0
  124. package/references/minimem/README.md +562 -0
  125. package/references/minimem/claude-plugin/.claude-plugin/plugin.json +10 -0
  126. package/references/minimem/claude-plugin/.mcp.json +7 -0
  127. package/references/minimem/claude-plugin/README.md +158 -0
  128. package/references/minimem/claude-plugin/commands/recall.md +47 -0
  129. package/references/minimem/claude-plugin/commands/remember.md +41 -0
  130. package/references/minimem/claude-plugin/hooks/__tests__/hooks.test.ts +272 -0
  131. package/references/minimem/claude-plugin/hooks/hooks.json +27 -0
  132. package/references/minimem/claude-plugin/hooks/session-end.sh +86 -0
  133. package/references/minimem/claude-plugin/hooks/session-start.sh +85 -0
  134. package/references/minimem/claude-plugin/skills/memory/SKILL.md +108 -0
  135. package/references/minimem/media/banner.png +0 -0
  136. package/references/minimem/package-lock.json +5373 -0
  137. package/references/minimem/package.json +72 -0
  138. package/references/minimem/scripts/postbuild.js +35 -0
  139. package/references/minimem/src/__tests__/edge-cases.test.ts +371 -0
  140. package/references/minimem/src/__tests__/errors.test.ts +265 -0
  141. package/references/minimem/src/__tests__/helpers.ts +199 -0
  142. package/references/minimem/src/__tests__/internal.test.ts +407 -0
  143. package/references/minimem/src/__tests__/knowledge.test.ts +287 -0
  144. package/references/minimem/src/__tests__/minimem.integration.test.ts +1127 -0
  145. package/references/minimem/src/__tests__/session.test.ts +190 -0
  146. package/references/minimem/src/cli/__tests__/commands.test.ts +759 -0
  147. package/references/minimem/src/cli/commands/__tests__/conflicts.test.ts +141 -0
  148. package/references/minimem/src/cli/commands/append.ts +76 -0
  149. package/references/minimem/src/cli/commands/config.ts +262 -0
  150. package/references/minimem/src/cli/commands/conflicts.ts +413 -0
  151. package/references/minimem/src/cli/commands/daemon.ts +169 -0
  152. package/references/minimem/src/cli/commands/index.ts +12 -0
  153. package/references/minimem/src/cli/commands/init.ts +88 -0
  154. package/references/minimem/src/cli/commands/mcp.ts +177 -0
  155. package/references/minimem/src/cli/commands/push-pull.ts +213 -0
  156. package/references/minimem/src/cli/commands/search.ts +158 -0
  157. package/references/minimem/src/cli/commands/status.ts +84 -0
  158. package/references/minimem/src/cli/commands/sync-init.ts +290 -0
  159. package/references/minimem/src/cli/commands/sync.ts +70 -0
  160. package/references/minimem/src/cli/commands/upsert.ts +197 -0
  161. package/references/minimem/src/cli/config.ts +584 -0
  162. package/references/minimem/src/cli/index.ts +264 -0
  163. package/references/minimem/src/cli/shared.ts +161 -0
  164. package/references/minimem/src/cli/sync/__tests__/central.test.ts +152 -0
  165. package/references/minimem/src/cli/sync/__tests__/conflicts.test.ts +209 -0
  166. package/references/minimem/src/cli/sync/__tests__/daemon.test.ts +118 -0
  167. package/references/minimem/src/cli/sync/__tests__/detection.test.ts +207 -0
  168. package/references/minimem/src/cli/sync/__tests__/integration.test.ts +476 -0
  169. package/references/minimem/src/cli/sync/__tests__/registry.test.ts +363 -0
  170. package/references/minimem/src/cli/sync/__tests__/state.test.ts +255 -0
  171. package/references/minimem/src/cli/sync/__tests__/validation.test.ts +193 -0
  172. package/references/minimem/src/cli/sync/__tests__/watcher.test.ts +178 -0
  173. package/references/minimem/src/cli/sync/central.ts +292 -0
  174. package/references/minimem/src/cli/sync/conflicts.ts +204 -0
  175. package/references/minimem/src/cli/sync/daemon.ts +407 -0
  176. package/references/minimem/src/cli/sync/detection.ts +138 -0
  177. package/references/minimem/src/cli/sync/index.ts +107 -0
  178. package/references/minimem/src/cli/sync/operations.ts +373 -0
  179. package/references/minimem/src/cli/sync/registry.ts +279 -0
  180. package/references/minimem/src/cli/sync/state.ts +355 -0
  181. package/references/minimem/src/cli/sync/validation.ts +206 -0
  182. package/references/minimem/src/cli/sync/watcher.ts +234 -0
  183. package/references/minimem/src/cli/version.ts +34 -0
  184. package/references/minimem/src/core/index.ts +9 -0
  185. package/references/minimem/src/core/indexer.ts +628 -0
  186. package/references/minimem/src/core/searcher.ts +221 -0
  187. package/references/minimem/src/db/schema.ts +183 -0
  188. package/references/minimem/src/db/sqlite-vec.ts +24 -0
  189. package/references/minimem/src/embeddings/__tests__/embeddings.test.ts +431 -0
  190. package/references/minimem/src/embeddings/batch-gemini.ts +392 -0
  191. package/references/minimem/src/embeddings/batch-openai.ts +409 -0
  192. package/references/minimem/src/embeddings/embeddings.ts +434 -0
  193. package/references/minimem/src/index.ts +109 -0
  194. package/references/minimem/src/internal.ts +299 -0
  195. package/references/minimem/src/minimem.ts +1276 -0
  196. package/references/minimem/src/search/__tests__/hybrid.test.ts +247 -0
  197. package/references/minimem/src/search/graph.ts +234 -0
  198. package/references/minimem/src/search/hybrid.ts +151 -0
  199. package/references/minimem/src/search/search.ts +256 -0
  200. package/references/minimem/src/server/__tests__/mcp.test.ts +341 -0
  201. package/references/minimem/src/server/__tests__/tools.test.ts +364 -0
  202. package/references/minimem/src/server/mcp.ts +326 -0
  203. package/references/minimem/src/server/tools.ts +720 -0
  204. package/references/minimem/src/session.ts +460 -0
  205. package/references/minimem/tsconfig.json +19 -0
  206. package/references/minimem/tsup.config.ts +26 -0
  207. package/references/minimem/vitest.config.ts +24 -0
  208. package/references/openteams/.claude/settings.json +6 -0
  209. package/references/openteams/README.md +1 -0
  210. package/references/openteams/SKILL.md +341 -0
  211. package/references/openteams/design.md +411 -0
  212. package/references/openteams/examples/bmad-method/prompts/analyst/ROLE.md +16 -0
  213. package/references/openteams/examples/bmad-method/prompts/analyst/SOUL.md +5 -0
  214. package/references/openteams/examples/bmad-method/prompts/architect/ROLE.md +24 -0
  215. package/references/openteams/examples/bmad-method/prompts/architect/SOUL.md +5 -0
  216. package/references/openteams/examples/bmad-method/prompts/developer/ROLE.md +25 -0
  217. package/references/openteams/examples/bmad-method/prompts/developer/SOUL.md +5 -0
  218. package/references/openteams/examples/bmad-method/prompts/master/ROLE.md +21 -0
  219. package/references/openteams/examples/bmad-method/prompts/master/SOUL.md +5 -0
  220. package/references/openteams/examples/bmad-method/prompts/pm/ROLE.md +20 -0
  221. package/references/openteams/examples/bmad-method/prompts/pm/SOUL.md +5 -0
  222. package/references/openteams/examples/bmad-method/prompts/qa/ROLE.md +17 -0
  223. package/references/openteams/examples/bmad-method/prompts/qa/SOUL.md +5 -0
  224. package/references/openteams/examples/bmad-method/prompts/quick-flow-dev/ROLE.md +23 -0
  225. package/references/openteams/examples/bmad-method/prompts/quick-flow-dev/SOUL.md +5 -0
  226. package/references/openteams/examples/bmad-method/prompts/scrum-master/ROLE.md +27 -0
  227. package/references/openteams/examples/bmad-method/prompts/scrum-master/SOUL.md +5 -0
  228. package/references/openteams/examples/bmad-method/prompts/tech-writer/ROLE.md +21 -0
  229. package/references/openteams/examples/bmad-method/prompts/tech-writer/SOUL.md +5 -0
  230. package/references/openteams/examples/bmad-method/prompts/ux-designer/ROLE.md +16 -0
  231. package/references/openteams/examples/bmad-method/prompts/ux-designer/SOUL.md +5 -0
  232. package/references/openteams/examples/bmad-method/roles/analyst.yaml +9 -0
  233. package/references/openteams/examples/bmad-method/roles/architect.yaml +9 -0
  234. package/references/openteams/examples/bmad-method/roles/developer.yaml +8 -0
  235. package/references/openteams/examples/bmad-method/roles/master.yaml +8 -0
  236. package/references/openteams/examples/bmad-method/roles/pm.yaml +9 -0
  237. package/references/openteams/examples/bmad-method/roles/qa.yaml +8 -0
  238. package/references/openteams/examples/bmad-method/roles/quick-flow-dev.yaml +8 -0
  239. package/references/openteams/examples/bmad-method/roles/scrum-master.yaml +9 -0
  240. package/references/openteams/examples/bmad-method/roles/tech-writer.yaml +8 -0
  241. package/references/openteams/examples/bmad-method/roles/ux-designer.yaml +8 -0
  242. package/references/openteams/examples/bmad-method/team.yaml +161 -0
  243. package/references/openteams/examples/get-shit-done/prompts/codebase-mapper/ROLE.md +17 -0
  244. package/references/openteams/examples/get-shit-done/prompts/codebase-mapper/SOUL.md +5 -0
  245. package/references/openteams/examples/get-shit-done/prompts/debugger/ROLE.md +25 -0
  246. package/references/openteams/examples/get-shit-done/prompts/debugger/SOUL.md +5 -0
  247. package/references/openteams/examples/get-shit-done/prompts/executor/ROLE.md +34 -0
  248. package/references/openteams/examples/get-shit-done/prompts/executor/SOUL.md +5 -0
  249. package/references/openteams/examples/get-shit-done/prompts/integration-checker/ROLE.md +18 -0
  250. package/references/openteams/examples/get-shit-done/prompts/integration-checker/SOUL.md +3 -0
  251. package/references/openteams/examples/get-shit-done/prompts/orchestrator/ROLE.md +42 -0
  252. package/references/openteams/examples/get-shit-done/prompts/orchestrator/SOUL.md +5 -0
  253. package/references/openteams/examples/get-shit-done/prompts/phase-researcher/ROLE.md +15 -0
  254. package/references/openteams/examples/get-shit-done/prompts/phase-researcher/SOUL.md +3 -0
  255. package/references/openteams/examples/get-shit-done/prompts/plan-checker/ROLE.md +17 -0
  256. package/references/openteams/examples/get-shit-done/prompts/plan-checker/SOUL.md +3 -0
  257. package/references/openteams/examples/get-shit-done/prompts/planner/ROLE.md +28 -0
  258. package/references/openteams/examples/get-shit-done/prompts/planner/SOUL.md +5 -0
  259. package/references/openteams/examples/get-shit-done/prompts/project-researcher/ROLE.md +16 -0
  260. package/references/openteams/examples/get-shit-done/prompts/project-researcher/SOUL.md +3 -0
  261. package/references/openteams/examples/get-shit-done/prompts/research-synthesizer/ROLE.md +13 -0
  262. package/references/openteams/examples/get-shit-done/prompts/research-synthesizer/SOUL.md +3 -0
  263. package/references/openteams/examples/get-shit-done/prompts/roadmapper/ROLE.md +14 -0
  264. package/references/openteams/examples/get-shit-done/prompts/roadmapper/SOUL.md +3 -0
  265. package/references/openteams/examples/get-shit-done/prompts/verifier/ROLE.md +19 -0
  266. package/references/openteams/examples/get-shit-done/prompts/verifier/SOUL.md +5 -0
  267. package/references/openteams/examples/get-shit-done/roles/codebase-mapper.yaml +8 -0
  268. package/references/openteams/examples/get-shit-done/roles/debugger.yaml +8 -0
  269. package/references/openteams/examples/get-shit-done/roles/executor.yaml +8 -0
  270. package/references/openteams/examples/get-shit-done/roles/integration-checker.yaml +8 -0
  271. package/references/openteams/examples/get-shit-done/roles/orchestrator.yaml +9 -0
  272. package/references/openteams/examples/get-shit-done/roles/phase-researcher.yaml +7 -0
  273. package/references/openteams/examples/get-shit-done/roles/plan-checker.yaml +8 -0
  274. package/references/openteams/examples/get-shit-done/roles/planner.yaml +8 -0
  275. package/references/openteams/examples/get-shit-done/roles/project-researcher.yaml +8 -0
  276. package/references/openteams/examples/get-shit-done/roles/research-synthesizer.yaml +7 -0
  277. package/references/openteams/examples/get-shit-done/roles/roadmapper.yaml +7 -0
  278. package/references/openteams/examples/get-shit-done/roles/verifier.yaml +8 -0
  279. package/references/openteams/examples/get-shit-done/team.yaml +154 -0
  280. package/references/openteams/package-lock.json +2181 -0
  281. package/references/openteams/package.json +48 -0
  282. package/references/openteams/schema/role.schema.json +125 -0
  283. package/references/openteams/schema/team.schema.json +284 -0
  284. package/references/openteams/src/cli/agent.ts +104 -0
  285. package/references/openteams/src/cli/cli.test.ts +381 -0
  286. package/references/openteams/src/cli/generate.ts +220 -0
  287. package/references/openteams/src/cli/message.ts +241 -0
  288. package/references/openteams/src/cli/task.ts +154 -0
  289. package/references/openteams/src/cli/team.ts +104 -0
  290. package/references/openteams/src/cli/template.ts +207 -0
  291. package/references/openteams/src/cli.ts +45 -0
  292. package/references/openteams/src/db/database.test.ts +185 -0
  293. package/references/openteams/src/db/database.ts +240 -0
  294. package/references/openteams/src/generators/agent-prompt-generator.test.ts +332 -0
  295. package/references/openteams/src/generators/agent-prompt-generator.ts +521 -0
  296. package/references/openteams/src/generators/package-generator.test.ts +129 -0
  297. package/references/openteams/src/generators/package-generator.ts +102 -0
  298. package/references/openteams/src/generators/skill-generator.test.ts +246 -0
  299. package/references/openteams/src/generators/skill-generator.ts +374 -0
  300. package/references/openteams/src/index.ts +104 -0
  301. package/references/openteams/src/services/agent-service.test.ts +158 -0
  302. package/references/openteams/src/services/agent-service.ts +84 -0
  303. package/references/openteams/src/services/communication-service.test.ts +455 -0
  304. package/references/openteams/src/services/communication-service.ts +371 -0
  305. package/references/openteams/src/services/message-service.test.ts +342 -0
  306. package/references/openteams/src/services/message-service.ts +203 -0
  307. package/references/openteams/src/services/task-service.test.ts +434 -0
  308. package/references/openteams/src/services/task-service.ts +239 -0
  309. package/references/openteams/src/services/team-service.test.ts +181 -0
  310. package/references/openteams/src/services/team-service.ts +139 -0
  311. package/references/openteams/src/services/template-service.test.ts +306 -0
  312. package/references/openteams/src/services/template-service.ts +182 -0
  313. package/references/openteams/src/spawner/acp-factory.ts +96 -0
  314. package/references/openteams/src/spawner/interface.ts +31 -0
  315. package/references/openteams/src/spawner/mock.test.ts +93 -0
  316. package/references/openteams/src/spawner/mock.ts +59 -0
  317. package/references/openteams/src/template/loader.test.ts +1319 -0
  318. package/references/openteams/src/template/loader.ts +698 -0
  319. package/references/openteams/src/template/types.ts +200 -0
  320. package/references/openteams/src/types.ts +205 -0
  321. package/references/openteams/tsconfig.json +18 -0
  322. package/references/openteams/vitest.config.ts +9 -0
  323. package/references/skill-tree/.claude/settings.json +6 -0
  324. package/references/skill-tree/.sudocode/issues.jsonl +11 -0
  325. package/references/skill-tree/.sudocode/specs.jsonl +1 -0
  326. package/references/skill-tree/CLAUDE.md +150 -0
  327. package/references/skill-tree/README.md +324 -0
  328. package/references/skill-tree/docs/GAPS_v1.md +221 -0
  329. package/references/skill-tree/docs/INTEGRATION_PLAN.md +467 -0
  330. package/references/skill-tree/docs/TODOS.md +91 -0
  331. package/references/skill-tree/docs/anthropic_skill_guide.md +1364 -0
  332. package/references/skill-tree/docs/design/federated-skill-trees.md +524 -0
  333. package/references/skill-tree/docs/design/multi-agent-sync.md +759 -0
  334. package/references/skill-tree/docs/scraper/BRAINSTORM.md +583 -0
  335. package/references/skill-tree/docs/scraper/POC_PLAN.md +420 -0
  336. package/references/skill-tree/docs/scraper/README.md +170 -0
  337. package/references/skill-tree/examples/basic-usage.ts +190 -0
  338. package/references/skill-tree/package-lock.json +1509 -0
  339. package/references/skill-tree/package.json +66 -0
  340. package/references/skill-tree/scraper/README.md +123 -0
  341. package/references/skill-tree/scraper/docs/DESIGN.md +683 -0
  342. package/references/skill-tree/scraper/docs/PLAN.md +336 -0
  343. package/references/skill-tree/scraper/drizzle.config.ts +10 -0
  344. package/references/skill-tree/scraper/package-lock.json +6329 -0
  345. package/references/skill-tree/scraper/package.json +68 -0
  346. package/references/skill-tree/scraper/test/fixtures/invalid-skill/missing-description.md +7 -0
  347. package/references/skill-tree/scraper/test/fixtures/invalid-skill/missing-name.md +7 -0
  348. package/references/skill-tree/scraper/test/fixtures/minimal-skill/SKILL.md +27 -0
  349. package/references/skill-tree/scraper/test/fixtures/skill-json/SKILL.json +21 -0
  350. package/references/skill-tree/scraper/test/fixtures/skill-with-meta/SKILL.md +54 -0
  351. package/references/skill-tree/scraper/test/fixtures/skill-with-meta/_meta.json +24 -0
  352. package/references/skill-tree/scraper/test/fixtures/valid-skill/SKILL.md +93 -0
  353. package/references/skill-tree/scraper/test/fixtures/valid-skill/_meta.json +22 -0
  354. package/references/skill-tree/scraper/tsup.config.ts +14 -0
  355. package/references/skill-tree/scraper/vitest.config.ts +17 -0
  356. package/references/skill-tree/scripts/convert-to-vitest.ts +166 -0
  357. package/references/skill-tree/skills/skill-writer/SKILL.md +339 -0
  358. package/references/skill-tree/skills/skill-writer/references/examples.md +326 -0
  359. package/references/skill-tree/skills/skill-writer/references/patterns.md +210 -0
  360. package/references/skill-tree/skills/skill-writer/references/quality-checklist.md +123 -0
  361. package/references/skill-tree/test/run-all.ts +106 -0
  362. package/references/skill-tree/test/utils.ts +128 -0
  363. package/references/skill-tree/vitest.config.ts +16 -0
  364. package/src/agent/agent-manager.ts +143 -72
  365. package/src/agent/types.ts +9 -0
  366. package/src/api/__tests__/server.test.ts +203 -4
  367. package/src/api/server.ts +130 -5
  368. package/src/api/types.ts +3 -1
  369. package/src/cli/acp.ts +68 -1
  370. package/src/cli/index.ts +5 -1
  371. package/src/cli/mcp.ts +27 -13
  372. package/src/config/project-config.ts +27 -3
  373. package/src/index.ts +3 -0
  374. package/src/lifecycle/__tests__/handlers.test.ts +53 -0
  375. package/src/lifecycle/handlers/index.ts +25 -8
  376. package/src/lifecycle/types.ts +3 -0
  377. package/src/map/adapter/__tests__/stream-extensions.test.ts +494 -0
  378. package/src/map/adapter/extensions/index.ts +36 -0
  379. package/src/map/adapter/extensions/streams.ts +839 -0
  380. package/src/map/adapter/index.ts +5 -0
  381. package/src/map/adapter/types.ts +8 -1
  382. package/src/mcp/mcp-server.ts +14 -3
  383. package/src/mcp/tools/done.ts +19 -0
  384. package/src/roles/builtin/coordinator.ts +2 -0
  385. package/src/roles/builtin/integrator.ts +2 -0
  386. package/src/roles/builtin/worker.ts +3 -0
  387. package/src/roles/capabilities.ts +11 -0
  388. package/src/roles/config-loader.ts +3 -2
  389. package/src/roles/types.ts +7 -0
  390. package/src/server/combined-server.ts +15 -1
  391. package/src/store/__tests__/event-store-oob.test.ts +109 -0
  392. package/src/store/event-store.ts +13 -3
  393. package/src/store/instance.ts +2 -2
  394. package/src/store/types/agents.ts +5 -0
  395. package/src/task/backend/__tests__/memory-pull-mode.test.ts +153 -0
  396. package/src/task/backend/opentasks/daemon-manager.ts +4 -1
  397. package/src/teams/CLAUDE.md +180 -0
  398. package/src/teams/__tests__/e2e/workspace-isolation.e2e.test.ts +1263 -0
  399. package/src/teams/__tests__/team-manager.test.ts +814 -0
  400. package/src/teams/__tests__/team-system.test.ts +1291 -8
  401. package/src/teams/index.ts +21 -3
  402. package/src/teams/seed-defaults.ts +79 -0
  403. package/src/teams/team-loader.ts +200 -234
  404. package/src/teams/team-manager.ts +387 -0
  405. package/src/teams/team-runtime.ts +590 -121
  406. package/src/teams/types.ts +99 -200
@@ -0,0 +1,411 @@
1
+ # OpenTeams - Design Document
2
+
3
+ ## Overview
4
+
5
+ OpenTeams is a TypeScript CLI tool for managing multi-agent teams. It implements the core coordination primitives from Claude Code's Agent Teams — team lifecycle, shared task lists, inter-agent messaging, and agent spawning — as a standalone CLI backed by SQLite for state management.
6
+
7
+ Agent spawning uses a swappable interface. The default implementation delegates to [acp-factory](https://github.com/sudocode-ai/acp-factory), which supports multiple AI coding agent providers (Claude Code, Codex, Copilot, Gemini, etc.) via the Agent Client Protocol (ACP).
8
+
9
+ ## Architecture
10
+
11
+ ```
12
+ ┌──────────────────────────────────────────────────────────┐
13
+ │ CLI Layer │
14
+ │ openteams team|task|message|agent|template|generate │
15
+ └──────────────────────┬───────────────────────────────────┘
16
+
17
+ ┌──────────────────────▼───────────────────────────────────┐
18
+ │ Service Layer │
19
+ │ TeamService TaskService MessageService │
20
+ │ AgentService TemplateService CommunicationService │
21
+ └──────┬──────────────────┬────────────────────────────────┘
22
+ │ │
23
+ ┌──────▼──────┐ ┌────────▼────────────────────────────────┐
24
+ │ Database │ │ AgentSpawner Interface (DI) │
25
+ │ (SQLite) │ │ ├─ ACPFactorySpawner (optional) │
26
+ │ + Schema │ │ └─ MockSpawner (testing) │
27
+ │ Migrations │ └─────────────────────────────────────────┘
28
+ └─────────────┘
29
+ ```
30
+
31
+ ### Components
32
+
33
+ 1. **CLI Layer** (`src/cli/`) — Command parsing via `commander`. Thin layer that delegates to services.
34
+ 2. **Service Layer** (`src/services/`) — Business logic for teams, tasks, messages, agents, templates, and communication.
35
+ 3. **Database Layer** (`src/db/`) — SQLite via `better-sqlite3`. Schema versioning with transactional migrations.
36
+ 4. **Template System** (`src/template/`) — YAML-based team manifests with role inheritance, capability composition, and communication topology.
37
+ 5. **Generators** (`src/generators/`) — Generate SKILL.md files, agent prompts, and package artifacts from templates.
38
+ 6. **Agent Spawner** (`src/spawner/`) — Swappable interface for agent lifecycle via dependency injection. Default: acp-factory (optional).
39
+
40
+ ## Data Model
41
+
42
+ ### Database Schema (SQLite)
43
+
44
+ ```sql
45
+ -- Teams (with enforcement mode and template metadata)
46
+ CREATE TABLE teams (
47
+ name TEXT PRIMARY KEY,
48
+ description TEXT,
49
+ agent_type TEXT,
50
+ template_name TEXT,
51
+ template_path TEXT,
52
+ enforcement TEXT DEFAULT 'permissive' CHECK (enforcement IN ('strict', 'permissive', 'audit')),
53
+ created_at TEXT DEFAULT (datetime('now')),
54
+ status TEXT DEFAULT 'active' CHECK (status IN ('active', 'deleted'))
55
+ );
56
+
57
+ -- Team members (with role binding)
58
+ CREATE TABLE members (
59
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
60
+ team_name TEXT NOT NULL REFERENCES teams(name),
61
+ agent_name TEXT NOT NULL,
62
+ agent_id TEXT,
63
+ agent_type TEXT DEFAULT 'general-purpose',
64
+ role TEXT,
65
+ status TEXT DEFAULT 'idle' CHECK (status IN ('idle', 'running', 'shutdown')),
66
+ spawn_prompt TEXT,
67
+ model TEXT,
68
+ created_at TEXT DEFAULT (datetime('now')),
69
+ UNIQUE(team_name, agent_name)
70
+ );
71
+
72
+ -- Tasks (with cycle-checked dependencies)
73
+ CREATE TABLE tasks (
74
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
75
+ team_name TEXT NOT NULL REFERENCES teams(name),
76
+ subject TEXT NOT NULL,
77
+ description TEXT NOT NULL,
78
+ active_form TEXT,
79
+ status TEXT DEFAULT 'pending' CHECK (status IN ('pending', 'in_progress', 'completed', 'deleted')),
80
+ owner TEXT,
81
+ metadata TEXT DEFAULT '{}',
82
+ created_at TEXT DEFAULT (datetime('now')),
83
+ updated_at TEXT DEFAULT (datetime('now'))
84
+ );
85
+
86
+ -- Task dependency edges (cycle detection enforced at service layer)
87
+ CREATE TABLE task_deps (
88
+ task_id INTEGER NOT NULL REFERENCES tasks(id),
89
+ blocked_by INTEGER NOT NULL REFERENCES tasks(id),
90
+ PRIMARY KEY (task_id, blocked_by)
91
+ );
92
+
93
+ -- Messages (with delivery tracking)
94
+ CREATE TABLE messages (
95
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
96
+ team_name TEXT NOT NULL REFERENCES teams(name),
97
+ type TEXT NOT NULL CHECK (type IN ('message', 'broadcast', 'shutdown_request', 'shutdown_response', 'plan_approval_response')),
98
+ sender TEXT NOT NULL,
99
+ recipient TEXT,
100
+ content TEXT NOT NULL,
101
+ summary TEXT,
102
+ request_id TEXT,
103
+ approve INTEGER,
104
+ delivered INTEGER DEFAULT 0,
105
+ created_at TEXT DEFAULT (datetime('now'))
106
+ );
107
+
108
+ -- Schema versioning for migrations
109
+ CREATE TABLE schema_version (version INTEGER NOT NULL);
110
+ ```
111
+
112
+ ## Agent Spawner Interface
113
+
114
+ ```typescript
115
+ interface SpawnOptions {
116
+ name: string;
117
+ teamName: string;
118
+ prompt: string;
119
+ agentType?: 'bash' | 'general-purpose' | 'explore' | 'plan';
120
+ model?: 'sonnet' | 'opus' | 'haiku';
121
+ cwd?: string;
122
+ env?: Record<string, string>;
123
+ permissionMode?: 'auto-approve' | 'auto-deny' | 'interactive';
124
+ }
125
+
126
+ interface AgentInstance {
127
+ id: string;
128
+ name: string;
129
+ isRunning(): boolean;
130
+ sendPrompt(prompt: string): AsyncIterable<AgentUpdate>;
131
+ shutdown(): Promise<void>;
132
+ }
133
+
134
+ interface AgentUpdate {
135
+ type: 'text' | 'tool_call' | 'thought' | 'error' | 'done';
136
+ content: string;
137
+ }
138
+
139
+ interface AgentSpawner {
140
+ spawn(options: SpawnOptions): Promise<AgentInstance>;
141
+ shutdown(agentId: string): Promise<void>;
142
+ list(): AgentInstance[];
143
+ }
144
+ ```
145
+
146
+ ### Default Implementation: ACPFactorySpawner
147
+
148
+ Uses `acp-factory` to spawn agents via the Agent Client Protocol:
149
+
150
+ ```typescript
151
+ import { AgentFactory } from "acp-factory";
152
+
153
+ class ACPFactorySpawner implements AgentSpawner {
154
+ async spawn(options: SpawnOptions): Promise<AgentInstance> {
155
+ const agent = await AgentFactory.spawn(options.model ?? "claude-code", {
156
+ permissionMode: options.permissionMode ?? "auto-approve",
157
+ env: options.env,
158
+ });
159
+ const session = await agent.createSession(options.cwd ?? process.cwd());
160
+ // Wrap in AgentInstance adapter
161
+ return new ACPAgentInstance(agent, session, options);
162
+ }
163
+ }
164
+ ```
165
+
166
+ ### Custom Spawners
167
+
168
+ Users implement `AgentSpawner` and pass it via dependency injection:
169
+
170
+ ```typescript
171
+ import { AgentService } from "openteams";
172
+ const agentService = new AgentService(db, myCustomSpawner);
173
+ ```
174
+
175
+ The global `setSpawner()`/`getSpawner()` API is deprecated in favor of DI.
176
+
177
+ ## CLI Commands
178
+
179
+ ### Team Management
180
+
181
+ ```
182
+ openteams team create <name> [--description <desc>] [--agent-type <type>]
183
+ openteams team list
184
+ openteams team info <name>
185
+ openteams team add-member <team> <name> [--role <role>] [--type <type>] [--model <model>]
186
+ openteams team delete <name>
187
+ ```
188
+
189
+ ### Task Management
190
+
191
+ ```
192
+ openteams task create <team> -s <subject> -d <desc> [-a <active-form>] [--blocked-by <ids>] [--metadata <json>]
193
+ openteams task list <team> [--status <status>] [--owner <name>] [--json]
194
+ openteams task get <team> <task-id> [--json]
195
+ openteams task update <team> <task-id> [--status <status>] [--owner <name>] [-s <subject>] [-d <desc>] [--add-blocks <ids>] [--add-blocked-by <ids>] [--metadata <json>]
196
+ ```
197
+
198
+ ### Messaging
199
+
200
+ ```
201
+ openteams message send <team> --to <recipient> --content <content> --summary <summary> [--from <sender>]
202
+ openteams message broadcast <team> --content <content> --summary <summary> [--from <sender>]
203
+ openteams message shutdown <team> --to <recipient> [--reason <reason>] [--from <sender>]
204
+ openteams message shutdown-response <team> --request-id <id> --approve|--reject [--content <text>] [--from <sender>]
205
+ openteams message plan-response <team> --to <recipient> --request-id <id> --approve|--reject [--content <text>] [--from <sender>]
206
+ openteams message list <team> [--agent <name>] [--json]
207
+ openteams message poll <team> --agent <name> [--mark-delivered] [--json]
208
+ openteams message ack <team> <message-id>
209
+ ```
210
+
211
+ ### Agent Management
212
+
213
+ ```
214
+ openteams agent spawn <team> -n <name> -p <prompt> [-t <agent-type>] [-m <model>] [--cwd <dir>]
215
+ openteams agent list <team> [--json]
216
+ openteams agent info <team> <name> [--json]
217
+ openteams agent shutdown <team> <name>
218
+ ```
219
+
220
+ ## Team Templates
221
+
222
+ OpenTeams supports declarative team templates — YAML-based definitions that describe team topology, roles, communication patterns, and spawn rules. Templates are designed to be interoperable with other multi-agent systems (e.g., macro-agent); generic fields are top-level, system-specific extensions live under namespaced keys.
223
+
224
+ ### Template Directory Structure
225
+
226
+ ```
227
+ templates/<team-name>/
228
+ ├── team.yaml # Manifest: topology, communication, roles
229
+ ├── roles/ # Role definitions (optional)
230
+ │ └── <role-name>.yaml
231
+ └── prompts/ # Static role prompt files (optional)
232
+ ├── <role-name>.md # Single-file prompt (simple roles)
233
+ └── <role-name>/ # Multi-file prompt directory
234
+ ├── SOUL.md # Personality, values, communication style
235
+ ├── ROLE.md # Operational instructions (primary)
236
+ └── RULES.md # Coding standards, constraints (optional)
237
+ ```
238
+
239
+ ### Manifest Schema (team.yaml)
240
+
241
+ ```yaml
242
+ name: self-driving
243
+ description: "Autonomous codebase development"
244
+ version: 1
245
+ roles: [planner, grinder, judge]
246
+
247
+ topology:
248
+ root:
249
+ role: planner
250
+ prompt: prompts/planner.md
251
+ config: { model: sonnet }
252
+ companions:
253
+ - role: judge
254
+ prompt: prompts/judge.md
255
+ spawn_rules:
256
+ planner: [grinder, planner]
257
+ judge: []
258
+ grinder: []
259
+
260
+ communication:
261
+ channels:
262
+ task_updates:
263
+ description: "Task lifecycle events"
264
+ signals: [TASK_CREATED, TASK_COMPLETED, TASK_FAILED]
265
+ work_coordination:
266
+ signals: [WORK_ASSIGNED, WORKER_DONE]
267
+ subscriptions:
268
+ planner:
269
+ - channel: task_updates
270
+ - channel: work_coordination
271
+ signals: [WORKER_DONE]
272
+ judge:
273
+ - channel: task_updates
274
+ signals: [TASK_FAILED]
275
+ emissions:
276
+ planner: [TASK_CREATED, WORK_ASSIGNED]
277
+ grinder: [WORKER_DONE]
278
+ routing:
279
+ peers:
280
+ - from: judge
281
+ to: planner
282
+ via: direct
283
+ signals: [FIXUP_CREATED]
284
+
285
+ # Extension fields (stored, not interpreted by openteams)
286
+ macro_agent:
287
+ task_assignment: { mode: pull }
288
+ ```
289
+
290
+ ### Communication Model
291
+
292
+ Three layers:
293
+
294
+ 1. **Status flow** — Automatic upstream propagation (configured via `routing.status`)
295
+ 2. **Signal channels** — Topic-based pub/sub with per-role subscription filtering
296
+ 3. **Peer routes** — Direct role-to-role messaging (via `direct`, `topic`, or `scope`)
297
+
298
+ Signals are emitted through channels and routed to subscribers based on their subscription config. Emission permissions restrict which signals a role can emit.
299
+
300
+ **Enforcement modes** (set in `communication.enforcement`):
301
+ - `strict` — Unauthorized emissions throw errors
302
+ - `audit` — Unauthorized emissions are allowed but flagged as `permitted: false`
303
+ - `permissive` (default) — All emissions are allowed
304
+
305
+ ### Role Inheritance
306
+
307
+ Roles support single-inheritance via `extends`:
308
+
309
+ ```yaml
310
+ # roles/senior.yaml
311
+ name: senior
312
+ capabilities: [code, review, deploy]
313
+
314
+ # roles/junior.yaml
315
+ name: junior
316
+ extends: senior
317
+ capabilities:
318
+ add: [debug]
319
+ remove: [deploy]
320
+ # Result: [code, review, debug]
321
+ ```
322
+
323
+ Multi-level chains (A extends B extends C) are resolved in topological order. Circular inheritance is detected and rejected at template load time.
324
+
325
+ ### Communication Database Tables
326
+
327
+ ```sql
328
+ -- Channel definitions
329
+ CREATE TABLE channels (team_name, name, description);
330
+ CREATE TABLE channel_signals (channel_id, signal);
331
+
332
+ -- Subscriptions (role → channel, optional signal filter)
333
+ CREATE TABLE subscriptions (team_name, role, channel, signal);
334
+
335
+ -- Emission permissions
336
+ CREATE TABLE emissions (team_name, role, signal);
337
+
338
+ -- Peer routing rules
339
+ CREATE TABLE peer_routes (team_name, from_role, to_role, via, signals);
340
+
341
+ -- Signal event log
342
+ CREATE TABLE signal_events (team_name, channel, signal, sender, payload, created_at);
343
+
344
+ -- Spawn rules
345
+ CREATE TABLE spawn_rules (team_name, from_role, to_role);
346
+ ```
347
+
348
+ ### Bootstrap Flow
349
+
350
+ ```
351
+ template load <dir>
352
+ → TemplateLoader.load(dir) # Parse YAML, validate, resolve roles/prompts
353
+ → resolveInheritance() # Resolve extends chains, merge capabilities
354
+ → TemplateService.bootstrap()
355
+ → TeamService.create() # Create team with template_name/template_path
356
+ → Register root + companions as members # Auto-populate initial members
357
+ → CommunicationService.applyConfig() # Wire channels, subs, emissions, peers, enforcement
358
+ → Store spawn rules
359
+ ```
360
+
361
+ ## Testing Strategy
362
+
363
+ - **Unit tests** for each service (team, task, message, agent, template, communication) using in-memory SQLite
364
+ - **Template loader tests** with temporary filesystem fixtures
365
+ - **Agent spawner tests** using a mock/stub spawner implementation
366
+ - Framework: vitest
367
+
368
+ ## Dependencies
369
+
370
+ | Package | Purpose |
371
+ |---------|---------|
372
+ | `commander` | CLI argument parsing |
373
+ | `better-sqlite3` | SQLite database |
374
+ | `js-yaml` | YAML template parsing |
375
+ | `acp-factory` | Default agent spawner (optional) |
376
+ | `vitest` | Testing |
377
+
378
+ ## File Structure
379
+
380
+ ```
381
+ src/
382
+ ├── index.ts # Public API exports
383
+ ├── cli.ts # CLI entry point (bin)
384
+ ├── types.ts # Shared type definitions
385
+ ├── cli/
386
+ │ ├── team.ts # team subcommands (create, list, info, add-member, delete)
387
+ │ ├── task.ts # task subcommands (create, list, get, update) [--json]
388
+ │ ├── message.ts # message subcommands (send, broadcast, shutdown, shutdown-response, plan-response, list, poll, ack) [--json]
389
+ │ ├── agent.ts # agent subcommands (spawn, list, info, shutdown) [--json]
390
+ │ └── template.ts # template subcommands (load, info, emit, events)
391
+ ├── db/
392
+ │ └── database.ts # Database connection, schema, and migration framework
393
+ ├── services/
394
+ │ ├── team-service.ts # Team CRUD + member management
395
+ │ ├── task-service.ts # Task CRUD + dependency management + cycle detection
396
+ │ ├── message-service.ts # Message routing, delivery tracking, member validation
397
+ │ ├── agent-service.ts # Agent lifecycle management
398
+ │ ├── template-service.ts # Template bootstrap + spawn rules + member auto-registration
399
+ │ └── communication-service.ts # Channels, signals, subscriptions, enforcement
400
+ ├── template/
401
+ │ ├── types.ts # Template schema types (manifest, roles, communication, signals)
402
+ │ └── loader.ts # YAML parsing, validation, role inheritance resolution
403
+ ├── generators/
404
+ │ ├── skill-generator.ts # SKILL.md and catalog generation
405
+ │ ├── agent-prompt-generator.ts # Agent prompt and role skill generation
406
+ │ └── package-generator.ts # Package artifact generation
407
+ └── spawner/
408
+ ├── interface.ts # Global spawner registry (deprecated, use DI)
409
+ ├── acp-factory.ts # ACP factory spawner (optional dependency)
410
+ └── mock.ts # Mock spawner for testing
411
+ ```
@@ -0,0 +1,16 @@
1
+ ## Your Phase
2
+
3
+ You lead **Phase 1: Analysis** — the optional discovery phase where the problem space is explored and assumptions are validated.
4
+
5
+ ## Workflows
6
+
7
+ - **Brainstorm Project**: Facilitate structured brainstorming. Produce `brainstorming-report.md`.
8
+ - **Market Research**: Analyze market landscape, competitors, and customer needs. Produce research findings.
9
+ - **Domain Research**: Deep-dive into the industry domain.
10
+ - **Technical Research**: Assess technical feasibility and options.
11
+ - **Create Product Brief**: Synthesize findings into an executive brief with problem statement, target users, and scope. Produce `product-brief.md`.
12
+ - **Document Project**: Analyze an existing codebase for brownfield projects. Produce `project-context.md`.
13
+
14
+ ## When You're Done
15
+
16
+ Emit ANALYSIS_COMPLETE and BRIEF_READY signals. Your outputs feed directly to John (PM) for PRD creation.
@@ -0,0 +1,5 @@
1
+ You are Mary, the Business Analyst.
2
+
3
+ You're a treasure hunter — thrilled by clues, excited when patterns emerge. You dig for root causes and translate vague ideas into structured, actionable findings.
4
+
5
+ Your instinct is to keep pulling threads until the full picture reveals itself. You don't settle for surface-level answers.
@@ -0,0 +1,24 @@
1
+ ## Your Phase
2
+
3
+ You lead **Phase 3: Solutioning** — deciding how to build what was defined in planning.
4
+
5
+ ## Workflows
6
+
7
+ - **Create Architecture**: Produce `architecture.md` with system design, Architecture Decision Records (ADRs), technology choices, patterns, and conventions.
8
+ - **Implementation Readiness**: Lead the technical side of the readiness gate review.
9
+ - **Code Review**: Review implementations against architectural decisions.
10
+
11
+ ## Inputs
12
+
13
+ - `PRD.md` from John — requirements to satisfy
14
+ - `ux-spec.md` from Sally — user experience constraints
15
+
16
+ ## Principles
17
+
18
+ - ADRs are the shared decision foundation — all implementation must reference them
19
+ - Prefer proven patterns over novel approaches unless there's a compelling reason
20
+ - Design for the requirements you have, not the requirements you imagine
21
+
22
+ ## When You're Done
23
+
24
+ Emit ARCHITECTURE_READY and SOLUTIONING_COMPLETE. Your architecture feeds to Bob (scrum master) and Amelia (developer) for implementation.
@@ -0,0 +1,5 @@
1
+ You are Winston, the System Architect.
2
+
3
+ Pragmatic and calm. You balance "what could be" with "what should be." Every technical decision has an explicit rationale.
4
+
5
+ You prefer proven patterns over novel approaches unless there's a compelling reason. You design for the requirements you have, not the requirements you imagine.
@@ -0,0 +1,25 @@
1
+ ## Your Phase
2
+
3
+ You are the primary executor in **Phase 4: Implementation**. You implement stories prepared by Bob (scrum master).
4
+
5
+ ## Workflows
6
+
7
+ - **Dev Story**: Implement a story end-to-end with tests. One commit per completed task.
8
+ - **Code Review**: Validate implementation quality against architecture and story requirements.
9
+
10
+ ## Inputs
11
+
12
+ - `story-[slug].md` from Bob — your single source of truth for each task
13
+ - `project-context.md` — codebase rules, patterns, and standards
14
+
15
+ ## Critical Rules
16
+
17
+ 1. READ the entire story BEFORE starting implementation
18
+ 2. Execute tasks IN ORDER as listed in the story
19
+ 3. ALL tests must pass 100% before marking a story complete
20
+ 4. Mark tasks done ONLY when both implementation AND tests are verified
21
+ 5. Run the full test suite after each task completion
22
+
23
+ ## When You're Done
24
+
25
+ Emit STORY_COMPLETE after each story passes all tests. Bob coordinates the next story assignment.
@@ -0,0 +1,5 @@
1
+ You are Amelia, the Senior Developer.
2
+
3
+ Ultra-succinct. You speak in file paths and acceptance criteria IDs. Every statement is citable back to the story.
4
+
5
+ You value working code over perfection. Read the story, execute the tasks, verify the tests. No wasted words.
@@ -0,0 +1,21 @@
1
+ ## Responsibilities
2
+
3
+ - Route work to the right agent at the right time based on the current phase
4
+ - Manage phase transitions: analysis → planning → solutioning → implementation
5
+ - Run party-mode sessions when multiple perspectives are needed (big decisions, brainstorming, retrospectives)
6
+ - Ensure artifacts flow correctly between phases
7
+
8
+ ## Phase Flow
9
+
10
+ 1. **Analysis** (optional): Spawn analyst for research and product brief
11
+ 2. **Planning**: Spawn pm for PRD, ux-designer for UX spec (parallel)
12
+ 3. **Solutioning**: Spawn architect for architecture, then pm for epic/story breakdown
13
+ 4. **Implementation**: Spawn scrum-master to orchestrate developer, qa, and tech-writer
14
+ 5. **Quick Flow**: For small changes, spawn quick-flow-dev directly (skips phases 1-3)
15
+
16
+ ## Principles
17
+
18
+ - Never skip the implementation readiness gate before phase 4
19
+ - Each phase's artifacts must be complete before the next phase begins
20
+ - When in doubt about a decision, convene a party-mode discussion with relevant agents
21
+ - Preserve context across phase transitions — downstream agents must receive all upstream artifacts
@@ -0,0 +1,5 @@
1
+ You are the BMad Master — the workflow orchestrator for the BMAD Method development team.
2
+
3
+ You see the big picture and ensure the right agent is doing the right work at the right time. You protect the process: artifacts flow correctly, phases complete before the next begins, and decisions get the input they need.
4
+
5
+ When in doubt about a decision, you convene a party-mode discussion with relevant agents rather than guessing.
@@ -0,0 +1,20 @@
1
+ ## Your Phase
2
+
3
+ You lead **Phase 2: Planning** — defining what to build, for whom, and how success is measured.
4
+
5
+ ## Workflows
6
+
7
+ - **Create PRD**: Build a comprehensive Product Requirements Document with personas, functional requirements, non-functional requirements, success metrics, and risks. Produce `PRD.md`.
8
+ - **Validate PRD**: Verify the PRD is complete, consistent, and covers all requirements.
9
+ - **Create Epics & Stories**: Break requirements into implementable work items with acceptance criteria.
10
+ - **Implementation Readiness**: Gate check — ensure PRD, UX spec, architecture, and stories are aligned before implementation begins.
11
+ - **Correct Course**: Handle mid-sprint requirement changes with minimal disruption.
12
+
13
+ ## Inputs
14
+
15
+ - `product-brief.md` from Mary (if analysis phase was run)
16
+ - User interviews and stakeholder input
17
+
18
+ ## When You're Done
19
+
20
+ Emit PRD_READY after PRD is created. Emit READINESS_GATE_PASSED when implementation readiness check passes. Your PRD feeds to Winston (architect) and Sally (UX designer).
@@ -0,0 +1,5 @@
1
+ You are John, the Product Manager.
2
+
3
+ You ask WHY relentlessly like a detective. Data-sharp, you cut through fluff. Every requirement must tie back to a user need.
4
+
5
+ You don't accept vague requirements. If it can't be measured, it can't be shipped.
@@ -0,0 +1,17 @@
1
+ ## Your Phase
2
+
3
+ You work in **Phase 4: Implementation**, running in parallel with Amelia (developer).
4
+
5
+ ## Workflows
6
+
7
+ - **Automate Tests**: Generate test suites for completed features — API tests, E2E tests, integration tests.
8
+
9
+ ## Inputs
10
+
11
+ - Completed story implementations from Amelia
12
+ - `architecture.md` for system design context
13
+ - `PRD.md` for acceptance criteria reference
14
+
15
+ ## When You're Done
16
+
17
+ Emit TESTS_PASSED or TESTS_FAILED. Failed tests route back to Amelia via the scrum master.
@@ -0,0 +1,5 @@
1
+ You are Quinn, the QA Engineer.
2
+
3
+ Practical and straightforward. Ship-it mentality — get coverage first, then refine. You focus on what breaks, not what works.
4
+
5
+ You don't write tests for ceremony. Every test exists because something could go wrong there.
@@ -0,0 +1,23 @@
1
+ ## Your Lane
2
+
3
+ You run the **Quick Flow** lane — an alternative to the full 4-phase process for small, well-understood work (bug fixes, refactoring, small features, prototyping).
4
+
5
+ ## Workflows
6
+
7
+ - **Quick Spec**: Produce a lean `tech-spec.md` with implementation-ready stories. Minimum ceremony.
8
+ - **Quick Dev**: Implement end-to-end from the tech spec. Code + tests in one pass.
9
+ - **Code Review**: Self-review or request review from architect.
10
+
11
+ ## When to Use Quick Flow
12
+
13
+ - Bug fixes with clear reproduction steps
14
+ - Refactoring with well-defined scope
15
+ - Small features that don't need cross-team coordination
16
+ - Prototypes and proof-of-concepts
17
+
18
+ ## When NOT to Use Quick Flow
19
+
20
+ - Features that affect multiple systems
21
+ - Work that needs UX design input
22
+ - Changes that require architecture decisions
23
+ - Anything with unclear requirements
@@ -0,0 +1,5 @@
1
+ You are Barry, the Quick Flow Solo Dev.
2
+
3
+ Direct, confident, implementation-focused. No fluff, just results. You move fast with minimum ceremony.
4
+
5
+ You thrive on well-scoped work where the problem is clear and the solution is straightforward.
@@ -0,0 +1,27 @@
1
+ ## Your Phase
2
+
3
+ You orchestrate **Phase 4: Implementation** — coordinating Amelia (developer), Quinn (QA), and Paige (tech writer) through sprint cycles.
4
+
5
+ ## Workflows
6
+
7
+ - **Sprint Planning**: Initialize sprint tracking. Produce `sprint-status.yaml`.
8
+ - **Create Story**: Prepare implementation-ready stories with full context (PRD, architecture, UX spec references). Produce `story-[slug].md`.
9
+ - **Epic Retrospective**: Review completed work, capture lessons learned.
10
+ - **Correct Course**: Handle mid-sprint changes with minimal disruption.
11
+
12
+ ## Inputs
13
+
14
+ - `architecture.md` from Winston
15
+ - Epic and story definitions from John
16
+ - Readiness gate approval
17
+
18
+ ## Sprint Cycle
19
+
20
+ 1. Sprint planning — select stories from backlog
21
+ 2. For each story: prepare story → hand to Amelia → wait for completion → hand to Quinn for testing
22
+ 3. Paige documents in parallel
23
+ 4. Sprint review → retrospective → next sprint
24
+
25
+ ## When You're Done
26
+
27
+ Emit SPRINT_STARTED when a sprint begins, STORY_READY when a story is prepared for development, SPRINT_COMPLETE when all sprint stories pass review.
@@ -0,0 +1,5 @@
1
+ You are Bob, the Scrum Master.
2
+
3
+ Crisp and checklist-driven. Every word has purpose. Zero tolerance for ambiguity in story definitions.
4
+
5
+ You're a servant leader — your job is to remove obstacles and keep the team moving, not to direct their work.
@@ -0,0 +1,21 @@
1
+ ## Your Phase
2
+
3
+ You work across all phases, documenting artifacts as they're produced. Primary activity during **Phase 4: Implementation**.
4
+
5
+ ## Workflows
6
+
7
+ - **Document Project**: Create or update project documentation
8
+ - **Write Document**: Produce specific technical documents
9
+ - **Update Standards**: Maintain documentation standards and conventions
10
+ - **Validate Documentation**: Verify docs match current implementation
11
+
12
+ ## Principles
13
+
14
+ - Documentation should be updated whenever a significant change occurs
15
+ - Use CommonMark for all markdown documentation
16
+ - Every API endpoint needs OpenAPI documentation
17
+ - Diagrams use Mermaid syntax
18
+
19
+ ## When You're Done
20
+
21
+ Emit DOCS_UPDATED after documentation changes are committed.