moflo 4.9.20 → 4.9.22

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 (240) hide show
  1. package/.claude/agents/analysis/analyze-code-quality.md +0 -121
  2. package/.claude/agents/analysis/code-analyzer.md +5 -26
  3. package/.claude/agents/architecture/system-design/arch-system-design.md +0 -119
  4. package/.claude/agents/base-template-generator.md +0 -1
  5. package/.claude/agents/core/coder.md +0 -22
  6. package/.claude/agents/core/planner.md +0 -16
  7. package/.claude/agents/core/researcher.md +0 -16
  8. package/.claude/agents/core/reviewer.md +0 -17
  9. package/.claude/agents/core/tester.md +0 -19
  10. package/.claude/agents/custom/test-long-runner.md +0 -2
  11. package/.claude/agents/development/dev-backend-api.md +0 -167
  12. package/.claude/agents/development/dev-database.md +43 -0
  13. package/.claude/agents/development/dev-frontend.md +42 -0
  14. package/.claude/agents/devops/ci-cd/ops-cicd-github.md +0 -112
  15. package/.claude/agents/documentation/api-docs/docs-api-openapi.md +0 -111
  16. package/.claude/agents/security/security-auditor.md +45 -0
  17. package/.claude/guidance/shipped/moflo-agent-rules.md +172 -0
  18. package/.claude/guidance/shipped/moflo-claude-swarm-cohesion.md +73 -265
  19. package/.claude/guidance/shipped/moflo-cli-reference.md +6 -6
  20. package/.claude/guidance/shipped/moflo-core-guidance.md +66 -184
  21. package/.claude/guidance/shipped/moflo-cross-platform.md +1 -1
  22. package/.claude/guidance/shipped/moflo-error-handling.md +3 -3
  23. package/.claude/guidance/shipped/moflo-guidance-rules.md +17 -7
  24. package/.claude/guidance/shipped/moflo-memory-strategy.md +76 -182
  25. package/.claude/guidance/shipped/moflo-memorydb-maintenance.md +6 -8
  26. package/.claude/guidance/shipped/moflo-settings-injection.md +7 -9
  27. package/.claude/guidance/shipped/moflo-source-hygiene.md +5 -5
  28. package/.claude/guidance/shipped/moflo-spell-connectors.md +3 -4
  29. package/.claude/guidance/shipped/moflo-spell-custom-steps.md +3 -4
  30. package/.claude/guidance/shipped/moflo-spell-engine.md +40 -162
  31. package/.claude/guidance/shipped/moflo-spell-runner.md +134 -0
  32. package/.claude/guidance/shipped/moflo-spell-sandboxing.md +10 -57
  33. package/.claude/guidance/shipped/moflo-spell-troubleshooting.md +149 -0
  34. package/.claude/guidance/shipped/moflo-subagents.md +43 -114
  35. package/.claude/guidance/shipped/moflo-task-icons.md +4 -4
  36. package/.claude/guidance/shipped/moflo-user-facing-language.md +3 -3
  37. package/.claude/guidance/shipped/moflo-verbose-command-filtering.md +3 -3
  38. package/.claude/guidance/shipped/moflo-yaml-reference.md +4 -5
  39. package/.claude/helpers/gate.cjs +192 -15
  40. package/.claude/helpers/prompt-hook.mjs +4 -38
  41. package/.claude/helpers/simplify-classify.cjs +32 -11
  42. package/.claude/helpers/subagent-bootstrap.json +1 -1
  43. package/.claude/helpers/subagent-start.cjs +1 -1
  44. package/.claude/skills/connector-builder/SKILL.md +42 -429
  45. package/.claude/skills/connector-builder/templates/connector.md +189 -0
  46. package/.claude/skills/connector-builder/templates/step-command.md +176 -0
  47. package/.claude/skills/eldar/SKILL.md +7 -7
  48. package/.claude/skills/fl/SKILL.md +3 -3
  49. package/.claude/skills/fl/execution-modes.md +39 -16
  50. package/.claude/skills/fl/phases.md +3 -3
  51. package/.claude/skills/{simplify → flo-simplify}/SKILL.md +11 -11
  52. package/.claude/skills/guidance/SKILL.md +17 -9
  53. package/.claude/skills/memory-patterns/SKILL.md +1 -1
  54. package/.claude/skills/publish/SKILL.md +121 -36
  55. package/.claude/skills/reset-epic/SKILL.md +2 -2
  56. package/.claude/skills/spell-builder/SKILL.md +39 -226
  57. package/.claude/skills/spell-builder/architecture.md +1 -1
  58. package/.claude/skills/spell-builder/permissions.md +107 -0
  59. package/.claude/skills/spell-builder/preflight.md +101 -0
  60. package/.claude/skills/spell-schedule/SKILL.md +2 -3
  61. package/bin/gate.cjs +192 -15
  62. package/bin/lib/retired-files.mjs +146 -0
  63. package/bin/prompt-hook.mjs +4 -38
  64. package/bin/session-start-launcher.mjs +120 -1
  65. package/bin/setup-project.mjs +63 -69
  66. package/bin/simplify-classify.cjs +32 -11
  67. package/dist/src/cli/appliance/rvfa-builder.js +1 -1
  68. package/dist/src/cli/commands/agent.js +3 -9
  69. package/dist/src/cli/commands/doctor-checks-deep.js +4 -0
  70. package/dist/src/cli/commands/hooks.js +1 -3
  71. package/dist/src/cli/commands/index.js +2 -0
  72. package/dist/src/cli/commands/retire.js +111 -0
  73. package/dist/src/cli/hooks/reasoningbank/index.js +7 -7
  74. package/dist/src/cli/init/claudemd-generator.js +30 -33
  75. package/dist/src/cli/init/executor.js +53 -69
  76. package/dist/src/cli/init/helpers-generator.js +165 -52
  77. package/dist/src/cli/init/moflo-init.js +41 -114
  78. package/dist/src/cli/init/settings-generator.js +44 -14
  79. package/dist/src/cli/mcp-tools/agent-tools.js +9 -27
  80. package/dist/src/cli/mcp-tools/hooks-tools.js +23 -21
  81. package/dist/src/cli/memory/controllers/semantic-router.js +18 -12
  82. package/dist/src/cli/memory/sona-optimizer.js +6 -6
  83. package/dist/src/cli/neural/domain/services/learning-service.js +3 -3
  84. package/dist/src/cli/services/agent-router.js +2 -5
  85. package/dist/src/cli/services/hook-block-hash.js +11 -2
  86. package/dist/src/cli/services/hook-wiring.js +86 -3
  87. package/dist/src/cli/services/subagent-bootstrap.js +1 -1
  88. package/dist/src/cli/shared/events/example-usage.js +6 -6
  89. package/dist/src/cli/shared/hooks/task-hooks.js +8 -8
  90. package/dist/src/cli/version.js +1 -1
  91. package/package.json +3 -2
  92. package/retired-files.json +1989 -0
  93. package/scripts/post-install-bootstrap.mjs +19 -0
  94. package/src/cli/data/model-registry.json +2 -2
  95. package/.claude/agents/consensus/byzantine-coordinator.md +0 -63
  96. package/.claude/agents/consensus/crdt-synchronizer.md +0 -997
  97. package/.claude/agents/consensus/gossip-coordinator.md +0 -63
  98. package/.claude/agents/consensus/performance-benchmarker.md +0 -851
  99. package/.claude/agents/consensus/quorum-manager.md +0 -823
  100. package/.claude/agents/consensus/raft-manager.md +0 -63
  101. package/.claude/agents/consensus/security-manager.md +0 -622
  102. package/.claude/agents/data/ml/data-ml-model.md +0 -193
  103. package/.claude/agents/github/code-review-swarm.md +0 -538
  104. package/.claude/agents/github/github-modes.md +0 -172
  105. package/.claude/agents/github/issue-tracker.md +0 -311
  106. package/.claude/agents/github/multi-repo-swarm.md +0 -551
  107. package/.claude/agents/github/pr-manager.md +0 -183
  108. package/.claude/agents/github/project-board-sync.md +0 -508
  109. package/.claude/agents/github/release-manager.md +0 -360
  110. package/.claude/agents/github/release-swarm.md +0 -580
  111. package/.claude/agents/github/repo-architect.md +0 -391
  112. package/.claude/agents/github/swarm-issue.md +0 -566
  113. package/.claude/agents/github/swarm-pr.md +0 -414
  114. package/.claude/agents/github/sync-coordinator.md +0 -426
  115. package/.claude/agents/github/workflow-automation.md +0 -606
  116. package/.claude/agents/goal/code-goal-planner.md +0 -440
  117. package/.claude/agents/goal/goal-planner.md +0 -168
  118. package/.claude/agents/hive-mind/collective-intelligence-coordinator.md +0 -127
  119. package/.claude/agents/hive-mind/queen-coordinator.md +0 -198
  120. package/.claude/agents/hive-mind/scout-explorer.md +0 -233
  121. package/.claude/agents/hive-mind/swarm-memory-manager.md +0 -184
  122. package/.claude/agents/hive-mind/worker-specialist.md +0 -208
  123. package/.claude/agents/neural/safla-neural.md +0 -73
  124. package/.claude/agents/optimization/benchmark-suite.md +0 -665
  125. package/.claude/agents/optimization/load-balancer.md +0 -431
  126. package/.claude/agents/optimization/performance-monitor.md +0 -672
  127. package/.claude/agents/optimization/resource-allocator.md +0 -674
  128. package/.claude/agents/optimization/topology-optimizer.md +0 -808
  129. package/.claude/agents/reasoning/goal-planner.md +0 -67
  130. package/.claude/agents/sona/sona-learning-optimizer.md +0 -74
  131. package/.claude/agents/sparc/architecture.md +0 -472
  132. package/.claude/agents/sparc/pseudocode.md +0 -318
  133. package/.claude/agents/sparc/refinement.md +0 -525
  134. package/.claude/agents/sparc/specification.md +0 -276
  135. package/.claude/agents/specialized/mobile/spec-mobile-react-native.md +0 -225
  136. package/.claude/agents/swarm/adaptive-coordinator.md +0 -391
  137. package/.claude/agents/swarm/hierarchical-coordinator.md +0 -321
  138. package/.claude/agents/swarm/mesh-coordinator.md +0 -383
  139. package/.claude/agents/testing/production-validator.md +0 -395
  140. package/.claude/agents/testing/tdd-london-swarm.md +0 -244
  141. package/.claude/agents/v3/adr-architect.md +0 -184
  142. package/.claude/agents/v3/aidefence-guardian.md +0 -277
  143. package/.claude/agents/v3/claims-authorizer.md +0 -208
  144. package/.claude/agents/v3/collective-intelligence-coordinator.md +0 -988
  145. package/.claude/agents/v3/ddd-domain-expert.md +0 -220
  146. package/.claude/agents/v3/injection-analyst.md +0 -232
  147. package/.claude/agents/v3/memory-specialist.md +0 -987
  148. package/.claude/agents/v3/performance-engineer.md +0 -1225
  149. package/.claude/agents/v3/pii-detector.md +0 -146
  150. package/.claude/agents/v3/reasoningbank-learner.md +0 -213
  151. package/.claude/agents/v3/security-architect-aidefence.md +0 -405
  152. package/.claude/agents/v3/security-architect.md +0 -865
  153. package/.claude/agents/v3/security-auditor.md +0 -771
  154. package/.claude/agents/v3/sparc-orchestrator.md +0 -182
  155. package/.claude/agents/v3/swarm-memory-manager.md +0 -142
  156. package/.claude/agents/v3/v3-integration-architect.md +0 -205
  157. package/.claude/commands/claude-flow-help.md +0 -103
  158. package/.claude/commands/claude-flow-memory.md +0 -107
  159. package/.claude/commands/claude-flow-swarm.md +0 -205
  160. package/.claude/commands/github/README.md +0 -11
  161. package/.claude/commands/github/code-review-swarm.md +0 -514
  162. package/.claude/commands/github/code-review.md +0 -25
  163. package/.claude/commands/github/github-modes.md +0 -146
  164. package/.claude/commands/github/github-swarm.md +0 -113
  165. package/.claude/commands/github/issue-tracker.md +0 -284
  166. package/.claude/commands/github/issue-triage.md +0 -25
  167. package/.claude/commands/github/multi-repo-swarm.md +0 -519
  168. package/.claude/commands/github/pr-enhance.md +0 -26
  169. package/.claude/commands/github/pr-manager.md +0 -164
  170. package/.claude/commands/github/project-board-sync.md +0 -471
  171. package/.claude/commands/github/release-manager.md +0 -332
  172. package/.claude/commands/github/release-swarm.md +0 -544
  173. package/.claude/commands/github/repo-analyze.md +0 -25
  174. package/.claude/commands/github/repo-architect.md +0 -361
  175. package/.claude/commands/github/swarm-issue.md +0 -482
  176. package/.claude/commands/github/swarm-pr.md +0 -285
  177. package/.claude/commands/github/sync-coordinator.md +0 -294
  178. package/.claude/commands/github/workflow-automation.md +0 -442
  179. package/.claude/commands/hooks/README.md +0 -11
  180. package/.claude/commands/hooks/overview.md +0 -58
  181. package/.claude/commands/hooks/post-edit.md +0 -117
  182. package/.claude/commands/hooks/post-task.md +0 -112
  183. package/.claude/commands/hooks/pre-edit.md +0 -113
  184. package/.claude/commands/hooks/pre-task.md +0 -111
  185. package/.claude/commands/hooks/session-end.md +0 -118
  186. package/.claude/commands/hooks/setup.md +0 -103
  187. package/.claude/commands/simplify.md +0 -101
  188. package/.claude/commands/sparc/analyzer.md +0 -42
  189. package/.claude/commands/sparc/architect.md +0 -43
  190. package/.claude/commands/sparc/ask.md +0 -86
  191. package/.claude/commands/sparc/batch-executor.md +0 -44
  192. package/.claude/commands/sparc/code.md +0 -78
  193. package/.claude/commands/sparc/coder.md +0 -44
  194. package/.claude/commands/sparc/debug.md +0 -72
  195. package/.claude/commands/sparc/debugger.md +0 -44
  196. package/.claude/commands/sparc/designer.md +0 -43
  197. package/.claude/commands/sparc/devops.md +0 -98
  198. package/.claude/commands/sparc/docs-writer.md +0 -69
  199. package/.claude/commands/sparc/documenter.md +0 -44
  200. package/.claude/commands/sparc/innovator.md +0 -44
  201. package/.claude/commands/sparc/integration.md +0 -72
  202. package/.claude/commands/sparc/mcp.md +0 -106
  203. package/.claude/commands/sparc/memory-manager.md +0 -44
  204. package/.claude/commands/sparc/optimizer.md +0 -44
  205. package/.claude/commands/sparc/orchestrator.md +0 -116
  206. package/.claude/commands/sparc/post-deployment-monitoring-mode.md +0 -72
  207. package/.claude/commands/sparc/refinement-optimization-mode.md +0 -72
  208. package/.claude/commands/sparc/researcher.md +0 -44
  209. package/.claude/commands/sparc/reviewer.md +0 -44
  210. package/.claude/commands/sparc/security-review.md +0 -69
  211. package/.claude/commands/sparc/sparc-modes.md +0 -139
  212. package/.claude/commands/sparc/sparc.md +0 -99
  213. package/.claude/commands/sparc/spec-pseudocode.md +0 -69
  214. package/.claude/commands/sparc/spell-manager.md +0 -44
  215. package/.claude/commands/sparc/supabase-admin.md +0 -337
  216. package/.claude/commands/sparc/swarm-coordinator.md +0 -44
  217. package/.claude/commands/sparc/tdd.md +0 -44
  218. package/.claude/commands/sparc/tester.md +0 -44
  219. package/.claude/commands/sparc/tutorial.md +0 -68
  220. package/.claude/commands/sparc.md +0 -151
  221. package/.claude/guidance/shipped/moflo-session-start.md +0 -154
  222. package/.claude/guidance/shipped/moflo-spell-engine-architecture.md +0 -145
  223. package/.claude/skills/browser/SKILL.md +0 -204
  224. package/.claude/skills/github-code-review/SKILL.md +0 -1140
  225. package/.claude/skills/github-multi-repo/SKILL.md +0 -866
  226. package/.claude/skills/github-project-management/SKILL.md +0 -1272
  227. package/.claude/skills/github-release-management/SKILL.md +0 -1074
  228. package/.claude/skills/github-workflow-automation/SKILL.md +0 -1060
  229. package/.claude/skills/hive-mind-advanced/SKILL.md +0 -712
  230. package/.claude/skills/hooks-automation/SKILL.md +0 -1193
  231. package/.claude/skills/pair-programming/SKILL.md +0 -1202
  232. package/.claude/skills/performance-analysis/SKILL.md +0 -563
  233. package/.claude/skills/skill-builder/SKILL.md +0 -910
  234. package/.claude/skills/sparc-methodology/SKILL.md +0 -904
  235. package/.claude/skills/stream-chain/SKILL.md +0 -563
  236. package/.claude/skills/swarm-advanced/SKILL.md +0 -811
  237. package/.claude/skills/swarm-orchestration/SKILL.md +0 -179
  238. package/.claude/skills/verification-quality/SKILL.md +0 -649
  239. package/.claude/skills/worker-benchmarks/skill.md +0 -135
  240. package/.claude/skills/worker-integration/skill.md +0 -154
