@monoes/monomindcli 2.10.4 → 2.10.6

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 (181) hide show
  1. package/.claude/helpers/handlers/gates-handler.cjs +47 -14
  2. package/.claude/settings.json +1 -1
  3. package/.claude/skills/mastermind/SKILL.md +15 -0
  4. package/.claude/skills/mastermind/references/antigravity-tools.md +62 -0
  5. package/.claude/skills/mastermind/references/claude-code-tools.md +52 -0
  6. package/.claude/skills/mastermind/references/codex-tools.md +66 -0
  7. package/.claude/skills/mastermind/references/copilot-tools.md +51 -0
  8. package/.claude/skills/mastermind/references/gemini-tools.md +65 -0
  9. package/.claude/skills/mastermind/references/pi-tools.md +30 -0
  10. package/.claude/skills/mastermind-createorg/SKILL.md +11 -3
  11. package/.claude/skills/mastermind-debug/SKILL.md +274 -0
  12. package/.claude/skills/mastermind-execute/SKILL.md +99 -0
  13. package/.claude/skills/mastermind-memory/SKILL.md +316 -0
  14. package/.claude/skills/mastermind-org/SKILL.md +13 -0
  15. package/.claude/skills/mastermind-plan/SKILL.md +212 -0
  16. package/.claude/skills/mastermind-research/SKILL.md +163 -0
  17. package/.claude/skills/mastermind-review/SKILL.md +228 -0
  18. package/.claude/skills/monodesign/scripts/detector/engines/browser/drivers.mjs +33 -0
  19. package/dist/src/commands/agent-exec.d.ts.map +1 -1
  20. package/dist/src/commands/agent-exec.js +52 -13
  21. package/dist/src/commands/agent-exec.js.map +1 -1
  22. package/dist/src/commands/doctor-project-checks.d.ts.map +1 -1
  23. package/dist/src/commands/doctor-project-checks.js.map +1 -1
  24. package/dist/src/commands/org-observe.d.ts.map +1 -1
  25. package/dist/src/commands/org-observe.js +34 -8
  26. package/dist/src/commands/org-observe.js.map +1 -1
  27. package/dist/src/commands/org.d.ts.map +1 -1
  28. package/dist/src/commands/org.js +10 -5
  29. package/dist/src/commands/org.js.map +1 -1
  30. package/dist/src/commands/security-scan.d.ts +64 -1
  31. package/dist/src/commands/security-scan.d.ts.map +1 -1
  32. package/dist/src/commands/security-scan.js +75 -2
  33. package/dist/src/commands/security-scan.js.map +1 -1
  34. package/dist/src/init/mcp-generator.d.ts.map +1 -1
  35. package/dist/src/init/mcp-generator.js.map +1 -1
  36. package/dist/src/orgrt/agent-exec.d.ts +1 -1
  37. package/dist/src/orgrt/agent-exec.d.ts.map +1 -1
  38. package/dist/src/orgrt/agent-exec.js +64 -6
  39. package/dist/src/orgrt/agent-exec.js.map +1 -1
  40. package/dist/src/orgrt/agent-runner.d.ts.map +1 -1
  41. package/dist/src/orgrt/agent-runner.js +29 -1
  42. package/dist/src/orgrt/agent-runner.js.map +1 -1
  43. package/dist/src/orgrt/kimicode-runner.d.ts.map +1 -1
  44. package/dist/src/orgrt/kimicode-runner.js.map +1 -1
  45. package/dist/src/orgrt/org-design-skill.d.ts +9 -0
  46. package/dist/src/orgrt/org-design-skill.d.ts.map +1 -0
  47. package/dist/src/orgrt/org-design-skill.js +61 -0
  48. package/dist/src/orgrt/org-design-skill.js.map +1 -0
  49. package/dist/src/orgrt/role-skills/account-strategist.md +26 -0
  50. package/dist/src/orgrt/role-skills/accounts-payable.md +26 -0
  51. package/dist/src/orgrt/role-skills/adaptive-coordinator.md +26 -0
  52. package/dist/src/orgrt/role-skills/adaptive-coordinator2.md +25 -0
  53. package/dist/src/orgrt/role-skills/ai-citation.md +25 -0
  54. package/dist/src/orgrt/role-skills/ai-engineer.md +28 -0
  55. package/dist/src/orgrt/role-skills/analytics-reporter.md +27 -0
  56. package/dist/src/orgrt/role-skills/api-tester.md +27 -0
  57. package/dist/src/orgrt/role-skills/automation-governance.md +26 -0
  58. package/dist/src/orgrt/role-skills/backend-dev.md +27 -0
  59. package/dist/src/orgrt/role-skills/benchmarker.md +28 -0
  60. package/dist/src/orgrt/role-skills/blockchain-auditor.md +27 -0
  61. package/dist/src/orgrt/role-skills/byzantine-coord.md +25 -0
  62. package/dist/src/orgrt/role-skills/case-analyst.md +25 -0
  63. package/dist/src/orgrt/role-skills/cicd-engineer.md +28 -0
  64. package/dist/src/orgrt/role-skills/cloud-architect.md +25 -0
  65. package/dist/src/orgrt/role-skills/code-review-swarm.md +26 -0
  66. package/dist/src/orgrt/role-skills/coder.md +27 -0
  67. package/dist/src/orgrt/role-skills/collective-coord.md +25 -0
  68. package/dist/src/orgrt/role-skills/compliance-auditor.md +27 -0
  69. package/dist/src/orgrt/role-skills/consensus-coordinator.md +25 -0
  70. package/dist/src/orgrt/role-skills/content-creator.md +25 -0
  71. package/dist/src/orgrt/role-skills/cro-specialist.md +26 -0
  72. package/dist/src/orgrt/role-skills/data-consolidator.md +27 -0
  73. package/dist/src/orgrt/role-skills/data-engineer.md +27 -0
  74. package/dist/src/orgrt/role-skills/database-optimizer.md +25 -0
  75. package/dist/src/orgrt/role-skills/deal-strategist.md +26 -0
  76. package/dist/src/orgrt/role-skills/defender.md +25 -0
  77. package/dist/src/orgrt/role-skills/devops-automator.md +25 -0
  78. package/dist/src/orgrt/role-skills/discovery-coach.md +26 -0
  79. package/dist/src/orgrt/role-skills/email-marketing.md +27 -0
  80. package/dist/src/orgrt/role-skills/embedded-firmware.md +25 -0
  81. package/dist/src/orgrt/role-skills/evidence-collector.md +27 -0
  82. package/dist/src/orgrt/role-skills/experiment-tracker.md +28 -0
  83. package/dist/src/orgrt/role-skills/feedback-synthesizer.md +26 -0
  84. package/dist/src/orgrt/role-skills/finance-tracker.md +26 -0
  85. package/dist/src/orgrt/role-skills/frontend-developer.md +25 -0
  86. package/dist/src/orgrt/role-skills/game-audio-engineer.md +26 -0
  87. package/dist/src/orgrt/role-skills/game-designer.md +26 -0
  88. package/dist/src/orgrt/role-skills/hierarchical-coord.md +26 -0
  89. package/dist/src/orgrt/role-skills/incident-commander.md +26 -0
  90. package/dist/src/orgrt/role-skills/infrastructure.md +25 -0
  91. package/dist/src/orgrt/role-skills/input-validator.md +27 -0
  92. package/dist/src/orgrt/role-skills/ios-developer.md +25 -0
  93. package/dist/src/orgrt/role-skills/issue-tracker.md +26 -0
  94. package/dist/src/orgrt/role-skills/judge.md +25 -0
  95. package/dist/src/orgrt/role-skills/launch-strategist.md +25 -0
  96. package/dist/src/orgrt/role-skills/legal-compliance.md +25 -0
  97. package/dist/src/orgrt/role-skills/level-designer.md +26 -0
  98. package/dist/src/orgrt/role-skills/load-balancer.md +28 -0
  99. package/dist/src/orgrt/role-skills/mcp-builder.md +27 -0
  100. package/dist/src/orgrt/role-skills/memory-coordinator.md +28 -0
  101. package/dist/src/orgrt/role-skills/mesh-coordinator.md +26 -0
  102. package/dist/src/orgrt/role-skills/ml-developer.md +28 -0
  103. package/dist/src/orgrt/role-skills/mobile-app-builder.md +25 -0
  104. package/dist/src/orgrt/role-skills/mobile-dev.md +25 -0
  105. package/dist/src/orgrt/role-skills/model-qa.md +28 -0
  106. package/dist/src/orgrt/role-skills/narrative-designer.md +26 -0
  107. package/dist/src/orgrt/role-skills/outbound-strategist.md +26 -0
  108. package/dist/src/orgrt/role-skills/path-validator.md +27 -0
  109. package/dist/src/orgrt/role-skills/payment-agent.md +26 -0
  110. package/dist/src/orgrt/role-skills/perf-analyzer.md +28 -0
  111. package/dist/src/orgrt/role-skills/pipeline-analyst.md +26 -0
  112. package/dist/src/orgrt/role-skills/planner.md +27 -0
  113. package/dist/src/orgrt/role-skills/pr-manager.md +26 -0
  114. package/dist/src/orgrt/role-skills/pricing-strategist.md +25 -0
  115. package/dist/src/orgrt/role-skills/product-manager.md +26 -0
  116. package/dist/src/orgrt/role-skills/production-validator.md +27 -0
  117. package/dist/src/orgrt/role-skills/project-shepherd.md +25 -0
  118. package/dist/src/orgrt/role-skills/proposal-strategist.md +26 -0
  119. package/dist/src/orgrt/role-skills/prosecutor.md +25 -0
  120. package/dist/src/orgrt/role-skills/queen-coordinator.md +25 -0
  121. package/dist/src/orgrt/role-skills/quorum-manager.md +25 -0
  122. package/dist/src/orgrt/role-skills/raft-manager.md +25 -0
  123. package/dist/src/orgrt/role-skills/reality-checker.md +27 -0
  124. package/dist/src/orgrt/role-skills/recruitment.md +25 -0
  125. package/dist/src/orgrt/role-skills/release-manager.md +26 -0
  126. package/dist/src/orgrt/role-skills/repo-architect.md +25 -0
  127. package/dist/src/orgrt/role-skills/researcher.md +27 -0
  128. package/dist/src/orgrt/role-skills/resource-allocator.md +28 -0
  129. package/dist/src/orgrt/role-skills/reviewer.md +27 -0
  130. package/dist/src/orgrt/role-skills/safe-executor.md +27 -0
  131. package/dist/src/orgrt/role-skills/sales-coach.md +26 -0
  132. package/dist/src/orgrt/role-skills/sales-engineer.md +26 -0
  133. package/dist/src/orgrt/role-skills/scout-explorer.md +25 -0
  134. package/dist/src/orgrt/role-skills/security-architect.md +27 -0
  135. package/dist/src/orgrt/role-skills/security-auditor.md +27 -0
  136. package/dist/src/orgrt/role-skills/senior-developer.md +27 -0
  137. package/dist/src/orgrt/role-skills/senior-pm.md +25 -0
  138. package/dist/src/orgrt/role-skills/seo-specialist.md +25 -0
  139. package/dist/src/orgrt/role-skills/social-media.md +25 -0
  140. package/dist/src/orgrt/role-skills/solidity-engineer.md +28 -0
  141. package/dist/src/orgrt/role-skills/sprint-prioritizer.md +26 -0
  142. package/dist/src/orgrt/role-skills/sre.md +26 -0
  143. package/dist/src/orgrt/role-skills/studio-operations.md +25 -0
  144. package/dist/src/orgrt/role-skills/studio-producer.md +25 -0
  145. package/dist/src/orgrt/role-skills/support-responder.md +25 -0
  146. package/dist/src/orgrt/role-skills/system-architect.md +27 -0
  147. package/dist/src/orgrt/role-skills/task-orchestrator.md +28 -0
  148. package/dist/src/orgrt/role-skills/technical-artist.md +26 -0
  149. package/dist/src/orgrt/role-skills/technical-writer.md +27 -0
  150. package/dist/src/orgrt/role-skills/tester.md +27 -0
  151. package/dist/src/orgrt/role-skills/threat-detection.md +27 -0
  152. package/dist/src/orgrt/role-skills/trend-researcher.md +28 -0
  153. package/dist/src/orgrt/role-skills/trial-director.md +25 -0
  154. package/dist/src/orgrt/role-skills/unity-architect.md +26 -0
  155. package/dist/src/orgrt/role-skills/visionos-engineer.md +25 -0
  156. package/dist/src/orgrt/role-skills/worker-specialist.md +25 -0
  157. package/dist/src/orgrt/role-skills/workflow-architect.md +25 -0
  158. package/dist/src/orgrt/role-skills/workflow-automation.md +26 -0
  159. package/dist/src/orgrt/role-skills/zk-steward.md +27 -0
  160. package/dist/src/orgrt/role-skills.d.ts +9 -0
  161. package/dist/src/orgrt/role-skills.d.ts.map +1 -0
  162. package/dist/src/orgrt/role-skills.js +52 -0
  163. package/dist/src/orgrt/role-skills.js.map +1 -0
  164. package/dist/src/orgrt/runner-registry.d.ts.map +1 -1
  165. package/dist/src/orgrt/runner-registry.js +7 -3
  166. package/dist/src/orgrt/runner-registry.js.map +1 -1
  167. package/dist/src/orgrt/session.d.ts +16 -2
  168. package/dist/src/orgrt/session.d.ts.map +1 -1
  169. package/dist/src/orgrt/session.js +36 -3
  170. package/dist/src/orgrt/session.js.map +1 -1
  171. package/dist/src/orgrt/types.d.ts +12 -0
  172. package/dist/src/orgrt/types.d.ts.map +1 -1
  173. package/dist/src/orgrt/types.js +15 -0
  174. package/dist/src/orgrt/types.js.map +1 -1
  175. package/dist/src/ui/dashboard.html +15 -225
  176. package/dist/src/ui/data/mastermind-sessions.json +1 -0
  177. package/dist/src/ui/routes-monoes.mjs +7 -3
  178. package/dist/src/ui/routes-org.mjs +1 -68
  179. package/dist/src/ui/server.mjs +1 -1
  180. package/dist/tsconfig.tsbuildinfo +1 -1
  181. package/package.json +3 -3
