@fernado03/zoo-flow 0.2.0 → 0.3.3

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.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@fernado03/zoo-flow",
3
- "version": "0.2.0",
4
3
  "description": "Workflow control plane for Zoo Code.",
4
+ "version": "0.3.3",
5
5
  "type": "module",
6
6
  "bin": {
7
7
  "zoo-flow": "bin/zoo-flow.js"
@@ -4,6 +4,7 @@ argument-hint: <describe the feature>
4
4
  mode: system-architect
5
5
  ---
6
6
  EXECUTION RULES (Run sequentially. Wait for user between phases):
7
+ 0. TRACK: At start, write a phase checklist to `.scratch/feature-<slug>.md` (phases 1-5, each unchecked). Before any `switch_mode` or `attempt_completion`, update it. Do NOT `attempt_completion` while any phase is unchecked — `switch_mode` to the phase's owner instead.
7
8
  1. SHARPEN (Architect): Run skill `.roo/skills/engineering/grill-with-docs/SKILL.md`. Update docs.
8
9
  HARD STOP: Ask user to choose: Prototype OR skip to PRD.
9
10
  2. PROTOTYPE [Optional]: Follow `.roo/rules-system-architect/01-feature-prototype.md` for the architect→tweaker handoff.
@@ -4,6 +4,7 @@ argument-hint: <describe the bug or error>
4
4
  mode: system-architect
5
5
  ---
6
6
  EXECUTION RULES:
7
+ 0. TRACK: At start, write a phase checklist to `.scratch/fix-<slug>.md` (phases 1-5, each unchecked). Before any `switch_mode` or `attempt_completion`, update it. Do NOT `attempt_completion` while any phase is unchecked — `switch_mode` to the phase's owner instead.
7
8
  1. DIAGNOSE (Architect): Run skill `.roo/skills/engineering/diagnose/SKILL.md`. Run phases 1-3.
8
9
  HARD STOP: Present hypotheses. Wait for user selection. Ignore internal AFK rules.
9
10
  2. INSTRUMENT (Architect): Run phase 4 on chosen hypothesis. Find root cause.
@@ -4,6 +4,7 @@ argument-hint: <area to refactor>
4
4
  mode: system-architect
5
5
  ---
6
6
  EXECUTION RULES:
7
+ 0. TRACK: At start, write a phase checklist to `.scratch/refactor-<slug>.md` (phases 1-3, each unchecked). Before any `switch_mode` or `attempt_completion`, update it. Do NOT `attempt_completion` while any phase is unchecked — `switch_mode` to the phase's owner instead.
7
8
  1. FIND (Architect): Run skill `.roo/skills/engineering/improve-codebase-architecture/SKILL.md`. List candidates.
8
9
  HARD STOP: Ask user which candidate to explore.
9
10
  2. GRILL (Architect): Run grilling loop. Update CONTEXT/ADRs inline.
@@ -1,5 +1,6 @@
1
1
  ---
2
2
  description: "Triage issues through a state machine driven by triage roles. Use when user wants to create an issue, triage issues, review incoming bugs or feature requests, prepare issues for an AFK agent, or manage issue workflow."
3
+ mode: system-architect
3
4
  ---
4
5
 
5
6
  Run skill: `.roo/skills/engineering/triage/SKILL.md`
@@ -0,0 +1,7 @@
1
+ # MCP Awareness
2
+
3
+ If MCP tools are available, prefer them when they match the task better than built-in tools.
4
+
5
+ Do not assume specific MCP servers exist. Check what is available before attempting a call.
6
+
7
+ If no MCP servers are configured, ignore this rule.
@@ -0,0 +1,16 @@
1
+ # Tool Parameter Safety
2
+
3
+ All required parameters must be present in every tool call. Never invoke a tool with missing or empty required fields.
4
+
5
+ ## On rejection
6
+
7
+ After a missing-parameter or schema error:
8
+
9
+ 1. Do **not** retry unchanged — that counts toward the three-failure cap (`02-three-failure-rule.md`).
10
+ 2. Either supply the missing value in the next call, or surface the blocker to the user.
11
+
12
+ ## Write-tool guard (`write_to_file`, `apply_diff`, etc.)
13
+
14
+ - Compose the full content **before** calling the tool.
15
+ - If content exceeds ~150 lines, split: first `write_to_file` (initial chunk), then `append_to_file` for the rest.
16
+ - If splitting is impractical, output the content in the response body and ask the user to confirm or save.
@@ -1,8 +1,17 @@
1
1
  # Code Tweaker Completion
2
2
 
3
- If created by `custom-orchestrator` via `new_task`, use `attempt_completion` when done or blocked.
3
+ A delegated task is the **entire command chain**, including every phase and mode switch the command body defines — not the single phase you are currently running.
4
4
 
5
- Include:
5
+ Choose your exit by where you are in that chain:
6
+
7
+ - **More phases remain** (a later phase is assigned to `system-architect`, e.g. post-mortem, or control returns to it): use `switch_mode` back to `system-architect`. Never `attempt_completion` mid-chain.
8
+ - **You are running the command's final phase** and it is complete or blocked: use `attempt_completion` to return to the orchestrator.
9
+
10
+ If you entered this window via `switch_mode` (you are mid-chain, not the entry point) and any phase remains, you hand back with `switch_mode`. Only the command's final phase returns to the orchestrator.
11
+
12
+ Before any `attempt_completion`, re-read the command body and confirm no later phase is assigned to another mode. If one is, `switch_mode` instead.
13
+
14
+ `attempt_completion` must include:
6
15
 
7
16
  - what was done
8
17
  - files changed or inspected
@@ -4,13 +4,76 @@ The orchestrator is a router only.
4
4
 
5
5
  Do not inspect implementation files, edit files, run shell commands, or answer technical implementation questions directly.
6
6
 
7
- If the user gives a technical request without an explicit command, offer 1-2 numbered workflow choices and ask for a typed number.
8
-
9
- Delegate only with `new_task` to:
7
+ Delegate only with `new_task` to these exact slugs:
10
8
 
11
9
  - `code-tweaker`
12
10
  - `system-architect`
13
11
 
14
- When delegating, choose the safest proceed policy from `01-delegation-message.md`.
12
+ The planning/architecture mode slug is always `system-architect`. Never use `architect`.
15
13
 
16
14
  After a subtask returns, summarize and stop. Do not auto-launch another subtask.
15
+
16
+ ## Routed commands
17
+
18
+ | Command | Mode | Routed when the user wants to… |
19
+ | ---------------------- | ---------------- | --------------------------------------------------------------------- |
20
+ | `/tweak` | code-tweaker | Make a small, known, low-risk change. Cause is understood. |
21
+ | `/tdd` | code-tweaker | Build a unit of behavior test-first, red-green-refactor. |
22
+ | `/update-docs` | code-tweaker | Align existing docs with current code. |
23
+ | `/commit-and-document` | code-tweaker | Stage, write a Conventional Commit, journal the change. |
24
+ | `/prototype` | code-tweaker | Throw away code to resolve a design uncertainty. |
25
+ | `/fix` | system-architect | Resolve a bug whose cause is unknown. Diagnose → fix → post-mortem. |
26
+ | `/feature` | system-architect | Add new capability needing planning. Sharpen → PRD → slice → build. |
27
+ | `/refactor` | system-architect | Improve working code's structure without changing behavior. |
28
+ | `/explore` | system-architect | Map unfamiliar code before deciding what to do. |
29
+ | `/triage` | system-architect | Create, sort, or prepare issues in a tracker. |
30
+
31
+ ## Routing decision guide
32
+
33
+ Read the request for intent, not keywords. Work top-down:
34
+
35
+ 1. **Unfamiliar territory?** User is unsure where the code lives, how it works, or what the right move is → `/explore` first. It produces a written map and recommends the next command.
36
+ 2. **Something is broken and the cause is unknown?** Error, crash, regression, "it used to work", flaky, slow → `/fix`. The diagnosis loop lives inside it.
37
+ 3. **New capability that needs planning?** Net-new behavior, multiple unknowns, or design questions → `/feature`.
38
+ 4. **Working code, structure is the problem?** "Clean up", "decouple", "this is getting hard to change", no behavior change intended → `/refactor`.
39
+ 5. **Small and well-understood?** Cause known, scope tight, no design questions → `/tweak`.
40
+ 6. **Test-first unit of behavior, cause/interface clear?** → `/tdd`.
41
+ 7. **Design uncertainty worth throwing code at?** → `/prototype`.
42
+ 8. **Docs drifted from code?** → `/update-docs`.
43
+ 9. **Ready to record finished work?** → `/commit-and-document`.
44
+ 10. **Issue/tracker management?** → `/triage`.
45
+
46
+ ## Disambiguation
47
+
48
+ These pairs overlap. Choose by the distinguishing signal, not surface wording.
49
+
50
+ - `/fix` vs `/tweak`: unknown cause needing diagnosis → `/fix`. Known cause, mechanical change → `/tweak`. If the user can name the exact line/function to change, it is `/tweak`.
51
+ - `/fix` vs `/refactor`: behavior is wrong → `/fix`. Behavior is fine, structure hurts → `/refactor`.
52
+ - `/feature` vs `/tdd`: needs sharpening, a PRD, or issue slicing → `/feature`. Interface and scope already clear, just build it test-first → `/tdd`.
53
+ - `/feature` vs `/prototype`: committing to a real implementation → `/feature`. Resolving an open design question with throwaway code → `/prototype`.
54
+ - `/refactor` vs `/tweak`: cross-cutting structural change with design tradeoffs → `/refactor`. One-spot localized edit → `/tweak`.
55
+ - `/update-docs` vs `/commit-and-document`: aligning doc content with code → `/update-docs`. Recording a change you just made (commit + journal) → `/commit-and-document`.
56
+ - Any of the above when the target area is unknown: route `/explore` first.
57
+
58
+ ## Confidence and presentation
59
+
60
+ - If the user typed an explicit slash command, route it as-is. Do not second-guess it.
61
+ - If one command clearly fits a free-form request, offer it as the single top choice with a one-line reason, plus one safe alternative when a near-tie exists.
62
+ - If two commands genuinely tie, offer both as numbered choices and let the user pick.
63
+ - Prefer the lighter-weight workflow when impact is comparable (`/tweak` over `/fix`, `/tdd` over `/feature`) — but never trade away a needed diagnosis or planning phase just to save tokens.
64
+ - When suggesting choices, follow `.roo/rules/03-manual-reply-protocol.md`: plain-language numbered options, no slash commands or mode names in the suggestion text.
65
+
66
+ ## Approval gate
67
+
68
+ The orchestrator proposes; the user approves; only then does the orchestrator delegate.
69
+
70
+ - An explicitly typed slash command is itself the approval. Route it immediately.
71
+ - A free-form request is never self-approving. Present the proposed workflow (single top choice or numbered options), then **stop and wait** for the user to pick. Do not call `new_task` on the same turn you propose a workflow.
72
+ - Treat a free-form message as approval only when it selects a workflow you already proposed — by number, option text, or an unambiguous restatement. A fresh free-form request restarts the propose-and-wait cycle.
73
+ - If you are unsure whether the user approved, ask. Never assume approval from silence, enthusiasm, or a restated problem description.
74
+
75
+ ## Delegation
76
+
77
+ Delegate only after the approval gate is satisfied: the user typed an explicit slash command, or selected a workflow you proposed.
78
+
79
+ When delegating, choose the safest proceed policy from `01-delegation-message.md`.
@@ -1,5 +1,7 @@
1
1
  # Delegation Message
2
2
 
3
+ A delegated task is the **entire command chain** — every phase and mode switch the command body defines, run to its final phase. A worker returns via `attempt_completion` only after that final phase. Mid-chain handoffs between modes use `switch_mode`, not `attempt_completion`.
4
+
3
5
  Every delegated task must include:
4
6
 
5
7
  - command with slash
@@ -1,8 +1,15 @@
1
1
  # System Architect Completion
2
2
 
3
- Use `switch_mode` to `code-tweaker` for same-window implementation handoffs.
3
+ A delegated task is the **entire command chain**, including every phase and every mode switch the command body defines — not the single phase you are currently running.
4
4
 
5
- If created by `custom-orchestrator` via `new_task`, use `attempt_completion` when the delegated task is complete or blocked.
5
+ Choose your exit by where you are in that chain:
6
+
7
+ - **More phases remain** (this or a later phase is assigned to `code-tweaker`, or control returns to you afterward): use `switch_mode`. Never `attempt_completion`. Writing a plan, diagnosis, or `.scratch/` notes is not "done" — it is a handoff. Switch to `code-tweaker` to implement.
8
+ - **You are running the command's final phase** and it is complete or blocked: use `attempt_completion` to return to the orchestrator.
9
+
10
+ If you entered this window via `switch_mode` (you are mid-chain, not the entry point) and any phase remains, you hand back with `switch_mode`. Only the command's final phase returns to the orchestrator.
11
+
12
+ Before any `attempt_completion`, re-read the command body and confirm no later phase is assigned to another mode. If one is, `switch_mode` instead.
6
13
 
7
14
  Do not use `attempt_completion` to avoid required implementation work.
8
15
 
@@ -23,10 +23,8 @@ _Avoid_: Purchase, transaction
23
23
  - MUST pick canonical term; aliases under `_Avoid_`.
24
24
  - MUST flag ambiguity + resolution.
25
25
  - Define term in 1–2 sentences: what it is, not behavior.
26
- - Include relationships/cardinality when obvious.
27
26
  - Include domain terms only; exclude generic programming terms.
28
27
  - Group under headings when useful.
29
- - Include example dialogue.
30
28
 
31
29
  ## Layout
32
30
 
@@ -12,12 +12,11 @@ RULE: Do not interview user. Synthesize current context.
12
12
  ## Process
13
13
 
14
14
  1. Explore repo if needed; use glossary; respect ADRs.
15
- 2. Sketch major modules to build/modify.
16
- 3. Find deep modules testable in isolation.
17
- 4. Check with user: modules match expectations? which modules need tests?
18
- 5. Write PRD.
19
- 6. Publish to issue tracker.
20
- 7. Apply `ready-for-agent`.
15
+ 2. Sketch test seams. Prefer existing seams; use highest seam possible. Propose new seams at highest point.
16
+ 3. Check with user: seams match expectations?
17
+ 4. Write PRD.
18
+ 5. Publish to issue tracker.
19
+ 6. Apply `ready-for-agent`.
21
20
 
22
21
  ## PRD template
23
22
 
@@ -45,7 +44,7 @@ RULE: Do not interview user. Synthesize current context.
45
44
  ## Testing Decisions
46
45
 
47
46
  - Good tests verify external behaviour, not implementation.
48
- - Modules to test.
47
+ - Seams to test; prefer existing/highest seam.
49
48
  - Similar tests/prior art.
50
49
 
51
50
  ## Out of Scope
@@ -3,6 +3,7 @@
3
3
  Draft skills. Excluded from plugin/top README until stable.
4
4
 
5
5
  - **[review](./review/SKILL.md)** — Review diff on Standards + Spec axes.
6
+ - **[teach](./teach/SKILL.md)** — Stateful teaching workspace (mission, glossary, resources, learning records).
6
7
  - **[writing-beats](./writing-beats/SKILL.md)** — Assemble article beat-by-beat.
7
8
  - **[writing-fragments](./writing-fragments/SKILL.md)** — Capture raw writing fragments.
8
9
  - **[writing-shape](./writing-shape/SKILL.md)** — Shape raw material into article.
@@ -0,0 +1,59 @@
1
+ ---
2
+ name: teach
3
+ description: Teach a topic over multiple stateful sessions, treating the current directory as a teaching workspace. Tracks mission, glossary, resources, and learning records to ground every session and pace the user inside their zone of proximal development. Use when user asks to be taught a topic, wants to learn something over time, or mentions ongoing study.
4
+ disable-model-invocation: true
5
+ argument-hint: "What would you like to learn about?"
6
+ ---
7
+
8
+ # Teach
9
+
10
+ Stateful. Treat current directory as the teaching workspace.
11
+
12
+ ## Files
13
+
14
+ - `MISSION.md` — why user wants this; grounds every decision. Format: `mission-format.md`.
15
+ - `GLOSSARY.md` — canonical terms; all output conforms. Format: `glossary-format.md`.
16
+ - `RESOURCES.md` — trusted knowledge + community sources. Format: `resources-format.md`.
17
+ - `learning-records/NNNN-slug.md` — non-obvious lessons + prior knowledge. Format: `learning-record-format.md`.
18
+
19
+ ## Triad
20
+
21
+ - **Knowledge** — drawn from `RESOURCES.md`. Never parametric.
22
+ - **Skills** — exercises built from the knowledge.
23
+ - **Wisdom** — real-world community interaction via `RESOURCES.md`.
24
+
25
+ Topic mix varies: theoretical → knowledge-heavy; practical → skills-heavy.
26
+
27
+ ## Mission first
28
+
29
+ If `MISSION.md` missing or vague, interview before teaching. No mission = no grounding, abstract exercises, no signal for what's next.
30
+
31
+ ## Zone of proximal development
32
+
33
+ Pick next topic by:
34
+ 1. Read `learning-records/`.
35
+ 2. Align to `MISSION.md`.
36
+ 3. Pick tightest scope that still stretches the user.
37
+
38
+ User says "I already know X" → record in `learning-records/`.
39
+
40
+ ## Knowledge loop
41
+
42
+ 1. Pull from `RESOURCES.md`.
43
+ 2. Write HTML explainer to local file. Beautiful, glossary-correct. Litter with citations linking external resources backing every claim. Interactive: "try this" callouts to apply the knowledge.
44
+ 3. Give one-line CLI command to open it.
45
+ 4. Take questions; amend explainer or write a new one.
46
+ 5. Once user clearly owns the term, add to `GLOSSARY.md`.
47
+
48
+ ## Skills loop
49
+
50
+ Tools:
51
+ - Interactive HTML explainers with quizzes / in-browser drills.
52
+ - Step-through HTML guides for real-world tasks.
53
+ - In-agent scenario quizzes.
54
+
55
+ Every exercise closes a tight feedback loop.
56
+
57
+ ## Wisdom
58
+
59
+ Default: attempt an answer, then route to a high-reputation community from `RESOURCES.md`. If user opted out of communities, record it in `RESOURCES.md` and stop suggesting.
@@ -0,0 +1,35 @@
1
+ # GLOSSARY.md Format
2
+
3
+ Canonical language for the workspace. All explainers/exercises/records conform. Building it is itself learning: tight definition = compressed understanding.
4
+
5
+ ## Template
6
+
7
+ ```markdown
8
+ # {Topic} Glossary
9
+
10
+ {One or two sentence description of what this glossary covers.}
11
+
12
+ ## Terms
13
+
14
+ **Hypertrophy**:
15
+ Muscle growth driven by mechanical tension and metabolic stress over repeated training sessions.
16
+ _Avoid_: Bulking, getting big
17
+
18
+ **Progressive overload**:
19
+ Systematically increasing the demand on a muscle over time — via load, volume, or intensity.
20
+ _Avoid_: Pushing harder, levelling up
21
+
22
+ **RPE (Rate of Perceived Exertion)**:
23
+ A 1–10 self-rating of how hard a set felt, where 10 is failure and 8 means two reps left in the tank.
24
+ _Avoid_: Effort score, intensity rating
25
+ ```
26
+
27
+ ## Rules
28
+
29
+ - Add a term only when user demonstrates understanding. Glossary records compressed knowledge; it is not a dictionary to read.
30
+ - Be opinionated. Pick one canonical term; list rivals as `_Avoid_`.
31
+ - Tight: 1–2 sentences. Define what term IS, not how to do it.
32
+ - Use glossary's own terms inside other definitions. That's how complex terms compress.
33
+ - Group under subheadings when natural clusters emerge (`## Anatomy`, `## Programming`). Flat list fine otherwise.
34
+ - Flag ambiguities. "In this workspace, 'set' means working set."
35
+ - Revise in place. Stale entries lie.
@@ -0,0 +1,46 @@
1
+ # Learning Record Format
2
+
3
+ Live in `learning-records/`. Sequential numbering: `0001-slug.md`, `0002-slug.md`. Create directory lazily on first record.
4
+
5
+ Teaching equivalent of ADRs. Capture non-obvious lessons, key insights, stated prior knowledge. Steer future sessions; calibrate ZPD.
6
+
7
+ ## Template
8
+
9
+ ```markdown
10
+ # {Short title of what was learned or established}
11
+
12
+ {1-3 sentences: what was learned (or what prior knowledge was established), and why it matters for future sessions.}
13
+ ```
14
+
15
+ That is the whole format. A single paragraph counts. Value is recording _that_ this is now known and _why_ it changes what to teach next.
16
+
17
+ ## Optional sections
18
+
19
+ Use only when they add value. Most records skip these.
20
+
21
+ - **Status** frontmatter (`active | superseded by LR-NNNN`) — when an earlier understanding is replaced.
22
+ - **Evidence** — how the user demonstrated understanding. Useful when the claim might be revisited.
23
+ - **Implications** — what this unlocks/rules out. Worth recording when non-obvious.
24
+
25
+ ## Numbering
26
+
27
+ Scan `learning-records/`, take highest number, increment.
28
+
29
+ ## When to write
30
+
31
+ Write when any are true:
32
+
33
+ 1. User demonstrated genuine understanding of something non-trivial — evidence, not exposure. Sets a new floor.
34
+ 2. User disclosed prior knowledge — "I already know X." Record it + claimed depth.
35
+ 3. Misconception corrected — high-value; predicts future stumbles.
36
+ 4. Mission shifted in response to learning — cross-link to `MISSION.md` and update it.
37
+
38
+ ### Skip
39
+
40
+ - Material merely covered. Coverage ≠ learning.
41
+ - Anything tersely captured in `GLOSSARY.md`. No duplication.
42
+ - Session activity logs. Records are decision-grade, not a journal.
43
+
44
+ ## Supersession
45
+
46
+ When a later record contradicts an earlier one, mark old one `Status: superseded by LR-NNNN`. Don't delete. The history is itself signal.
@@ -0,0 +1,30 @@
1
+ # MISSION.md Format
2
+
3
+ Lives at workspace root. Captures _why_ the user is learning this. Every teaching decision traces back here.
4
+
5
+ ## Template
6
+
7
+ ```markdown
8
+ # Mission: {Topic}
9
+
10
+ ## Why
11
+ {1-3 sentences. Concrete real-world goal. What changes in user's life/work when they have this skill? Avoid "to understand X" — push for the underlying outcome.}
12
+
13
+ ## Success looks like
14
+ - {Specific observable thing user will be able to do}
15
+ - {Another}
16
+
17
+ ## Constraints
18
+ - {Time, budget, prior commitments, learning preferences}
19
+
20
+ ## Out of scope
21
+ - {Adjacent topics user explicitly skips — protects ZPD}
22
+ ```
23
+
24
+ ## Rules
25
+
26
+ - One mission per workspace. Two unrelated topics = two workspaces.
27
+ - Concrete over abstract. "Run a half marathon by October" beats "get fitter."
28
+ - Push back on vagueness. Bad mission > no mission.
29
+ - Revise when goal moves. Stale mission steers wrong.
30
+ - One screen max. Past that, it's a plan, not a compass.
@@ -0,0 +1,32 @@
1
+ # RESOURCES.md Format
2
+
3
+ Curated trusted sources. Knowledge for explainers comes from here, not parametric guesses. Wisdom routes to communities listed here.
4
+
5
+ ## Template
6
+
7
+ ```markdown
8
+ # {Topic} Resources
9
+
10
+ ## Knowledge
11
+
12
+ - [Book: _The Science and Practice of Strength Training_ — Zatsiorsky & Kraemer](https://example.com)
13
+ Foundational text on programming and adaptation. Use for: periodisation, recovery, intensity zones.
14
+ - [Article: "How Much Should I Train?" — Greg Nuckols (Stronger By Science)](https://example.com)
15
+ Evidence-based review of volume landmarks. Use for: weekly set targets per muscle group.
16
+
17
+ ## Wisdom (Communities)
18
+
19
+ - [r/weightroom](https://reddit.com/r/weightroom)
20
+ High-signal subreddit, moderated against bro-science. Use for: programme critique, plateau troubleshooting.
21
+ - Local: Tuesday strength class at {gym name}
22
+ Use for: real-time coaching feedback on lifts.
23
+ ```
24
+
25
+ ## Rules
26
+
27
+ - High-trust only. Primary sources, recognised experts, peer-reviewed work, well-moderated communities. Marketing-as-education stays out.
28
+ - Annotate every entry. One line: what it covers + when to reach for it.
29
+ - Group `## Knowledge` / `## Wisdom`. Mirrors the triad in `SKILL.md`. Single-group entries fine.
30
+ - Surface gaps. `## Gaps` section lists missing areas the mission needs. Drives future search.
31
+ - Prune ruthlessly. Remove wrong/shallow/off-mission. Five sharp > thirty mediocre.
32
+ - Record community opt-out here so future sessions stop proposing them.
@@ -40,7 +40,7 @@
40
40
  "roleDefinition": "You are a PM and router. You choose workflows and delegate subtasks. You NEVER inspect implementation files, write code, or use switch_mode.",
41
41
  "whenToUse": "Use for initial task planning, choosing slash commands, routing work, or discussing workflow.",
42
42
  "description": "Router that consults, delegates, and waits for user direction.",
43
- "customInstructions": "Use `.roo/rules-custom-orchestrator/` for mode-specific behavior.\n\nRoute only these commands:\n\n- /tweak, /tdd, /update-docs, /commit-and-document, /prototype -> code-tweaker\n- /fix, /feature, /refactor, /explore, /triage -> system-architect\n\nUse `new_task` only. If `new_task` is unavailable, stop and report that orchestrator lacks delegation access.\n\nFollow `.roo/rules/03-manual-reply-protocol.md` when offering workflow choices: use plain-language numbered options, not slash commands or mode names.",
43
+ "customInstructions": "Use `.roo/rules-custom-orchestrator/` for mode-specific behavior.\n\nRoute only these commands. The exact mode slug to pass to `new_task` is shown after the arrow:\n\n- /tweak, /tdd, /update-docs, /commit-and-document, /prototype -> slug: code-tweaker\n- /fix, /feature, /refactor, /explore, /triage -> slug: system-architect\n\nThe planning/architecture mode slug is ALWAYS `system-architect`. Never use `architect`.\n\nPropose, then wait for approval before delegating. A free-form request is never self-approving: present the workflow and stop. Delegate only after the user types an explicit slash command or picks a workflow you proposed. See `.roo/rules-custom-orchestrator/00-routing.md` (Approval gate).\n\nUse `new_task` only. If `new_task` is unavailable, stop and report that orchestrator lacks delegation access.\n\nFollow `.roo/rules/03-manual-reply-protocol.md` when offering workflow choices: use plain-language numbered options, not slash commands or mode names.",
44
44
  "groups": []
45
45
  }
46
46
  ]