@@ -0,0 +1,149 @@
1
+ # Spell Troubleshooting — Sandbox, Network, and Permission Failures
2
+
3
+ **Purpose:** Diagnostic playbook for spell step failures that look like environmental issues but are actually capability/sandbox boundaries. Reference this when a step "should work" but produces DNS errors, silent no-ops, or confusing downstream failures. Pair with `.claude/guidance/moflo-spell-sandboxing.md` for the underlying enforcement model.
4
+
5
+ ---
6
+
7
+ ## Bash Step Fails With DNS / SSH Resolution Errors
8
+
9
+ The single most common spell failure mode. The step works fine in your normal shell, then fails inside a spell with what looks like a network/DNS problem.
10
+
11
+ ### Typical Error Messages
12
+
13
+ - `ssh: Could not resolve hostname github.com: Temporary failure in name resolution`
14
+ - `fatal: Could not read from remote repository.`
15
+ - `curl: (6) Could not resolve host ...`
16
+ - `getaddrinfo ENOTFOUND ...`
17
+ - Any other DNS/connection failure where the **same command works in your normal shell**.
18
+
19
+ ### Tell-Tale Clue
20
+
21
+ The error mentions `Temporary failure in name resolution` — a **glibc-specific** wording. That means the step is running inside a Linux sandbox (`bwrap` on Linux / WSL), **not** your outer shell. Git Bash or PowerShell won't produce that exact message.
22
+
23
+ ### Root Cause
24
+
25
+ `src/cli/spells/core/bwrap-sandbox.ts` isolates the network by default:
26
+
27
+ ```ts
28
+ if (!hasNet && !needsToolHomeAccess(options.permissionLevel)) {
29
+ args.push('--unshare-net'); // ← no network, no DNS
30
+ }
31
+ ```
32
+
33
+ A bash step gets network access **only when one of these is true**:
34
+
35
+ 1. The step declares a `net` capability, **or**
36
+ 2. The step's `permissionLevel` is `elevated` or `autonomous`.
37
+
38
+ If neither applies, bwrap runs the command in a namespace with `--unshare-net`, and DNS silently fails. **There is no log line announcing the network was taken away** — you just see the command's own DNS error.
39
+
40
+ ### Fix
41
+
42
+ For any bash step that does `git pull` / `git push` / `git fetch`, `gh` API calls, `curl`, `npm install`, or any other outbound network call:
43
+
44
+ ```yaml
45
+ - id: create-branch
46
+ type: bash
47
+ permissionLevel: elevated # ← grants network in bwrap
48
+ config:
49
+ command: "git pull origin main && ..."
50
+ ```
51
+
52
+ Or declare the `net` capability explicitly if the step doesn't need the full `elevated` profile. **Note:** `bash-command.ts` must include `net` in its declared capabilities for the engine to accept the grant — otherwise you'll see:
53
+
54
+ ```
55
+ Capability violation: step type "bash" does not declare capability "net"
56
+ ```
57
+
58
+ ### Quick Diagnosis Checklist
59
+
60
+ When a spell's bash step can't reach the network, walk through these in order:
61
+
62
+ | # | Question | If yes |
63
+ |---|----------|--------|
64
+ | 1 | Does the same command work in your outer shell? | Sandbox-related, not config — go to #2 |
65
+ | 2 | Is the error wording glibc-style (`Temporary failure in name resolution`)? | bwrap is involved — go to #3 |
66
+ | 3 | Does the failing step have `permissionLevel: elevated` or a `net` capability? | If no, add one and retry |
67
+ | 4 | Does the multi-command step start with `set -e`? | If no, add it (see § Multi-Command `set -e` Traps below) |
68
+
69
+ ---
70
+
71
+ ## Multi-Command `set -e` Traps
72
+
73
+ A bash step that chains multiple statements without `set -e` will **return exit code 0 even when the real work failed**, producing confusing errors several steps later.
74
+
75
+ ### Symptom
76
+
77
+ A spell step appears to succeed (`exitCode: 0`), but a later step fails with something that should have been impossible — typically:
78
+
79
+ - `pathspec did not match` on a branch that was never created
80
+ - `nothing to commit` when you expected staged changes
81
+ - File operations on paths that don't exist
82
+
83
+ ### Root Cause
84
+
85
+ Without `set -e`, a multi-command bash step like this:
86
+
87
+ ```yaml
88
+ - id: prep-branch
89
+ type: bash
90
+ config:
91
+ command: "git pull origin main && git checkout -b feat/x && git stash pop || true"
92
+ ```
93
+
94
+ …will mask a failure in `git pull` (e.g. blocked by `--unshare-net`) because the trailing `git stash pop || true` returns 0 for the whole step. Downstream steps assume the branch exists and produce the confusing `pathspec` error.
95
+
96
+ ### Fix
97
+
98
+ Lead every multi-command bash step with `set -e`:
99
+
100
+ ```yaml
101
+ - id: prep-branch
102
+ type: bash
103
+ permissionLevel: elevated
104
+ config:
105
+ command: |
106
+ set -e
107
+ git pull origin main
108
+ git checkout -b feat/x
109
+ git stash pop || true # only this one is allowed to fail
110
+ ```
111
+
112
+ `set -e` makes the shell exit on any non-zero status, surfacing the real failure at the right step.
113
+
114
+ ---
115
+
116
+ ## Capability Violation Errors
117
+
118
+ When a spell YAML restricts capabilities a command doesn't declare, or grants new types beyond the command's defaults, the runner blocks execution before the step runs.
119
+
120
+ | Error | Meaning | Fix |
121
+ |-------|---------|-----|
122
+ | `Capability violation: step type "X" does not declare capability "Y"` | YAML restricts a capability the step command doesn't list | Add `Y` to the step command's `capabilities` array (in code), or remove the restriction from YAML |
123
+ | `CAPABILITY_DENIED at runtime` | A command tried to access a path/host outside its effective scope | Tighten the command, or widen the YAML capability scope to include the resource |
124
+
125
+ See `.claude/guidance/moflo-spell-sandboxing.md` § Enforcement at Runtime for the two-layer enforcement model.
126
+
127
+ ---
128
+
129
+ ## Step Silently No-Ops
130
+
131
+ A step appears to run (`exitCode: 0`), produces no output, and downstream steps act as if no work happened.
132
+
133
+ | Likely cause | Diagnostic |
134
+ |--------------|------------|
135
+ | Command writes to stdout but bwrap blocks the working directory | Check `permissionLevel`; bwrap restricts `fs:write` to declared scopes |
136
+ | Variable interpolation produced an empty string | Run with `dryRun: true` to see resolved configs (see `moflo-spell-runner.md`) |
137
+ | `continueOnError: true` is hiding a real failure | Remove `continueOnError` temporarily, re-run, inspect error output |
138
+ | Trailing `|| true` on the only critical statement | Restructure with `set -e` and place `|| true` only on cleanup statements |
139
+
140
+ ---
141
+
142
+ ## See Also
143
+
144
+ - `.claude/guidance/moflo-spell-sandboxing.md` — Capability types, enforcement layers, permission levels (the model these failures exercise)
145
+ - `.claude/guidance/moflo-spell-engine.md` — Step definition format and types
146
+ - `.claude/guidance/moflo-spell-runner.md` — Dry-run validation, error codes, pause/resume
147
+ - `.claude/guidance/moflo-yaml-reference.md` — `sandbox:` block in `moflo.yaml` (master toggle, tier selection)
148
+ - `src/cli/spells/core/bwrap-sandbox.ts` — Source for `--unshare-net` and namespace setup
149
+ - `src/cli/spells/core/permission-resolver.ts` — Capability → permission level derivation
@@ -1,150 +1,79 @@
1
- # MoFlo Subagents Guide
1
+ # MoFlo Subagents — Spawn Protocol
2
2
 
