@monoes/monomindcli 2.9.7 → 2.9.8

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 (295) hide show
  1. package/.claude/agents/design/design-monodesign.md +1 -2
  2. package/.claude/agents/engineering/engineering-ai-data-remediation-engineer.md +1 -2
  3. package/.claude/agents/engineering/engineering-ai-engineer.md +1 -2
  4. package/.claude/agents/engineering/engineering-autonomous-optimization-architect.md +0 -1
  5. package/.claude/agents/engineering/engineering-backend-architect.md +1 -2
  6. package/.claude/agents/engineering/engineering-code-reviewer.md +1 -2
  7. package/.claude/agents/engineering/engineering-data-engineer.md +1 -2
  8. package/.claude/agents/engineering/engineering-database-optimizer.md +1 -2
  9. package/.claude/agents/engineering/engineering-devops-automator.md +1 -2
  10. package/.claude/agents/engineering/engineering-embedded-firmware-engineer.md +1 -2
  11. package/.claude/agents/engineering/engineering-feishu-integration-developer.md +1 -2
  12. package/.claude/agents/engineering/engineering-frontend-developer.md +1 -2
  13. package/.claude/agents/engineering/engineering-git-workflow-master.md +1 -2
  14. package/.claude/agents/engineering/engineering-incident-response-commander.md +0 -1
  15. package/.claude/agents/engineering/engineering-mobile-app-builder.md +1 -2
  16. package/.claude/agents/engineering/engineering-rapid-prototyper.md +1 -2
  17. package/.claude/agents/engineering/engineering-security-engineer.md +1 -2
  18. package/.claude/agents/engineering/engineering-senior-developer.md +1 -2
  19. package/.claude/agents/engineering/engineering-software-architect.md +1 -2
  20. package/.claude/agents/engineering/engineering-solidity-smart-contract-engineer.md +1 -2
  21. package/.claude/agents/engineering/engineering-sre.md +0 -1
  22. package/.claude/agents/engineering/engineering-technical-writer.md +1 -2
  23. package/.claude/agents/engineering/engineering-threat-detection-engineer.md +0 -1
  24. package/.claude/agents/engineering/engineering-wechat-mini-program-developer.md +1 -2
  25. package/.claude/agents/github/code-review-swarm.md +0 -1
  26. package/.claude/agents/github/github-modes.md +0 -1
  27. package/.claude/agents/github/issue-tracker.md +0 -1
  28. package/.claude/agents/github/multi-repo-swarm.md +0 -1
  29. package/.claude/agents/github/pr-manager.md +0 -1
  30. package/.claude/agents/github/project-board-sync.md +0 -1
  31. package/.claude/agents/github/release-manager.md +0 -1
  32. package/.claude/agents/github/repo-architect.md +0 -1
  33. package/.claude/agents/github/swarm-issue.md +0 -1
  34. package/.claude/agents/github/swarm-pr.md +0 -1
  35. package/.claude/agents/github/sync-coordinator.md +0 -1
  36. package/.claude/agents/github/workflow-automation.md +0 -1
  37. package/.claude/agents/marketing/marketing-competitive-content.md +1 -2
  38. package/.claude/agents/marketing/marketing-cro-specialist.md +1 -2
  39. package/.claude/agents/marketing/marketing-email-specialist.md +1 -2
  40. package/.claude/agents/marketing/marketing-launch-strategist.md +1 -2
  41. package/.claude/agents/marketing/marketing-pricing-strategist.md +1 -2
  42. package/.claude/agents/specialized/agentic-identity-trust.md +0 -1
  43. package/.claude/agents/specialized/agents-orchestrator.md +1 -2
  44. package/.claude/agents/specialized/automation-governance-architect.md +1 -2
  45. package/.claude/agents/specialized/blockchain-security-auditor.md +1 -2
  46. package/.claude/agents/specialized/compliance-auditor.md +1 -2
  47. package/.claude/agents/specialized/identity-graph-operator.md +0 -1
  48. package/.claude/agents/specialized/lsp-index-engineer.md +1 -2
  49. package/.claude/agents/specialized/mobile/spec-mobile-react-native.md +0 -1
  50. package/.claude/agents/specialized/specialized-cultural-intelligence-strategist.md +0 -1
  51. package/.claude/agents/specialized/specialized-developer-advocate.md +1 -2
  52. package/.claude/agents/specialized/specialized-document-generator.md +1 -2
  53. package/.claude/agents/specialized/specialized-mcp-builder.md +1 -2
  54. package/.claude/agents/specialized/specialized-model-qa.md +0 -1
  55. package/.claude/agents/specialized/specialized-workflow-architect.md +1 -2
  56. package/.claude/agents/specialized/zk-steward.md +1 -2
  57. package/.claude/agents/testing/production-validator.md +0 -1
  58. package/.claude/agents/testing/tdd-london-swarm.md +0 -1
  59. package/.claude/agents/testing/testing-accessibility-auditor.md +0 -1
  60. package/.claude/agents/testing/testing-api-tester.md +1 -2
  61. package/.claude/agents/testing/testing-evidence-collector.md +1 -2
  62. package/.claude/agents/testing/testing-performance-benchmarker.md +1 -2
  63. package/.claude/agents/testing/testing-test-results-analyzer.md +1 -2
  64. package/.claude/agents/testing/testing-tool-evaluator.md +1 -2
  65. package/.claude/agents/testing/testing-workflow-optimizer.md +1 -2
  66. package/.claude/commands/hooks/README.md +1 -1
  67. package/.claude/commands/memory/README.md +6 -7
  68. package/.claude/commands/monitoring/README.md +1 -1
  69. package/.claude/helpers/control-start.cjs +27 -7
  70. package/.claude/helpers/handlers/route-handler.cjs +22 -3
  71. package/.claude/helpers/handlers/session-handler.cjs +43 -0
  72. package/.claude/helpers/intelligence.cjs +27 -6
  73. package/.claude/helpers/statusline.cjs +45 -11
  74. package/.claude/skills/agentic-jujutsu/SKILL.md +17 -15
  75. package/.claude/skills/hive-mind-advanced/SKILL.md +212 -559
  76. package/.claude/skills/hooks-automation/SKILL.md +1 -1
  77. package/.claude/skills/mastermind-adapters/SKILL.md +0 -11
  78. package/.claude/skills/mastermind-agents/SKILL.md +0 -11
  79. package/.claude/skills/mastermind-backup/SKILL.md +0 -11
  80. package/.claude/skills/mastermind-bootstrap/SKILL.md +0 -11
  81. package/.claude/skills/mastermind-delegation/SKILL.md +14 -12
  82. package/.claude/skills/mastermind-idea/SKILL.md +0 -5
  83. package/.claude/skills/mastermind-monitor/SKILL.md +0 -15
  84. package/.claude/skills/mastermind-org-settings/SKILL.md +0 -11
  85. package/.claude/skills/mastermind-plugins/SKILL.md +0 -11
  86. package/.claude/skills/mastermind-protocol/SKILL.md +6 -124
  87. package/.claude/skills/mastermind-repeat/SKILL.md +0 -25
  88. package/.claude/skills/mastermind-review/SKILL.md +1 -1
  89. package/.claude/skills/mastermind-stoporg/SKILL.md +0 -19
  90. package/.claude/skills/memory-toolkit/SKILL.md +12 -11
  91. package/.claude/skills/monodesign/scripts/detector/engines/browser/drivers.mjs +8 -1
  92. package/.claude/skills/pair-programming/SKILL.md +1 -1
  93. package/.claude/skills/performance-analysis/SKILL.md +228 -484
  94. package/.claude/skills/specialagent/SKILL.md +31 -133
  95. package/.claude/skills/swarm-advanced/SKILL.md +2 -2
  96. package/.claude/skills/swarm-orchestration/SKILL.md +220 -150
  97. package/.claude/skills/verification-quality/SKILL.md +247 -571
  98. package/README.md +3 -3
  99. package/dist/src/commands/agent-lifecycle.js +3 -3
  100. package/dist/src/commands/agent-lifecycle.js.map +1 -1
  101. package/dist/src/commands/autopilot.d.ts.map +1 -1
  102. package/dist/src/commands/autopilot.js +7 -1
  103. package/dist/src/commands/autopilot.js.map +1 -1
  104. package/dist/src/commands/doc.d.ts.map +1 -1
  105. package/dist/src/commands/doc.js +14 -3
  106. package/dist/src/commands/doc.js.map +1 -1
  107. package/dist/src/commands/doctor-env-checks.d.ts +1 -1
  108. package/dist/src/commands/doctor-env-checks.d.ts.map +1 -1
  109. package/dist/src/commands/doctor-project-checks.d.ts.map +1 -1
  110. package/dist/src/commands/doctor-project-checks.js +3 -37
  111. package/dist/src/commands/doctor-project-checks.js.map +1 -1
  112. package/dist/src/commands/doctor.d.ts.map +1 -1
  113. package/dist/src/commands/doctor.js +30 -1
  114. package/dist/src/commands/doctor.js.map +1 -1
  115. package/dist/src/commands/hooks-coverage-commands.d.ts.map +1 -1
  116. package/dist/src/commands/hooks-coverage-commands.js +75 -67
  117. package/dist/src/commands/hooks-coverage-commands.js.map +1 -1
  118. package/dist/src/commands/hooks-workers.d.ts.map +1 -1
  119. package/dist/src/commands/hooks-workers.js +41 -10
  120. package/dist/src/commands/hooks-workers.js.map +1 -1
  121. package/dist/src/commands/hooks.js +1 -1
  122. package/dist/src/commands/index.d.ts +1 -1
  123. package/dist/src/commands/index.d.ts.map +1 -1
  124. package/dist/src/commands/index.js +20 -4
  125. package/dist/src/commands/index.js.map +1 -1
  126. package/dist/src/commands/init.d.ts.map +1 -1
  127. package/dist/src/commands/init.js +80 -7
  128. package/dist/src/commands/init.js.map +1 -1
  129. package/dist/src/commands/mcp.d.ts.map +1 -1
  130. package/dist/src/commands/mcp.js +78 -2
  131. package/dist/src/commands/mcp.js.map +1 -1
  132. package/dist/src/commands/neural-optimize.d.ts.map +1 -1
  133. package/dist/src/commands/neural-optimize.js +27 -5
  134. package/dist/src/commands/neural-optimize.js.map +1 -1
  135. package/dist/src/commands/org-observe.d.ts.map +1 -1
  136. package/dist/src/commands/org-observe.js +37 -30
  137. package/dist/src/commands/org-observe.js.map +1 -1
  138. package/dist/src/commands/org.d.ts.map +1 -1
  139. package/dist/src/commands/org.js +129 -2
  140. package/dist/src/commands/org.js.map +1 -1
  141. package/dist/src/commands/performance.js +1 -1
  142. package/dist/src/commands/performance.js.map +1 -1
  143. package/dist/src/commands/security-cve.d.ts.map +1 -1
  144. package/dist/src/commands/security-cve.js +1 -11
  145. package/dist/src/commands/security-cve.js.map +1 -1
  146. package/dist/src/commands/security-misc.d.ts +0 -9
  147. package/dist/src/commands/security-misc.d.ts.map +1 -1
  148. package/dist/src/commands/security-misc.js +33 -54
  149. package/dist/src/commands/security-misc.js.map +1 -1
  150. package/dist/src/commands/security-scan.d.ts.map +1 -1
  151. package/dist/src/commands/security-scan.js +3 -11
  152. package/dist/src/commands/security-scan.js.map +1 -1
  153. package/dist/src/commands/swarm.d.ts.map +1 -1
  154. package/dist/src/commands/swarm.js +7 -2
  155. package/dist/src/commands/swarm.js.map +1 -1
  156. package/dist/src/commands/ui.d.ts +8 -0
  157. package/dist/src/commands/ui.d.ts.map +1 -0
  158. package/dist/src/commands/ui.js +94 -0
  159. package/dist/src/commands/ui.js.map +1 -0
  160. package/dist/src/init/claudemd-generator.d.ts.map +1 -1
  161. package/dist/src/init/claudemd-generator.js +7 -9
  162. package/dist/src/init/claudemd-generator.js.map +1 -1
  163. package/dist/src/init/executor.d.ts.map +1 -1
  164. package/dist/src/init/executor.js +13 -3
  165. package/dist/src/init/executor.js.map +1 -1
  166. package/dist/src/init/kimi-generator.d.ts +3 -2
  167. package/dist/src/init/kimi-generator.d.ts.map +1 -1
  168. package/dist/src/init/kimi-generator.js +45 -13
  169. package/dist/src/init/kimi-generator.js.map +1 -1
  170. package/dist/src/init/statusline-generator.d.ts +1 -1
  171. package/dist/src/init/statusline-generator.js +1 -1
  172. package/dist/src/init/write-capabilities.js +7 -7
  173. package/dist/src/init/write-capabilities.js.map +1 -1
  174. package/dist/src/knowledge/document-pipeline.d.ts.map +1 -1
  175. package/dist/src/knowledge/document-pipeline.js +1 -0
  176. package/dist/src/knowledge/document-pipeline.js.map +1 -1
  177. package/dist/src/knowledge/eval/golden-set.d.ts.map +1 -1
  178. package/dist/src/knowledge/eval/golden-set.js +21 -32
  179. package/dist/src/knowledge/eval/golden-set.js.map +1 -1
  180. package/dist/src/mcp-tools/embeddings-tools.js +2 -2
  181. package/dist/src/mcp-tools/embeddings-tools.js.map +1 -1
  182. package/dist/src/mcp-tools/hooks-intelligence.d.ts.map +1 -1
  183. package/dist/src/mcp-tools/hooks-intelligence.js +29 -3
  184. package/dist/src/mcp-tools/hooks-intelligence.js.map +1 -1
  185. package/dist/src/mcp-tools/hooks-routing.d.ts.map +1 -1
  186. package/dist/src/mcp-tools/hooks-routing.js +32 -19
  187. package/dist/src/mcp-tools/hooks-routing.js.map +1 -1
  188. package/dist/src/mcp-tools/monograph/query-tools.d.ts.map +1 -1
  189. package/dist/src/mcp-tools/monograph/query-tools.js +48 -18
  190. package/dist/src/mcp-tools/monograph/query-tools.js.map +1 -1
  191. package/dist/src/mcp-tools/performance-tools.d.ts.map +1 -1
  192. package/dist/src/mcp-tools/performance-tools.js +15 -10
  193. package/dist/src/mcp-tools/performance-tools.js.map +1 -1
  194. package/dist/src/memory/embedding-operations.d.ts +4 -0
  195. package/dist/src/memory/embedding-operations.d.ts.map +1 -1
  196. package/dist/src/memory/embedding-operations.js +125 -32
  197. package/dist/src/memory/embedding-operations.js.map +1 -1
  198. package/dist/src/memory/hnsw-operations.d.ts +1 -1
  199. package/dist/src/memory/hnsw-operations.js +1 -1
  200. package/dist/src/memory/memory-bridge.d.ts +8 -0
  201. package/dist/src/memory/memory-bridge.d.ts.map +1 -1
  202. package/dist/src/memory/memory-bridge.js +37 -8
  203. package/dist/src/memory/memory-bridge.js.map +1 -1
  204. package/dist/src/memory/memory-read.d.ts +1 -1
  205. package/dist/src/memory/memory-read.js +2 -2
  206. package/dist/src/memory/memory-read.js.map +1 -1
  207. package/dist/src/orgrt/antigravity-runner.d.ts.map +1 -1
  208. package/dist/src/orgrt/antigravity-runner.js +6 -6
  209. package/dist/src/orgrt/antigravity-runner.js.map +1 -1
  210. package/dist/src/orgrt/checkpoint-ops.d.ts +11 -1
  211. package/dist/src/orgrt/checkpoint-ops.d.ts.map +1 -1
  212. package/dist/src/orgrt/checkpoint-ops.js +18 -86
  213. package/dist/src/orgrt/checkpoint-ops.js.map +1 -1
  214. package/dist/src/orgrt/checkpoint.d.ts +1 -1
  215. package/dist/src/orgrt/checkpoint.d.ts.map +1 -1
  216. package/dist/src/orgrt/checkpoint.js +3 -3
  217. package/dist/src/orgrt/checkpoint.js.map +1 -1
  218. package/dist/src/orgrt/daemon.d.ts +9 -1
  219. package/dist/src/orgrt/daemon.d.ts.map +1 -1
  220. package/dist/src/orgrt/daemon.js +267 -139
  221. package/dist/src/orgrt/daemon.js.map +1 -1
  222. package/dist/src/orgrt/decisions.d.ts +13 -0
  223. package/dist/src/orgrt/decisions.d.ts.map +1 -1
  224. package/dist/src/orgrt/decisions.js +95 -0
  225. package/dist/src/orgrt/decisions.js.map +1 -1
  226. package/dist/src/orgrt/forwarder.d.ts.map +1 -1
  227. package/dist/src/orgrt/forwarder.js +148 -15
  228. package/dist/src/orgrt/forwarder.js.map +1 -1
  229. package/dist/src/orgrt/kimicode-runner.js +1 -1
  230. package/dist/src/orgrt/kimicode-runner.js.map +1 -1
  231. package/dist/src/orgrt/opencode-runner.js +1 -1
  232. package/dist/src/orgrt/opencode-runner.js.map +1 -1
  233. package/dist/src/orgrt/session.d.ts +27 -1
  234. package/dist/src/orgrt/session.d.ts.map +1 -1
  235. package/dist/src/orgrt/session.js +67 -6
  236. package/dist/src/orgrt/session.js.map +1 -1
  237. package/dist/src/orgrt/task-dag.d.ts +11 -1
  238. package/dist/src/orgrt/task-dag.d.ts.map +1 -1
  239. package/dist/src/orgrt/task-dag.js +93 -2
  240. package/dist/src/orgrt/task-dag.js.map +1 -1
  241. package/dist/src/orgrt/templates.d.ts.map +1 -1
  242. package/dist/src/orgrt/templates.js +26 -2
  243. package/dist/src/orgrt/templates.js.map +1 -1
  244. package/dist/src/orgrt/types.d.ts +77 -1
  245. package/dist/src/orgrt/types.d.ts.map +1 -1
  246. package/dist/src/orgrt/types.js +28 -2
  247. package/dist/src/orgrt/types.js.map +1 -1
  248. package/dist/src/orgrt/vercel-providers.d.ts.map +1 -1
  249. package/dist/src/orgrt/vercel-providers.js +9 -4
  250. package/dist/src/orgrt/vercel-providers.js.map +1 -1
  251. package/dist/src/orgrt/vercel-runner.d.ts +0 -23
  252. package/dist/src/orgrt/vercel-runner.d.ts.map +1 -1
  253. package/dist/src/orgrt/vercel-runner.js +38 -7
  254. package/dist/src/orgrt/vercel-runner.js.map +1 -1
  255. package/dist/tsconfig.tsbuildinfo +1 -1
  256. package/package.json +3 -3
  257. package/.claude/commands/mastermind/approvev1.md +0 -94
  258. package/.claude/commands/mastermind/architect.md +0 -52
  259. package/.claude/commands/mastermind/autodev.md +0 -28
  260. package/.claude/commands/mastermind/build.md +0 -23
  261. package/.claude/commands/mastermind/finish.md +0 -17
  262. package/.claude/commands/mastermind/runorgv1.md +0 -159
  263. package/.claude/commands/mastermind/taskdev.md +0 -23
  264. package/.claude/commands/mastermind/tdd.md +0 -19
  265. package/.claude/commands/mastermind/verify.md +0 -19
  266. package/.claude/skills/mastermind-approvev1/SKILL.md +0 -191
  267. package/.claude/skills/mastermind-architect/SKILL.md +0 -862
  268. package/.claude/skills/mastermind-autodev/SKILL.md +0 -360
  269. package/.claude/skills/mastermind-build/SKILL.md +0 -169
  270. package/.claude/skills/mastermind-companies/SKILL.md +0 -256
  271. package/.claude/skills/mastermind-content/SKILL.md +0 -197
  272. package/.claude/skills/mastermind-costs/SKILL.md +0 -151
  273. package/.claude/skills/mastermind-finance/SKILL.md +0 -166
  274. package/.claude/skills/mastermind-finish/SKILL.md +0 -251
  275. package/.claude/skills/mastermind-heartbeatv1/SKILL.md +0 -167
  276. package/.claude/skills/mastermind-instance-settings/SKILL.md +0 -315
  277. package/.claude/skills/mastermind-marketing/SKILL.md +0 -228
  278. package/.claude/skills/mastermind-marketing/references/copywriting-frameworks.md +0 -181
  279. package/.claude/skills/mastermind-marketing/references/persuasion-psychology.md +0 -158
  280. package/.claude/skills/mastermind-ops/SKILL.md +0 -168
  281. package/.claude/skills/mastermind-org-chart/SKILL.md +0 -209
  282. package/.claude/skills/mastermind-project-detail/SKILL.md +0 -249
  283. package/.claude/skills/mastermind-project-workspace/SKILL.md +0 -244
  284. package/.claude/skills/mastermind-projects/SKILL.md +0 -167
  285. package/.claude/skills/mastermind-runorgv1/SKILL.md +0 -731
  286. package/.claude/skills/mastermind-sales/SKILL.md +0 -170
  287. package/.claude/skills/mastermind-taskdev/SKILL.md +0 -377
  288. package/.claude/skills/mastermind-taskdev/code-quality-reviewer-prompt.md +0 -60
  289. package/.claude/skills/mastermind-taskdev/final-reviewer-prompt.md +0 -144
  290. package/.claude/skills/mastermind-taskdev/implementer-prompt.md +0 -114
  291. package/.claude/skills/mastermind-taskdev/spec-reviewer-prompt.md +0 -80
  292. package/.claude/skills/mastermind-tdd/SKILL.md +0 -424
  293. package/.claude/skills/mastermind-verify/SKILL.md +0 -196
  294. package/.claude/skills/mastermind-wiki/SKILL.md +0 -314
  295. package/.claude/skills/monolean-review/SKILL.md +0 -57
