monomind 1.19.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (870) hide show
  1. package/README.md +2 -5
  2. package/package.json +15 -34
  3. package/packages/@monomind/cli/.claude/agents/github/issue-tracker.md +0 -2
  4. package/packages/@monomind/cli/.claude/agents/github/pr-manager.md +0 -2
  5. package/packages/@monomind/cli/.claude/agents/github/repo-architect.md +3 -11
  6. package/packages/@monomind/cli/.claude/agents/goal/goal-planner.md +0 -1
  7. package/packages/@monomind/cli/.claude/commands/github/issue-tracker.md +0 -2
  8. package/packages/@monomind/cli/.claude/commands/github/pr-manager.md +0 -2
  9. package/packages/@monomind/cli/.claude/commands/github/repo-architect.md +3 -10
  10. package/packages/@monomind/cli/.claude/commands/mastermind/help.md +3 -3
  11. package/packages/@monomind/cli/.claude/commands/workflows/README.md +0 -1
  12. package/packages/@monomind/cli/.claude/commands/workflows/workflow-create.md +0 -1
  13. package/packages/@monomind/cli/.claude/commands/workflows/workflow-execute.md +1 -3
  14. package/packages/@monomind/cli/.claude/commands/workflows/workflow-export.md +0 -2
  15. package/packages/@monomind/cli/.claude/helpers/handlers/agent-start-handler.cjs +18 -1
  16. package/packages/@monomind/cli/.claude/helpers/handlers/edit-handler.cjs +15 -0
  17. package/packages/@monomind/cli/.claude/helpers/handlers/gates-handler.cjs +2 -8
  18. package/packages/@monomind/cli/.claude/helpers/handlers/route-handler.cjs +149 -7
  19. package/packages/@monomind/cli/.claude/helpers/handlers/session-handler.cjs +47 -25
  20. package/packages/@monomind/cli/.claude/helpers/handlers/session-restore-handler.cjs +80 -43
  21. package/packages/@monomind/cli/.claude/helpers/handlers/task-handler.cjs +8 -4
  22. package/packages/@monomind/cli/.claude/helpers/hook-handler.cjs +69 -16
  23. package/packages/@monomind/cli/.claude/helpers/intelligence.cjs +100 -9
  24. package/packages/@monomind/cli/.claude/helpers/router.cjs +78 -5
  25. package/packages/@monomind/cli/.claude/helpers/skill-registry.json +0 -189
  26. package/packages/@monomind/cli/.claude/skills/github-toolkit/SKILL.md +60 -0
  27. package/packages/@monomind/cli/.claude/skills/hive-mind-advanced/SKILL.md +0 -15
  28. package/packages/@monomind/cli/.claude/skills/hooks-automation/SKILL.md +0 -1
  29. package/packages/@monomind/cli/.claude/skills/mastermind-skills/_protocol.md +1 -1
  30. package/packages/@monomind/cli/.claude/skills/mastermind-skills/build.md +1 -2
  31. package/packages/@monomind/cli/.claude/skills/memory-toolkit/SKILL.md +75 -0
  32. package/packages/@monomind/cli/.claude/skills/specialagent/SKILL.md +2 -4
  33. package/packages/@monomind/cli/.claude/skills/swarm-advanced/SKILL.md +0 -1
  34. package/packages/@monomind/cli/README.md +2 -5
  35. package/packages/@monomind/cli/dist/src/autopilot-state.js +4 -5
  36. package/packages/@monomind/cli/dist/src/browser/dashboard/server.js +69 -1
  37. package/packages/@monomind/cli/dist/src/browser/dashboard/ui.html +214 -1764
  38. package/packages/@monomind/cli/dist/src/capabilities/index.d.ts +0 -2
  39. package/packages/@monomind/cli/dist/src/capabilities/index.js +0 -1
  40. package/packages/@monomind/cli/dist/src/commands/agent-lifecycle.js +2 -6
  41. package/packages/@monomind/cli/dist/src/commands/analyze.d.ts +0 -4
  42. package/packages/@monomind/cli/dist/src/commands/analyze.js +1 -29
  43. package/packages/@monomind/cli/dist/src/commands/completions.js +3 -22
  44. package/packages/@monomind/cli/dist/src/commands/config.js +0 -6
  45. package/packages/@monomind/cli/dist/src/commands/doctor-project-checks.d.ts +12 -2
  46. package/packages/@monomind/cli/dist/src/commands/doctor-project-checks.js +130 -22
  47. package/packages/@monomind/cli/dist/src/commands/doctor.js +6 -5
  48. package/packages/@monomind/cli/dist/src/commands/guidance.d.ts +5 -1
  49. package/packages/@monomind/cli/dist/src/commands/guidance.js +11 -556
  50. package/packages/@monomind/cli/dist/src/commands/hive-mind-comms.js +11 -4
  51. package/packages/@monomind/cli/dist/src/commands/hive-mind.d.ts +4 -4
  52. package/packages/@monomind/cli/dist/src/commands/hive-mind.js +9 -6
  53. package/packages/@monomind/cli/dist/src/commands/hooks-formatting.d.ts +1 -5
  54. package/packages/@monomind/cli/dist/src/commands/hooks-formatting.js +1 -18
  55. package/packages/@monomind/cli/dist/src/commands/hooks-workers.d.ts +1 -1
  56. package/packages/@monomind/cli/dist/src/commands/hooks-workers.js +82 -330
  57. package/packages/@monomind/cli/dist/src/commands/index.d.ts +0 -5
  58. package/packages/@monomind/cli/dist/src/commands/index.js +0 -45
  59. package/packages/@monomind/cli/dist/src/commands/init-wizard.js +1 -1
  60. package/packages/@monomind/cli/dist/src/commands/init.js +4 -24
  61. package/packages/@monomind/cli/dist/src/commands/neural-core.js +11 -11
  62. package/packages/@monomind/cli/dist/src/commands/neural-optimize.js +9 -11
  63. package/packages/@monomind/cli/dist/src/commands/neural-registry.js +10 -10
  64. package/packages/@monomind/cli/dist/src/commands/providers.js +90 -1
  65. package/packages/@monomind/cli/dist/src/commands/search-universal.d.ts +7 -1
  66. package/packages/@monomind/cli/dist/src/commands/search-universal.js +59 -5
  67. package/packages/@monomind/cli/dist/src/commands/security-cve.js +3 -5
  68. package/packages/@monomind/cli/dist/src/commands/session.js +143 -3
  69. package/packages/@monomind/cli/dist/src/commands/start.js +0 -18
  70. package/packages/@monomind/cli/dist/src/commands/swarm.js +112 -65
  71. package/packages/@monomind/cli/dist/src/consensus/audit-writer.js +43 -1
  72. package/packages/@monomind/cli/dist/src/consensus/tally.d.ts +19 -0
  73. package/packages/@monomind/cli/dist/src/consensus/tally.js +34 -0
  74. package/packages/@monomind/cli/dist/src/index.d.ts +3 -2
  75. package/packages/@monomind/cli/dist/src/index.js +9 -12
  76. package/packages/@monomind/cli/dist/src/init/claudemd-generator.js +10 -14
  77. package/packages/@monomind/cli/dist/src/init/executor.js +39 -86
  78. package/packages/@monomind/cli/dist/src/init/settings-generator.js +0 -12
  79. package/packages/@monomind/cli/dist/src/init/statusline-generator.js +62 -0
  80. package/packages/@monomind/cli/dist/src/init/types.d.ts +2 -6
  81. package/packages/@monomind/cli/dist/src/init/types.js +0 -3
  82. package/packages/@monomind/cli/dist/src/knowledge/document-pipeline.js +18 -8
  83. package/packages/@monomind/cli/dist/src/mcp-client.js +0 -2
  84. package/packages/@monomind/cli/dist/src/mcp-server.js +12 -14
  85. package/packages/@monomind/cli/dist/src/mcp-tools/coherence/coherence-check.js +1 -19
  86. package/packages/@monomind/cli/dist/src/mcp-tools/coherence/types.d.ts +3 -2
  87. package/packages/@monomind/cli/dist/src/mcp-tools/coherence/types.js +3 -18
  88. package/packages/@monomind/cli/dist/src/mcp-tools/embeddings-tools.js +1 -7
  89. package/packages/@monomind/cli/dist/src/mcp-tools/graphify-tools.js +2 -2
  90. package/packages/@monomind/cli/dist/src/mcp-tools/guidance-tools.js +7 -17
  91. package/packages/@monomind/cli/dist/src/mcp-tools/hive-mind-tools.d.ts +8 -1
  92. package/packages/@monomind/cli/dist/src/mcp-tools/hive-mind-tools.js +174 -38
  93. package/packages/@monomind/cli/dist/src/mcp-tools/hooks-advanced.d.ts +18 -0
  94. package/packages/@monomind/cli/dist/src/mcp-tools/hooks-advanced.js +25 -0
  95. package/packages/@monomind/cli/dist/src/mcp-tools/hooks-intelligence.d.ts +4 -8
  96. package/packages/@monomind/cli/dist/src/mcp-tools/hooks-intelligence.js +33 -482
  97. package/packages/@monomind/cli/dist/src/mcp-tools/hooks-routing.d.ts +1 -0
  98. package/packages/@monomind/cli/dist/src/mcp-tools/hooks-routing.js +51 -43
  99. package/packages/@monomind/cli/dist/src/mcp-tools/hooks-synthesis.d.ts +31 -0
  100. package/packages/@monomind/cli/dist/src/mcp-tools/hooks-synthesis.js +196 -0
  101. package/packages/@monomind/cli/dist/src/mcp-tools/hooks-tools.js +10 -8
  102. package/packages/@monomind/cli/dist/src/mcp-tools/index.d.ts +0 -1
  103. package/packages/@monomind/cli/dist/src/mcp-tools/index.js +0 -1
  104. package/packages/@monomind/cli/dist/src/mcp-tools/memory-tools.js +20 -29
  105. package/packages/@monomind/cli/dist/src/mcp-tools/monograph-tools.d.ts +6 -0
  106. package/packages/@monomind/cli/dist/src/mcp-tools/monograph-tools.js +78 -220
  107. package/packages/@monomind/cli/dist/src/mcp-tools/neural-tools.d.ts +9 -4
  108. package/packages/@monomind/cli/dist/src/mcp-tools/neural-tools.js +242 -506
  109. package/packages/@monomind/cli/dist/src/mcp-tools/security-tools.js +103 -0
  110. package/packages/@monomind/cli/dist/src/memory/intelligence.d.ts +2 -1
  111. package/packages/@monomind/cli/dist/src/memory/intelligence.js +56 -43
  112. package/packages/@monomind/cli/dist/src/memory/memory-bridge.js +14 -9
  113. package/packages/@monomind/cli/dist/src/memory/memory-read.js +1 -19
  114. package/packages/@monomind/cli/dist/src/suggest.js +1 -7
  115. package/packages/@monomind/cli/dist/src/transfer/store/discovery.d.ts +3 -2
  116. package/packages/@monomind/cli/dist/src/transfer/store/discovery.js +22 -70
  117. package/packages/@monomind/cli/dist/src/update/checker.js +0 -1
  118. package/packages/@monomind/cli/dist/src/utils/cosine-similarity.d.ts +22 -0
  119. package/packages/@monomind/cli/dist/src/utils/cosine-similarity.js +38 -0
  120. package/packages/@monomind/cli/dist/src/utils/input-guards.d.ts +51 -0
  121. package/packages/@monomind/cli/dist/src/utils/input-guards.js +223 -0
  122. package/packages/@monomind/cli/dist/src/utils/json-file.d.ts +33 -0
  123. package/packages/@monomind/cli/dist/src/utils/json-file.js +57 -0
  124. package/packages/@monomind/cli/package.json +9 -6
  125. package/packages/@monomind/cli/scripts/sync-claude-assets.sh +16 -20
  126. package/scripts/generate-agent-avatars.mjs +0 -8
  127. package/.claude/agents/architecture/system-design/arch-system-design.md +0 -54
  128. package/.claude/agents/consensus/crdt-synchronizer.md +0 -977
  129. package/.claude/agents/consensus/quorum-manager.md +0 -803
  130. package/.claude/agents/consensus/security-manager.md +0 -602
  131. package/.claude/agents/core/coder.md +0 -262
  132. package/.claude/agents/core/coordinator.md +0 -71
  133. package/.claude/agents/core/planner.md +0 -170
  134. package/.claude/agents/core/researcher.md +0 -197
  135. package/.claude/agents/core/reviewer.md +0 -327
  136. package/.claude/agents/core/tester.md +0 -318
  137. package/.claude/agents/design/design-monodesign.md +0 -121
  138. package/.claude/agents/engineering/engineering-ai-data-remediation-engineer.md +0 -212
  139. package/.claude/agents/engineering/engineering-ai-engineer.md +0 -165
  140. package/.claude/agents/engineering/engineering-autonomous-optimization-architect.md +0 -108
  141. package/.claude/agents/engineering/engineering-backend-architect.md +0 -254
  142. package/.claude/agents/engineering/engineering-code-reviewer.md +0 -95
  143. package/.claude/agents/engineering/engineering-data-engineer.md +0 -307
  144. package/.claude/agents/engineering/engineering-database-optimizer.md +0 -200
  145. package/.claude/agents/engineering/engineering-devops-automator.md +0 -430
  146. package/.claude/agents/engineering/engineering-embedded-firmware-engineer.md +0 -174
  147. package/.claude/agents/engineering/engineering-feishu-integration-developer.md +0 -607
  148. package/.claude/agents/engineering/engineering-frontend-developer.md +0 -249
  149. package/.claude/agents/engineering/engineering-git-workflow-master.md +0 -108
  150. package/.claude/agents/engineering/engineering-incident-response-commander.md +0 -482
  151. package/.claude/agents/engineering/engineering-mobile-app-builder.md +0 -499
  152. package/.claude/agents/engineering/engineering-rapid-prototyper.md +0 -463
  153. package/.claude/agents/engineering/engineering-security-engineer.md +0 -303
  154. package/.claude/agents/engineering/engineering-senior-developer.md +0 -195
  155. package/.claude/agents/engineering/engineering-software-architect.md +0 -100
  156. package/.claude/agents/engineering/engineering-solidity-smart-contract-engineer.md +0 -528
  157. package/.claude/agents/engineering/engineering-sre.md +0 -114
  158. package/.claude/agents/engineering/engineering-technical-writer.md +0 -412
  159. package/.claude/agents/engineering/engineering-threat-detection-engineer.md +0 -540
  160. package/.claude/agents/engineering/engineering-wechat-mini-program-developer.md +0 -351
  161. package/.claude/agents/generated/case-analyst.md +0 -50
  162. package/.claude/agents/generated/channel-intelligence-director.md +0 -87
  163. package/.claude/agents/generated/chief-growth-officer.md +0 -88
  164. package/.claude/agents/generated/churn-analyst.md +0 -53
  165. package/.claude/agents/generated/code-reviewer.md +0 -55
  166. package/.claude/agents/generated/code-validator.md +0 -57
  167. package/.claude/agents/generated/complexity-scanner.md +0 -56
  168. package/.claude/agents/generated/content-seo-strategist.md +0 -90
  169. package/.claude/agents/generated/copy-editor.md +0 -45
  170. package/.claude/agents/generated/court-reporter.md +0 -50
  171. package/.claude/agents/generated/defender.md +0 -51
  172. package/.claude/agents/generated/devbot-orchestrator.md +0 -58
  173. package/.claude/agents/generated/devbot-planner.md +0 -63
  174. package/.claude/agents/generated/developer-community-strategist.md +0 -91
  175. package/.claude/agents/generated/editor-in-chief.md +0 -45
  176. package/.claude/agents/generated/fact-checker.md +0 -45
  177. package/.claude/agents/generated/impact-assessor.md +0 -54
  178. package/.claude/agents/generated/judge.md +0 -51
  179. package/.claude/agents/generated/outreach-partnership-strategist.md +0 -90
  180. package/.claude/agents/generated/prosecutor.md +0 -51
  181. package/.claude/agents/generated/reporter.md +0 -45
  182. package/.claude/agents/generated/social-media-strategist.md +0 -91
  183. package/.claude/agents/generated/video-visual-strategist.md +0 -90
  184. package/.claude/agents/github/code-review-swarm.md +0 -557
  185. package/.claude/agents/github/github-modes.md +0 -154
  186. package/.claude/agents/github/issue-tracker.md +0 -299
  187. package/.claude/agents/github/multi-repo-swarm.md +0 -525
  188. package/.claude/agents/github/pr-manager.md +0 -163
  189. package/.claude/agents/github/project-board-sync.md +0 -478
  190. package/.claude/agents/github/release-manager.md +0 -296
  191. package/.claude/agents/github/repo-architect.md +0 -359
  192. package/.claude/agents/github/swarm-issue.md +0 -548
  193. package/.claude/agents/github/swarm-pr.md +0 -427
  194. package/.claude/agents/github/sync-coordinator.md +0 -355
  195. package/.claude/agents/github/workflow-automation.md +0 -640
  196. package/.claude/agents/goal/goal-planner.md +0 -168
  197. package/.claude/agents/hive-mind/collective-intelligence-coordinator.md +0 -129
  198. package/.claude/agents/hive-mind/queen-coordinator.md +0 -202
  199. package/.claude/agents/hive-mind/scout-explorer.md +0 -241
  200. package/.claude/agents/hive-mind/swarm-memory-manager.md +0 -192
  201. package/.claude/agents/hive-mind/worker-specialist.md +0 -216
  202. package/.claude/agents/marketing/marketing-competitive-content.md +0 -155
  203. package/.claude/agents/marketing/marketing-cro-specialist.md +0 -147
  204. package/.claude/agents/marketing/marketing-email-specialist.md +0 -90
  205. package/.claude/agents/marketing/marketing-launch-strategist.md +0 -129
  206. package/.claude/agents/marketing/marketing-pricing-strategist.md +0 -127
  207. package/.claude/agents/optimization/benchmark-suite.md +0 -665
  208. package/.claude/agents/optimization/load-balancer.md +0 -431
  209. package/.claude/agents/optimization/performance-monitor.md +0 -672
  210. package/.claude/agents/optimization/resource-allocator.md +0 -674
  211. package/.claude/agents/optimization/topology-optimizer.md +0 -808
  212. package/.claude/agents/reengineer-squad/boss.md +0 -113
  213. package/.claude/agents/reengineer-squad/critic-architect.md +0 -132
  214. package/.claude/agents/reengineer-squad/git-manager.md +0 -145
  215. package/.claude/agents/reengineer-squad/idea-generator.md +0 -95
  216. package/.claude/agents/reengineer-squad/implementer.md +0 -112
  217. package/.claude/agents/reengineer-squad/integration-planner.md +0 -112
  218. package/.claude/agents/reengineer-squad/source-analyst.md +0 -103
  219. package/.claude/agents/reengineer-squad/target-analyst.md +0 -118
  220. package/.claude/agents/reengineer-squad/tester.md +0 -105
  221. package/.claude/agents/schemas/architecture-output.json +0 -43
  222. package/.claude/agents/schemas/code-review-output.json +0 -28
  223. package/.claude/agents/schemas/generic-task-input.json +0 -12
  224. package/.claude/agents/schemas/implementation-output.json +0 -18
  225. package/.claude/agents/schemas/research-output.json +0 -31
  226. package/.claude/agents/schemas/security-audit-output.json +0 -29
  227. package/.claude/agents/schemas/test-report-output.json +0 -29
  228. package/.claude/agents/sparc/architecture.md +0 -453
  229. package/.claude/agents/sparc/pseudocode.md +0 -299
  230. package/.claude/agents/sparc/refinement.md +0 -504
  231. package/.claude/agents/sparc/specification.md +0 -258
  232. package/.claude/agents/specialists/integration-architect.md +0 -94
  233. package/.claude/agents/specialized/agentic-identity-trust.md +0 -388
  234. package/.claude/agents/specialized/agents-orchestrator.md +0 -368
  235. package/.claude/agents/specialized/automation-governance-architect.md +0 -217
  236. package/.claude/agents/specialized/blockchain-security-auditor.md +0 -497
  237. package/.claude/agents/specialized/compliance-auditor.md +0 -159
  238. package/.claude/agents/specialized/identity-graph-operator.md +0 -261
  239. package/.claude/agents/specialized/lsp-index-engineer.md +0 -315
  240. package/.claude/agents/specialized/mobile/spec-mobile-react-native.md +0 -89
  241. package/.claude/agents/specialized/specialized-cultural-intelligence-strategist.md +0 -89
  242. package/.claude/agents/specialized/specialized-developer-advocate.md +0 -318
  243. package/.claude/agents/specialized/specialized-document-generator.md +0 -56
  244. package/.claude/agents/specialized/specialized-mcp-builder.md +0 -64
  245. package/.claude/agents/specialized/specialized-model-qa.md +0 -489
  246. package/.claude/agents/specialized/specialized-workflow-architect.md +0 -595
  247. package/.claude/agents/specialized/zk-steward.md +0 -212
  248. package/.claude/agents/swarm/mesh-coordinator.md +0 -363
  249. package/.claude/agents/templates/automation-smart-agent.md +0 -185
  250. package/.claude/agents/templates/coordinator-swarm-init.md +0 -83
  251. package/.claude/agents/templates/implementer-sparc-coder.md +0 -231
  252. package/.claude/agents/testing/production-validator.md +0 -375
  253. package/.claude/agents/testing/tdd-london-swarm.md +0 -241
  254. package/.claude/agents/testing/testing-accessibility-auditor.md +0 -322
  255. package/.claude/agents/testing/testing-api-tester.md +0 -307
  256. package/.claude/agents/testing/testing-evidence-collector.md +0 -213
  257. package/.claude/agents/testing/testing-performance-benchmarker.md +0 -269
  258. package/.claude/agents/testing/testing-test-results-analyzer.md +0 -306
  259. package/.claude/agents/testing/testing-tool-evaluator.md +0 -395
  260. package/.claude/agents/testing/testing-workflow-optimizer.md +0 -451
  261. package/.claude/commands/agents/README.md +0 -14
  262. package/.claude/commands/agents/agent-capabilities.md +0 -25
  263. package/.claude/commands/agents/agent-coordination.md +0 -32
  264. package/.claude/commands/agents/agent-spawning.md +0 -32
  265. package/.claude/commands/agents/agent-types.md +0 -30
  266. package/.claude/commands/analysis/README.md +0 -18
  267. package/.claude/commands/analysis/bottleneck-detect.md +0 -69
  268. package/.claude/commands/analysis/performance-bottlenecks.md +0 -59
  269. package/.claude/commands/analysis/performance-report.md +0 -52
  270. package/.claude/commands/analysis/token-usage.md +0 -47
  271. package/.claude/commands/automation/README.md +0 -19
  272. package/.claude/commands/automation/auto-agent.md +0 -86
  273. package/.claude/commands/automation/self-healing.md +0 -108
  274. package/.claude/commands/automation/session-memory.md +0 -89
  275. package/.claude/commands/automation/smart-agents.md +0 -81
  276. package/.claude/commands/automation/smart-spawn.md +0 -66
  277. package/.claude/commands/automation/workflow-select.md +0 -60
  278. package/.claude/commands/coordination/README.md +0 -13
  279. package/.claude/commands/coordination/agent-spawn.md +0 -69
  280. package/.claude/commands/coordination/swarm-init.md +0 -82
  281. package/.claude/commands/coordination/task-orchestrate.md +0 -79
  282. package/.claude/commands/github/README.md +0 -24
  283. package/.claude/commands/github/github-modes.md +0 -151
  284. package/.claude/commands/github/issue-tracker.md +0 -293
  285. package/.claude/commands/github/pr-manager.md +0 -173
  286. package/.claude/commands/github/release-manager.md +0 -343
  287. package/.claude/commands/github/repo-architect.md +0 -379
  288. package/.claude/commands/github/sync-coordinator.md +0 -297
  289. package/.claude/commands/hive-mind/README.md +0 -42
  290. package/.claude/commands/hive-mind/hive-mind-consensus.md +0 -72
  291. package/.claude/commands/hive-mind/hive-mind-init.md +0 -68
  292. package/.claude/commands/hive-mind/hive-mind-memory.md +0 -73
  293. package/.claude/commands/hive-mind/hive-mind-spawn.md +0 -82
  294. package/.claude/commands/hive-mind/hive-mind-status.md +0 -56
  295. package/.claude/commands/hive-mind/hive-mind-stop.md +0 -55
  296. package/.claude/commands/hive-mind/hive-mind.md +0 -87
  297. package/.claude/commands/hooks/README.md +0 -66
  298. package/.claude/commands/hooks/overview.md +0 -112
  299. package/.claude/commands/hooks/post-edit.md +0 -78
  300. package/.claude/commands/hooks/post-task.md +0 -62
  301. package/.claude/commands/hooks/pre-edit.md +0 -81
  302. package/.claude/commands/hooks/pre-task.md +0 -73
  303. package/.claude/commands/hooks/session-end.md +0 -82
  304. package/.claude/commands/hooks/setup.md +0 -132
  305. package/.claude/commands/mastermind/_repeat.md +0 -492
  306. package/.claude/commands/mastermind/_taskfile.md +0 -232
  307. package/.claude/commands/mastermind/adr.md +0 -9
  308. package/.claude/commands/mastermind/approve.md +0 -91
  309. package/.claude/commands/mastermind/architect.md +0 -52
  310. package/.claude/commands/mastermind/autodev.md +0 -28
  311. package/.claude/commands/mastermind/brain.md +0 -99
  312. package/.claude/commands/mastermind/budget.md +0 -5
  313. package/.claude/commands/mastermind/build.md +0 -23
  314. package/.claude/commands/mastermind/code-review.md +0 -314
  315. package/.claude/commands/mastermind/content.md +0 -23
  316. package/.claude/commands/mastermind/createorg.md +0 -136
  317. package/.claude/commands/mastermind/createtask.md +0 -372
  318. package/.claude/commands/mastermind/debug.md +0 -19
  319. package/.claude/commands/mastermind/design.md +0 -17
  320. package/.claude/commands/mastermind/do.md +0 -525
  321. package/.claude/commands/mastermind/execute.md +0 -17
  322. package/.claude/commands/mastermind/finance.md +0 -23
  323. package/.claude/commands/mastermind/finish.md +0 -17
  324. package/.claude/commands/mastermind/graph-status.md +0 -5
  325. package/.claude/commands/mastermind/help.md +0 -115
  326. package/.claude/commands/mastermind/idea.md +0 -23
  327. package/.claude/commands/mastermind/ideate.md +0 -258
  328. package/.claude/commands/mastermind/improve.md +0 -342
  329. package/.claude/commands/mastermind/loops.md +0 -5
  330. package/.claude/commands/mastermind/marketing.md +0 -23
  331. package/.claude/commands/mastermind/master.md +0 -1124
  332. package/.claude/commands/mastermind/memory.md +0 -227
  333. package/.claude/commands/mastermind/okf-export.md +0 -14
  334. package/.claude/commands/mastermind/okf-import.md +0 -15
  335. package/.claude/commands/mastermind/ops.md +0 -23
  336. package/.claude/commands/mastermind/orgs.md +0 -18
  337. package/.claude/commands/mastermind/orgstatus.md +0 -56
  338. package/.claude/commands/mastermind/plan.md +0 -23
  339. package/.claude/commands/mastermind/receive-review.md +0 -17
  340. package/.claude/commands/mastermind/references/antigravity-tools.md +0 -60
  341. package/.claude/commands/mastermind/references/claude-code-tools.md +0 -50
  342. package/.claude/commands/mastermind/references/codex-tools.md +0 -64
  343. package/.claude/commands/mastermind/references/copilot-tools.md +0 -49
  344. package/.claude/commands/mastermind/references/gemini-tools.md +0 -63
  345. package/.claude/commands/mastermind/references/pi-tools.md +0 -28
  346. package/.claude/commands/mastermind/release.md +0 -23
  347. package/.claude/commands/mastermind/repeat.md +0 -254
  348. package/.claude/commands/mastermind/research.md +0 -23
  349. package/.claude/commands/mastermind/review.md +0 -34
  350. package/.claude/commands/mastermind/runorg.md +0 -153
  351. package/.claude/commands/mastermind/sales.md +0 -23
  352. package/.claude/commands/mastermind/skill-builder.md +0 -17
  353. package/.claude/commands/mastermind/specialagents.md +0 -122
  354. package/.claude/commands/mastermind/stoporg.md +0 -75
  355. package/.claude/commands/mastermind/swarm.md +0 -158
  356. package/.claude/commands/mastermind/taskdev.md +0 -23
  357. package/.claude/commands/mastermind/tdd.md +0 -19
  358. package/.claude/commands/mastermind/techport.md +0 -27
  359. package/.claude/commands/mastermind/understand.md +0 -136
  360. package/.claude/commands/mastermind/verify.md +0 -19
  361. package/.claude/commands/mastermind/worktree.md +0 -17
  362. package/.claude/commands/mastermind.md +0 -121
  363. package/.claude/commands/memory/README.md +0 -79
  364. package/.claude/commands/memory/memory-search.md +0 -77
  365. package/.claude/commands/monitoring/README.md +0 -69
  366. package/.claude/commands/monitoring/agent-metrics.md +0 -65
  367. package/.claude/commands/monitoring/agents.md +0 -71
  368. package/.claude/commands/monitoring/status.md +0 -108
  369. package/.claude/commands/monobrowse.md +0 -21
  370. package/.claude/commands/monoes/README.md +0 -30
  371. package/.claude/commands/monoes/install.md +0 -163
  372. package/.claude/commands/monoes/monoagent.md +0 -148
  373. package/.claude/commands/monoes/monoclip.md +0 -64
  374. package/.claude/commands/monoes/monotask.md +0 -137
  375. package/.claude/commands/monograph/README.md +0 -102
  376. package/.claude/commands/monograph/monograph-build.md +0 -79
  377. package/.claude/commands/monograph/monograph-search.md +0 -96
  378. package/.claude/commands/monograph/monograph-stats.md +0 -53
  379. package/.claude/commands/monograph/monograph-watch.md +0 -63
  380. package/.claude/commands/monograph/monograph-wiki.md +0 -91
  381. package/.claude/commands/optimization/auto-topology.md +0 -85
  382. package/.claude/commands/optimization/performance-optimize.md +0 -79
  383. package/.claude/commands/pair/README.md +0 -79
  384. package/.claude/commands/pair/examples.md +0 -156
  385. package/.claude/commands/pair/modes.md +0 -122
  386. package/.claude/commands/pair/session.md +0 -124
  387. package/.claude/commands/sparc/analyzer.md +0 -35
  388. package/.claude/commands/sparc/architect.md +0 -36
  389. package/.claude/commands/sparc/ask.md +0 -56
  390. package/.claude/commands/sparc/batch-executor.md +0 -37
  391. package/.claude/commands/sparc/code.md +0 -48
  392. package/.claude/commands/sparc/coder.md +0 -37
  393. package/.claude/commands/sparc/debug.md +0 -42
  394. package/.claude/commands/sparc/debugger.md +0 -37
  395. package/.claude/commands/sparc/designer.md +0 -36
  396. package/.claude/commands/sparc/devops.md +0 -68
  397. package/.claude/commands/sparc/docs-writer.md +0 -39
  398. package/.claude/commands/sparc/documenter.md +0 -37
  399. package/.claude/commands/sparc/innovator.md +0 -37
  400. package/.claude/commands/sparc/integration.md +0 -42
  401. package/.claude/commands/sparc/mcp.md +0 -76
  402. package/.claude/commands/sparc/memory-manager.md +0 -57
  403. package/.claude/commands/sparc/optimizer.md +0 -37
  404. package/.claude/commands/sparc/orchestrator.md +0 -70
  405. package/.claude/commands/sparc/post-deployment-monitoring-mode.md +0 -42
  406. package/.claude/commands/sparc/refinement-optimization-mode.md +0 -42
  407. package/.claude/commands/sparc/researcher.md +0 -37
  408. package/.claude/commands/sparc/reviewer.md +0 -37
  409. package/.claude/commands/sparc/security-review.md +0 -39
  410. package/.claude/commands/sparc/sparc-modes.md +0 -120
  411. package/.claude/commands/sparc/sparc.md +0 -71
  412. package/.claude/commands/sparc/spec-pseudocode.md +0 -39
  413. package/.claude/commands/sparc/supabase-admin.md +0 -301
  414. package/.claude/commands/sparc/swarm-coordinator.md +0 -50
  415. package/.claude/commands/sparc/tdd.md +0 -37
  416. package/.claude/commands/sparc/tester.md +0 -37
  417. package/.claude/commands/sparc/tutorial.md +0 -38
  418. package/.claude/commands/sparc/workflow-manager.md +0 -37
  419. package/.claude/commands/sparc.md +0 -112
  420. package/.claude/commands/stream-chain/pipeline.md +0 -116
  421. package/.claude/commands/stream-chain/run.md +0 -156
  422. package/.claude/commands/swarm/README.md +0 -40
  423. package/.claude/commands/swarm/analysis.md +0 -73
  424. package/.claude/commands/swarm/development.md +0 -72
  425. package/.claude/commands/swarm/examples.md +0 -103
  426. package/.claude/commands/swarm/maintenance.md +0 -75
  427. package/.claude/commands/swarm/optimization.md +0 -84
  428. package/.claude/commands/swarm/research.md +0 -76
  429. package/.claude/commands/swarm/swarm.md +0 -79
  430. package/.claude/commands/swarm/testing.md +0 -80
  431. package/.claude/commands/tokens.md +0 -18
  432. package/.claude/commands/truth/start.md +0 -121
  433. package/.claude/commands/ts.md +0 -14
  434. package/.claude/commands/workflows/README.md +0 -65
  435. package/.claude/commands/workflows/development.md +0 -86
  436. package/.claude/commands/workflows/research.md +0 -89
  437. package/.claude/commands/workflows/workflow-create.md +0 -84
  438. package/.claude/commands/workflows/workflow-execute.md +0 -103
  439. package/.claude/commands/workflows/workflow-export.md +0 -90
  440. package/.claude/helpers/control-start.cjs +0 -184
  441. package/.claude/helpers/event-logger.cjs +0 -155
  442. package/.claude/helpers/extras-registry.json +0 -5141
  443. package/.claude/helpers/graphify-freshen.cjs +0 -140
  444. package/.claude/helpers/handlers/adr-draft-handler.cjs +0 -78
  445. package/.claude/helpers/handlers/agent-start-handler.cjs +0 -83
  446. package/.claude/helpers/handlers/budget-status-handler.cjs +0 -14
  447. package/.claude/helpers/handlers/capture-handler.cjs +0 -583
  448. package/.claude/helpers/handlers/compact-handler.cjs +0 -35
  449. package/.claude/helpers/handlers/edit-handler.cjs +0 -145
  450. package/.claude/helpers/handlers/gates-handler.cjs +0 -138
  451. package/.claude/helpers/handlers/graph-status-handler.cjs +0 -45
  452. package/.claude/helpers/handlers/loops-status-handler.cjs +0 -48
  453. package/.claude/helpers/handlers/route-handler.cjs +0 -381
  454. package/.claude/helpers/handlers/session-handler.cjs +0 -234
  455. package/.claude/helpers/handlers/session-restore-handler.cjs +0 -375
  456. package/.claude/helpers/handlers/stats-handler.cjs +0 -14
  457. package/.claude/helpers/handlers/task-handler.cjs +0 -206
  458. package/.claude/helpers/hook-handler.cjs +0 -765
  459. package/.claude/helpers/intelligence.cjs +0 -338
  460. package/.claude/helpers/learning-service.mjs +0 -61
  461. package/.claude/helpers/loop-tracker.cjs +0 -119
  462. package/.claude/helpers/mastermind-activate.cjs +0 -35
  463. package/.claude/helpers/memory-palace.cjs +0 -461
  464. package/.claude/helpers/memory.cjs +0 -193
  465. package/.claude/helpers/metrics-db.mjs +0 -87
  466. package/.claude/helpers/monolean-activate.cjs +0 -30
  467. package/.claude/helpers/monolean-config.cjs +0 -76
  468. package/.claude/helpers/monolean-instructions.cjs +0 -109
  469. package/.claude/helpers/monolean-propagate.cjs +0 -13
  470. package/.claude/helpers/monolean-tracker.cjs +0 -18
  471. package/.claude/helpers/router.cjs +0 -364
  472. package/.claude/helpers/session.cjs +0 -140
  473. package/.claude/helpers/skill-registry.json +0 -1043
  474. package/.claude/helpers/statusline.cjs +0 -1344
  475. package/.claude/helpers/toggle-statusline.cjs +0 -73
  476. package/.claude/helpers/token-tracker.cjs +0 -934
  477. package/.claude/helpers/utils/micro-agents.cjs +0 -354
  478. package/.claude/helpers/utils/monograph.cjs +0 -480
  479. package/.claude/helpers/utils/telemetry.cjs +0 -146
  480. package/.claude/mcp.json +0 -3
  481. package/.claude/scheduled_tasks.lock +0 -1
  482. package/.claude/settings.json +0 -475
  483. package/.claude/skills/.monomind/data/ranked-context.json +0 -5
  484. package/.claude/skills/.monomind/sessions/current.json +0 -13
  485. package/.claude/skills/.monomind/sessions/session-1777829336455.json +0 -15
  486. package/.claude/skills/.monomind/sessions/session-1777831614725.json +0 -15
  487. package/.claude/skills/.monomind/sessions/session-1777832095857.json +0 -15
  488. package/.claude/skills/.monomind/sessions/session-1777839814183.json +0 -15
  489. package/.claude/skills/.monomind/sessions/session-1777841847131.json +0 -15
  490. package/.claude/skills/.monomind/sessions/session-1777843309463.json +0 -15
  491. package/.claude/skills/.monomind/sessions/session-1777880867159.json +0 -15
  492. package/.claude/skills/.monomind/sessions/session-1777881884593.json +0 -15
  493. package/.claude/skills/.monomind/sessions/session-1777884090471.json +0 -15
  494. package/.claude/skills/.monomind/sessions/session-1777884808221.json +0 -15
  495. package/.claude/skills/.monomind/sessions/session-1777885672155.json +0 -15
  496. package/.claude/skills/.monomind/sessions/session-1777886852818.json +0 -15
  497. package/.claude/skills/.monomind/sessions/session-1777896532690.json +0 -15
  498. package/.claude/skills/agent-browser-testing/SKILL.md +0 -964
  499. package/.claude/skills/agentic-jujutsu/SKILL.md +0 -645
  500. package/.claude/skills/github-issue-triage/SKILL.md +0 -354
  501. package/.claude/skills/github-repo-recap/SKILL.md +0 -207
  502. package/.claude/skills/hive-mind-advanced/SKILL.md +0 -709
  503. package/.claude/skills/hooks-automation/SKILL.md +0 -1193
  504. package/.claude/skills/mastermind-skills/_agent-select.md +0 -132
  505. package/.claude/skills/mastermind-skills/_delegation.md +0 -83
  506. package/.claude/skills/mastermind-skills/_intake.md +0 -83
  507. package/.claude/skills/mastermind-skills/_protocol.md +0 -404
  508. package/.claude/skills/mastermind-skills/_repeat.md +0 -171
  509. package/.claude/skills/mastermind-skills/access.md +0 -236
  510. package/.claude/skills/mastermind-skills/activity.md +0 -191
  511. package/.claude/skills/mastermind-skills/adapter-manager.md +0 -259
  512. package/.claude/skills/mastermind-skills/adapters.md +0 -204
  513. package/.claude/skills/mastermind-skills/agent-detail.md +0 -242
  514. package/.claude/skills/mastermind-skills/agents.md +0 -178
  515. package/.claude/skills/mastermind-skills/approval-detail.md +0 -259
  516. package/.claude/skills/mastermind-skills/approve.md +0 -188
  517. package/.claude/skills/mastermind-skills/architect.md +0 -862
  518. package/.claude/skills/mastermind-skills/autodev.md +0 -360
  519. package/.claude/skills/mastermind-skills/backup.md +0 -197
  520. package/.claude/skills/mastermind-skills/bootstrap.md +0 -190
  521. package/.claude/skills/mastermind-skills/budgets.md +0 -237
  522. package/.claude/skills/mastermind-skills/build.md +0 -170
  523. package/.claude/skills/mastermind-skills/code-quality-reviewer-prompt.md +0 -60
  524. package/.claude/skills/mastermind-skills/companies.md +0 -256
  525. package/.claude/skills/mastermind-skills/content.md +0 -197
  526. package/.claude/skills/mastermind-skills/costs.md +0 -151
  527. package/.claude/skills/mastermind-skills/createorg.md +0 -862
  528. package/.claude/skills/mastermind-skills/debug.md +0 -232
  529. package/.claude/skills/mastermind-skills/design.md +0 -189
  530. package/.claude/skills/mastermind-skills/diagnose.md +0 -249
  531. package/.claude/skills/mastermind-skills/env.md +0 -198
  532. package/.claude/skills/mastermind-skills/environments.md +0 -250
  533. package/.claude/skills/mastermind-skills/execute.md +0 -104
  534. package/.claude/skills/mastermind-skills/export.md +0 -333
  535. package/.claude/skills/mastermind-skills/finance.md +0 -166
  536. package/.claude/skills/mastermind-skills/finish.md +0 -251
  537. package/.claude/skills/mastermind-skills/goal-detail.md +0 -255
  538. package/.claude/skills/mastermind-skills/goals.md +0 -149
  539. package/.claude/skills/mastermind-skills/heartbeat.md +0 -164
  540. package/.claude/skills/mastermind-skills/idea.md +0 -1142
  541. package/.claude/skills/mastermind-skills/implementer-prompt.md +0 -109
  542. package/.claude/skills/mastermind-skills/import.md +0 -281
  543. package/.claude/skills/mastermind-skills/inbox.md +0 -214
  544. package/.claude/skills/mastermind-skills/instance-settings.md +0 -315
  545. package/.claude/skills/mastermind-skills/instance.md +0 -233
  546. package/.claude/skills/mastermind-skills/invite-landing.md +0 -227
  547. package/.claude/skills/mastermind-skills/invites.md +0 -254
  548. package/.claude/skills/mastermind-skills/issue-detail.md +0 -291
  549. package/.claude/skills/mastermind-skills/issues.md +0 -235
  550. package/.claude/skills/mastermind-skills/join-queue.md +0 -170
  551. package/.claude/skills/mastermind-skills/liveness.md +0 -392
  552. package/.claude/skills/mastermind-skills/marketing.md +0 -228
  553. package/.claude/skills/mastermind-skills/memory.md +0 -321
  554. package/.claude/skills/mastermind-skills/monitor.md +0 -1284
  555. package/.claude/skills/mastermind-skills/monotask.md +0 -350
  556. package/.claude/skills/mastermind-skills/my-issues.md +0 -146
  557. package/.claude/skills/mastermind-skills/new-agent.md +0 -241
  558. package/.claude/skills/mastermind-skills/ops.md +0 -168
  559. package/.claude/skills/mastermind-skills/org-chart.md +0 -209
  560. package/.claude/skills/mastermind-skills/org-settings.md +0 -254
  561. package/.claude/skills/mastermind-skills/orgs.md +0 -98
  562. package/.claude/skills/mastermind-skills/orgstatus.md +0 -194
  563. package/.claude/skills/mastermind-skills/plan-to-tasks.md +0 -136
  564. package/.claude/skills/mastermind-skills/plan.md +0 -198
  565. package/.claude/skills/mastermind-skills/plugin-manager.md +0 -241
  566. package/.claude/skills/mastermind-skills/plugin-settings.md +0 -273
  567. package/.claude/skills/mastermind-skills/plugins.md +0 -190
  568. package/.claude/skills/mastermind-skills/profile.md +0 -187
  569. package/.claude/skills/mastermind-skills/project-detail.md +0 -249
  570. package/.claude/skills/mastermind-skills/project-workspace.md +0 -244
  571. package/.claude/skills/mastermind-skills/projects.md +0 -164
  572. package/.claude/skills/mastermind-skills/receive-review.md +0 -213
  573. package/.claude/skills/mastermind-skills/references/copywriting-frameworks.md +0 -181
  574. package/.claude/skills/mastermind-skills/references/persuasion-psychology.md +0 -158
  575. package/.claude/skills/mastermind-skills/release.md +0 -168
  576. package/.claude/skills/mastermind-skills/research.md +0 -168
  577. package/.claude/skills/mastermind-skills/review.md +0 -233
  578. package/.claude/skills/mastermind-skills/routine-detail.md +0 -253
  579. package/.claude/skills/mastermind-skills/routines.md +0 -203
  580. package/.claude/skills/mastermind-skills/runorg.md +0 -714
  581. package/.claude/skills/mastermind-skills/sales.md +0 -170
  582. package/.claude/skills/mastermind-skills/search.md +0 -186
  583. package/.claude/skills/mastermind-skills/secrets.md +0 -199
  584. package/.claude/skills/mastermind-skills/skill-builder.md +0 -274
  585. package/.claude/skills/mastermind-skills/skills.md +0 -156
  586. package/.claude/skills/mastermind-skills/spec-reviewer-prompt.md +0 -63
  587. package/.claude/skills/mastermind-skills/stoporg.md +0 -138
  588. package/.claude/skills/mastermind-skills/taskdev.md +0 -307
  589. package/.claude/skills/mastermind-skills/tasks.md +0 -149
  590. package/.claude/skills/mastermind-skills/tdd.md +0 -394
  591. package/.claude/skills/mastermind-skills/techport.md +0 -777
  592. package/.claude/skills/mastermind-skills/threads.md +0 -259
  593. package/.claude/skills/mastermind-skills/tree-control.md +0 -250
  594. package/.claude/skills/mastermind-skills/verify.md +0 -196
  595. package/.claude/skills/mastermind-skills/wiki.md +0 -314
  596. package/.claude/skills/mastermind-skills/workspace-detail.md +0 -317
  597. package/.claude/skills/mastermind-skills/workspaces.md +0 -261
  598. package/.claude/skills/mastermind-skills/worktree.md +0 -215
  599. package/.claude/skills/monodesign/SKILL.md +0 -333
  600. package/.claude/skills/monodesign/adapt.md +0 -53
  601. package/.claude/skills/monodesign/agents/monodesign-asset-producer.md +0 -100
  602. package/.claude/skills/monodesign/animate.md +0 -65
  603. package/.claude/skills/monodesign/audit.md +0 -89
  604. package/.claude/skills/monodesign/bolder.md +0 -50
  605. package/.claude/skills/monodesign/clarify.md +0 -64
  606. package/.claude/skills/monodesign/colorize.md +0 -68
  607. package/.claude/skills/monodesign/craft.md +0 -51
  608. package/.claude/skills/monodesign/critique.md +0 -66
  609. package/.claude/skills/monodesign/delight.md +0 -47
  610. package/.claude/skills/monodesign/distill.md +0 -56
  611. package/.claude/skills/monodesign/document.md +0 -83
  612. package/.claude/skills/monodesign/extract.md +0 -74
  613. package/.claude/skills/monodesign/harden.md +0 -65
  614. package/.claude/skills/monodesign/live.md +0 -59
  615. package/.claude/skills/monodesign/onboard.md +0 -50
  616. package/.claude/skills/monodesign/optimize.md +0 -64
  617. package/.claude/skills/monodesign/overdrive.md +0 -56
  618. package/.claude/skills/monodesign/polish.md +0 -68
  619. package/.claude/skills/monodesign/quieter.md +0 -57
  620. package/.claude/skills/monodesign/reference/adapt.md +0 -190
  621. package/.claude/skills/monodesign/reference/animate.md +0 -175
  622. package/.claude/skills/monodesign/reference/antipatterns-catalog.md +0 -359
  623. package/.claude/skills/monodesign/reference/audit.md +0 -133
  624. package/.claude/skills/monodesign/reference/bolder.md +0 -113
  625. package/.claude/skills/monodesign/reference/brand-workflow.md +0 -180
  626. package/.claude/skills/monodesign/reference/brand.md +0 -114
  627. package/.claude/skills/monodesign/reference/clarify.md +0 -174
  628. package/.claude/skills/monodesign/reference/codex.md +0 -107
  629. package/.claude/skills/monodesign/reference/cognitive-load.md +0 -106
  630. package/.claude/skills/monodesign/reference/color-and-contrast.md +0 -105
  631. package/.claude/skills/monodesign/reference/colorize.md +0 -154
  632. package/.claude/skills/monodesign/reference/component-specs.md +0 -260
  633. package/.claude/skills/monodesign/reference/component-states.md +0 -274
  634. package/.claude/skills/monodesign/reference/component-system.md +0 -358
  635. package/.claude/skills/monodesign/reference/copy-formulas.md +0 -160
  636. package/.claude/skills/monodesign/reference/craft.md +0 -196
  637. package/.claude/skills/monodesign/reference/critique.md +0 -213
  638. package/.claude/skills/monodesign/reference/delight.md +0 -302
  639. package/.claude/skills/monodesign/reference/design-principles.md +0 -246
  640. package/.claude/skills/monodesign/reference/distill.md +0 -111
  641. package/.claude/skills/monodesign/reference/document.md +0 -427
  642. package/.claude/skills/monodesign/reference/extract.md +0 -69
  643. package/.claude/skills/monodesign/reference/harden.md +0 -347
  644. package/.claude/skills/monodesign/reference/heuristics-scoring.md +0 -234
  645. package/.claude/skills/monodesign/reference/hooks.md +0 -99
  646. package/.claude/skills/monodesign/reference/image-prompts.md +0 -130
  647. package/.claude/skills/monodesign/reference/interaction-design.md +0 -195
  648. package/.claude/skills/monodesign/reference/layout.md +0 -141
  649. package/.claude/skills/monodesign/reference/live.md +0 -622
  650. package/.claude/skills/monodesign/reference/motion-design.md +0 -109
  651. package/.claude/skills/monodesign/reference/onboard.md +0 -234
  652. package/.claude/skills/monodesign/reference/optimize.md +0 -258
  653. package/.claude/skills/monodesign/reference/overdrive.md +0 -130
  654. package/.claude/skills/monodesign/reference/personas.md +0 -179
  655. package/.claude/skills/monodesign/reference/polish.md +0 -233
  656. package/.claude/skills/monodesign/reference/pre-delivery-checklist.md +0 -108
  657. package/.claude/skills/monodesign/reference/product.md +0 -62
  658. package/.claude/skills/monodesign/reference/quieter.md +0 -99
  659. package/.claude/skills/monodesign/reference/responsive-design.md +0 -114
  660. package/.claude/skills/monodesign/reference/shape.md +0 -151
  661. package/.claude/skills/monodesign/reference/spatial-design.md +0 -100
  662. package/.claude/skills/monodesign/reference/teach.md +0 -156
  663. package/.claude/skills/monodesign/reference/token-architecture.md +0 -222
  664. package/.claude/skills/monodesign/reference/typeset.md +0 -124
  665. package/.claude/skills/monodesign/reference/typography.md +0 -159
  666. package/.claude/skills/monodesign/reference/ux-research.md +0 -143
  667. package/.claude/skills/monodesign/reference/ux-rules.md +0 -211
  668. package/.claude/skills/monodesign/reference/ux-writing.md +0 -107
  669. package/.claude/skills/monodesign/shape.md +0 -71
  670. package/.claude/skills/monodesign/teach.md +0 -69
  671. package/.claude/skills/monodesign/typeset.md +0 -59
  672. package/.claude/skills/monolean/SKILL.md +0 -118
  673. package/.claude/skills/monolean-audit/SKILL.md +0 -41
  674. package/.claude/skills/monolean-debt/SKILL.md +0 -46
  675. package/.claude/skills/monolean-help/SKILL.md +0 -60
  676. package/.claude/skills/monolean-review/SKILL.md +0 -57
  677. package/.claude/skills/monomind/.monomind/registry.json +0 -6
  678. package/.claude/skills/monomind/browse-agentcore.md +0 -115
  679. package/.claude/skills/monomind/browse-electron.md +0 -188
  680. package/.claude/skills/monomind/browse-qa.md +0 -228
  681. package/.claude/skills/monomind/browse-references/authentication.md +0 -161
  682. package/.claude/skills/monomind/browse-references/trust-boundaries.md +0 -40
  683. package/.claude/skills/monomind/browse-references/video-recording.md +0 -83
  684. package/.claude/skills/monomind/browse-slack.md +0 -188
  685. package/.claude/skills/monomind/browse-vercel.md +0 -239
  686. package/.claude/skills/monomind/browse.md +0 -724
  687. package/.claude/skills/monomotion/SKILL.md +0 -145
  688. package/.claude/skills/monomotion/rules/api-control.md +0 -139
  689. package/.claude/skills/monomotion/rules/effects.md +0 -109
  690. package/.claude/skills/monomotion/rules/integration.md +0 -140
  691. package/.claude/skills/monomotion/rules/scroll.md +0 -131
  692. package/.claude/skills/monomotion/rules/sequencing.md +0 -105
  693. package/.claude/skills/monomotion/rules/svg.md +0 -101
  694. package/.claude/skills/monomotion/rules/text.md +0 -119
  695. package/.claude/skills/pair-programming/SKILL.md +0 -1202
  696. package/.claude/skills/performance-analysis/SKILL.md +0 -560
  697. package/.claude/skills/skill-builder/SKILL.md +0 -910
  698. package/.claude/skills/sparc-methodology/SKILL.md +0 -950
  699. package/.claude/skills/specialagent/SKILL.md +0 -208
  700. package/.claude/skills/stop-slop/SKILL.md +0 -67
  701. package/.claude/skills/stop-slop/references/examples.md +0 -61
  702. package/.claude/skills/stop-slop/references/phrases.md +0 -130
  703. package/.claude/skills/stop-slop/references/structures.md +0 -136
  704. package/.claude/skills/swarm-advanced/SKILL.md +0 -937
  705. package/.claude/skills/swarm-orchestration/SKILL.md +0 -179
  706. package/.claude/skills/verification-quality/SKILL.md +0 -674
  707. package/.claude/workflows/feature-dev.yaml +0 -18
  708. package/.claude/workflows/security-audit.yaml +0 -10
  709. package/packages/@monomind/cli/.claude/agents/generated/case-analyst.md +0 -50
  710. package/packages/@monomind/cli/.claude/agents/generated/channel-intelligence-director.md +0 -87
  711. package/packages/@monomind/cli/.claude/agents/generated/chief-growth-officer.md +0 -88
  712. package/packages/@monomind/cli/.claude/agents/generated/churn-analyst.md +0 -53
  713. package/packages/@monomind/cli/.claude/agents/generated/code-reviewer.md +0 -55
  714. package/packages/@monomind/cli/.claude/agents/generated/code-validator.md +0 -57
  715. package/packages/@monomind/cli/.claude/agents/generated/complexity-scanner.md +0 -56
  716. package/packages/@monomind/cli/.claude/agents/generated/content-seo-strategist.md +0 -90
  717. package/packages/@monomind/cli/.claude/agents/generated/copy-editor.md +0 -45
  718. package/packages/@monomind/cli/.claude/agents/generated/court-reporter.md +0 -50
  719. package/packages/@monomind/cli/.claude/agents/generated/defender.md +0 -51
  720. package/packages/@monomind/cli/.claude/agents/generated/devbot-orchestrator.md +0 -58
  721. package/packages/@monomind/cli/.claude/agents/generated/devbot-planner.md +0 -63
  722. package/packages/@monomind/cli/.claude/agents/generated/developer-community-strategist.md +0 -91
  723. package/packages/@monomind/cli/.claude/agents/generated/editor-in-chief.md +0 -45
  724. package/packages/@monomind/cli/.claude/agents/generated/fact-checker.md +0 -45
  725. package/packages/@monomind/cli/.claude/agents/generated/impact-assessor.md +0 -54
  726. package/packages/@monomind/cli/.claude/agents/generated/judge.md +0 -51
  727. package/packages/@monomind/cli/.claude/agents/generated/outreach-partnership-strategist.md +0 -90
  728. package/packages/@monomind/cli/.claude/agents/generated/prosecutor.md +0 -51
  729. package/packages/@monomind/cli/.claude/agents/generated/reporter.md +0 -45
  730. package/packages/@monomind/cli/.claude/agents/generated/social-media-strategist.md +0 -91
  731. package/packages/@monomind/cli/.claude/agents/generated/video-visual-strategist.md +0 -90
  732. package/packages/@monomind/cli/.claude/agents/reengineer-squad/boss.md +0 -113
  733. package/packages/@monomind/cli/.claude/agents/reengineer-squad/critic-architect.md +0 -132
  734. package/packages/@monomind/cli/.claude/agents/reengineer-squad/git-manager.md +0 -145
  735. package/packages/@monomind/cli/.claude/agents/reengineer-squad/idea-generator.md +0 -95
  736. package/packages/@monomind/cli/.claude/agents/reengineer-squad/implementer.md +0 -112
  737. package/packages/@monomind/cli/.claude/agents/reengineer-squad/integration-planner.md +0 -112
  738. package/packages/@monomind/cli/.claude/agents/reengineer-squad/source-analyst.md +0 -103
  739. package/packages/@monomind/cli/.claude/agents/reengineer-squad/target-analyst.md +0 -118
  740. package/packages/@monomind/cli/.claude/agents/reengineer-squad/tester.md +0 -105
  741. package/packages/@monomind/cli/.claude/agents/sparc/architecture.md +0 -453
  742. package/packages/@monomind/cli/.claude/agents/sparc/pseudocode.md +0 -299
  743. package/packages/@monomind/cli/.claude/agents/sparc/refinement.md +0 -504
  744. package/packages/@monomind/cli/.claude/agents/sparc/specification.md +0 -258
  745. package/packages/@monomind/cli/.claude/agents/templates/implementer-sparc-coder.md +0 -231
  746. package/packages/@monomind/cli/.claude/commands/sparc/analyzer.md +0 -35
  747. package/packages/@monomind/cli/.claude/commands/sparc/architect.md +0 -36
  748. package/packages/@monomind/cli/.claude/commands/sparc/ask.md +0 -56
  749. package/packages/@monomind/cli/.claude/commands/sparc/batch-executor.md +0 -37
  750. package/packages/@monomind/cli/.claude/commands/sparc/code.md +0 -48
  751. package/packages/@monomind/cli/.claude/commands/sparc/coder.md +0 -37
  752. package/packages/@monomind/cli/.claude/commands/sparc/debug.md +0 -42
  753. package/packages/@monomind/cli/.claude/commands/sparc/debugger.md +0 -37
  754. package/packages/@monomind/cli/.claude/commands/sparc/designer.md +0 -36
  755. package/packages/@monomind/cli/.claude/commands/sparc/devops.md +0 -68
  756. package/packages/@monomind/cli/.claude/commands/sparc/docs-writer.md +0 -39
  757. package/packages/@monomind/cli/.claude/commands/sparc/documenter.md +0 -37
  758. package/packages/@monomind/cli/.claude/commands/sparc/innovator.md +0 -37
  759. package/packages/@monomind/cli/.claude/commands/sparc/integration.md +0 -42
  760. package/packages/@monomind/cli/.claude/commands/sparc/mcp.md +0 -76
  761. package/packages/@monomind/cli/.claude/commands/sparc/memory-manager.md +0 -57
  762. package/packages/@monomind/cli/.claude/commands/sparc/optimizer.md +0 -37
  763. package/packages/@monomind/cli/.claude/commands/sparc/orchestrator.md +0 -70
  764. package/packages/@monomind/cli/.claude/commands/sparc/post-deployment-monitoring-mode.md +0 -42
  765. package/packages/@monomind/cli/.claude/commands/sparc/refinement-optimization-mode.md +0 -42
  766. package/packages/@monomind/cli/.claude/commands/sparc/researcher.md +0 -37
  767. package/packages/@monomind/cli/.claude/commands/sparc/reviewer.md +0 -37
  768. package/packages/@monomind/cli/.claude/commands/sparc/security-review.md +0 -39
  769. package/packages/@monomind/cli/.claude/commands/sparc/sparc-modes.md +0 -120
  770. package/packages/@monomind/cli/.claude/commands/sparc/sparc.md +0 -71
  771. package/packages/@monomind/cli/.claude/commands/sparc/spec-pseudocode.md +0 -39
  772. package/packages/@monomind/cli/.claude/commands/sparc/supabase-admin.md +0 -301
  773. package/packages/@monomind/cli/.claude/commands/sparc/swarm-coordinator.md +0 -50
  774. package/packages/@monomind/cli/.claude/commands/sparc/tdd.md +0 -37
  775. package/packages/@monomind/cli/.claude/commands/sparc/tester.md +0 -37
  776. package/packages/@monomind/cli/.claude/commands/sparc/tutorial.md +0 -38
  777. package/packages/@monomind/cli/.claude/commands/sparc/workflow-manager.md +0 -37
  778. package/packages/@monomind/cli/.claude/commands/sparc.md +0 -112
  779. package/packages/@monomind/cli/.claude/skills/sparc-methodology/SKILL.md +0 -950
  780. package/packages/@monomind/cli/dist/src/capabilities/enrichment.d.ts +0 -44
  781. package/packages/@monomind/cli/dist/src/capabilities/enrichment.js +0 -141
  782. package/packages/@monomind/cli/dist/src/commands/analyze-boundaries.d.ts +0 -14
  783. package/packages/@monomind/cli/dist/src/commands/analyze-boundaries.js +0 -295
  784. package/packages/@monomind/cli/dist/src/commands/analyze-graph.d.ts +0 -14
  785. package/packages/@monomind/cli/dist/src/commands/analyze-graph.js +0 -304
  786. package/packages/@monomind/cli/dist/src/commands/claims.d.ts +0 -10
  787. package/packages/@monomind/cli/dist/src/commands/claims.js +0 -650
  788. package/packages/@monomind/cli/dist/src/commands/daemon.d.ts +0 -8
  789. package/packages/@monomind/cli/dist/src/commands/daemon.js +0 -681
  790. package/packages/@monomind/cli/dist/src/commands/enrich.d.ts +0 -10
  791. package/packages/@monomind/cli/dist/src/commands/enrich.js +0 -58
  792. package/packages/@monomind/cli/dist/src/commands/issues.d.ts +0 -21
  793. package/packages/@monomind/cli/dist/src/commands/issues.js +0 -575
  794. package/packages/@monomind/cli/dist/src/commands/workflow.d.ts +0 -8
  795. package/packages/@monomind/cli/dist/src/commands/workflow.js +0 -575
  796. package/packages/@monomind/cli/dist/src/mcp-tools/workflow-tools.d.ts +0 -8
  797. package/packages/@monomind/cli/dist/src/mcp-tools/workflow-tools.js +0 -717
  798. package/packages/@monomind/cli/dist/src/services/claim-service.d.ts +0 -198
  799. package/packages/@monomind/cli/dist/src/services/claim-service.js +0 -890
  800. package/packages/@monomind/cli/dist/src/services/headless-worker-executor.d.ts +0 -311
  801. package/packages/@monomind/cli/dist/src/services/headless-worker-executor.js +0 -1183
  802. package/packages/@monomind/cli/dist/src/services/worker-daemon.d.ts +0 -230
  803. package/packages/@monomind/cli/dist/src/services/worker-daemon.js +0 -1350
  804. package/packages/@monomind/cli/dist/src/ui/.monomind/capture/active-run.json +0 -1
  805. package/packages/@monomind/guidance/README.md +0 -87
  806. package/packages/@monomind/guidance/dist/adversarial.d.ts +0 -284
  807. package/packages/@monomind/guidance/dist/adversarial.js +0 -572
  808. package/packages/@monomind/guidance/dist/analyzer.d.ts +0 -530
  809. package/packages/@monomind/guidance/dist/analyzer.js +0 -2518
  810. package/packages/@monomind/guidance/dist/artifacts.d.ts +0 -283
  811. package/packages/@monomind/guidance/dist/artifacts.js +0 -356
  812. package/packages/@monomind/guidance/dist/authority.d.ts +0 -290
  813. package/packages/@monomind/guidance/dist/authority.js +0 -558
  814. package/packages/@monomind/guidance/dist/capabilities.d.ts +0 -209
  815. package/packages/@monomind/guidance/dist/capabilities.js +0 -485
  816. package/packages/@monomind/guidance/dist/coherence.d.ts +0 -233
  817. package/packages/@monomind/guidance/dist/coherence.js +0 -378
  818. package/packages/@monomind/guidance/dist/compiler.d.ts +0 -87
  819. package/packages/@monomind/guidance/dist/compiler.js +0 -425
  820. package/packages/@monomind/guidance/dist/conformance-kit.d.ts +0 -225
  821. package/packages/@monomind/guidance/dist/conformance-kit.js +0 -629
  822. package/packages/@monomind/guidance/dist/continue-gate.d.ts +0 -214
  823. package/packages/@monomind/guidance/dist/continue-gate.js +0 -353
  824. package/packages/@monomind/guidance/dist/crypto-utils.d.ts +0 -17
  825. package/packages/@monomind/guidance/dist/crypto-utils.js +0 -24
  826. package/packages/@monomind/guidance/dist/evolution.d.ts +0 -282
  827. package/packages/@monomind/guidance/dist/evolution.js +0 -500
  828. package/packages/@monomind/guidance/dist/gates.d.ts +0 -79
  829. package/packages/@monomind/guidance/dist/gates.js +0 -302
  830. package/packages/@monomind/guidance/dist/gateway.d.ts +0 -206
  831. package/packages/@monomind/guidance/dist/gateway.js +0 -452
  832. package/packages/@monomind/guidance/dist/generators.d.ts +0 -153
  833. package/packages/@monomind/guidance/dist/generators.js +0 -682
  834. package/packages/@monomind/guidance/dist/headless.d.ts +0 -177
  835. package/packages/@monomind/guidance/dist/headless.js +0 -342
  836. package/packages/@monomind/guidance/dist/hooks.d.ts +0 -109
  837. package/packages/@monomind/guidance/dist/hooks.js +0 -347
  838. package/packages/@monomind/guidance/dist/index.d.ts +0 -203
  839. package/packages/@monomind/guidance/dist/index.js +0 -320
  840. package/packages/@monomind/guidance/dist/ledger.d.ts +0 -162
  841. package/packages/@monomind/guidance/dist/ledger.js +0 -375
  842. package/packages/@monomind/guidance/dist/manifest-validator.d.ts +0 -289
  843. package/packages/@monomind/guidance/dist/manifest-validator.js +0 -838
  844. package/packages/@monomind/guidance/dist/memory-gate.d.ts +0 -222
  845. package/packages/@monomind/guidance/dist/memory-gate.js +0 -382
  846. package/packages/@monomind/guidance/dist/meta-governance.d.ts +0 -265
  847. package/packages/@monomind/guidance/dist/meta-governance.js +0 -348
  848. package/packages/@monomind/guidance/dist/optimizer.d.ts +0 -104
  849. package/packages/@monomind/guidance/dist/optimizer.js +0 -329
  850. package/packages/@monomind/guidance/dist/persistence.d.ts +0 -189
  851. package/packages/@monomind/guidance/dist/persistence.js +0 -464
  852. package/packages/@monomind/guidance/dist/proof.d.ts +0 -185
  853. package/packages/@monomind/guidance/dist/proof.js +0 -238
  854. package/packages/@monomind/guidance/dist/retriever.d.ts +0 -116
  855. package/packages/@monomind/guidance/dist/retriever.js +0 -394
  856. package/packages/@monomind/guidance/dist/ruvbot-integration.d.ts +0 -370
  857. package/packages/@monomind/guidance/dist/ruvbot-integration.js +0 -738
  858. package/packages/@monomind/guidance/dist/temporal.d.ts +0 -428
  859. package/packages/@monomind/guidance/dist/temporal.js +0 -660
  860. package/packages/@monomind/guidance/dist/trust.d.ts +0 -283
  861. package/packages/@monomind/guidance/dist/trust.js +0 -474
  862. package/packages/@monomind/guidance/dist/truth-anchors.d.ts +0 -276
  863. package/packages/@monomind/guidance/dist/truth-anchors.js +0 -488
  864. package/packages/@monomind/guidance/dist/types.d.ts +0 -378
  865. package/packages/@monomind/guidance/dist/types.js +0 -10
  866. package/packages/@monomind/guidance/dist/uncertainty.d.ts +0 -372
  867. package/packages/@monomind/guidance/dist/uncertainty.js +0 -619
  868. package/packages/@monomind/guidance/dist/wasm-kernel.d.ts +0 -48
  869. package/packages/@monomind/guidance/dist/wasm-kernel.js +0 -158
  870. package/packages/@monomind/guidance/package.json +0 -119