3
- **Purpose:** Protocol for subagents spawned by coordinators. Follow these steps before doing any work.
3
+ **Purpose:** Steps every subagent MUST run when spawned by a coordinator. The single-sentence directive injected by `SubagentStart` (see `.claude/helpers/subagent-bootstrap.json`) tells every subagent to memory-search first, then follow this protocol. Universal coding/coordination rules every agent (coordinator OR subagent) shares live in `.claude/guidance/moflo-agent-rules.md` — read those after Step 1.
4
4
 
5
5
  ---
6
6
 
7
- ## 1. Search Memory FIRST
7
+ ## Step 1: Search Memory FIRST
8
8
 
9
- **Before reading any files or exploring code, search memory for guidance relevant to your task.**
9
+ **Before reading any files or exploring code, search memory.** This is the bootstrap action — moflo's gates will block your `Glob`/`Grep`/`Read` calls until you do.
10
10
 
11
- ### Namespaces to search:
12
-
13
- | Namespace | When to search | What it returns |
14
- |-----------|---------------|-----------------|
15
- | `guidance` | always | Guidance docs, coding rules, domain context |
16
- | `patterns` | always | Learned patterns from previous task execution |
17
- | `learnings` | always | User-directed decisions + distilled insights (post-mortems, gotchas, lessons learned) |
18
- | `code-map` | navigating code | Project overviews, directory contents, type-to-file mappings |
19
- | `tests` | test/coverage queries | Indexed test inventory — pinpoint specs and coverage for a given function/module |
20
-
21
- **Always search `patterns` and `learnings` alongside `guidance`.** Patterns hold solutions to already-solved problems; learnings hold incident insights and user-stated decisions. Skipping either means repeating past mistakes or violating standing decisions.
22
-
23
- **Search `code-map` BEFORE using Glob/Grep for navigation.** It's faster and returns structured results including file-level type mappings.
24
-
25
- **Search `tests` when looking for test coverage** of a function, module, or behavior — it indexes the test tree separately so you can pinpoint specs without grepping the whole repo.
26
-
27
- ### Option A: MCP Tools (Preferred)
28
-
29
- If you have MCP tools available (check for `mcp__moflo__*`), use them directly:
30
-
31
- | Tool | Purpose |
32
- |------|---------|
33
- | `mcp__moflo__memory_search` | Semantic search with domain-aware embeddings |
34
- | `mcp__moflo__memory_store` | Store patterns with auto-vectorization |
35
- | `mcp__moflo__hooks_route` | Get agent routing suggestions |
36
-
37
- ### Option B: CLI via Bash
38
-
39
- ```bash
40
- npx flo memory search --query "[describe your task]" --namespace guidance --limit 5
11
+ ```
12
+ mcp__moflo__memory_search query: "[describe your task]" namespace: "guidance"
41
13
  ```
42
14
 
43
- | Your task involves... | Search namespace | Example query |
44
- |-----------------------|------------------|---------------|
45
- | Database/entities | `guidance` + `patterns` + `learnings` | `"database entity migration"` |
46
- | Frontend components | `guidance` + `patterns` + `learnings` | `"React frontend component"` |
47
- | API endpoints | `guidance` + `patterns` + `learnings` | `"API route endpoint pattern"` |
48
- | Authentication | `guidance` + `patterns` + `learnings` | `"auth middleware JWT"` |
49
- | Prior solutions/gotchas | `patterns` + `learnings` | `"audit log service pattern"` |
50
- | Past incident/lesson | `learnings` | `"windows postinstall file locks"` |
51
- | Where is a file/type? | `code-map` | `"CompanyEntity file location"` |
52
- | What's in a directory? | `code-map` | `"back-office api routes"` |
53
- | Tests for a function | `tests` | `"audit log service tests"` |
54
- | Coverage for a module | `tests` | `"auth middleware test cases"` |
55
-
56
- Use results with score > 0.3. If no good results, fall back to reading project guidance docs.
57
-
58
- ---
59
-
60
- ## 2. Check for Project-Specific Overrides
15
+ Run the search **at least three times** once each against `guidance`, `patterns`, and `learnings`. Patterns hold prior solutions; learnings hold standing decisions and post-mortem insights. Skipping either repeats past mistakes. Add `code-map` when navigating code, `tests` when looking for test coverage.
61
16
 
62
- Claude Code automatically loads all `.claude/guidance/*.md` files into your context. If the consuming project has its own guidance files (e.g., domain rules, entity patterns, tech stack conventions), they are already available to you — no need to read them manually.
17
+ CLI fallback when MCP is unavailable: `npx flo memory search --query "..." --namespace guidance --limit 5`.
63
18
 
64
- Project-specific guidance always takes precedence over generic MoFlo guidance.
19
+ The full namespace reference, query examples by domain, and tool catalog live in `.claude/guidance/moflo-agent-rules.md` § Memory-First Protocol — read that next.
65
20
 
66
21
  ---
67
22
 
68
- ## 3. Universal Rules
69
-
70
- ### Memory Protocol
71
- - Search memory before exploring files
72
- - Store discoveries back to memory when done
73
- - Use `patterns` namespace for solutions and gotchas
74
- - Use `learnings` namespace for architectural choices, user-requested decisions, and distilled insights (`knowledge` is a deprecated alias — writes are auto-redirected)
23
+ ## Step 2: Apply Universal Agent Rules
75
24
 
76
- ### Git/Branches
77
- - Use conventional commit prefixes: `feat:`, `fix:`, `refactor:`, `test:`, `chore:`
78
- - Use branch prefixes: `feature/`, `fix/`, `refactor/`
79
- - Use kebab-case for branch names
25
+ Every moflo agent — coordinator or subagent — must follow `.claude/guidance/moflo-agent-rules.md`. The most load-bearing rules for subagents specifically:
80
26
 
81
- ### Pull Requests CRITICAL: Always target the correct repo
82
- **NEVER run bare `gh pr create` in a forked repository.** The `gh` CLI defaults to the upstream parent repo, not the fork's origin. This has caused PRs to be accidentally opened against upstream.
27
+ | Rule | Detail |
28
+ |------|--------|
29
+ | **Task Icons** | `TaskCreate` MUST use **ICON + [Role]** in `subject` and `activeForm` — see `.claude/guidance/moflo-task-icons.md`. Example: `🧪 [Tester] Run unit tests` / activeForm: `🧪 Running unit tests` |
30
+ | **PR target repo (CRITICAL)** | Never run bare `gh pr create` in a forked repo — it defaults to upstream. Always pass `--repo "$REPO"`. Full workflow in `moflo-agent-rules.md` |
31
+ | **MCP-first tool selection** | Prefer `mcp__moflo__*` tools over `npx flo` CLI. CLI is fallback only |
32
+ | **Build & test after changes** | Never leave failing tests; fix red signals at the source |
83
33
 
84
- **Required workflow:**
85
- ```bash
86
- # 1. Determine the correct repo from the origin remote
87
- REPO=$(git remote get-url origin | sed 's|.*github.com[:/]||;s|\.git$||')
88
-
89
- # 2. ALWAYS pass --repo to gh pr create
90
- gh pr create --repo "$REPO" --title "..." --body "..."
91
-
92
- # 3. For merge: also pass --repo
93
- gh pr merge <number> --repo "$REPO" --squash
94
- ```
34
+ The full set (git/branch conventions, file organization, build/test discipline, storing discoveries) is in `.claude/guidance/moflo-agent-rules.md`.
95
35
 
96
- This applies to ALL `gh` commands that target a repo: `pr create`, `pr merge`, `pr list`, `issue create`, etc.
36
+ ---
97
37
 
98
- ### File Organization
99
- - Never save working files to repository root
100
- - Keep changes focused (3-10 files)
101
- - Stay within feature scope
38
+ ## Step 3: Check for Project-Specific Overrides
102
39
 
103
- ### Build & Test
104
- - Build and test after code changes
105
- - Never leave failing tests
40
+ Claude Code automatically loads all `.claude/guidance/*.md` files into your context. If the consuming project has its own guidance files (domain rules, entity patterns, tech-stack conventions), they're already available — no need to read them manually.
106
41
 
107
- ### Task Icons (MANDATORY)
108
- - `TaskCreate` MUST use **ICON + [Role]** in `subject` and `activeForm`
109
- - Full icon map: `.claude/guidance/shipped/moflo-task-icons.md`
110
- - Example: `🧪 [Tester] Run unit tests` / activeForm: `🧪 Running unit tests`
42
+ **Project-specific guidance always takes precedence over generic MoFlo guidance.**
111
43
 
112
44
  ---
113
45
 
114
- ## 4. Store Discoveries
46
+ ## Step 4: Store Discoveries Before Reporting
115
47
 
116
- If you discover something new (pattern, solution, gotcha), store it:
48
+ Before signing off your work, store anything useful you discovered during the task. Future agents shouldn't have to re-discover what you already learned.
117
49
 
118
- ### MCP (Preferred):
119
- ```
120
- mcp__moflo__memory_store
121
- namespace: "patterns"
122
- key: "brief-descriptive-key"
123
- value: "1-2 sentence insight"
124
- ```
50
+ | Namespace | What to store |
51
+ |-----------|---------------|
52
+ | `patterns` | Solutions to tricky bugs, gotchas, workarounds |
53
+ | `learnings` | Architectural choices, user-stated decisions, post-mortem insights |
125
54
 
126
- ### CLI Fallback:
127
- ```bash
128
- npx flo memory store --namespace patterns --key "brief-descriptive-key" --value "1-2 sentence insight"
129
- ```
55
+ **Store:** Patterns that worked, gotchas you hit, workarounds for limitations.
56
+ **Skip:** Generic summaries of retrieved guidance, restated rules, trivial file-location notes.
130
57
 
131
- **Store:** Solutions to tricky bugs, patterns that worked, gotchas, workarounds
132
- **Skip:** Summaries of retrieved guidance, general rules, file locations
58
+ See `.claude/guidance/moflo-agent-rules.md` § Storing Discoveries for the full MCP/CLI invocation patterns.
133
59
 
134
60
  ---
135
61
 
136
- ## 5. When Complete
62
+ ## Step 5: When Complete
63
+
64
+ 1. Report findings to the coordinator
65
+ 2. Confirm any discoveries are stored (Step 4)
66
+ 3. The coordinator will mark your task `completed` via `TaskUpdate`
137
67
 
138
- 1. Report findings to coordinator
139
- 2. Store learnings if you discovered something new
140
- 3. Coordinator will mark your task as completed
68
+ Do not mark your own task completed — that's the coordinator's responsibility.
141
69
 
142
70
  ---
143
71
 
144
72
  ## See Also
145
73
 
146
- - `.claude/guidance/shipped/moflo-task-icons.md` — Mandatory ICON + [Role] format for every `TaskCreate` and `Agent` description spawned by a coordinator
147
- - `.claude/guidance/shipped/moflo-claude-swarm-cohesion.md` — How task lists and swarm coordinators cooperate when subagents are spawned in batches
148
- - `.claude/guidance/shipped/moflo-memory-strategy.md` — The memory-search-first rule this protocol enforces, with namespace-selection guidance
149
- - `.claude/guidance/shipped/moflo-memorydb-maintenance.md` — How the memory namespaces are populated and refreshed; required reading when search returns no results
150
- - `.claude/guidance/shipped/moflo-core-guidance.md` — Full CLI/MCP reference including the spell gates that block subagent spawn before memory is searched
74
+ - `.claude/guidance/moflo-agent-rules.md` — Universal rules every agent (coordinator OR subagent) shares
75
+ - `.claude/guidance/moflo-task-icons.md` — Mandatory ICON + [Role] format for every `TaskCreate` and `Agent` description
76
+ - `.claude/guidance/moflo-claude-swarm-cohesion.md` — How task lists and swarm coordinators cooperate when subagents are spawned in batches
77
+ - `.claude/guidance/moflo-memory-strategy.md` — Memory architecture, namespaces, search patterns
78
+ - `.claude/guidance/moflo-memorydb-maintenance.md` — How memory namespaces are populated and refreshed
79
+ - `.claude/guidance/moflo-core-guidance.md` — Full CLI/MCP reference including the spell gates that block subagent spawn before memory is searched
@@ -66,7 +66,7 @@ The spinner is the primary visual feedback during agent execution. Without icons
66
66
 
67
67
  ## See Also
68
68
 
69
- - `.claude/guidance/shipped/moflo-subagents.md` — Subagent protocol; `TaskCreate`/`Agent` icon rule is enforced as part of the spawning checklist
70
- - `.claude/guidance/shipped/moflo-claude-swarm-cohesion.md` — How task lists and swarms cooperate; icons distinguish swarm-spawned vs single-agent work
71
- - `.claude/guidance/shipped/moflo-user-facing-language.md` — Companion UX rule for any text shown to end users
72
- - `.claude/guidance/shipped/moflo-core-guidance.md` — Spell Gate that enforces icon format on `TaskCreate`
69
+ - `.claude/guidance/moflo-subagents.md` — Subagent protocol; `TaskCreate`/`Agent` icon rule is enforced as part of the spawning checklist
70
+ - `.claude/guidance/moflo-claude-swarm-cohesion.md` — How task lists and swarms cooperate; icons distinguish swarm-spawned vs single-agent work
71
+ - `.claude/guidance/moflo-user-facing-language.md` — Companion UX rule for any text shown to end users
72
+ - `.claude/guidance/moflo-core-guidance.md` — Spell Gate that enforces icon format on `TaskCreate`
@@ -37,6 +37,6 @@
37
37
 
38
38
  ## See Also
39
39
 
40
- - `.claude/guidance/shipped/moflo-task-icons.md` — Companion UX rule: spinner text must use ICON + [Role] so non-technical users can identify the working agent
41
- - `.claude/guidance/shipped/moflo-spell-sandboxing.md` — Permission disclosure output where this language rule has the largest user-visible surface
42
- - `.claude/guidance/shipped/moflo-error-handling.md` — Sibling rule for what error messages must contain; this doc governs how those messages are phrased
40
+ - `.claude/guidance/moflo-task-icons.md` — Companion UX rule: spinner text must use ICON + [Role] so non-technical users can identify the working agent
41
+ - `.claude/guidance/moflo-spell-sandboxing.md` — Permission disclosure output where this language rule has the largest user-visible surface
42
+ - `.claude/guidance/moflo-error-handling.md` — Sibling rule for what error messages must contain; this doc governs how those messages are phrased
@@ -35,11 +35,11 @@ npm run build -- --verbose 2>&1 | grep -E "error TS|Failed|Cannot find"
35
35
 
36
36
  ## Why It Matters
37
37
 
38
- Case study: issue #903 burned ~25K tokens across 5 tee-then-grep round-trips where a single grep-at-source would have surfaced the same signal once. Filtering at source is not an optimization — it is the default shape for any verbose command whose full output you do not need in your context.
38
+ A representative incident burned ~25K tokens across 5 tee-then-grep round-trips where a single grep-at-source would have surfaced the same signal once. Filtering at source is not an optimization — it is the default shape for any verbose command whose full output you do not need in your context.
39
39
 
40
40
  ---
41
41
 
42
42
  ## See Also
43
43
 
44
- - `.claude/guidance/shipped/moflo-core-guidance.md` — Hub for moflo's CLI/MCP surface and runtime conventions
45
- - `.claude/guidance/shipped/moflo-memory-strategy.md` — Companion rules on RAG indexing and context discipline
44
+ - `.claude/guidance/moflo-core-guidance.md` — Hub for moflo's CLI/MCP surface and runtime conventions
45
+ - `.claude/guidance/moflo-memory-strategy.md` — Companion rules on RAG indexing and context discipline
@@ -184,8 +184,7 @@ Global registration is useful for ad-hoc projects where you don't want to commit
184
184
 
185
185
  ## See Also
186
186
 
187
- - `.claude/guidance/shipped/moflo-core-guidance.md` — Hub: getting started, anti-drift defaults, troubleshooting
188
- - `.claude/guidance/shipped/moflo-cli-reference.md` — Commands, agents, hooks, hive-mind, ruvector — the surfaces this config gates
189
- - `.claude/guidance/shipped/moflo-spell-sandboxing.md` — What `sandbox:` actually does at the bash-step boundary, with capability/permission interaction
190
- - `.claude/guidance/shipped/moflo-session-start.md` — Where these config fields are read and applied during session start
191
- - `.claude/guidance/shipped/moflo-settings-injection.md` — What moflo writes into `.claude/settings.json` (the hook wiring; complementary to `moflo.yaml` toggles)
187
+ - `.claude/guidance/moflo-core-guidance.md` — Hub: getting started, anti-drift defaults, troubleshooting
188
+ - `.claude/guidance/moflo-cli-reference.md` — Commands, agents, hooks, hive-mind, ruvector — the surfaces this config gates
189
+ - `.claude/guidance/moflo-spell-sandboxing.md` — What `sandbox:` actually does at the bash-step boundary, with capability/permission interaction
190
+ - `.claude/guidance/moflo-settings-injection.md` — What moflo writes into `.claude/settings.json` (the hook wiring; complementary to `moflo.yaml` toggles)