@@ -1,256 +0,0 @@
1
- ---
2
- name: mastermind-companies
3
- description: Mastermind companies — multi-org management. List all orgs with agent/issue stats, switch the active org, rename an org, delete an org (with confirmation), and view per-org summary. Mirrors Companies.tsx.
4
- type: domain-skill
5
- default_mode: confirm
6
- ---
7
-
8
- # Mastermind Companies
9
-
10
- This skill is invoked by `mastermind:companies` or directly via `/mastermind:companies`.
11
-
12
- ---
13
-
14
- ## Inputs
15
-
16
- - `brain_context`: BRAIN CONTEXT block (injected by command, or loaded below if standalone)
17
- - `action`: list | select | rename | delete | stats | create
18
- - `org_name`: org name to target (required for select/rename/delete/stats)
19
- - `new_name`: new org name (required for rename)
20
- - `confirm`: yes (required second step for delete)
21
- - `caller`: command | master
22
-
23
- ---
24
-
25
- ## Step 0 — Brain Load (standalone only)
26
-
27
- If `caller` is not "command", load brain context following mastermind-protocol/SKILL.md Brain Load Procedure with namespace: `ops`.
28
-
29
- ---
30
-
31
- ## Step 1 — Locate All Orgs
32
-
33
- ```bash
34
- orgsDir=".monomind/orgs"
35
- [ ! -d "$orgsDir" ] && { echo "No orgs directory found. Run /mastermind:createorg to create your first org."; exit 0; }
36
-
37
- # Collect all org names from .json files (not -members, -issues, etc.)
38
- orgNames=$(ls "$orgsDir"/*.json 2>/dev/null | grep -vE -- '-approvals|-state|-activity|-goals|-routines|-projects|-members|-issues|-workspaces|-worktrees|-environments|-plugins|-adapters|-bootstrap|-threads|-budgets|-project-workspaces|-approval-comments' | xargs -I{} basename {} .json | sort)
39
-
40
- # Track active org
41
- activeFile=".monomind/active-org"
42
- activeOrg=$([ -f "$activeFile" ] && cat "$activeFile" || echo "")
43
- ```
44
-
45
- ---
46
-
47
- ## Step 2 — Execute Action
48
-
49
- ### list (default)
50
-
51
- ```bash
52
- echo "ORGS"
53
- echo "────────────────────────────────────────────────────────"
54
- printf "%-22s %-8s %-8s %-8s %s\n" "NAME" "AGENTS" "ISSUES" "MEMBERS" "STATUS"
55
- echo "────────────────────────────────────────────────────────"
56
-
57
- [ -z "$orgNames" ] && { echo " No orgs found. Create one: /mastermind:createorg"; exit 0; }
58
-
59
- echo "$orgNames" | while read -r name; do
60
- orgFile="$orgsDir/${name}.json"
61
- [ ! -f "$orgFile" ] && continue
62
-
63
- agents=$(jq -r '(.roles // []) | length' "$orgFile" 2>/dev/null || echo 0)
64
- issues=$([ -f "$orgsDir/${name}-issues.json" ] && jq '[(.issues // [])[] | select(.status == "open" or .status == "in_progress")] | length' "$orgsDir/${name}-issues.json" 2>/dev/null || echo 0)
65
- members=$([ -f "$orgsDir/${name}-members.json" ] && jq '.members | length' "$orgsDir/${name}-members.json" 2>/dev/null || echo 0)
66
- status=$([ "$name" = "$activeOrg" ] && echo "● ACTIVE" || echo "")
67
-
68
- printf "%-22s %-8s %-8s %-8s %s\n" "$name" "$agents" "$issues" "$members" "$status"
69
- done
70
-
71
- echo ""
72
- total=$(echo "$orgNames" | wc -w | tr -d ' ')
73
- echo " Total orgs: $total"
74
- [ -n "$activeOrg" ] && echo " Active org: $activeOrg"
75
- echo ""
76
- echo " Select: --action select --org-name <name>"
77
- echo " Rename: --action rename --org-name <name> --new-name <new>"
78
- echo " Delete: --action delete --org-name <name>"
79
- ```
80
-
81
- ### select
82
-
83
- ```bash
84
- [ -z "$org_name" ] && { echo "ERROR: --org-name required."; exit 1; }
85
-
86
- orgFile="$orgsDir/${org_name}.json"
87
- [ ! -f "$orgFile" ] && { echo "ERROR: Org '$org_name' not found."; exit 1; }
88
-
89
- echo "$org_name" > "$activeFile"
90
- echo "Active org set to: $org_name"
91
- echo " All mastermind commands will default to this org."
92
- echo " To use a different org, pass --org-name explicitly."
93
- ```
94
-
95
- ### rename
96
-
97
- ```bash
98
- [ -z "$org_name" ] && { echo "ERROR: --org-name required."; exit 1; }
99
- [ -z "$new_name" ] && { echo "ERROR: --new-name required."; exit 1; }
100
-
101
- # Validate new name
102
- echo "$new_name" | grep -qE '^[a-z0-9][a-z0-9_-]*$' || {
103
- echo "ERROR: --new-name must be lowercase alphanumeric with hyphens/underscores (e.g. my-org)."
104
- exit 1
105
- }
106
-
107
- orgFile="$orgsDir/${org_name}.json"
108
- [ ! -f "$orgFile" ] && { echo "ERROR: Org '$org_name' not found."; exit 1; }
109
-
110
- [ -f "$orgsDir/${new_name}.json" ] && { echo "ERROR: Org '$new_name' already exists."; exit 1; }
111
-
112
- # Rename main config file
113
- mv "$orgFile" "$orgsDir/${new_name}.json"
114
-
115
- # Rename all associated files
116
- for suffix in state members issues goals projects routines approvals adapters plugins environments workspaces worktrees activity threads budgets project-workspaces approval-comments bootstrap secrets; do
117
- f="$orgsDir/${org_name}-${suffix}.json"
118
- [ -f "$f" ] && mv "$f" "$orgsDir/${new_name}-${suffix}.json"
119
- f2="$orgsDir/${org_name}-${suffix}.jsonl"
120
- [ -f "$f2" ] && mv "$f2" "$orgsDir/${new_name}-${suffix}.jsonl"
121
- done
122
-
123
- # Update name field inside config
124
- tmp="$orgsDir/${new_name}.json.tmp"
125
- jq --arg n "$new_name" '.name = $n' "$orgsDir/${new_name}.json" > "$tmp" && mv "$tmp" "$orgsDir/${new_name}.json"
126
-
127
- # Update active org pointer if needed
128
- [ "$(cat "$activeFile" 2>/dev/null)" = "$org_name" ] && echo "$new_name" > "$activeFile"
129
-
130
- echo "Org renamed: $org_name → $new_name"
131
- ```
132
-
133
- ### delete
134
-
135
- ```bash
136
- [ -z "$org_name" ] && { echo "ERROR: --org-name required."; exit 1; }
137
-
138
- orgFile="$orgsDir/${org_name}.json"
139
- [ ! -f "$orgFile" ] && { echo "ERROR: Org '$org_name' not found."; exit 1; }
140
-
141
- if [ "${confirm:-}" != "yes" ]; then
142
- agentCount=$(jq '(.roles // []) | length' "$orgFile" 2>/dev/null || echo "?")
143
- echo "DELETE CONFIRMATION REQUIRED"
144
- echo "────────────────────────────────────────────────────────"
145
- echo " Org: $org_name"
146
- echo " Agents: $agentCount"
147
- echo ""
148
- echo " This will permanently delete the org and ALL associated data."
149
- echo " To confirm: --action delete --org-name $org_name --confirm yes"
150
- exit 0
151
- fi
152
-
153
- # Delete all org files
154
- rm -f "$orgsDir/${org_name}.json"
155
- for suffix in state members issues goals projects routines approvals adapters plugins environments workspaces worktrees activity threads budgets project-workspaces approval-comments bootstrap secrets; do
156
- rm -f "$orgsDir/${org_name}-${suffix}.json"
157
- rm -f "$orgsDir/${org_name}-${suffix}.jsonl"
158
- done
159
-
160
- # Clear active org if it was this org
161
- [ "$(cat "$activeFile" 2>/dev/null)" = "$org_name" ] && rm -f "$activeFile"
162
-
163
- echo "Org '$org_name' deleted permanently."
164
- echo " All associated data removed."
165
- ```
166
-
167
- ### stats
168
-
169
- ```bash
170
- [ -z "$org_name" ] && { echo "ERROR: --org-name required."; exit 1; }
171
-
172
- orgFile="$orgsDir/${org_name}.json"
173
- [ ! -f "$orgFile" ] && { echo "ERROR: Org '$org_name' not found."; exit 1; }
174
-
175
- echo "ORG STATS — $org_name"
176
- echo "────────────────────────────────────────────────────────"
177
-
178
- # Agent stats
179
- agents=$(jq '(.roles // []) | length' "$orgFile")
180
- gov=$(jq -r '.governance // "(not set)"' "$orgFile")
181
- echo " Agents: $agents"
182
- echo " Governance: $gov"
183
-
184
- # Issues
185
- if [ -f "$orgsDir/${org_name}-issues.json" ]; then
186
- total=$(jq '.issues | length' "$orgsDir/${org_name}-issues.json")
187
- open=$(jq '[(.issues // [])[] | select(.status == "open" or .status == "in_progress")] | length' "$orgsDir/${org_name}-issues.json")
188
- done=$(jq '[(.issues // [])[] | select(.status == "done")] | length' "$orgsDir/${org_name}-issues.json")
189
- echo " Issues: $total total ($open open, $done done)"
190
- fi
191
-
192
- # Goals
193
- [ -f "$orgsDir/${org_name}-goals.json" ] && echo " Goals: $(jq '.goals | length' "$orgsDir/${org_name}-goals.json")"
194
-
195
- # Projects
196
- [ -f "$orgsDir/${org_name}-projects.json" ] && echo " Projects: $(jq '.projects | length' "$orgsDir/${org_name}-projects.json")"
197
-
198
- # Members
199
- [ -f "$orgsDir/${org_name}-members.json" ] && echo " Members: $(jq '.members | length' "$orgsDir/${org_name}-members.json")"
200
-
201
- # Routines
202
- [ -f "$orgsDir/${org_name}-routines.json" ] && echo " Routines: $(jq '.routines | length' "$orgsDir/${org_name}-routines.json")"
203
-
204
- # Pending approvals
205
- if [ -f "$orgsDir/${org_name}-approvals.json" ]; then
206
- pending=$(jq '[(.approvals // [])[] | select(.status == "pending")] | length' "$orgsDir/${org_name}-approvals.json")
207
- echo " Pending approvals: $pending"
208
- fi
209
- ```
210
-
211
- ### create
212
-
213
- ```bash
214
- [ -z "$org_name" ] && { echo "ERROR: --org-name required."; exit 1; }
215
-
216
- echo "$org_name" | grep -qE '^[a-z0-9][a-z0-9_-]*$' || {
217
- echo "ERROR: --org-name must be lowercase alphanumeric with hyphens/underscores."
218
- exit 1
219
- }
220
-
221
- orgFile="$orgsDir/${org_name}.json"
222
- [ -f "$orgFile" ] && { echo "ERROR: Org '$org_name' already exists."; exit 1; }
223
-
224
- mkdir -p "$orgsDir"
225
- ts=$(date -u +%Y-%m-%dT%H:%M:%SZ)
226
- cat > "$orgFile" <<EOF
227
- {
228
- "name": "$org_name",
229
- "governance": "auto",
230
- "roles": [],
231
- "created_at": "$ts"
232
- }
233
- EOF
234
-
235
- echo "Org '$org_name' created."
236
- echo " Add agents: /mastermind:new-agent --org $org_name --title 'My Agent'"
237
- echo " Run: /mastermind:runorg --org $org_name"
238
- ```
239
-
240
- ---
241
-
242
- ## Step 3 — Return Output
243
-
244
- ```yaml
245
- domain: ops
246
- status: complete
247
- action: <action>
248
- org_name: <org_name>
249
- active_org: <active_org>
250
- ```
251
-
252
- ---
253
-
254
- ## Step 4 — Brain Write (standalone only)
255
-
256
- If `caller` is not "command", follow mastermind-protocol/SKILL.md Brain Write Procedure for domain `ops`.
@@ -1,197 +0,0 @@
1
- ---
2
- name: mastermind-content
3
- description: Mastermind content domain — blog posts, threads, docs, newsletters. Spawns a Content Manager who runs a ring pipeline (research→draft→edit→publish) for polished output.
4
- type: domain-skill
5
- default_mode: confirm
6
- ---
7
-
8
- # Mastermind Content Domain
9
-
10
- This skill is invoked by `mastermind:master` or directly via `/mastermind:content`.
11
-
12
- ---
13
-
14
- ## Inputs
15
-
16
- - `brain_context`: BRAIN CONTEXT block (injected by master, or loaded standalone via mastermind-protocol/SKILL.md brain load)
17
- - `prompt`: the content goal for this run
18
- - `project_name`: monotask space name
19
- - `board_id`: monotask board ID (set by master, or created standalone)
20
- - `mode`: auto | confirm
21
-
22
- ---
23
-
24
- ## Reference Library
25
-
26
- Before generating or editing any prose, identify which reference files apply and inject them into the agent briefing.
27
-
28
- | Reference | When to include |
29
- |---|---|
30
- | `.claude/skills/stop-slop/SKILL.md` | Stage 3 (Edit) and Stage 4 (Review) — not Draft |
31
- | `.claude/skills/stop-slop/references/phrases.md` | Full edit pass — check for banned phrases |
32
- | `.claude/skills/stop-slop/references/structures.md` | Full edit pass — check structural patterns |
33
- | `.claude/skills/stop-slop/references/examples.md` | When the agent needs before/after context |
34
-
35
- In each Edit/Review stage briefing (Stage 3), add:
36
- ```
37
- REFERENCE FILES: Read these before editing:
38
- - .claude/skills/stop-slop/SKILL.md
39
- - .claude/skills/stop-slop/references/phrases.md
40
- - .claude/skills/stop-slop/references/structures.md
41
- ```
42
-
43
- ---
44
-
45
- ## Complexity Assessment
46
-
47
- Assess the prompt to determine execution mode:
48
-
49
- **Simple (direct execution):** Single short piece, one agent:
50
- - "Write a one-paragraph product description"
51
- - "Draft a 280-character tweet about the release"
52
- → Use a single Content Creator agent. Skip manager delegation.
53
-
54
- **Complex (spawn Content Manager agent):** Any of these:
55
- - Blog post or article (research + draft + edit)
56
- - Newsletter issue requiring multiple sections
57
- - Documentation rewrite or new doc set
58
- - Thread series across multiple posts
59
- - Content requiring subject matter research before writing
60
- → Spawn Content Manager agent with ring pipeline.
61
-
62
- ---
63
-
64
- ## Standalone Execution (when called without master)
65
-
66
- If this skill is invoked directly (not by master):
67
-
68
- 1. Load brain context following mastermind-protocol/SKILL.md Brain Load Procedure (namespace: `content`)
69
- 2. Run intake from mastermind-intake/SKILL.md if prompt is vague
70
- 3. Follow mastermind-protocol/SKILL.md Monotask Space+Board Setup Procedure:
71
- ```bash
72
- project_name="${project_name:-$(basename "$PWD")}"
73
- space_id=$(monotask space list 2>/dev/null | awk -F' \| ' -v n="$project_name" '$2==n{print $1}' | head -1)
74
- [ -z "$space_id" ] && space_id=$(monotask space create "$project_name" 2>&1 | grep -oE '[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}')
75
- [ -z "$space_id" ] && { echo "ERROR: Could not find or create space '$project_name'"; exit 1; }
76
- board_id=$(monotask board create "content" --json | jq -r '.id // empty')
77
- [ -z "$board_id" ] && { echo "ERROR: Failed to create content board"; exit 1; }
78
- monotask space boards add "$space_id" "$board_id" >/dev/null 2>&1 || true
79
- todo_col=$(monotask column create "$board_id" "Todo" --json | jq -r '.id')
80
- doing_col=$(monotask column create "$board_id" "Doing" --json | jq -r '.id')
81
- done_col=$(monotask column create "$board_id" "Done" --json | jq -r '.id')
82
- ```
83
- 4. Proceed with complexity assessment below
84
- 5. At end: follow mastermind-protocol/SKILL.md Brain Write Procedure (namespace: `content`)
85
-
86
- ---
87
-
88
- ## Complex Execution — Content Manager Agent
89
-
90
- Spawn a Content Manager agent via Task tool:
91
-
92
- ```javascript
93
- Task({
94
- subagent_type: "coordinator",
95
- description: `You are the Content Manager for project <project_name>.
96
-
97
- CONTEXT: <date> | Project: <project_name> | Spawned by: mastermind:content
98
-
99
- BRAIN CONTEXT:
100
- <brain_context>
101
-
102
- YOUR BOARD: <board_id>
103
- YOUR GOAL: <prompt>
104
-
105
- STEP 1 — PLAN
106
- Decompose content production into sequential pipeline stages. The ring topology means output from each stage feeds the next:
107
- Stage 1: Research — gather facts, sources, angles
108
- Stage 2: Draft — produce first draft from research
109
- Stage 3: Edit — refine, fact-check, tone-align
110
- Stage 4: Format — structure for target platform
111
-
112
- Identify for each stage:
113
- - What input it receives from the prior stage
114
- - What deliverable it produces
115
- - Which specialist handles it
116
-
117
- STEP 2 — CREATE TASKS
118
- For each pipeline stage, create a monotask card on the project board.
119
- First look up column IDs and assign shell variables:
120
- ```bash
121
- columns=$(monotask column list "$BOARD_ID" --json)
122
- COL_TODO_ID=$(echo "$columns" | jq -r '.[] | select(.title == "Todo" or .title == "Backlog") | .id' | head -1)
123
- COL_DONE_ID=$(echo "$columns" | jq -r '.[] | select(.title == "Done") | .id' | head -1)
124
- ```
125
- Then create the card:
126
- ```bash
127
- result=$(monotask card create "$BOARD_ID" "$COL_TODO_ID" "<short summary of pipeline stage goal, ≤80 chars>" --json)
128
- CARD_ID=$(echo "$result" | jq -r '.id // empty')
129
- monotask card set-description "$BOARD_ID" "$CARD_ID" "[this stage's specific production goal]"
130
- monotask card comment add "$BOARD_ID" "$CARD_ID" "CONTEXT: <date> | Project: <project_name> | Created by: Content Manager
131
- BRAIN MEMORY: [paste most relevant 3-5 brain context excerpts]
132
- SCOPE: [content type, target audience, platform, word count, tone]
133
- CONSTRAINTS: [brand voice, SEO requirements, factual accuracy standards, style guide]
134
- REFERENCE FILES: [for Stage 3 edit only: .claude/skills/stop-slop/SKILL.md, .claude/skills/stop-slop/references/phrases.md, .claude/skills/stop-slop/references/structures.md]
135
- SUCCESS CRITERIA:
136
- - [ ] [checkable item]
137
- AGENT: [researcher | Content Creator | Technical Writer | Code Reviewer (as editor)]
138
- SWARM: ring 4 raft pipeline
139
- DEPENDENCIES: [prior stage task ID — pipeline is sequential]
140
- OUTPUT FORMAT: unified output schema"
141
- ```
142
-
143
- STEP 3 — EXECUTE
144
- Spawn Task agents in pipeline order (ring topology — each must complete before next starts):
145
- Stage 1 research: subagent_type "researcher"
146
- Stage 2 draft: subagent_type "Content Creator"
147
- Stage 3 edit: subagent_type "Technical Writer"
148
- Stage 4 format/publish: subagent_type "Content Creator"
149
-
150
- Also run /mastermind:do --board <board_id> to track execution.
151
-
152
- STEP 4 — COLLECT AND RETURN
153
- Collect the final formatted content. Return to caller:
154
-
155
- domain: content
156
- status: complete | partial | blocked
157
- artifacts:
158
- - path: [path to final content file]
159
- type: copy
160
- decisions:
161
- - what: [angle, tone, or structure decisions made]
162
- why: [reasoning]
163
- confidence: [0.0-1.0]
164
- outcome: shipped | pending
165
- lessons:
166
- - what_worked: [what produced the strongest draft]
167
- - what_didnt: [what required multiple iterations]
168
- next_actions:
169
- - [e.g. "run mastermind:marketing to distribute the content"]
170
- - [e.g. "run mastermind:review for final quality check"]
171
- board_url: monotask://<project_name>/content
172
- run_id: <ISO8601-timestamp>`,
173
- run_in_background: true
174
- })
175
- ```
176
-
177
- ---
178
-
179
- ## Simple Execution
180
-
181
- For simple tasks (single agent, short-form content):
182
-
183
- 1. Spawn one Task agent with the content request as a self-contained briefing
184
- 2. Collect output
185
- 3. Return unified output schema with `status: complete`
186
-
187
- ---
188
-
189
- ## Domain Swarm Defaults
190
-
191
- | Task Type | Agent | Swarm |
192
- |---|---|---|
193
- | Full article / blog post | researcher → writer → editor | ring 4 raft pipeline |
194
- | Newsletter | coordinator + writers | ring 4 raft pipeline |
195
- | Documentation rewrite | Technical Writer + researcher | ring 4 raft pipeline |
196
- | Social thread | Content Creator | hierarchical 3 raft specialized |
197
- | Short-form copy | Content Creator | single agent |
@@ -1,151 +0,0 @@
1
- ---
2
- name: mastermind-costs
3
- description: Mastermind costs — track token spend and budget burn rate per agent in a running org. Shows current window spend, budget policy, and alerts when approaching limits.
4
- type: domain-skill
5
- default_mode: auto
6
- ---
7
-
8
- # Mastermind Costs
9
-
10
- This skill is invoked by `mastermind:costs` or directly via `/mastermind:costs`.
11
-
12
- ---
13
-
14
- ## Inputs
15
-
16
- - `brain_context`: BRAIN CONTEXT block
17
- - `org_name`: org to inspect costs for
18
- - `action`: report | set-budget | alert
19
- - `budget_tokens`: max token budget for the org run (for set-budget)
20
- - `alert_threshold`: fraction of budget that triggers alert (default 0.8)
21
- - `caller`: command | master
22
-
23
- ---
24
-
25
- ## Step 0 — Brain Load (standalone only)
26
-
27
- If `caller` is not "command", load brain context following mastermind-protocol/SKILL.md Brain Load Procedure with namespace: `ops`.
28
-
29
- ---
30
-
31
- ## Step 1 — Load Cost Data
32
-
33
- Cost data is pulled from monomind's token summary and the org state file:
34
-
35
- ```bash
36
- orgFile=".monomind/orgs/${org_name}.json"
37
- stateFile=".monomind/orgs/${org_name}-state.json"
38
- tokenSummary=".monomind/metrics/token-summary.json"
39
-
40
- memNs="org:${org_name}"
41
- ```
42
-
43
- ---
44
-
45
- ## Step 2 — Execute Action
46
-
47
- ### report (default)
48
-
49
- Aggregate token usage per agent from state file and token summary:
50
-
51
- ```bash
52
- # Get total token usage from the global summary for context
53
- if [ -f "$tokenSummary" ]; then
54
- echo "=== GLOBAL TOKEN SUMMARY ==="
55
- jq -r '"Today: $\(.today.cost | tostring) calls: \(.today.calls)"' "$tokenSummary" 2>/dev/null || true
56
- fi
57
-
58
- echo ""
59
- echo "=== ORG SPEND — ${org_name} ==="
60
-
61
- # Per-agent spend from state file
62
- if [ -f "$stateFile" ]; then
63
- jq -r '.agents // {} | to_entries[] | " \(.key): tokens_in=\(.value.tokens_in // 0) tokens_out=\(.value.tokens_out // 0) status=\(.value.status // "unknown")"' "$stateFile" 2>/dev/null
64
- else
65
- echo " (no state file — org has not run yet)"
66
- fi
67
-
68
- # Budget check
69
- budget=$(jq -r '.run_config.budget_tokens // "unlimited"' "$orgFile" 2>/dev/null)
70
- echo ""
71
- echo "Budget: $budget tokens"
72
- ```
73
-
74
- Render as:
75
- ```
76
- COSTS — org: <org_name>
77
- ──────────────────────────────────────────────
78
- AGENT STATUS TOKENS IN TOKENS OUT EST. COST
79
- boss running 48,230 12,100 ~$0.42
80
- content-writer idle 21,400 8,900 ~$0.18
81
- reviewer waiting 5,100 2,300 ~$0.05
82
- ──────────────────────────────────────────────
83
- TOTAL 74,730 23,300 ~$0.65
84
- BUDGET: 500,000 tokens | USED: 14.8% | REMAINING: 85.2%
85
-
86
- BURN RATE: ~4,900 tokens/hour | EST. RUNWAY: ~87 hours
87
- ```
88
-
89
- Calculate costs using approximate rates: input ~$3/1M tokens, output ~$15/1M tokens (Sonnet-class).
90
-
91
- ### set-budget
92
-
93
- Write budget to org config:
94
-
95
- ```bash
96
- tmp="${orgFile}.tmp"
97
- jq --argjson budget "$budget_tokens" \
98
- --argjson threshold "${alert_threshold:-0.8}" \
99
- '.run_config.budget_tokens = $budget | .run_config.alert_threshold = $threshold' \
100
- "$orgFile" > "$tmp" && mv "$tmp" "$orgFile"
101
- echo "Budget set: $budget_tokens tokens (alert at $(echo "$alert_threshold * 100" | bc)%)"
102
- ```
103
-
104
- ### alert
105
-
106
- Check current usage against budget and emit alert if over threshold:
107
-
108
- ```bash
109
- budget=$(jq -r '.run_config.budget_tokens // 0' "$orgFile")
110
- threshold=$(jq -r '.run_config.alert_threshold // 0.8' "$orgFile")
111
-
112
- if [ "$budget" -gt 0 ] && [ -f "$stateFile" ]; then
113
- total_in=$(jq '[.agents // {} | to_entries[] | .value.tokens_in // 0] | add // 0' "$stateFile")
114
- total_out=$(jq '[.agents // {} | to_entries[] | .value.tokens_out // 0] | add // 0' "$stateFile")
115
- total=$((total_in + total_out))
116
-
117
- # Use awk for float comparison
118
- over=$(awk -v total="$total" -v budget="$budget" -v threshold="$threshold" \
119
- 'BEGIN { print (total/budget >= threshold) ? "yes" : "no" }')
120
-
121
- if [ "$over" = "yes" ]; then
122
- echo "ALERT: Org $org_name has used $(awk -v t=$total -v b=$budget 'BEGIN{printf "%.1f", t/b*100}')% of budget"
123
- REPO_ROOT=$(git rev-parse --show-toplevel 2>/dev/null || pwd)
124
- CTRL_URL=$(jq -r '.url // "http://localhost:4242"' "$REPO_ROOT/.monomind/control.json" 2>/dev/null || echo "http://localhost:4242")
125
- curl -s -X POST "${CTRL_URL}/api/mastermind/event" -H "x-monomind-token: $(cat "${REPO_ROOT:-$(git rev-parse --show-toplevel 2>/dev/null || pwd)}/.monomind/dashboard-token" 2>/dev/null || true)" \
126
- -H "Content-Type: application/json" \
127
- -d "$(jq -cn --arg org "$org_name" --argjson total $total --argjson budget $budget \
128
- '{type:"org:budget:alert",org:$org,tokens_used:$total,budget:$budget,ts:(now*1000|floor)}')" || true
129
- fi
130
- fi
131
- ```
132
-
133
- ---
134
-
135
- ## Step 3 — Return Output
136
-
137
- ```yaml
138
- domain: ops
139
- status: complete
140
- action: <action>
141
- org: <org_name>
142
- total_tokens: <N>
143
- budget_tokens: <N>
144
- usage_pct: <N>%
145
- ```
146
-
147
- ---
148
-
149
- ## Step 4 — Brain Write (standalone only)
150
-
151
- If `caller` is not "command", follow mastermind-protocol/SKILL.md Brain Write Procedure for domain `ops`.