@@ -1,1284 +0,0 @@
1
- ---
2
- name: mastermind-monitor
3
- description: Mastermind monitor — a forever-running task executor that watches Linear, GitHub Issues/PRs, Monotask boards, and filesystem folders for new tasks, claims them, executes them with the right agent, posts progress comments, and advances status at every stage. Supports per-user/per-state filtering, 3-retry failure handling, and a single concurrent task at a time (safe default). Persists state across cycles via ScheduleWakeup.
4
- type: domain-skill
5
- default_mode: confirm
6
- ---
7
-
8
- # Mastermind Monitor
9
-
10
- Invoked via `mastermind:monitor` or `/mastermind:monitor`.
11
-
12
- A monitor is a named, forever-running task executor. It polls one or more task sources on a configurable interval, claims matching tasks, hands them off to a Claude agent for execution, posts back results as comments/status updates, and self-reschedules via `ScheduleWakeup`.
13
-
14
- ---
15
-
16
- ## CLI Flags
17
-
18
- ```
19
- --action start | stop | pause | resume | status | list | add-source | tick
20
- --name monitor name (slug, e.g. "dev-agent")
21
- --source linear | github | monotask | filesystem
22
- --interval poll interval in seconds (default: 120)
23
- --user filter by assignee username/email (can be repeated)
24
- --state filter by task state/status (can be repeated, default: open/todo)
25
- --max-concurrent max tasks in flight (default: 1)
26
- --agent agent type to execute tasks (default: coder)
27
- --project monotask project/board name, or gh repo (org/repo)
28
- --team Linear team ID or slug
29
- --folder filesystem folder path to watch (for source=filesystem)
30
- --label filter by label (can be repeated)
31
- --caller command | master (internal — skip brain load if "command")
32
- ```
33
-
34
- ---
35
-
36
- ## Step 0 — Brain Load (standalone only)
37
-
38
- If `caller` is not "command", load brain context following `_protocol.md` Brain Load Procedure with namespace: `ops`.
39
-
40
- ---
41
-
42
- ## Step 1 — Resolve Monitor Config Directory
43
-
44
- ```bash
45
- MONITOR_DIR=".monomind/monitor"
46
- mkdir -p "$MONITOR_DIR"
47
- ```
48
-
49
- ---
50
-
51
- ## Step 2 — Dispatch by Action
52
-
53
- ### `list` (default when no --action)
54
-
55
- ```bash
56
- echo "MONITORS"
57
- echo "────────────────────────────────────────"
58
- for f in "$MONITOR_DIR"/*.json; do
59
- [ -f "$f" ] || continue
60
- jq -r '
61
- "[\(.name)] status=\(.status // "active") interval=\(.poll_interval)s agent=\(.agent_type)
62
- sources: \([(.sources // [])[].type] | join(", "))
63
- last_tick: \(.last_tick // "never") tasks_done: \(.stats.done // 0) tasks_failed: \(.stats.failed // 0)"
64
- ' "$f"
65
- echo ""
66
- done
67
- ```
68
-
69
- ---
70
-
71
- ### `start`
72
-
73
- Creates a new monitor config and triggers the first tick.
74
-
75
- **Required:** `--name`
76
-
77
- ```bash
78
- cfg="$MONITOR_DIR/${name}.json"
79
- if [ -f "$cfg" ]; then
80
- echo "Monitor '$name' already exists. Use --action resume to restart it."
81
- exit 0
82
- fi
83
-
84
- cat > "$cfg" <<EOF
85
- {
86
- "name": "${name}",
87
- "status": "active",
88
- "poll_interval": ${interval:-120},
89
- "agent_type": "${agent:-coder}",
90
- "max_concurrent": ${max_concurrent:-1},
91
- "sources": [],
92
- "users": [],
93
- "states": [],
94
- "labels": [],
95
- "stats": { "done": 0, "failed": 0, "retried": 0, "total_claimed": 0 },
96
- "created_at": "$(date -u +%Y-%m-%dT%H:%M:%SZ)",
97
- "last_tick": null
98
- }
99
- EOF
100
-
101
- echo "Monitor '$name' created."
102
- echo "Add sources with: /mastermind:monitor --action add-source --name $name --source linear ..."
103
- echo "Then start the tick loop."
104
- ```
105
-
106
- After creating the config, if at least one source was provided (via `--source` + related flags), also run the `add-source` logic for each provided source before the loop starts.
107
-
108
- Then **immediately call `ScheduleWakeup`** with:
109
- - `delaySeconds`: 10 (first tick almost immediately)
110
- - `prompt`: `/mastermind:monitor --action tick --name <name>`
111
- - `reason`: `First tick for monitor: <name>`
112
-
113
- ---
114
-
115
- ### `stop`
116
-
117
- ```bash
118
- cfg="$MONITOR_DIR/${name}.json"
119
- [ ! -f "$cfg" ] && echo "Monitor '$name' not found." && exit 1
120
- tmp="${cfg}.tmp"
121
- jq '.status = "stopped"' "$cfg" > "$tmp" && mv "$tmp" "$cfg"
122
- echo "Monitor '$name' stopped. It will not reschedule after the current tick finishes."
123
- ```
124
-
125
- ---
126
-
127
- ### `pause` / `resume`
128
-
129
- ```bash
130
- cfg="$MONITOR_DIR/${name}.json"
131
- [ ! -f "$cfg" ] && echo "Monitor '$name' not found." && exit 1
132
- tmp="${cfg}.tmp"
133
- new_status=$([ "$action" = "pause" ] && echo "paused" || echo "active")
134
- jq --arg s "$new_status" '.status = $s' "$cfg" > "$tmp" && mv "$tmp" "$cfg"
135
- echo "Monitor '$name' is now: $new_status"
136
- [ "$action" = "resume" ] && echo "Scheduling next tick..." # then call ScheduleWakeup
137
- ```
138
-
139
- If `action=resume`, call `ScheduleWakeup`:
140
- - `delaySeconds`: 10
141
- - `prompt`: `/mastermind:monitor --action tick --name <name>`
142
- - `reason`: `Resuming monitor: <name>`
143
-
144
- ---
145
-
146
- ### `status`
147
-
148
- ```bash
149
- cfg="$MONITOR_DIR/${name}.json"
150
- state_file="$MONITOR_DIR/${name}-state.json"
151
- [ ! -f "$cfg" ] && echo "Monitor '$name' not found." && exit 1
152
-
153
- jq -r '
154
- "MONITOR: \(.name)",
155
- "Status: \(.status)",
156
- "Agent: \(.agent_type) | Interval: \(.poll_interval)s | Max concurrent: \(.max_concurrent)",
157
- "Last tick: \(.last_tick // "never")",
158
- "",
159
- "Stats:",
160
- " Claimed: \(.stats.total_claimed) Done: \(.stats.done) Failed: \(.stats.failed) Retried: \(.stats.retried)",
161
- "",
162
- "Sources (\(.sources | length)):"
163
- ' "$cfg"
164
-
165
- jq -r '(.sources // [])[] | " [\(.type)] \(.filter | to_entries | map("\(.key)=\(.value)") | join(" "))"' "$cfg"
166
-
167
- if [ -f "$state_file" ]; then
168
- in_flight=$(jq '.in_flight // [] | length' "$state_file" 2>/dev/null || echo 0)
169
- echo ""
170
- echo "In-flight tasks: $in_flight"
171
- jq -r '.in_flight[]? |
172
- " [\(.source_type):\(.external_id)] claimed_at=\(.claimed_at) retry=\(.retry_count) last_failure=\(.last_failure // "n/a")"' \
173
- "$state_file" 2>/dev/null
174
- fi
175
- ```
176
-
177
- ---
178
-
179
- ### `add-source`
180
-
181
- Appends a new source adapter config to an existing monitor.
182
-
183
- **Required:** `--name`, `--source`
184
-
185
- ```bash
186
- cfg="$MONITOR_DIR/${name}.json"
187
- [ ! -f "$cfg" ] && echo "Monitor '$name' not found. Run --action start first." && exit 1
188
- ```
189
-
190
- Build the source object based on `--source`:
191
-
192
- **linear:**
193
- ```json
194
- {
195
- "type": "linear",
196
- "filter": {
197
- "team": "<--team value>",
198
- "assignees": ["<--user values>"],
199
- "states": ["<--state values, default: Todo>"],
200
- "labels": ["<--label values>"],
201
- "project": "<--project value if given>"
202
- }
203
- }
204
- ```
205
-
206
- **github:**
207
- ```json
208
- {
209
- "type": "github",
210
- "filter": {
211
- "repo": "<--project value, e.g. org/repo>",
212
- "assignee": "<--user value>",
213
- "labels": ["<--label values>"],
214
- "state": "<--state value, default: open>",
215
- "type": "issue"
216
- }
217
- }
218
- ```
219
-
220
- **monotask:**
221
- ```json
222
- {
223
- "type": "monotask",
224
- "filter": {
225
- "board": "<--project value>",
226
- "column": "<--state value, default: Todo>",
227
- "label": "<--label value, default: role:ai-agent>"
228
- }
229
- }
230
- ```
231
-
232
- **filesystem:**
233
- ```json
234
- {
235
- "type": "filesystem",
236
- "filter": {
237
- "folder": "<--folder value>",
238
- "glob": "*.task",
239
- "user": "<--user value>"
240
- }
241
- }
242
- ```
243
-
244
- **Repeated-flag parsing rule:** When `--user`, `--state`, or `--label` is specified multiple times, collect the values into space-separated shell variables `$users`, `$states`, `$labels` (e.g. `users="alice bob"` from `--user alice --user bob`). Single-occurrence flags (`--team`, `--project`, `--folder`) map to `$team`, `$project`, `$folder` directly.
245
-
246
- > **Linear multi-assignee:** The Linear MCP tool (`mcp__claude_ai_Linear__list_issues`) does not support multiple assignees in a single query. When `$users` contains more than one value, loop over each user and merge results client-side before dedup filtering. For simplicity in v1, only `filter.assignees[0]` is sent per query cycle — document this limitation to users.
247
-
248
- > **Before calling any `mcp__claude_ai_Linear__*` tool**, confirm availability with `ToolSearch` (`select:mcp__claude_ai_Linear__list_issues,mcp__claude_ai_Linear__save_issue,mcp__claude_ai_Linear__save_comment`) and load the schema. If the Linear MCP server is not registered, skip the Linear source for this tick with a warning.
249
-
250
- Build and append the source object using `jq -n` — construct the JSON from flags, then append:
251
-
252
- ```bash
253
- # Build src_json based on --source type:
254
- # Repeated flags collected as space-separated: $users, $states, $labels
255
- # Derive singular $user / $state / $label from first value (adapters that take one value)
256
- user="${users%% *}"
257
- state="${states%% *}"
258
- label="${labels%% *}"
259
-
260
- case "$source" in
261
- linear)
262
- assignees_json=$([ -n "$users" ] && printf '%s\n' $users | jq -R . | jq -sc '.' || echo '[]')
263
- states_json=$([ -n "$states" ] && printf '%s\n' $states | jq -R . | jq -sc '.' || echo '["Todo"]')
264
- labels_json=$([ -n "$labels" ] && printf '%s\n' $labels | jq -R . | jq -sc '.' || echo '[]')
265
- src_json=$(jq -cn \
266
- --arg team "${team:-}" \
267
- --arg project "${project:-}" \
268
- --argjson assignees "$assignees_json" \
269
- --argjson states "$states_json" \
270
- --argjson labels "$labels_json" \
271
- '{"type":"linear","filter":{"team":$team,"assignees":$assignees,"states":$states,"labels":$labels,"project":$project}}')
272
- ;;
273
- github)
274
- labels_json=$([ -n "$labels" ] && printf '%s\n' $labels | jq -R . | jq -sc '.' || echo '[]')
275
- src_json=$(jq -cn \
276
- --arg repo "${project:-}" \
277
- --arg assignee "${user:-}" \
278
- --argjson labels "$labels_json" \
279
- --arg state "${state:-open}" \
280
- '{"type":"github","filter":{"repo":$repo,"assignee":$assignee,"labels":$labels,"state":$state,"type":"issue"}}')
281
- ;;
282
- monotask)
283
- src_json=$(jq -cn \
284
- --arg board "${project:-}" \
285
- --arg column "${state:-Todo}" \
286
- --arg label "${label:-role:ai-agent}" \
287
- '{"type":"monotask","filter":{"board":$board,"column":$column,"label":$label}}')
288
- ;;
289
- filesystem)
290
- src_json=$(jq -cn \
291
- --arg folder "${folder:-./tasks}" \
292
- --arg user "${user:-}" \
293
- '{"type":"filesystem","filter":{"folder":$folder,"glob":"*.task","user":$user}}')
294
- ;;
295
- *)
296
- echo "Unknown source type: $source. Supported: linear | github | monotask | filesystem"
297
- exit 1
298
- ;;
299
- esac
300
-
301
- tmp="${cfg}.tmp"
302
- jq --argjson src "$src_json" '.sources += [$src]' "$cfg" > "$tmp" && mv "$tmp" "$cfg"
303
- echo "Source added to monitor '$name'."
304
- ```
305
-
306
- ---
307
-
308
- ### `tick` — The Main Execution Loop
309
-
310
- This is the heart of the monitor. Called by `ScheduleWakeup` every `poll_interval` seconds.
311
-
312
- > **Execution model:** bash code blocks in this section are executable fragments. Prose instructions between blocks complete the control flow (ScheduleWakeup calls, conditional branches, `fi` closures). Follow both the code and the prose — neither is complete without the other.
313
-
314
- **Required:** `--name`
315
-
316
- ```bash
317
- cfg="$MONITOR_DIR/${name}.json"
318
- state_file="$MONITOR_DIR/${name}-state.json"
319
-
320
- # Load config
321
- [ ! -f "$cfg" ] && echo "Monitor '$name' not found — loop terminated." && exit 0
322
-
323
- monitor_status=$(jq -r '.status // "active"' "$cfg")
324
- [ "$monitor_status" = "stopped" ] && echo "Monitor '$name' stopped — loop terminated." && exit 0
325
- [ "$monitor_status" = "paused" ] && echo "Monitor '$name' paused — will not reschedule." && exit 0
326
-
327
- # Init state file if missing
328
- [ ! -f "$state_file" ] && echo '{"processed_ids":{},"in_flight":[]}' > "$state_file"
329
-
330
- max_concurrent=$(jq -r '.max_concurrent // 1' "$cfg")
331
- agent_type=$(jq -r '.agent_type // "coder"' "$cfg")
332
- poll_interval=$(jq -r '.poll_interval // 120' "$cfg")
333
- ```
334
-
335
- **In-flight guard** — if at capacity, reschedule and stop this tick:
336
- ```bash
337
- in_flight_count=$(jq '.in_flight // [] | length' "$state_file")
338
- in_flight_count=${in_flight_count:-0}
339
- if [ "$in_flight_count" -ge "$max_concurrent" ]; then
340
- echo "[$name] In-flight ($in_flight_count) >= max_concurrent ($max_concurrent) — skipping claim this tick."
341
- # Reschedule next tick — do this BEFORE exit so the loop survives
342
- # ScheduleWakeup: delaySeconds=poll_interval, prompt="/mastermind:monitor --action tick --name <name>",
343
- # reason="Monitor <name> in-flight throttle — will retry next tick"
344
- exit 0
345
- fi
346
- ```
347
-
348
- > **Note:** The ScheduleWakeup call above is pseudocode inside the comment. Claude must call the actual `ScheduleWakeup` tool at this point, then `exit 0`. The `exit 0` here is a bash signal that the tick logic description treats as "stop further processing in this tick"; it does NOT skip the ScheduleWakeup — that fires first.
349
-
350
- **Check for retry-pending tasks (before polling sources):**
351
-
352
- If a previous task failed but has retry_count < 3, it remains in `in_flight` with `status = "retry_pending"`. Re-execute it instead of polling for a new task:
353
-
354
- ```bash
355
- retry_task=$(jq -c '
356
- (.in_flight // [])[] as $t |
357
- (.processed_ids[($t.source_type + ":" + $t.external_id)].status // "") |
358
- if . == "retry_pending" then $t else empty end' "$state_file" | head -1)
359
- ```
360
-
361
- If `retry_task` is non-empty, bind it as the active task and jump to Step 3:
362
-
363
- ```bash
364
- if [ -n "$retry_task" ]; then
365
- task_json="$retry_task"
366
- task_source_type=$(echo "$task_json" | jq -r '.source_type')
367
- task_external_id=$(echo "$task_json" | jq -r '.external_id')
368
- task_title=$(echo "$task_json" | jq -r '.title')
369
- echo "[$name] Retrying task: $task_title (source=$task_source_type id=$task_external_id)"
370
- # Proceed directly to Step 3 — skip source polling and the "After claim" section
371
- fi
372
- ```
373
-
374
- When `retry_task` is non-empty, the source loop below is skipped entirely (guarded by `if [ -z "$retry_task" ]`). `task_claimed` remains `false`, so the "After claim" registration block is also bypassed — the task is already registered in `in_flight` from its original claim.
375
-
376
- **Update last_tick:**
377
- ```bash
378
- tmp="${cfg}.tmp"
379
- jq --arg ts "$(date -u +%Y-%m-%dT%H:%M:%SZ)" '.last_tick = $ts' "$cfg" > "$tmp" && mv "$tmp" "$cfg"
380
- ```
381
-
382
- **Emit dashboard event:**
383
- ```bash
384
- REPO_ROOT=$(git rev-parse --show-toplevel 2>/dev/null || pwd)
385
- CTRL_URL=$(jq -r '.url // "http://localhost:4242"' "$REPO_ROOT/.monomind/control.json" 2>/dev/null || echo "http://localhost:4242")
386
- SESSION_ID="monitor-${name}-$(date -u +%Y%m%dT%H%M%S)"
387
- curl -s -o /dev/null -X POST "${CTRL_URL}/api/mastermind/event" \
388
- -H "Content-Type: application/json" \
389
- -d "$(jq -cn --arg sid "$SESSION_ID" --arg name "$name" \
390
- '{type:"monitor:tick",session:$sid,monitor:$name,ts:(now*1000|floor)}')" || true
391
- ```
392
-
393
- **Poll each source (in order, stop after first claimable task found):**
394
-
395
- Source polling is skipped when a retry task is available (guarded below). The loop, the `case` dispatch, and each adapter are all inside the `if [ -z "$retry_task" ]` block:
396
-
397
- ```bash
398
- task_claimed=false
399
- if [ -z "$retry_task" ]; then
400
- task_json=""
401
- while IFS= read -r src; do
402
- src_type=$(echo "$src" | jq -r '.type')
403
- case "$src_type" in
404
- linear)
405
- # === Linear adapter (below) ===
406
- ```
407
-
408
- > The `case` block continues through all adapters. After the Filesystem adapter closes its inner loop and `fi`, add `esac` → `done < <(jq -c '(.sources // [])[]' "$cfg")` → `fi` (closing the `if [ -z "$retry_task" ]` guard). After the outer `fi`, check `$task_claimed` to decide whether to run the "After claim" section.
409
-
410
- ---
411
-
412
- #### Source Adapter: Linear
413
-
414
- > **Before calling any `mcp__claude_ai_Linear__*` tool**, confirm availability with `ToolSearch` (`select:mcp__claude_ai_Linear__list_issues,mcp__claude_ai_Linear__save_issue,mcp__claude_ai_Linear__save_comment`). If the Linear MCP server is unavailable, skip this source for the current tick with a warning.
415
-
416
- ```bash
417
- # Extract filter fields from $src
418
- _lin_team=$(echo "$src" | jq -r '.filter.team // ""')
419
- _lin_assignee=$(echo "$src" | jq -r '.filter.assignees[0] // ""')
420
- _lin_states=$(echo "$src" | jq -r '.filter.states // ["Todo"] | join(",")')
421
- _lin_labels=$(echo "$src" | jq -c '.filter.labels // []')
422
- ```
423
-
424
- Use `mcp__claude_ai_Linear__list_issues` with:
425
- - `teamId`: `$_lin_team`
426
- - `assigneeId` / `assigneeEmail`: `$_lin_assignee` (if non-empty)
427
- - State filter: resolved from `$_lin_states`
428
- - Label filter applied client-side after fetch
429
-
430
- The MCP call returns a JSON array. Bind it to a shell variable immediately after the call:
431
-
432
- ```bash
433
- # issues = JSON array returned by mcp__claude_ai_Linear__list_issues
434
- # Assign the raw JSON response to $issues before the loop below:
435
- issues='[]' # Claude MUST overwrite this with the real array returned by mcp__claude_ai_Linear__list_issues before the loop runs
436
- ```
437
-
438
- Then iterate with an explicit bash loop (same pattern as Monotask/Filesystem adapters):
439
-
440
- ```bash
441
- while IFS= read -r issue_json; do
442
- [ -z "$issue_json" ] && continue
443
-
444
- issue_id=$(echo "$issue_json" | jq -r '.id')
445
- issue_title=$(echo "$issue_json" | jq -r '.title')
446
- issue_desc=$(echo "$issue_json" | jq -r '.description // ""')
447
- issue_url=$(echo "$issue_json" | jq -r '.url // ""')
448
- issue_labels=$(echo "$issue_json" | jq -c '[(.labels // [])[] | .name]')
449
- ```
450
-
451
- 1. Check dedup — skip if already processed:
452
- ```bash
453
- already_processed=$(jq -r --arg id "linear:${issue_id}" '.processed_ids[$id] // empty' "$state_file")
454
- [ -n "$already_processed" ] && continue
455
- ```
456
-
457
- 2. Client-side label filter — skip if issue doesn't match configured labels:
458
- ```bash
459
- if [ "$(echo "$_lin_labels" | jq 'length')" -gt 0 ]; then
460
- has_label=$(jq -n --argjson want "$_lin_labels" --argjson got "$issue_labels" \
461
- '($want - ($want - $got)) | length > 0')
462
- [ "$has_label" != "true" ] && continue
463
- fi
464
- ```
465
-
466
- 3. Build task object:
467
- ```bash
468
- task_json=$(jq -cn \
469
- --arg eid "$issue_id" \
470
- --arg title "$issue_title" \
471
- --arg desc "$issue_desc" \
472
- --arg url "$issue_url" \
473
- --argjson labels "$issue_labels" \
474
- '{
475
- "source_type": "linear",
476
- "external_id": $eid,
477
- "title": $title,
478
- "description": $desc,
479
- "url": $url,
480
- "labels": $labels
481
- }')
482
- ```
483
-
484
- **Claim** (MCP — not bash): Call `mcp__claude_ai_Linear__save_issue` with:
485
- - `issueId`: `$issue_id`
486
- - Set state to "In Progress"
487
- - Add label: `monitor:claimed`
488
-
489
- **Progress comment** (MCP): Call `mcp__claude_ai_Linear__save_comment` with:
490
- - `issueId`: `$issue_id`
491
- - `body`: `"[Monitor: ${name}] Claimed by AI agent. Starting execution with agent type \`${agent_type}\`. Started: $(date -u +%Y-%m-%dT%H:%M:%SZ)"`
492
-
493
- ```bash
494
- task_claimed=true
495
- break 2 # break 2: exit per-issue loop AND outer source loop
496
- done < <(echo "$issues" | jq -c '.[]') # close per-issue loop
497
- ;; # end linear case branch
498
- ```
499
-
500
- ---
501
-
502
- #### Source Adapter: GitHub Issues/PRs
503
-
504
- ```bash
505
- # Extract filter fields from $src
506
- _gh_repo=$(echo "$src" | jq -r '.filter.repo // ""')
507
- _gh_assignee=$(echo "$src" | jq -r '.filter.assignee // ""')
508
- _gh_state=$(echo "$src" | jq -r '.filter.state // "open"')
509
-
510
- # Build --label flags as an array (gh issue list takes one --label per flag, not comma-separated)
511
- gh_label_args=()
512
- while IFS= read -r _lbl; do
513
- [ -n "$_lbl" ] && gh_label_args+=(--label "$_lbl")
514
- done < <(echo "$src" | jq -r '(.filter.labels // [])[]')
515
-
516
- # Poll via gh CLI — capture into $issues
517
- issues=$(gh issue list \
518
- --repo "$_gh_repo" \
519
- ${_gh_assignee:+--assignee "$_gh_assignee"} \
520
- "${gh_label_args[@]}" \
521
- --state "$_gh_state" \
522
- --json number,title,body,url,labels,assignees \
523
- --limit 20)
524
- ```
525
-
526
- Iterate with an explicit bash loop:
527
-
528
- ```bash
529
- while IFS= read -r issue_json; do
530
- [ -z "$issue_json" ] && continue
531
-
532
- number=$(echo "$issue_json" | jq -r '.number')
533
- ```
534
-
535
- 1. Check dedup — TWO checks required:
536
- ```bash
537
- # Local dedup: skip if already in processed_ids
538
- already_processed=$(jq -r --arg id "github:${number}" '.processed_ids[$id] // empty' "$state_file")
539
- [ -n "$already_processed" ] && continue
540
-
541
- # Remote dedup: skip if issue already has label monitor:claimed (externally labeled or other instance)
542
- already_claimed=$(echo "$issue_json" | jq -r '[(.labels // [])[] | .name] | index("monitor:claimed")')
543
- [ "$already_claimed" != "null" ] && continue
544
- ```
545
-
546
- 2. Build task object:
547
- ```bash
548
- task_json=$(jq -cn \
549
- --argjson issue "$issue_json" \
550
- --arg repo "$_gh_repo" \
551
- '{
552
- "source_type": "github",
553
- "external_id": ($issue.number | tostring),
554
- "title": $issue.title,
555
- "description": ($issue.body // ""),
556
- "url": $issue.url,
557
- "repo": $repo,
558
- "labels": [($issue.labels // [])[] | .name]
559
- }')
560
- ```
561
-
562
- **Claim:** Run the GitHub Label Bootstrap (see end of file) using `$_gh_repo` before the first label operation — it is idempotent and only creates labels if missing. Then add labels:
563
- ```bash
564
- # Run GitHub Label Bootstrap here (see "GitHub Label Bootstrap" section) — idempotent, guarded
565
- gh issue edit "$number" --repo "$_gh_repo" --add-label "monitor:claimed,monitor:in-progress"
566
- ```
567
-
568
- **Progress comment:**
569
- ```bash
570
- gh issue comment "$number" --repo "$_gh_repo" --body \
571
- "[Monitor: ${name}] Claimed by AI agent. Executing with \`${agent_type}\`. Started: $(date -u +%Y-%m-%dT%H:%M:%SZ)"
572
- ```
573
-
574
- ```bash
575
- task_claimed=true
576
- break 2 # break 2: exit per-issue loop AND outer source loop
577
- done < <(echo "$issues" | jq -c '.[]') # close per-issue loop
578
- ;; # end github case branch
579
- ```
580
-
581
- **Stage labels** (applied progressively throughout execution):
582
- - `monitor:claimed` → task picked up
583
- - `monitor:in-progress` → agent is executing
584
- - `monitor:review` → agent completed, awaiting human review (optional)
585
- - `monitor:done` → fully complete
586
- - `monitor:failed` → all retries exhausted
587
-
588
- ---
589
-
590
- #### Source Adapter: Monotask
591
-
592
- ```bash
593
- # Extract filter fields from $src
594
- _mt_board=$(echo "$src" | jq -r '.filter.board // ""')
595
- _mt_col=$(echo "$src" | jq -r '.filter.column // "Todo"')
596
- _mt_label=$(echo "$src" | jq -r '.filter.label // "role:ai-agent"')
597
-
598
- # Resolve board_id from board title
599
- board_id=$(monotask board list --json | jq -r --arg t "$_mt_board" '.[] | select(.title==$t) | .id' | head -1)
600
- if [ -z "$board_id" ]; then
601
- echo "[monotask] Board '$_mt_board' not found — skipping source."
602
- # skip to next source adapter
603
- else
604
-
605
- # Resolve column ids
606
- cols=$(monotask column list "$board_id" --json)
607
- todo_col=$(echo "$cols" | jq -r --arg t "$_mt_col" '.[] | select(.title==$t) | .id' | head -1)
608
- doing_col=$(echo "$cols" | jq -r '.[] | select(.title=="Doing" or .title=="In Progress") | .id' | head -1)
609
- done_col=$(echo "$cols" | jq -r '.[] | select(.title=="Done") | .id' | head -1)
610
-
611
- # Poll: unclaimed cards in todo column with matching label
612
- cards=$(monotask card list "$board_id" --col "$todo_col" --label "$_mt_label" --json \
613
- | jq '[.[] | select((.labels // []) | index("claimed") | not)]')
614
- ```
615
-
616
- Iterate over cards with an explicit bash loop (same pattern as the filesystem adapter):
617
-
618
- ```bash
619
- while IFS= read -r card; do
620
- [ -z "$card" ] && continue
621
-
622
- card_id=$(echo "$card" | jq -r '.id')
623
- card_title=$(echo "$card" | jq -r '.title')
624
- ```
625
-
626
- 1. Check dedup:
627
- ```bash
628
- already_processed=$(jq -r --arg id "monotask:${card_id}" '.processed_ids[$id] // empty' "$state_file")
629
- [ -n "$already_processed" ] && continue
630
- ```
631
-
632
- **Build task object** (includes board/column IDs so Step 4 can re-extract them from `task_json` without relying on polling-scope shell vars):
633
- ```bash
634
- task_json=$(jq -cn \
635
- --arg eid "$card_id" \
636
- --arg title "$card_title" \
637
- --arg board "$board_id" \
638
- --arg doing "$doing_col" \
639
- --arg done "$done_col" \
640
- '{
641
- "source_type": "monotask",
642
- "external_id": $eid,
643
- "title": $title,
644
- "description": "",
645
- "board_id": $board,
646
- "doing_col": $doing,
647
- "done_col": $done
648
- }')
649
- ```
650
-
651
- **Claim:**
652
- ```bash
653
- monotask card move "$board_id" "$card_id" "$doing_col" --json
654
- monotask card label add "$board_id" "$card_id" "claimed" --json
655
- monotask card label add "$board_id" "$card_id" "monitor:in-progress" --json
656
- ```
657
-
658
- **Progress comment:**
659
- ```bash
660
- monotask card comment add "$board_id" "$card_id" \
661
- "[Monitor: ${name}] Claimed by AI agent. Executing with \`${agent_type}\`. Started: $(date -u +%Y-%m-%dT%H:%M:%SZ)"
662
-
663
- task_claimed=true
664
- break 2 # break 2: exit per-card loop AND outer source loop
665
- done < <(echo "$cards" | jq -c '.[]') # close per-card loop
666
- fi # close 'if [ -z "$board_id" ]' else block
667
- ;; # end monotask case branch
668
- ```
669
-
670
- ---
671
-
672
- #### Source Adapter: Filesystem
673
-
674
- ```bash
675
- # Extract filter fields from $src
676
- folder=$(echo "$src" | jq -r '.filter.folder // "./tasks"')
677
-
678
- if [ ! -d "$folder" ]; then
679
- echo "[filesystem] Folder '$folder' not found — skipping source."
680
- # skip to next source adapter
681
- else
682
-
683
- # Poll: find unclaimed .task files
684
- tasks=$(find "$folder" -name "*.task" -not -name "*.claimed" -not -name "*.done" -not -name "*.failed" 2>/dev/null)
685
-
686
- # Iterate — stop after first claimable file
687
- while IFS= read -r task_file; do
688
- [ -z "$task_file" ] && continue
689
- ```
690
-
691
- (All per-file steps are inside this while loop; close with `done <<< "$tasks"` after the claim. Then close the `else` block with `fi`.)
692
-
693
- For each `.task` file (`task_file` = absolute path):
694
- 1. Check dedup:
695
- ```bash
696
- already_processed=$(jq -r --arg id "filesystem:${task_file}" '.processed_ids[$id] // empty' "$state_file")
697
- [ -n "$already_processed" ] && continue
698
- ```
699
- 2. Read task content:
700
- ```bash
701
- task_title=$(head -1 "$task_file")
702
- task_description=$(tail -n +2 "$task_file")
703
- task_base="${task_file%.task}"
704
- task_json=$(jq -cn \
705
- --arg title "$task_title" \
706
- --arg description "$task_description" \
707
- --arg eid "$task_file" \
708
- --arg base_path "$task_base" \
709
- '{
710
- "source_type": "filesystem",
711
- "external_id": $eid,
712
- "title": $title,
713
- "description": $description,
714
- "base_path": $base_path
715
- }')
716
- ```
717
-
718
- **Claim:**
719
- ```bash
720
- mv "${task_file}" "${task_base}.task.claimed"
721
- ```
722
-
723
- **Progress log:**
724
- ```bash
725
- echo "[Monitor: ${name}] $(date -u +%Y-%m-%dT%H:%M:%SZ) — Claimed. Executing with ${agent_type}." \
726
- >> "${task_base}.task.log"
727
- ```
728
-
729
- ```bash
730
- task_claimed=true
731
- break 2 # break 2: exit per-file loop AND outer source loop
732
- done <<< "$tasks" # close per-file while loop (reached only if no file was claimed)
733
- fi # close 'if [ ! -d "$folder" ]' else block
734
- ;; # end filesystem case branch
735
- esac
736
- done < <(jq -c '(.sources // [])[]' "$cfg")
737
- fi # close 'if [ -z "$retry_task" ]' guard
738
- # After: if $task_claimed=true, proceed to "After claim"; otherwise skip to Step 5
739
- ```
740
-
741
- **Stage files:** `.task` → `.task.claimed` → `.task.done` or `.task.failed`
742
-
743
- ---
744
-
745
- #### After a task is claimed (all sources — common code)
746
-
747
- This section runs ONLY when `task_claimed = true` (a task was found and claimed in the source loop above). The retry path sets `task_json=$retry_task` and jumps directly to Step 3, bypassing this section entirely.
748
-
749
- ```bash
750
- if [ "$task_claimed" = "true" ]; then
751
- ```
752
-
753
- Each source adapter MUST have set `task_json` to a complete JSON object before `task_claimed=true`. The full task object includes all fields used by Step 3 and Step 4 for that source type.
754
-
755
- **Extract task metadata (must run first, before all blocks below):**
756
- ```bash
757
- task_source_type=$(echo "$task_json" | jq -r '.source_type')
758
- task_external_id=$(echo "$task_json" | jq -r '.external_id')
759
- task_title=$(echo "$task_json" | jq -r '.title')
760
- ```
761
-
762
- **Register in state as in-flight** (stores full task object for retry replay):
763
- ```bash
764
- tmp="${state_file}.tmp"
765
- jq --argjson task "$task_json" \
766
- --arg ts "$(date -u +%Y-%m-%dT%H:%M:%SZ)" \
767
- '.in_flight += [$task + {"claimed_at": $ts, "retry_count": 0}]' \
768
- "$state_file" > "$tmp" && mv "$tmp" "$state_file"
769
- ```
770
-
771
- **Mark as processed in dedup index:**
772
- ```bash
773
- tmp="${state_file}.tmp"
774
- jq --arg key "${task_source_type}:${task_external_id}" \
775
- --arg ts "$(date -u +%Y-%m-%dT%H:%M:%SZ)" \
776
- '.processed_ids[$key] = {status: "in_flight", claimed_at: $ts, retry_count: 0}' \
777
- "$state_file" > "$tmp" && mv "$tmp" "$state_file"
778
- ```
779
-
780
- **Increment stats:**
781
- ```bash
782
- tmp="${cfg}.tmp"
783
- jq '.stats.total_claimed += 1' "$cfg" > "$tmp" && mv "$tmp" "$cfg"
784
- fi # end 'if [ "$task_claimed" = "true" ]'
785
- ```
786
-
787
- ---
788
-
789
- ## Step 3 — Execute the Task
790
-
791
- **Guard:** Only execute Step 3 and Step 4 when a task was actually claimed or retried. On idle ticks (no task available, no retry pending), skip directly to Step 5.
792
-
793
- ```bash
794
- if [ -n "$task_json" ]; then
795
- ```
796
-
797
- Spawn a Task agent to do the actual work. This runs **synchronously** (`run_in_background: false`) so we can capture the result and update status.
798
-
799
- The return value of the `Task` tool call is the agent's full text output. Capture it into `agent_output`:
800
-
801
- ```javascript
802
- agent_output = Task({
803
- subagent_type: agent_type, // from monitor config
804
- description: `Monitor "${name}" executing: ${task.title}`,
805
- run_in_background: false,
806
- prompt: `You are an AI agent executing a task claimed by the Mastermind Monitor "${name}".
807
-
808
- TASK: ${task.title}
809
-
810
- DESCRIPTION:
811
- ${task.description || "(no description provided)"}
812
-
813
- SOURCE: ${task.source_type} | ID: ${task.external_id}
814
- URL: ${task.url || "n/a"}
815
-
816
- INSTRUCTIONS:
817
- 1. Understand the task from the title and description above.
818
- 2. Execute the task fully and completely using available tools.
819
- 3. For code tasks: read relevant files, make changes, run tests if possible.
820
- 4. For research tasks: gather information, synthesize findings.
821
- 5. Produce a clear result summary at the end.
822
-
823
- OUTPUT FORMAT:
824
- At the end of your work, output a JSON block EXACTLY like this:
825
- \`\`\`json
826
- {
827
- "status": "done|failed",
828
- "summary": "one paragraph summary of what was accomplished",
829
- "artifacts": ["list of files changed or created"],
830
- "next_actions": ["any follow-up suggestions"]
831
- }
832
- \`\`\`
833
-
834
- If you encounter an error you cannot recover from, set status to "failed" and explain in summary.`
835
- })
836
- ```
837
-
838
- `agent_output` is the full text returned by the Task call. Parse the JSON block and extract the task metadata for use in Step 4. The metadata vars (`task_source_type`, `task_external_id`, `task_title`) are already set by the "After claim" common code for new tasks, and by the retry branch for retried tasks — this block re-extracts them from `$task_json` as a safety guard:
839
-
840
- ```bash
841
- # Task metadata (safe re-extract — already set by claim/retry path)
842
- task_source_type=$(echo "$task_json" | jq -r '.source_type')
843
- task_external_id=$(echo "$task_json" | jq -r '.external_id')
844
- task_title=$(echo "$task_json" | jq -r '.title')
845
-
846
- # Parse result JSON block from agent_output (all three fields in one python pass)
847
- _result_json=$(echo "$agent_output" | python3 -c "
848
- import sys, re, json
849
- m = re.search(r'\`\`\`json\s*(\{.*?\})\s*\`\`\`', sys.stdin.read(), re.DOTALL)
850
- print(m.group(1) if m else '{}')" 2>/dev/null || echo '{}')
851
-
852
- result_status=$(echo "$_result_json" | jq -r '.status // "failed"')
853
- result_summary=$(echo "$_result_json" | jq -r '.summary // "(no summary)"')
854
- result_artifacts=$(echo "$_result_json" | jq -r '(.artifacts // []) | join(", ")')
855
- result_next_actions=$(echo "$_result_json" | jq -r '(.next_actions // []) | join(", ")')
856
- ```
857
-
858
- ---
859
-
860
- ## Step 4 — Handle Result
861
-
862
- Branch on `result_status`:
863
-
864
- ```bash
865
- if [ "$result_status" = "done" ]; then
866
- ```
867
-
868
- ### On success (`status: "done"`)
869
-
870
- **Post completion comment/update per source** — dispatch on `$task_source_type`:
871
-
872
- **Linear** (MCP tool calls — not bash; load Linear MCP schema via ToolSearch first): for `task_source_type=linear`:
873
-
874
- Call `mcp__claude_ai_Linear__save_comment` with:
875
- - `issueId`: `$task_external_id`
876
- - `body`: pass the following as a real multi-line string (use actual newline characters — do NOT use `\n` escape sequences per the Linear MCP server requirement):
877
-
878
- ```
879
- [Monitor: ${name}] ✓ Task complete.
880
-
881
- Summary: ${result_summary}
882
-
883
- Artifacts: ${result_artifacts}
884
- Next actions: ${result_next_actions}
885
-
886
- Completed: $(date -u +%Y-%m-%dT%H:%M:%SZ) | Agent: ${agent_type}
887
- ```
888
-
889
- Then call `mcp__claude_ai_Linear__save_issue` with:
890
- - `issueId`: `$task_external_id`
891
- - `stateId`: resolved ID for state name "Done" in this team
892
-
893
- **GitHub, Monotask, Filesystem** — dispatched via `case`:
894
- ```bash
895
- case "$task_source_type" in
896
- github)
897
- task_repo=$(echo "$task_json" | jq -r '.repo')
898
- gh issue comment "$task_external_id" --repo "$task_repo" --body \
899
- "[Monitor: ${name}] Task complete.
900
-
901
- Summary: ${result_summary}
902
-
903
- Artifacts: ${result_artifacts}
904
- Next actions: ${result_next_actions}
905
- Completed: $(date -u +%Y-%m-%dT%H:%M:%SZ)"
906
-
907
- gh issue edit "$task_external_id" --repo "$task_repo" \
908
- --remove-label "monitor:in-progress" \
909
- --add-label "monitor:done"
910
-
911
- # If it was a "complete this task" issue, close it:
912
- # gh issue close "$task_external_id" --repo "$task_repo" --comment "Closed by monitor after completion."
913
- ;;
914
- monotask)
915
- # Re-extract from task_json — polling-scope vars are not reliable on retry path
916
- board_id=$(echo "$task_json" | jq -r '.board_id')
917
- card_id=$(echo "$task_json" | jq -r '.external_id')
918
- done_col=$(echo "$task_json" | jq -r '.done_col')
919
-
920
- monotask card comment add "$board_id" "$card_id" \
921
- "[Monitor: ${name}] Task complete.
922
-
923
- Summary: ${result_summary}
924
-
925
- Artifacts: ${result_artifacts}
926
- Next actions: ${result_next_actions}
927
- Completed: $(date -u +%Y-%m-%dT%H:%M:%SZ)"
928
-
929
- monotask card move "$board_id" "$card_id" "$done_col" --json
930
- monotask card label remove "$board_id" "$card_id" "monitor:in-progress" --json
931
- monotask card label add "$board_id" "$card_id" "monitor:done" --json
932
- ;;
933
- filesystem)
934
- task_base=$(echo "$task_json" | jq -r '.base_path')
935
- echo "[Monitor: ${name}] $(date -u +%Y-%m-%dT%H:%M:%SZ) — DONE." >> "${task_base}.task.log"
936
- echo "Summary: ${result_summary}" >> "${task_base}.task.log"
937
- echo "Artifacts: ${result_artifacts}" >> "${task_base}.task.log"
938
- echo "Next actions: ${result_next_actions}" >> "${task_base}.task.log"
939
- mv "${task_base}.task.claimed" "${task_base}.task.done"
940
- ;;
941
- esac # end task_source_type dispatch (success path)
942
- ```
943
-
944
- **Update state — remove from in-flight, mark done:**
945
- ```bash
946
- tmp="${state_file}.tmp"
947
- jq --arg key "${task_source_type}:${task_external_id}" \
948
- --arg eid "$task_external_id" \
949
- --arg stype "$task_source_type" \
950
- --arg ts "$(date -u +%Y-%m-%dT%H:%M:%SZ)" \
951
- '(.processed_ids[$key].status = "done") |
952
- (.processed_ids[$key].done_at = $ts) |
953
- (.in_flight = [(.in_flight // [])[] | select(.external_id != $eid or .source_type != $stype)])' \
954
- "$state_file" > "$tmp" && mv "$tmp" "$state_file"
955
-
956
- tmp="${cfg}.tmp"
957
- jq '.stats.done += 1' "$cfg" > "$tmp" && mv "$tmp" "$cfg"
958
- ```
959
-
960
- **Emit dashboard event:**
961
- ```bash
962
- curl -s -o /dev/null -X POST "${CTRL_URL}/api/mastermind/event" \
963
- -H "Content-Type: application/json" \
964
- -d "$(jq -cn --arg sid "$SESSION_ID" --arg name "$name" --arg title "$task_title" \
965
- '{type:"monitor:task:done",session:$sid,monitor:$name,task:$title,ts:(now*1000|floor)}')" || true
966
- ```
967
-
968
- ```bash
969
- else # result_status != "done"
970
- ```
971
-
972
- ### On failure
973
-
974
- **Retry logic (max 3 attempts):**
975
-
976
- ```bash
977
- retry_count=$(jq -r --arg key "${task_source_type}:${task_external_id}" \
978
- '.processed_ids[$key].retry_count // 0' "$state_file")
979
-
980
- if [ "$retry_count" -lt 3 ]; then
981
- new_retry=$((retry_count + 1))
982
- echo "[$name] Task failed (attempt $new_retry/3). Will retry next tick."
983
-
984
- # Update retry count in state
985
- tmp="${state_file}.tmp"
986
- jq --arg key "${task_source_type}:${task_external_id}" \
987
- --arg eid "$task_external_id" \
988
- --arg stype "$task_source_type" \
989
- --argjson r "$new_retry" \
990
- --arg ts "$(date -u +%Y-%m-%dT%H:%M:%SZ)" \
991
- '(.processed_ids[$key].retry_count = $r) |
992
- (.processed_ids[$key].last_failure = $ts) |
993
- (.processed_ids[$key].status = "retry_pending") |
994
- (.in_flight = [(.in_flight // [])[] |
995
- if (.external_id == $eid and .source_type == $stype)
996
- then .retry_count = $r | .last_failure = $ts
997
- else . end])' \
998
- "$state_file" > "$tmp" && mv "$tmp" "$state_file"
999
-
1000
- tmp="${cfg}.tmp"
1001
- jq '.stats.retried += 1' "$cfg" > "$tmp" && mv "$tmp" "$cfg"
1002
-
1003
- # Post retry comment per source
1004
- _retry_msg="[Monitor: ${name}] Task failed (attempt ${new_retry}/3). Will retry next tick. Error: ${result_summary}"
1005
- # Linear (MCP — not bash): call mcp__claude_ai_Linear__save_comment with
1006
- # issueId=$task_external_id body="$_retry_msg"
1007
- # Then call mcp__claude_ai_Linear__save_issue to set state back to "In Progress".
1008
-
1009
- case "$task_source_type" in
1010
- github)
1011
- task_repo=$(echo "$task_json" | jq -r '.repo')
1012
- gh issue comment "$task_external_id" --repo "$task_repo" --body "$_retry_msg" 2>/dev/null || true
1013
- ;;
1014
- monotask)
1015
- _board=$(echo "$task_json" | jq -r '.board_id')
1016
- monotask card comment add "$_board" "$task_external_id" "$_retry_msg" 2>/dev/null || true
1017
- ;;
1018
- filesystem)
1019
- _base=$(echo "$task_json" | jq -r '.base_path')
1020
- echo "[Monitor: ${name}] $(date -u +%Y-%m-%dT%H:%M:%SZ) — RETRY ${new_retry}/3. ${result_summary}" >> "${_base}.task.log"
1021
- ;;
1022
- esac
1023
-
1024
- else
1025
- echo "[$name] Task failed after 3 attempts. Marking as failed."
1026
-
1027
- # Post final failure comment and set external status per source
1028
- _fail_msg="[Monitor: ${name}] Task failed after 3 attempts. Manual intervention required.
1029
- Error: ${result_summary}
1030
- Last attempt: $(date -u +%Y-%m-%dT%H:%M:%SZ)"
1031
-
1032
- # Linear (MCP — not bash): call mcp__claude_ai_Linear__save_comment with
1033
- # issueId=$task_external_id body="$_fail_msg"
1034
- # Then call mcp__claude_ai_Linear__save_issue to:
1035
- # - remove labels "monitor:claimed" and "monitor:in-progress"
1036
- # - add label "monitor:failed"
1037
- # - set state to "Cancelled" or "Blocked" as appropriate for the team.
1038
-
1039
- case "$task_source_type" in
1040
- github)
1041
- task_repo=$(echo "$task_json" | jq -r '.repo')
1042
- gh issue comment "$task_external_id" --repo "$task_repo" --body "$_fail_msg" 2>/dev/null || true
1043
- gh issue edit "$task_external_id" --repo "$task_repo" \
1044
- --add-label "monitor:failed" --remove-label "monitor:in-progress" 2>/dev/null || true
1045
- ;;
1046
- monotask)
1047
- _board=$(echo "$task_json" | jq -r '.board_id')
1048
- monotask card comment add "$_board" "$task_external_id" "$_fail_msg" 2>/dev/null || true
1049
- monotask card label remove "$_board" "$task_external_id" "monitor:in-progress" 2>/dev/null || true
1050
- monotask card label add "$_board" "$task_external_id" "monitor:failed" 2>/dev/null || true
1051
- ;;
1052
- filesystem)
1053
- _base=$(echo "$task_json" | jq -r '.base_path')
1054
- echo "[Monitor: ${name}] $(date -u +%Y-%m-%dT%H:%M:%SZ) — FAILED after 3 attempts. ${result_summary}" >> "${_base}.task.log"
1055
- mv "${_base}.task.claimed" "${_base}.task.failed" 2>/dev/null || true
1056
- ;;
1057
- esac
1058
-
1059
- # Update state
1060
- tmp="${state_file}.tmp"
1061
- jq --arg key "${task_source_type}:${task_external_id}" \
1062
- --arg eid "$task_external_id" \
1063
- --arg stype "$task_source_type" \
1064
- --arg ts "$(date -u +%Y-%m-%dT%H:%M:%SZ)" \
1065
- '(.processed_ids[$key].status = "failed") |
1066
- (.processed_ids[$key].failed_at = $ts) |
1067
- (.in_flight = [(.in_flight // [])[] | select(.external_id != $eid or .source_type != $stype)])' \
1068
- "$state_file" > "$tmp" && mv "$tmp" "$state_file"
1069
-
1070
- tmp="${cfg}.tmp"
1071
- jq '.stats.failed += 1' "$cfg" > "$tmp" && mv "$tmp" "$cfg"
1072
- fi # end permanent-fail branch (if retry_count -lt 3 ... else ... fi)
1073
- fi # end result_status branch (if result_status = "done" ... else ... fi)
1074
-
1075
- fi # end task guard (if [ -n "$task_json" ]; only runs Steps 3-4 when a task was claimed or retried)
1076
- ```
1077
-
1078
- ---
1079
-
1080
- ## Step 5 — Reschedule Next Tick
1081
-
1082
- Always the last step, regardless of whether a task was found/executed.
1083
-
1084
- Call `ScheduleWakeup` with:
1085
- - `delaySeconds`: value of `poll_interval` from config (default 120)
1086
- - `prompt`: `/mastermind:monitor --action tick --name <name>`
1087
- - `reason`: `Monitor <name> polling every <poll_interval>s (<N sources>)`
1088
-
1089
- This is what makes the monitor run forever. The only way to stop it is to set `status=stopped` or `status=paused` — the tick checks this at the top of Step 2.
1090
-
1091
- ---
1092
-
1093
- ## Step 6 — Return Output
1094
-
1095
- ```yaml
1096
- domain: ops
1097
- status: complete
1098
- action: <action>
1099
- monitor: <name>
1100
- tasks_this_tick: <0 or 1>
1101
- task_result: <done|failed|retry_pending|none>
1102
- next_tick_in: <poll_interval>s
1103
- state_file: .monomind/monitor/<name>-state.json
1104
- run_id: <SESSION_ID>
1105
- ```
1106
-
1107
- ---
1108
-
1109
- ## Step 7 — Brain Write (standalone only)
1110
-
1111
- If `caller` is not "command", follow `_protocol.md` Brain Write Procedure for domain `ops`.
1112
-
1113
- ---
1114
-
1115
- ## Configuration File Schemas
1116
-
1117
- ### `.monomind/monitor/<name>.json`
1118
-
1119
- ```json
1120
- {
1121
- "name": "dev-agent",
1122
- "status": "active",
1123
- "poll_interval": 120,
1124
- "agent_type": "coder",
1125
- "max_concurrent": 1,
1126
- "sources": [
1127
- {
1128
- "type": "linear",
1129
- "filter": {
1130
- "team": "ENG",
1131
- "assignees": ["your@email.com"],
1132
- "states": ["Todo"],
1133
- "labels": ["ai-agent"],
1134
- "project": ""
1135
- }
1136
- },
1137
- {
1138
- "type": "github",
1139
- "filter": {
1140
- "repo": "monoes/monomind",
1141
- "assignee": "nokhodian",
1142
- "labels": ["ai-agent"],
1143
- "state": "open",
1144
- "type": "issue"
1145
- }
1146
- },
1147
- {
1148
- "type": "monotask",
1149
- "filter": {
1150
- "board": "monomind-tasks-dev",
1151
- "column": "Todo",
1152
- "label": "role:ai-agent"
1153
- }
1154
- },
1155
- {
1156
- "type": "filesystem",
1157
- "filter": {
1158
- "folder": "./tasks",
1159
- "glob": "*.task",
1160
- "user": ""
1161
- }
1162
- }
1163
- ],
1164
- "stats": {
1165
- "done": 0,
1166
- "failed": 0,
1167
- "retried": 0,
1168
- "total_claimed": 0
1169
- },
1170
- "created_at": "2026-05-18T00:00:00Z",
1171
- "last_tick": null
1172
- }
1173
- ```
1174
-
1175
- ### `.monomind/monitor/<name>-state.json`
1176
-
1177
- ```json
1178
- {
1179
- "processed_ids": {
1180
- "linear:LIN-123": {
1181
- "status": "done",
1182
- "claimed_at": "2026-05-18T10:00:00Z",
1183
- "done_at": "2026-05-18T10:05:00Z",
1184
- "retry_count": 0
1185
- },
1186
- "github:456": {
1187
- "status": "failed",
1188
- "claimed_at": "2026-05-18T09:00:00Z",
1189
- "failed_at": "2026-05-18T09:20:00Z",
1190
- "retry_count": 3
1191
- }
1192
- },
1193
- "in_flight": [
1194
- {
1195
- "source_type": "monotask",
1196
- "external_id": "abc-uuid",
1197
- "title": "Fix auth bug",
1198
- "description": "",
1199
- "board_id": "board-uuid-here",
1200
- "doing_col": "doing-col-uuid",
1201
- "done_col": "done-col-uuid",
1202
- "claimed_at": "2026-05-18T10:10:00Z",
1203
- "retry_count": 1,
1204
- "last_failure": "2026-05-18T10:12:00Z"
1205
- }
1206
- ]
1207
- }
1208
- ```
1209
-
1210
- ---
1211
-
1212
- ## Quick Reference — Common Commands
1213
-
1214
- ```bash
1215
- # Create a monitor watching GitHub issues assigned to you
1216
- /mastermind:monitor --action start --name dev-watcher \
1217
- --source github --project monoes/monomind --user nokhodian \
1218
- --label ai-agent --agent coder --interval 120
1219
-
1220
- # Add a Linear source to an existing monitor
1221
- /mastermind:monitor --action add-source --name dev-watcher \
1222
- --source linear --team ENG --user your@email.com \
1223
- --state Todo --label ai-agent
1224
-
1225
- # Add a monotask board source
1226
- /mastermind:monitor --action add-source --name dev-watcher \
1227
- --source monotask --project monomind-tasks-dev \
1228
- --state Todo --label role:ai-agent
1229
-
1230
- # Add a filesystem folder source
1231
- /mastermind:monitor --action add-source --name dev-watcher \
1232
- --source filesystem --folder ./tasks
1233
-
1234
- # Check status
1235
- /mastermind:monitor --action status --name dev-watcher
1236
-
1237
- # List all monitors
1238
- /mastermind:monitor
1239
-
1240
- # Pause (stops auto-rescheduling after current tick)
1241
- /mastermind:monitor --action pause --name dev-watcher
1242
-
1243
- # Resume (re-enters the tick loop)
1244
- /mastermind:monitor --action resume --name dev-watcher
1245
-
1246
- # Stop permanently
1247
- /mastermind:monitor --action stop --name dev-watcher
1248
- ```
1249
-
1250
- ---
1251
-
1252
- ## GitHub Label Bootstrap
1253
-
1254
- Run this once, inline in the GitHub claim path, immediately before the first `gh issue edit` call. At claim time, `$_gh_repo` is in scope (extracted from `$src` at the top of the GitHub adapter). Guard with a check so it only runs when the `monitor:claimed` label is absent:
1255
-
1256
- ```bash
1257
- # Bootstrap monitor labels on every claim — --force makes each call idempotent (no-ops if label already exists)
1258
- # Running unconditionally is safe: 5 lightweight API calls, prevents gaps if any label was deleted externally
1259
- for label in "monitor:claimed" "monitor:in-progress" "monitor:review" "monitor:done" "monitor:failed"; do
1260
- # shasum is available on both macOS and Linux; md5sum is Linux-only
1261
- color=$(printf '%s' "$label" | shasum | cut -c1-6)
1262
- gh label create "$label" --repo "$_gh_repo" --color "$color" --force 2>/dev/null || true
1263
- done
1264
- ```
1265
-
1266
- ---
1267
-
1268
- ## Important Behavioral Notes
1269
-
1270
- **`poll_interval` is idle gap, not heartbeat.** Because `tick` waits synchronously for the agent to finish before rescheduling (Step 3 uses `run_in_background: false`), `poll_interval` is the *minimum idle time between task claims* — not a wall-clock polling frequency. A user who sets `--interval 60` and has tasks that take 10 minutes will get one task claimed every ~10 minutes, not every 60 seconds.
1271
-
1272
- **`max_concurrent` is a per-tick claim limit.** Since the default is 1 and the tick blocks on the agent, this means at most one task runs per cycle. Increasing it allows the monitor to claim and spawn multiple tasks per tick — but all still block the tick sequentially unless the Task calls use `run_in_background: true` (which requires manual result tracking).
1273
-
1274
- **Retry-pending tasks are prioritized over new claims.** On each tick, the monitor first checks `in_flight` for any `retry_pending` entries and re-executes them before polling sources for new work. This ensures stuck tasks don't accumulate.
1275
-
1276
- ---
1277
-
1278
- ## Notes on Filter Precedence
1279
-
1280
- When multiple users or states are specified (via repeated `--user` or `--state` flags), the monitor ORs them:
1281
- - `--user alice --user bob` → fetch tasks assigned to alice OR bob
1282
- - `--state Todo --state "In Progress"` → fetch tasks in either state
1283
-
1284
- The `--label` flag is ANDed with user/state: only tasks matching the label AND the user/state filter are claimed.