@@ -227,14 +227,6 @@ const FALLBACK_DESTRUCTIVE_PATTERNS = [
227
227
  ];
228
228
 
229
229
  const FALLBACK_SECRET_PATTERNS = [
230
- /(?:api[_-]?key|apikey)\s*[:=]\s*['"][^'"]{8,}['"]/gi,
231
- /(?:secret|password|passwd|pwd)\s*[:=]\s*['"][^'"]{8,}['"]/gi,
232
- /(?:token|bearer)\s*[:=]\s*['"][^'"]{10,}['"]/gi,
233
- // Unquoted variants — env-style `KEY=value` / `key: value` with no quotes,
234
- // e.g. `ANTHROPIC_API_KEY=sk-ant-...` in a .env file or shell export. The
235
- // quoted patterns above never match these, which was the single most
236
- // common real leak pattern (P1-25).
237
- /(?:api[_-]?key|apikey|token|secret|password|passwd|pwd)\s*[:=]\s*[^\s'"]{8,}/gi,
238
230
  /-----BEGIN (?:RSA |EC |DSA )?PRIVATE KEY-----/g,
239
231
  /sk-ant-[a-zA-Z0-9_-]{20,}/g,
240
232
  /sk-[a-zA-Z0-9_-]{20,}/g,
@@ -243,6 +235,35 @@ const FALLBACK_SECRET_PATTERNS = [
243
235
  /AKIA[0-9A-Z]{16}/g,
244
236
  ];
245
237
 
238
+ // Field names alone do not make a value a credential: schemas, API wire
239
+ // contracts, and ordinary fixtures legitimately use names such as `token` or
240
+ // `apiKey`. Check an assigned value separately, and only block it when it has
241
+ // the characteristics of an actual generated secret. Recognizable provider
242
+ // formats remain covered by the precise patterns above.
243
+ const GENERIC_SECRET_ASSIGNMENT =
244
+ /(?:api[_-]?key|apikey|token|secret|password|passwd|pwd|bearer)\s*[:=]\s*(?:'[^'\r\n]*'|"[^"\r\n]*"|[^\s'"\r\n]+)/gi;
245
+
246
+ function isFixtureOrPlaceholder(value) {
247
+ return /(?:test|fixture|example|sample|placeholder|dummy|fake|not[-_ ]?(?:a[-_ ]?)?real)/i.test(value);
248
+ }
249
+
250
+ function hasSecretLikeEntropy(value) {
251
+ if (value.length < 20 || /\s/.test(value)) return false;
252
+ var characterClasses = 0;
253
+ if (/[a-z]/.test(value)) characterClasses++;
254
+ if (/[A-Z]/.test(value)) characterClasses++;
255
+ if (/\d/.test(value)) characterClasses++;
256
+ if (/[^a-zA-Z0-9]/.test(value)) characterClasses++;
257
+ return characterClasses >= 3 && new Set(value).size >= 10;
258
+ }
259
+
260
+ function isLikelySecretAssignment(match) {
261
+ var separator = match.search(/[:=]/);
262
+ if (separator === -1) return true;
263
+ var value = match.slice(separator + 1).trim().replace(/^(?:'|")|(?:'|")$/g, '');
264
+ return !isFixtureOrPlaceholder(value) && hasSecretLikeEntropy(value);
265
+ }
266
+
246
267
  // ─── Compiled config loader ─────────────────────────────────────────────────
247
268
 
248
269
  var MAX_CONFIG_SIZE = 256 * 1024; // 256 KiB — compiled gate config is small
@@ -317,20 +338,32 @@ function checkDestructive(command, patterns) {
317
338
 
318
339
  function checkSecrets(content, patterns) {
319
340
  var list = patterns || FALLBACK_SECRET_PATTERNS;
320
- const found = [];
341
+ const found = new Set();
321
342
  for (const pattern of list) {
322
343
  pattern.lastIndex = 0;
323
344
  const matches = content.match(pattern);
324
345
  if (matches) {
325
- for (const m of matches) found.push(redact(m));
346
+ for (const m of matches) {
347
+ if (isLikelySecretAssignment(m)) found.add(redact(m));
348
+ }
349
+ }
350
+ }
351
+ // Value-aware handling for generic field names. This is intentionally kept
352
+ // out of FALLBACK_SECRET_PATTERNS so callers cannot mistake an identifier
353
+ // match for proof that the value is a credential.
354
+ GENERIC_SECRET_ASSIGNMENT.lastIndex = 0;
355
+ const assignments = content.match(GENERIC_SECRET_ASSIGNMENT);
356
+ if (assignments) {
357
+ for (const assignment of assignments) {
358
+ if (isLikelySecretAssignment(assignment)) found.add(redact(assignment));
326
359
  }
327
360
  }
328
- if (found.length === 0) return { triggered: false };
361
+ if (found.size === 0) return { triggered: false };
329
362
  return {
330
363
  triggered: true,
331
- count: found.length,
332
- redacted: found,
333
- reason: `Potential secret(s) detected in file content (${found.length} match${found.length > 1 ? 'es' : ''}): ${found.join(', ')}. Move secrets to environment variables or a .env file (add to .gitignore).`,
364
+ count: found.size,
365
+ redacted: [...found],
366
+ reason: `Potential secret(s) detected in file content (${found.size} match${found.size > 1 ? 'es' : ''}): ${[...found].join(', ')}. Move secrets to environment variables or a .env file (add to .gitignore).`,
334
367
  };
335
368
  }
336
369
 
@@ -443,4 +443,4 @@
443
443
  "enabledMcpjsonServers": [
444
444
  "monomind"
445
445
  ]
446
- }
446
+ }
@@ -19,3 +19,18 @@ Use Monograph before broad repository search when the platform exposes the
19
19
  Monomind MCP server. Without native skills, run
20
20
  `monomind mastermind run <skill> --print` and follow the printed procedure.
21
21
  Platform tool mappings are in [references/](references/).
22
+ # monomind:start skills:claude:mastermind
23
+ # Mastermind
24
+
25
+ Load only the workflow that matches the current task:
26
+ - `mastermind` — Route a request to the relevant Mastermind workflow.
27
+ - `mastermind-plan` — Write a detailed implementation plan before changing code.
28
+ - `mastermind-review` — Review code, content, strategy, or security work.
29
+ - `mastermind-debug` — Investigate a failure or unexpected behavior before fixing it.
30
+ - `mastermind-research` — Research an open question before making a decision.
31
+ - `mastermind-execute` — Execute a written implementation plan step by step.
32
+ - `mastermind-org` — Create, run, inspect, and manage a Mastermind organization.
33
+ - `mastermind-memory` — Store, retrieve, and maintain persistent organization knowledge.
34
+
35
+ If skills cannot be loaded natively, run `monomind mastermind run <skill> --print`.
36
+ # monomind:end skills:claude:mastermind
@@ -58,3 +58,65 @@ Put multiple entries in a single `invoke_subagent` call's `Subagents` array to r
58
58
  Antigravity has **no todo / `TodoWrite` tool** (`manage_task` manages background processes — it is *not* a checklist). When a skill says to create a todo list or track tasks, maintain a **task artifact**: a markdown checklist saved with `write_to_file` (`IsArtifact: true`, `ArtifactMetadata.ArtifactType: "task"`), edited with `replace_file_content` / `multi_replace_file_content` as you go.
59
59
 
60
60
  At the start of any multi-step task, create the task artifact listing every step of your plan. As you complete each step, edit the artifact to mark it done (`- [x]`). If the plan changes, update the checklist. Keep it current — it is your source of truth for what remains; once the conversation gets long, re-read it before starting each step.
61
+ # monomind:start skills:claude:mastermind:references/antigravity-tools.md
62
+ # Antigravity CLI (`agy`) Tool Mapping
63
+
64
+ Skills speak in actions ("dispatch a subagent", "create a todo", "read a file"). On the Antigravity CLI (`agy`) these resolve to the tools below.
65
+
66
+ | Action skills request | Antigravity CLI equivalent |
67
+ |----------------------|----------------------|
68
+ | Read a file | `view_file` |
69
+ | Create a new file | `write_to_file` |
70
+ | Edit a file | `replace_file_content` |
71
+ | Edit a file in several places at once | `multi_replace_file_content` |
72
+ | Run a shell command | `run_command` |
73
+ | Search file contents | `grep_search` |
74
+ | Find files by name / list a directory | `list_dir` (no dedicated glob tool — combine `list_dir` with `grep_search`) |
75
+ | Fetch a URL | `read_url_content` |
76
+ | Search the web | `search_web` |
77
+ | Pose a structured question to your human partner | `ask_question` |
78
+ | Dispatch a subagent (`Subagent (general-purpose):` template) | `invoke_subagent` with a built-in `TypeName` — `self` for full-capability work, `research` for read-only (see [Subagent support](#subagent-support)) |
79
+ | Multiple parallel dispatches | Multiple entries in one `invoke_subagent` call's `Subagents` array |
80
+ | Task tracking ("create a todo", "mark complete") | a **task artifact** — `write_to_file` with `IsArtifact: true` and `ArtifactType: "task"` (see [Task tracking](#task-tracking)). **Not** `manage_task`, which manages background processes. |
81
+
82
+ ## Invoking a skill — read its `SKILL.md`
83
+
84
+ Antigravity surfaces every installed skill's `name` + `description` to you at the start of each session, but it has **no `Skill`/`activate_skill` tool**. To load a skill, **read its `SKILL.md` with `view_file`, setting `IsSkillFile: true`** when the skill applies — e.g. `view_file` on `.../mastermind/skills/<skill-name>/SKILL.md` with `IsSkillFile: true`.
85
+
86
+ (`IsSkillFile` is agy's own signal that you're reading a file to *execute its instructions*, not to edit or preview it — set it whenever you load a skill.)
87
+
88
+ This is the blessed skill-loading mechanism on this harness. The general rule "never read skill files manually" means "don't bypass your platform's skill-loading mechanism" — and on Antigravity, reading `SKILL.md` *is* that mechanism. Reading it honors the rule rather than breaking it.
89
+
90
+ You already know which skills exist and what they're for: their names and descriptions are in front of you at session start. When a description matches what you're about to do, read that skill's `SKILL.md` before acting.
91
+
92
+ ## Subagent support
93
+
94
+ Antigravity dispatches subagents with `invoke_subagent`, passing each one a `TypeName` in the `Subagents` array. Two `TypeName`s are **built in** — use them directly, no `define_subagent` needed:
95
+
96
+ - **`self`** — a full clone of you, with every tool you have (including `write_to_file`/`replace_file_content`/`run_command`). The safe default for general-purpose work: implementing, fixing, anything that edits files or runs commands.
97
+ - **`research`** — read-only (file reading, `grep_search`, web/URL fetch; no write or command access). Use it when you specifically want a subagent that can't make changes — investigation and read-only review.
98
+
99
+ Call `define_subagent` only for a custom system prompt or capability mix: set `enable_write_tools: true` to grant file edits **and** `run_command`, `enable_subagent_tools` for nested dispatch, `enable_mcp_tools` for MCP. Then invoke it by the name you gave it.
100
+
101
+ Skills dispatch with `Subagent (general-purpose):` and either reference a prompt-template file or supply an inline prompt. On Antigravity:
102
+
103
+ | Skill dispatch form | Antigravity equivalent |
104
+ |---------------------|----------------------|
105
+ | An implementer-style template (writes code, runs tests) | Fill the template, then `invoke_subagent` with `TypeName: "self"` and the filled prompt |
106
+ | A read-only reviewer template (`mastermind:review`) | `invoke_subagent` with `TypeName: "research"` and the filled review template |
107
+ | Inline prompt (no template referenced) | `invoke_subagent` with `TypeName: "self"` (or `"research"` if the task only reads) and your inline prompt |
108
+
109
+ ### Prompt filling
110
+
111
+ Skills provide prompt templates with placeholders like `{WHAT_WAS_IMPLEMENTED}` or `[FULL TEXT of task]`. Fill all placeholders before passing the complete prompt to `invoke_subagent`. The prompt template itself contains the agent's role, review criteria, and expected output format — the subagent will follow it.
112
+
113
+ ### Parallel dispatch
114
+
115
+ Put multiple entries in a single `invoke_subagent` call's `Subagents` array to run independent subagent work in parallel. Keep dependent tasks sequential, but do not serialize independent subagent tasks just to preserve a simpler history.
116
+
117
+ ## Task tracking
118
+
119
+ Antigravity has **no todo / `TodoWrite` tool** (`manage_task` manages background processes — it is *not* a checklist). When a skill says to create a todo list or track tasks, maintain a **task artifact**: a markdown checklist saved with `write_to_file` (`IsArtifact: true`, `ArtifactMetadata.ArtifactType: "task"`), edited with `replace_file_content` / `multi_replace_file_content` as you go.
120
+
121
+ At the start of any multi-step task, create the task artifact listing every step of your plan. As you complete each step, edit the artifact to mark it done (`- [x]`). If the plan changes, update the checklist. Keep it current — it is your source of truth for what remains; once the conversation gets long, re-read it before starting each step.
122
+ # monomind:end skills:claude:mastermind:references/antigravity-tools.md
@@ -48,3 +48,55 @@ For path-scoped rules and larger-project organization, see `.claude/rules/` (rul
48
48
  ## Personal skills directory
49
49
 
50
50
  User-level skills live at **`~/.claude/skills/`**. Each skill is a subdirectory containing a `SKILL.md` (with `name` and `description` frontmatter) plus any supporting files. Claude Code does not currently recognize the cross-runtime `~/.agents/skills/` path that Codex, Copilot CLI, and Gemini CLI read; if you're relying on cross-runtime support in the future, verify against the official skills docs.
51
+ # monomind:start skills:claude:mastermind:references/claude-code-tools.md
52
+ # Claude Code Tool Mapping
53
+
54
+ Skills speak in actions ("dispatch a subagent", "create a todo", "read a file"). On Claude Code these resolve to the tools below.
55
+
56
+ ## Tools
57
+
58
+ | Action skills request | Claude Code tool |
59
+ |----------------------|------------------|
60
+ | Read a file | `Read` |
61
+ | Create a new file | `Write` |
62
+ | Edit a file | `Edit` |
63
+ | Run a shell command | `Bash` |
64
+ | Search file contents | `Grep` |
65
+ | Find files by name | `Glob` |
66
+ | Fetch a URL | `WebFetch` |
67
+ | Search the web | `WebSearch` |
68
+ | Invoke a skill | `Skill` |
69
+ | Dispatch a subagent (`Subagent (general-purpose):` template) | `Agent` (older releases named this `Task`) |
70
+ | Multiple parallel dispatches | Multiple `Agent` calls in one response |
71
+ | Task tracking ("create a todo", "mark complete") | `TaskCreate`, `TaskUpdate`, `TaskList`, `TaskGet`; `TodoWrite` in `claude -p` / Agent SDK unless `CLAUDE_CODE_ENABLE_TASKS=1` is set |
72
+ | Background-process / subagent lifecycle (read output, cancel) | `TaskOutput`, `TaskStop` — these are distinct from the todo tools above and apply to running shells, agents, and remote sessions |
73
+
74
+ ## Instructions file
75
+
76
+ When a skill mentions "your instructions file", on Claude Code this is **`CLAUDE.md`**. Claude Code walks up the directory tree from the current working directory and concatenates every `CLAUDE.md` and `CLAUDE.local.md` it finds along the way. Standard locations:
77
+
78
+ | Scope | Location |
79
+ |-------|----------|
80
+ | Project (team-shared) | `./CLAUDE.md` or `./.claude/CLAUDE.md` |
81
+ | User global | `~/.claude/CLAUDE.md` |
82
+ | Local-private (gitignored) | `./CLAUDE.local.md` |
83
+ | Managed policy (org-wide) | `/Library/Application Support/ClaudeCode/CLAUDE.md` (macOS), `/etc/claude-code/CLAUDE.md` (Linux/WSL), `C:\Program Files\ClaudeCode\CLAUDE.md` (Windows) |
84
+
85
+ CLAUDE.md files can pull in additional content with `@path/to/file` imports (relative or absolute, max five hops deep). Subdirectory `CLAUDE.md` files are also discovered automatically and loaded on-demand when Claude Code reads files in those subdirectories.
86
+
87
+ Claude Code does **not** read `AGENTS.md` directly. If a project already maintains `AGENTS.md` for other agents, import it from `CLAUDE.md` so both runtimes share the same instructions:
88
+
89
+ ```markdown
90
+ @AGENTS.md
91
+
92
+ ## Claude Code
93
+
94
+ (Claude-Code-specific instructions go here.)
95
+ ```
96
+
97
+ For path-scoped rules and larger-project organization, see `.claude/rules/` (rules can be scoped to specific files via `paths` frontmatter and load on demand).
98
+
99
+ ## Personal skills directory
100
+
101
+ User-level skills live at **`~/.claude/skills/`**. Each skill is a subdirectory containing a `SKILL.md` (with `name` and `description` frontmatter) plus any supporting files. Claude Code does not currently recognize the cross-runtime `~/.agents/skills/` path that Codex, Copilot CLI, and Gemini CLI read; if you're relying on cross-runtime support in the future, verify against the official skills docs.
102
+ # monomind:end skills:claude:mastermind:references/claude-code-tools.md
@@ -62,3 +62,69 @@ When the sandbox blocks branch/push operations (detached HEAD in an externally m
62
62
  - **"Hand off to local"** — transfers work to the user's local checkout
63
63
 
64
64
  The agent can still run tests, stage files, and output suggested branch names, commit messages, and PR descriptions for the user to copy.
65
+ # monomind:start skills:claude:mastermind:references/codex-tools.md
66
+ # Codex Tool Mapping
67
+
68
+ Skills speak in actions ("dispatch a subagent", "create a todo", "read a file"). On Codex these resolve to the tools below.
69
+
70
+ | Action skills request | Codex equivalent |
71
+ |----------------------|------------------|
72
+ | Read a file | `shell` (e.g., `cat`, `head`, `tail`) — Codex reads files via shell |
73
+ | Create / edit / delete a file | `apply_patch` (structured diff for create, update, delete) |
74
+ | Run a shell command | `shell` |
75
+ | Search file contents | `shell` (e.g., `grep`, `rg`) |
76
+ | Find files by name | `shell` (e.g., `find`, `ls`) |
77
+ | Fetch a URL | `shell` with `curl` / `wget` — Codex has no native fetch tool |
78
+ | Search the web | `web_search` (enabled by default; configurable in `config.toml` via the top-level `web_search` setting — `live`, `cached`, or `disabled`) |
79
+ | Invoke a skill | Skills load natively — just follow the instructions |
80
+ | Dispatch a subagent (`Subagent (general-purpose):` template) | `spawn_agent` (see [Subagent dispatch requires multi-agent support](#subagent-dispatch-requires-multi-agent-support)) |
81
+ | Multiple parallel dispatches | Multiple `spawn_agent` calls in one response |
82
+ | Wait for subagent result | `wait_agent` |
83
+ | Free up subagent slot when done | `close_agent` |
84
+ | Task tracking ("create a todo", "mark complete") | `update_plan` |
85
+
86
+ ## Instructions file
87
+
88
+ When a skill mentions "your instructions file", on Codex this is **`AGENTS.md`** at the project root. Codex also reads `~/.codex/AGENTS.md` for global context, and an `AGENTS.override.md` (in the project tree or `~/.codex/`) takes precedence when present. Codex walks from the project root down to the current working directory, concatenating `AGENTS.md` files it finds along the way, up to `project_doc_max_bytes` (32 KiB by default).
89
+
90
+ ## Personal skills directory
91
+
92
+ User-level skills live at **`$CODEX_HOME/skills/`** (default `~/.codex/skills/`). Codex also reads the cross-runtime path **`~/.agents/skills/`** (shared with Copilot CLI and Gemini CLI). When both directories exist at the same scope, Codex loads them both as separate skill catalogs. Each skill is a subdirectory containing a `SKILL.md` (with `name` and `description` frontmatter).
93
+
94
+ ## Subagent dispatch requires multi-agent support
95
+
96
+ Add to your Codex config (`~/.codex/config.toml`):
97
+
98
+ ```toml
99
+ [features]
100
+ multi_agent = true
101
+ ```
102
+
103
+ This enables `spawn_agent`, `wait_agent`, and `close_agent` for skills like `mastermind:taskdev` and `mastermind:review`.
104
+
105
+ Legacy note: Codex builds before `rust-v0.115.0` exposed spawned-agent waiting as `wait`. Current Codex uses `wait_agent` for spawned agents. The `wait` name now belongs to code-mode `exec/wait`, which resumes a yielded exec cell by `cell_id`; it is not the spawned-agent result tool.
106
+
107
+ ## Environment Detection
108
+
109
+ Skills that create worktrees or finish branches should detect their environment with read-only git commands before proceeding:
110
+
111
+ ```bash
112
+ GIT_DIR=$(cd "$(git rev-parse --git-dir)" 2>/dev/null && pwd -P)
113
+ GIT_COMMON=$(cd "$(git rev-parse --git-common-dir)" 2>/dev/null && pwd -P)
114
+ BRANCH=$(git branch --show-current)
115
+ ```
116
+
117
+ - `GIT_DIR != GIT_COMMON` → already in a linked worktree (skip creation)
118
+ - `BRANCH` empty → detached HEAD (cannot branch/push/PR from sandbox)
119
+
120
+ See `mastermind:worktree` Step 0 and `mastermind:finish` Step 1 for how each skill uses these signals.
121
+
122
+ ## Codex App Finishing
123
+
124
+ When the sandbox blocks branch/push operations (detached HEAD in an externally managed worktree), the agent commits all work and informs the user to use the App's native controls:
125
+
126
+ - **"Create branch"** — names the branch, then commit/push/PR via App UI
127
+ - **"Hand off to local"** — transfers work to the user's local checkout
128
+
129
+ The agent can still run tests, stage files, and output suggested branch names, commit messages, and PR descriptions for the user to copy.
130
+ # monomind:end skills:claude:mastermind:references/codex-tools.md
@@ -47,3 +47,54 @@ Copilot CLI supports persistent async shell sessions:
47
47
  | `sql` | Query the session's SQLite database (todos, metadata) |
48
48
  | `fetch_copilot_cli_documentation` | Look up Copilot CLI documentation |
49
49
  | GitHub MCP tools (`github-mcp-server-*`) | Native GitHub API access (issues, PRs, code search) |
50
+ # monomind:start skills:claude:mastermind:references/copilot-tools.md
51
+ # Copilot CLI Tool Mapping
52
+
53
+ Skills speak in actions ("dispatch a subagent", "create a todo", "read a file"). On Copilot CLI these resolve to the tools below.
54
+
55
+ | Action skills request | Copilot CLI equivalent |
56
+ |----------------------|----------------------|
57
+ | Read a file | `view` |
58
+ | Create / edit / delete a file | `apply_patch` (Copilot CLI has no separate create/edit/write tools) |
59
+ | Run a shell command | `bash` |
60
+ | Search file contents | `rg` (ripgrep; Copilot CLI does not expose a `grep` tool) |
61
+ | Find files by name | `glob` |
62
+ | Fetch a URL | `web_fetch` |
63
+ | Search the web | `web_search` |
64
+ | Invoke a skill | `skill` |
65
+ | Dispatch a subagent (`Subagent (general-purpose):` template) | `task` with `agent_type: "general-purpose"` (other accepted types: `explore`, `task`, `code-review`, `research`, `configure-copilot`) |
66
+ | Multiple parallel dispatches | Multiple `task` calls in one response |
67
+ | Subagent status/output/control | `read_agent`, `list_agents`, `write_agent` |
68
+ | Task tracking ("create a todo", "mark complete") | `update_todo` |
69
+ | Enter / exit plan mode | No equivalent — stay in the main session |
70
+
71
+ ## Instructions file
72
+
73
+ When a skill mentions "your instructions file", on Copilot CLI this is **`AGENTS.md`** at the repository root. If both `AGENTS.md` and `.github/copilot-instructions.md` are present, Copilot reads both.
74
+
75
+ ## Personal skills directory
76
+
77
+ User-level skills live at **`~/.copilot/skills/`**. Copilot CLI also recognizes the cross-runtime alias **`~/.agents/skills/`**, which is shared with Codex and Gemini CLI. Each skill is a subdirectory containing a `SKILL.md` (with `name` and `description` frontmatter).
78
+
79
+ ## Async shell sessions
80
+
81
+ Copilot CLI supports persistent async shell sessions:
82
+
83
+ | Tool | Purpose |
84
+ |------|---------|
85
+ | `bash` with `mode: "async"` (and optionally `detach: true`) | Start a long-running command in the background; returns a `shellId` |
86
+ | `write_bash` | Send input to a running async session |
87
+ | `read_bash` | Read output from an async session |
88
+ | `stop_bash` | Terminate an async session |
89
+ | `list_bash` | List all active shell sessions |
90
+
91
+ ## Additional Copilot CLI tools
92
+
93
+ | Tool | Purpose |
94
+ |------|---------|
95
+ | `store_memory` | Persist facts about the codebase for future sessions |
96
+ | `report_intent` | Update the UI status line with current intent |
97
+ | `sql` | Query the session's SQLite database (todos, metadata) |
98
+ | `fetch_copilot_cli_documentation` | Look up Copilot CLI documentation |
99
+ | GitHub MCP tools (`github-mcp-server-*`) | Native GitHub API access (issues, PRs, code search) |
100
+ # monomind:end skills:claude:mastermind:references/copilot-tools.md
@@ -61,3 +61,68 @@ These tools are unique to Gemini CLI:
61
61
  | `complete_task` | Signal that a Gemini subagent has completed and return its result to the parent agent |
62
62
  | `tracker_create_task`, `tracker_update_task`, `tracker_get_task`, `tracker_list_tasks`, `tracker_add_dependency`, `tracker_visualize` | Rich task tracker with dependency and visualization support |
63
63
  | `read_mcp_resource`, `list_mcp_resources` | MCP resource access |
64
+ # monomind:start skills:claude:mastermind:references/gemini-tools.md
65
+ # Gemini CLI Tool Mapping
66
+
67
+ Skills speak in actions ("dispatch a subagent", "create a todo", "read a file"). On Gemini CLI these resolve to the tools below.
68
+
69
+ | Action skills request | Gemini CLI equivalent |
70
+ |----------------------|----------------------|
71
+ | Read a file | `read_file` |
72
+ | Read multiple files at once | `read_many_files` |
73
+ | Create a new file | `write_file` |
74
+ | Edit a file | `replace` |
75
+ | Run a shell command | `run_shell_command` |
76
+ | Search file contents | `grep_search` |
77
+ | Find files by name | `glob` |
78
+ | List files and subdirectories | `list_directory` |
79
+ | Fetch a URL | `web_fetch` |
80
+ | Search the web | `google_web_search` |
81
+ | Invoke a skill | `activate_skill` |
82
+ | Dispatch a subagent (`Subagent (general-purpose):` template) | `invoke_agent` with `agent_name: "generalist"` (invocable via `@generalist` chat syntax — see [Subagent support](#subagent-support)) |
83
+ | Multiple parallel dispatches | Multiple `invoke_agent` calls in the same response |
84
+ | Task tracking ("create a todo", "mark complete") | `write_todos` (statuses: pending, in_progress, completed, cancelled, blocked) |
85
+
86
+ ## Instructions file
87
+
88
+ When a skill mentions "your instructions file", on Gemini CLI this is **`GEMINI.md`**. Gemini CLI loads `GEMINI.md` hierarchically: global at `~/.gemini/GEMINI.md`, project-level files in workspace directories and their ancestors, and sub-directory `GEMINI.md` files when a tool accesses files in those directories.
89
+
90
+ ## Personal skills directory
91
+
92
+ User-level skills live at **`~/.gemini/skills/`**, with **`~/.agents/skills/`** as a cross-runtime alias (shared with Codex and Copilot CLI). When both directories exist at the same scope, `.agents/skills/` takes precedence. Each skill is a subdirectory containing a `SKILL.md` (with `name` and `description` frontmatter).
93
+
94
+ ## Subagent support
95
+
96
+ Gemini CLI dispatches subagents through the `invoke_agent` tool, which takes `agent_name` and `prompt` parameters. The same dispatch is also surfaced as a chat-syntax shortcut: typing `@generalist <prompt>` is equivalent to calling `invoke_agent` with `agent_name: "generalist"`. Built-in agent names include `generalist`, `cli_help`, `codebase_investigator`, and (with browser tooling enabled) `browser_agent`.
97
+
98
+ Skills dispatch with `Subagent (general-purpose):` and either reference a prompt-template file or supply an inline prompt. On Gemini CLI:
99
+
100
+ | Skill dispatch form | Gemini CLI equivalent |
101
+ |---------------------|----------------------|
102
+ | References an implementer template (writes code, runs tests) | Fill the template, then `invoke_agent` with `agent_name: "generalist"` and the filled prompt |
103
+ | References a code-reviewer template (`mastermind:review`) | `invoke_agent` with `agent_name: "generalist"` and the filled review template |
104
+ | Inline prompt (no template referenced) | `invoke_agent` with `agent_name: "generalist"` and your inline prompt |
105
+
106
+ ### Prompt filling
107
+
108
+ Skills provide prompt templates with placeholders like `{WHAT_WAS_IMPLEMENTED}` or `[FULL TEXT of task]`. Fill all placeholders before passing the complete prompt to `invoke_agent`. The prompt template itself contains the agent's role, review criteria, and expected output format — the subagent will follow it.
109
+
110
+ ### Parallel dispatch
111
+
112
+ Gemini CLI supports parallel subagent dispatch. Issue multiple `invoke_agent` calls in the same response to run independent subagent work in parallel. Keep dependent tasks sequential, but do not serialize independent subagent tasks just to preserve a simpler history.
113
+
114
+ ## Additional Gemini CLI tools
115
+
116
+ These tools are unique to Gemini CLI:
117
+
118
+ | Tool | Purpose |
119
+ |------|---------|
120
+ | `save_memory` (legacy) | Persist facts across sessions when `experimental.memoryV2 = false` |
121
+ | `get_internal_docs` | Look up Gemini CLI's bundled documentation |
122
+ | `ask_user` | Pose structured questions to the user (text / single-select / multi-select) |
123
+ | `enter_plan_mode` / `exit_plan_mode` | Switch into and out of read-only plan mode |
124
+ | `update_topic` | Update the current conversation's topic / strategic-intent metadata |
125
+ | `complete_task` | Signal that a Gemini subagent has completed and return its result to the parent agent |
126
+ | `tracker_create_task`, `tracker_update_task`, `tracker_get_task`, `tracker_list_tasks`, `tracker_add_dependency`, `tracker_visualize` | Rich task tracker with dependency and visualization support |
127
+ | `read_mcp_resource`, `list_mcp_resources` | MCP resource access |
128
+ # monomind:end skills:claude:mastermind:references/gemini-tools.md
@@ -26,3 +26,33 @@ Pi core does not ship a standard subagent tool. The `pi-subagents` package is a
26
26
  ## Task lists
27
27
 
28
28
  Pi core does not ship a standard task-list tool. If a todo/task extension is installed, use its documented tool. Otherwise use Mastermind plan files, checklists in Markdown, or a repo-local `TODO.md` for task tracking. Older docs may refer to `TodoWrite`; treat that as the task-tracking action above.
29
+ # monomind:start skills:claude:mastermind:references/pi-tools.md
30
+ # Pi Tool Mapping
31
+
32
+ Skills speak in actions ("dispatch a subagent", "create a todo", "read a file"). On Pi these resolve to the tools below.
33
+
34
+ | Action skills request | Pi equivalent |
35
+ | --- | --- |
36
+ | Invoke a skill | Pi native skills: load the relevant `SKILL.md` with `read`, or let the human use `/skill:name` |
37
+ | Read a file | `read` |
38
+ | Create a file | `write` |
39
+ | Edit a file | `edit` |
40
+ | Run a shell command | `bash` |
41
+ | Search file contents | `grep` when active; otherwise `bash` with `rg`/`grep` |
42
+ | Find files by name | `find` or `bash` with shell globs |
43
+ | List files and subdirectories | `ls` when active; otherwise `bash` with `ls` |
44
+ | Dispatch a subagent (`Subagent (general-purpose):` template) | Use an installed subagent tool such as `subagent` from `pi-subagents` if available |
45
+ | Task tracking ("create a todo", "mark complete") | Use an installed todo/task tool if available, otherwise track tasks in the plan or `TODO.md` |
46
+
47
+ ## Skills
48
+
49
+ Pi discovers skills from configured skill directories and installed Pi packages. A Mastermind Pi package should expose `skills/` through its `pi.skills` manifest entry. Pi does not expose Claude Code's `Skill` tool, but the agent should still follow the Mastermind rule: when a skill applies, load and follow it before responding.
50
+
51
+ ## Subagents
52
+
53
+ Pi core does not ship a standard subagent tool. The `pi-subagents` package is a strong optional companion and provides a `subagent` tool with single-agent, chain, parallel, async, forked-context, and resume/status workflows. If no subagent tool is available, do not fabricate `Task` calls; execute sequentially in the current session or explain that the optional subagent capability is not installed.
54
+
55
+ ## Task lists
56
+
57
+ Pi core does not ship a standard task-list tool. If a todo/task extension is installed, use its documented tool. Otherwise use Mastermind plan files, checklists in Markdown, or a repo-local `TODO.md` for task tracking. Older docs may refer to `TodoWrite`; treat that as the task-tracking action above.
58
+ # monomind:end skills:claude:mastermind:references/pi-tools.md
@@ -71,11 +71,19 @@ Exactly one role must have `reports_to: null`. If the user's role list has none,
71
71
 
72
72
  A role is **persona-based** if its title is a named real person, a well-known fictional character, or a celebrity/historical figure referred to by name. An org is persona-based if ≥50% of its roles are character names, or the goal/prompt contains `panel`, `debate`, `simulation`, `roleplay`, `celebrity`, `character`, `virtual [name]`, `impersonate`, `as [name]`.
73
73
 
74
- Persona roles work the same as any other role in v2 — there is no separate `agent_type`/subagent registry to resolve against. Put the character depth directly into `responsibilities` (the only field `buildRolePrompt` — `orgrt/session.ts:27-39` — actually feeds into the agent's role briefing): write 3-6 specific, voice-defining responsibilities drawn from the character's known career, positions, and communication style, not generic duties. For a living public figure, base it on documented public behavior — do not invent positions they haven't taken.
74
+ Persona roles work the same as any other role in v2 — there is no separate `agent_type`/subagent registry to resolve against. Put the character depth directly into `responsibilities` (fed into the agent's role briefing by `buildRolePrompt` in `orgrt/session.ts`, alongside `ui.icon`'s built-in archetype content and `instructions_file`, if either is set — see Step 2.3): write 3-6 specific, voice-defining responsibilities drawn from the character's known career, positions, and communication style, not generic duties. For a living public figure, base it on documented public behavior — do not invent positions they haven't taken.
75
75
 
76
76
  ---
77
77
 
78
- ## Step 2.3 — Optional Per-Role Settings
78
+ ## Step 2.3 — Built-in Archetype Best-Practices (fully optional — skip freely)
79
+
80
+ createorg does **not** need to use these bundled archetypes for anything — a role built entirely from `responsibilities` is complete and normal. This step is a shortcut to reach for only when a role you're scaffolding happens to match one of the ~111 bundled role archetypes (the same set the MonoAgent Org Designer's palette offers — coder, security-auditor, devops-automator, sales-engineer, and so on; see `src/orgrt/role-skills/` for the full list of ids). When it does, set that role's `ui.icon` to the matching archetype id: `"ui": { "icon": "security-auditor" }`. At session start, `buildRolePrompt` then injects that archetype's bundled best-practices document into the role's briefing — real, researched guidance (tool checklists, common pitfalls, domain-specific techniques) for free, with zero extra fields to author. This is purely additive to `responsibilities` (which still carries the role's specific duties for THIS org) — don't duplicate general best-practices guidance into `responsibilities` when a matching `ui.icon` would supply it automatically; do still use `responsibilities` for anything specific to this particular org/goal.
81
+
82
+ Skip `ui.icon` whenever there isn't a clean match — an unmatched or omitted `icon` is normal and not an error, it just means the role gets no bundled content (still fine; `responsibilities` alone is enough for most roles). Never force-fit a role into a nearby-but-wrong archetype just to get the bundled content.
83
+
84
+ ---
85
+
86
+ ## Step 2.4 — Optional Per-Role Settings
79
87
 
80
88
  For any role that needs non-default behavior, set (all optional — omit to inherit defaults):
81
89
 
@@ -125,7 +133,7 @@ Produce an org config object matching `OrgDefSchema` exactly:
125
133
 
126
134
  `status` starts `"stopped"` regardless of whether `schedule` is set — the org does not run until `monomind org run <name>` (one-shot) or `monomind org serve` (picks up any org whose `schedule` is set) is invoked.
127
135
 
128
- Only include `adapter_config`, `provider`, or `policy` on a role when Step 2.3 populated them for it — leave them out entirely rather than writing empty objects.
136
+ Only include `adapter_config`, `provider`, `policy`, or `ui` on a role when Step 2.3/2.4 populated them for it — leave them out entirely rather than writing empty objects.
129
137
 
130
138
  ---
131
139