@fernado03/zoo-flow 0.11.1 → 0.11.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/bin/zoo-flow.js +0 -2
- package/package.json +45 -55
- package/templates/claude-code/.claude/commands/explore.md +28 -0
- package/templates/claude-code/.claude/skills/engineering/commit-and-document/SKILL.md +2 -1
- package/templates/claude-code/.claude/skills/engineering/diagnose/SKILL.md +2 -1
- package/templates/claude-code/.claude/skills/engineering/explore/SKILL.md +1 -1
- package/templates/claude-code/.claude/skills/engineering/feature/SKILL.md +2 -1
- package/templates/claude-code/.claude/skills/engineering/fix/SKILL.md +2 -1
- package/templates/claude-code/.claude/skills/engineering/grill-with-docs/SKILL.md +2 -1
- package/templates/claude-code/.claude/skills/engineering/improve-codebase-architecture/SKILL.md +2 -1
- package/templates/claude-code/.claude/skills/engineering/prototype/SKILL.md +2 -1
- package/templates/claude-code/.claude/skills/engineering/refactor/SKILL.md +2 -1
- package/templates/claude-code/.claude/skills/engineering/review/SKILL.md +2 -1
- package/templates/claude-code/.claude/skills/engineering/scaffold-context/SKILL.md +2 -1
- package/templates/claude-code/.claude/skills/engineering/setup-matt-pocock-skills/SKILL.md +2 -1
- package/templates/claude-code/.claude/skills/engineering/tdd/SKILL.md +2 -1
- package/templates/claude-code/.claude/skills/engineering/to-issues/SKILL.md +2 -1
- package/templates/claude-code/.claude/skills/engineering/to-prd/SKILL.md +2 -1
- package/templates/claude-code/.claude/skills/engineering/triage/SKILL.md +2 -1
- package/templates/claude-code/.claude/skills/engineering/tweak/SKILL.md +2 -1
- package/templates/claude-code/.claude/skills/engineering/update-docs/SKILL.md +2 -1
- package/templates/claude-code/.claude/skills/engineering/verify/SKILL.md +2 -1
- package/templates/claude-code/.claude/skills/engineering/zoom-out/SKILL.md +2 -1
- package/templates/claude-code/.claude/skills/in-progress/writing-beats/SKILL.md +32 -0
- package/templates/claude-code/.claude/skills/in-progress/writing-fragments/SKILL.md +45 -0
- package/templates/claude-code/.claude/skills/in-progress/writing-shape/SKILL.md +50 -0
- package/templates/claude-code/.claude/skills/misc/git-guardrails-claude-code/SKILL.md +64 -0
- package/templates/claude-code/.claude/skills/misc/git-guardrails-claude-code/scripts/block-dangerous-git.sh +25 -0
- package/templates/claude-code/.claude/skills/misc/migrate-to-shoehorn/SKILL.md +39 -0
- package/templates/claude-code/.claude/skills/misc/scaffold-exercises/SKILL.md +53 -0
- package/templates/claude-code/.claude/skills/misc/setup-pre-commit/SKILL.md +62 -0
- package/templates/claude-code/.claude/skills/personal/edit-article/SKILL.md +13 -0
- package/templates/claude-code/.claude/skills/personal/obsidian-vault/SKILL.md +39 -0
- package/templates/claude-code/.claude/skills/productivity/grill-me/SKILL.md +2 -1
- package/templates/claude-code/.claude/skills/productivity/handoff/SKILL.md +2 -1
- package/templates/claude-code/.claude/skills/productivity/teach/SKILL.md +2 -1
- package/templates/claude-code/.claude/skills/productivity/write-a-skill/SKILL.md +2 -1
- package/templates/claude-code/CLAUDE.md +23 -0
- package/docs/architecture.md +0 -380
- package/docs/bloat-control.md +0 -49
- package/docs/command-design.md +0 -38
- package/docs/command-flow.md +0 -133
- package/docs/comparison.md +0 -86
- package/docs/context-packs.md +0 -35
- package/docs/dogfood/01-small-library.md +0 -28
- package/docs/dogfood/02-web-app.md +0 -29
- package/docs/dogfood/03-mixed-monorepo.md +0 -29
- package/docs/mode-rules.md +0 -86
- package/docs/npm-publishing.md +0 -79
- package/docs/out-of-scope/mainstream-issue-trackers-only.md +0 -25
- package/docs/out-of-scope/question-limits.md +0 -18
- package/docs/out-of-scope/setup-skill-verify-mode.md +0 -15
- package/docs/overview.md +0 -61
- package/docs/philosophy.md +0 -73
- package/docs/quality-scorecard.md +0 -23
- package/docs/skill-maintenance.md +0 -32
- package/docs/skills-index.md +0 -64
- package/docs/team-mode.md +0 -46
- package/docs/token-budget.md +0 -22
- package/docs/troubleshooting.md +0 -288
- package/examples/demo-transcripts/01-small-tweak.md +0 -37
- package/examples/demo-transcripts/02-unknown-bug-fix.md +0 -37
- package/examples/demo-transcripts/03-new-feature.md +0 -37
- package/examples/demo-transcripts/04-refactor.md +0 -37
- package/examples/demo-transcripts/05-review-and-verify.md +0 -37
- package/examples/feature-flow.md +0 -117
- package/examples/fix-flow.md +0 -139
- package/quality/scorecard.json +0 -88
- package/quality/token-budget.exceptions.json +0 -13
package/docs/philosophy.md
DELETED
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
# Philosophy
|
|
2
|
-
|
|
3
|
-
Zoo Flow is built around a small number of opinions. They are listed here so
|
|
4
|
-
you can decide whether the template is a good fit before you adopt it.
|
|
5
|
-
|
|
6
|
-
## 1. The router should not write code
|
|
7
|
-
|
|
8
|
-
Most failure modes in agentic coding come from a single agent trying to do
|
|
9
|
-
three jobs at once: deciding what to do, planning how to do it, and doing
|
|
10
|
-
it. Zoo Flow splits those into three modes and refuses to collapse them.
|
|
11
|
-
|
|
12
|
-
- `custom-orchestrator` decides **what** to do, by mapping a request to a
|
|
13
|
-
command from a fixed routing matrix.
|
|
14
|
-
- `system-architect` decides **how** to do it, in Markdown.
|
|
15
|
-
- `code-tweaker` does it.
|
|
16
|
-
|
|
17
|
-
The orchestrator has no `read`, `edit`, `command`, or `mcp` tool groups.
|
|
18
|
-
It cannot freelance into implementation work even if it wants to.
|
|
19
|
-
|
|
20
|
-
## 2. Slash commands are the public API
|
|
21
|
-
|
|
22
|
-
Free-form requests are fine, but the moment work starts, it goes through a
|
|
23
|
-
slash command. Commands are the only way the orchestrator delegates and
|
|
24
|
-
the only way modes know which workflow they are running.
|
|
25
|
-
|
|
26
|
-
This has two payoffs:
|
|
27
|
-
|
|
28
|
-
- A command name in chat is a checkable artifact. You can grep your history
|
|
29
|
-
for `/fix` or `/feature` and know exactly which workflow ran.
|
|
30
|
-
- Each command file is a single, readable place to change behavior. No
|
|
31
|
-
hunting through prompts.
|
|
32
|
-
|
|
33
|
-
Commands live at `templates/full/.roo/commands/{command}.md` and are loaded
|
|
34
|
-
through the protocol described in
|
|
35
|
-
[`architecture.md`](architecture.md#command-protocol).
|
|
36
|
-
|
|
37
|
-
## 3. Path safety beats cleverness
|
|
38
|
-
|
|
39
|
-
Skills always live at `templates/full/.roo/skills/{bucket}/{skill}/SKILL.md`.
|
|
40
|
-
Never under `.roo/rules/`. Never relative to the command file. Never invented
|
|
41
|
-
by the model.
|
|
42
|
-
|
|
43
|
-
This is enforced by `00-paths.md`, which ships as an always-on rule. If a
|
|
44
|
-
skill path drifts, the rule catches it. The cost is one rule file. The
|
|
45
|
-
benefit is no more `ENOENT` rabbit holes.
|
|
46
|
-
|
|
47
|
-
## 4. Same-window switches for tight loops, `new_task` for clean boundaries
|
|
48
|
-
|
|
49
|
-
There are two delegation primitives in Zoo Code:
|
|
50
|
-
|
|
51
|
-
- `switch_mode` keeps the same task window and hands the keyboard to a
|
|
52
|
-
different mode. Cheap. Good for `/fix` going architect → tweaker → architect.
|
|
53
|
-
- `new_task` opens a delegated subtask with its own window. Expensive. Good
|
|
54
|
-
for orchestrator handing real work to architect or tweaker.
|
|
55
|
-
|
|
56
|
-
Zoo Flow uses both, deliberately. The orchestrator only ever uses
|
|
57
|
-
`new_task`. Modes only ever use `switch_mode`. They never cross.
|
|
58
|
-
|
|
59
|
-
## 5. HITL hard stops are features
|
|
60
|
-
|
|
61
|
-
Several commands force a halt. `/feature` halts after sharpening, after
|
|
62
|
-
prototype, after PRD, after issues. `/fix` halts after diagnosis. The git
|
|
63
|
-
flow halts before commit. These are not friction; they are the points
|
|
64
|
-
where a human review is cheaper than a rollback.
|
|
65
|
-
|
|
66
|
-
## 6. The skill set is replaceable
|
|
67
|
-
|
|
68
|
-
The bundled skills are a starting point. You should expect to delete some,
|
|
69
|
-
add some, and rename a bucket. The control plane — modes, commands, rules —
|
|
70
|
-
is the part that should be stable.
|
|
71
|
-
|
|
72
|
-
If a skill cannot be invoked through a command, it does not belong in the
|
|
73
|
-
template.
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
# Quality Scorecard
|
|
2
|
-
|
|
3
|
-
Zoo Flow uses a deterministic rule-based quality scorecard to gate releases. Every
|
|
4
|
-
category must score >= 9.5/10 for `release:check` to pass.
|
|
5
|
-
|
|
6
|
-
## Categories
|
|
7
|
-
|
|
8
|
-
| Category | Weight | What it measures |
|
|
9
|
-
|---|---|---|
|
|
10
|
-
| command_integrity | 20% | Every command has a correct `mode:` declaration matching the command-policy map. Required rules exist. Routing table is in sync. |
|
|
11
|
-
| skill_quality | 20% | Skills use canonical `Skill:` marker. Referenced skills exist. Skills have purpose, steps, and output format. No thin wrappers. Bucket layout. |
|
|
12
|
-
| validation_depth | 20% | Doctor validates files, skill refs, mode slugs, built-in bans, .roomodes permission, routing rows, old-doc leakage, ADR path consistency. |
|
|
13
|
-
| token_economy | 10% | Context-economy rule exists. Domain-doc read gate. Completion evidence format. Risk-based routing. |
|
|
14
|
-
| verification | 10% | Verify command + skill with evidence output and no-claim-unless-run rule. Fixture tests. Routing evals. Package-link check. |
|
|
15
|
-
| review_process | 10% | Review command + skill with standards/spec/Security-Risk axes. Severity-ordered findings. Canonical result line. |
|
|
16
|
-
| release_readiness | 10% | `release:check` runs all validation scripts. Score thresholds enforced. `npm pack --dry-run` passes. |
|
|
17
|
-
|
|
18
|
-
## How scoring works
|
|
19
|
-
|
|
20
|
-
- Each category defines specific checks (see `quality/scorecard.json`).
|
|
21
|
-
- Each check is pass/fail. Missing items reduce the category score toward 0.
|
|
22
|
-
- The weighted composite score must be >= 9.5 for `npm run release:check` to pass.
|
|
23
|
-
- Scoring is fully deterministic — no AI grading, no subjective evaluation.
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
# Skill maintenance policy
|
|
2
|
-
|
|
3
|
-
This is repo-maintenance policy for the bundled skill set. It does not
|
|
4
|
-
need to be in the model's context on every turn, so it lives in `docs/`
|
|
5
|
-
rather than `.roo/rules/`. The runtime path-safety contract is in
|
|
6
|
-
[`templates/full/.roo/rules/00-paths.md`](../templates/full/.roo/rules/00-paths.md).
|
|
7
|
-
|
|
8
|
-
## Skill bucket layout
|
|
9
|
-
|
|
10
|
-
Skills are organized into bucket folders under `.roo/skills/`:
|
|
11
|
-
|
|
12
|
-
- `.roo/skills/engineering/` — daily code work
|
|
13
|
-
- `.roo/skills/productivity/` — daily non-code workflow tools
|
|
14
|
-
- `.roo/skills/misc/` — kept around but rarely used
|
|
15
|
-
- `.roo/skills/personal/` — tied to a maintainer's setup, not promoted
|
|
16
|
-
- `.roo/skills/in-progress/` — drafts not yet ready to ship
|
|
17
|
-
- `.roo/skills/deprecated/` — no longer used
|
|
18
|
-
|
|
19
|
-
## Promotion rules
|
|
20
|
-
|
|
21
|
-
Skills in `.roo/skills/personal/`, `.roo/skills/in-progress/`, and
|
|
22
|
-
`.roo/skills/deprecated/` must not appear in the top-level `README.md`
|
|
23
|
-
as promoted skills. They may appear in internal indexes only when
|
|
24
|
-
clearly marked as personal, in-progress, or deprecated.
|
|
25
|
-
|
|
26
|
-
Every skill in `.roo/skills/engineering/`, `.roo/skills/productivity/`,
|
|
27
|
-
or `.roo/skills/misc/` must have a reference in the top-level
|
|
28
|
-
`README.md`.
|
|
29
|
-
|
|
30
|
-
Each bucket folder has a `README.md` that lists every skill in the
|
|
31
|
-
bucket with a one-line description, with the skill name linked to its
|
|
32
|
-
`SKILL.md`.
|
package/docs/skills-index.md
DELETED
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
# Skills Index
|
|
2
|
-
|
|
3
|
-
This is human-facing reference documentation for Zoo Flow skills.
|
|
4
|
-
|
|
5
|
-
It is intentionally kept outside `.roo/rules/` because Zoo Code loads
|
|
6
|
-
`.roo/rules/` automatically on every turn.
|
|
7
|
-
|
|
8
|
-
Commands load skills directly from explicit `.roo/skills/.../SKILL.md`
|
|
9
|
-
paths, so this index is not required for runtime execution.
|
|
10
|
-
|
|
11
|
-
## engineering
|
|
12
|
-
|
|
13
|
-
| Skill | Path |
|
|
14
|
-
|---|---|
|
|
15
|
-
| `commit-and-document` | `.roo/skills/engineering/commit-and-document/SKILL.md` |
|
|
16
|
-
| `diagnose` | `.roo/skills/engineering/diagnose/SKILL.md` |
|
|
17
|
-
| `grill-with-docs` | `.roo/skills/engineering/grill-with-docs/SKILL.md` |
|
|
18
|
-
| `improve-codebase-architecture` | `.roo/skills/engineering/improve-codebase-architecture/SKILL.md` |
|
|
19
|
-
| `prototype` | `.roo/skills/engineering/prototype/SKILL.md` |
|
|
20
|
-
| `review` | `.roo/skills/engineering/review/SKILL.md` |
|
|
21
|
-
| `scaffold-context` | `.roo/skills/engineering/scaffold-context/SKILL.md` |
|
|
22
|
-
| `setup-matt-pocock-skills` | `.roo/skills/engineering/setup-matt-pocock-skills/SKILL.md` |
|
|
23
|
-
| `tdd` | `.roo/skills/engineering/tdd/SKILL.md` |
|
|
24
|
-
| `to-issues` | `.roo/skills/engineering/to-issues/SKILL.md` |
|
|
25
|
-
| `to-prd` | `.roo/skills/engineering/to-prd/SKILL.md` |
|
|
26
|
-
| `triage` | `.roo/skills/engineering/triage/SKILL.md` |
|
|
27
|
-
| `tweak` | `.roo/skills/engineering/tweak/SKILL.md` |
|
|
28
|
-
| `update-docs` | `.roo/skills/engineering/update-docs/SKILL.md` |
|
|
29
|
-
| `verify` | `.roo/skills/engineering/verify/SKILL.md` |
|
|
30
|
-
| `zoom-out` | `.roo/skills/engineering/zoom-out/SKILL.md` |
|
|
31
|
-
|
|
32
|
-
## productivity
|
|
33
|
-
|
|
34
|
-
| Skill | Path |
|
|
35
|
-
|---|---|
|
|
36
|
-
| `caveman` | `.roo/skills/productivity/caveman/SKILL.md` |
|
|
37
|
-
| `grill-me` | `.roo/skills/productivity/grill-me/SKILL.md` |
|
|
38
|
-
| `handoff` | `.roo/skills/productivity/handoff/SKILL.md` |
|
|
39
|
-
| `write-a-skill` | `.roo/skills/productivity/write-a-skill/SKILL.md` |
|
|
40
|
-
|
|
41
|
-
## misc
|
|
42
|
-
|
|
43
|
-
| Skill | Path |
|
|
44
|
-
|---|---|
|
|
45
|
-
| `git-guardrails-claude-code` | `.roo/skills/misc/git-guardrails-claude-code/SKILL.md` |
|
|
46
|
-
| `migrate-to-shoehorn` | `.roo/skills/misc/migrate-to-shoehorn/SKILL.md` |
|
|
47
|
-
| `scaffold-exercises` | `.roo/skills/misc/scaffold-exercises/SKILL.md` |
|
|
48
|
-
| `setup-pre-commit` | `.roo/skills/misc/setup-pre-commit/SKILL.md` |
|
|
49
|
-
|
|
50
|
-
## personal _(not promoted)_
|
|
51
|
-
|
|
52
|
-
| Skill | Path |
|
|
53
|
-
|---|---|
|
|
54
|
-
| `edit-article` | `.roo/skills/personal/edit-article/SKILL.md` |
|
|
55
|
-
| `obsidian-vault` | `.roo/skills/personal/obsidian-vault/SKILL.md` |
|
|
56
|
-
|
|
57
|
-
## in-progress _(drafts)_
|
|
58
|
-
|
|
59
|
-
| Skill | Path |
|
|
60
|
-
|---|---|
|
|
61
|
-
| `teach` | `.roo/skills/in-progress/teach/SKILL.md` |
|
|
62
|
-
| `writing-beats` | `.roo/skills/in-progress/writing-beats/SKILL.md` |
|
|
63
|
-
| `writing-fragments` | `.roo/skills/in-progress/writing-fragments/SKILL.md` |
|
|
64
|
-
| `writing-shape` | `.roo/skills/in-progress/writing-shape/SKILL.md` |
|
package/docs/team-mode.md
DELETED
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
# Team Mode
|
|
2
|
-
|
|
3
|
-
Zoo Flow separates local agent runtime config from shared project knowledge.
|
|
4
|
-
|
|
5
|
-
## Local/private
|
|
6
|
-
|
|
7
|
-
Usually gitignored:
|
|
8
|
-
|
|
9
|
-
- `.roo/`
|
|
10
|
-
- `.roomodes`
|
|
11
|
-
- `.zoo-flow/`
|
|
12
|
-
- `.scratch/`
|
|
13
|
-
- `docs/journal/`
|
|
14
|
-
|
|
15
|
-
These files are local because different users may have different Zoo Code setups, different installed skills, and different scratch context.
|
|
16
|
-
|
|
17
|
-
## Shared/committed
|
|
18
|
-
|
|
19
|
-
Usually committed:
|
|
20
|
-
|
|
21
|
-
- `AGENTS.md`
|
|
22
|
-
- `CONTRIBUTING.md`
|
|
23
|
-
- `docs/agents/`
|
|
24
|
-
- `docs/architecture/`
|
|
25
|
-
- `docs/adr/`
|
|
26
|
-
- `README.md`
|
|
27
|
-
|
|
28
|
-
Project knowledge should be promoted into shared docs when it affects the team.
|
|
29
|
-
|
|
30
|
-
## When to promote local context
|
|
31
|
-
|
|
32
|
-
Promote `.zoo-flow/CONTEXT.md` or `.zoo-flow/docs/adr/` into shared docs when:
|
|
33
|
-
|
|
34
|
-
- multiple people need the same terminology
|
|
35
|
-
- architecture decisions affect future work
|
|
36
|
-
- the agent repeatedly needs the same project knowledge
|
|
37
|
-
- onboarding would improve from committed docs
|
|
38
|
-
|
|
39
|
-
## Suggested shared layout
|
|
40
|
-
|
|
41
|
-
- `AGENTS.md`
|
|
42
|
-
- `docs/agents/issue-tracker.md`
|
|
43
|
-
- `docs/agents/triage-labels.md`
|
|
44
|
-
- `docs/agents/domain.md`
|
|
45
|
-
- `docs/architecture/`
|
|
46
|
-
- `docs/adr/`
|
package/docs/token-budget.md
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
# Token Budget
|
|
2
|
-
|
|
3
|
-
Zoo Flow enforces tiered token budgets to prevent bloat. Each tier has a
|
|
4
|
-
maximum byte size. Files exceeding their tier must have an explicit
|
|
5
|
-
exception in `quality/token-budget.exceptions.json`.
|
|
6
|
-
|
|
7
|
-
## Tiers
|
|
8
|
-
|
|
9
|
-
| Tier | Paths | Budget |
|
|
10
|
-
|---|---|---|
|
|
11
|
-
| Tier 1 — Rules | `.roo/rules/`, `.roo/rules-{mode}/` | 16 KB |
|
|
12
|
-
| Tier 2 — Commands | `.roo/commands/` | 8 KB |
|
|
13
|
-
| Tier 3 — Skills | `.roo/skills/` | 32 KB |
|
|
14
|
-
| Tier 4 — Config | `.roomodes` | 4 KB |
|
|
15
|
-
| Tier 5 — Docs | `docs/` | 64 KB |
|
|
16
|
-
| Tier 6 — Evidence | `.zoo-flow/evals/` | 8 KB |
|
|
17
|
-
|
|
18
|
-
## Exceptions
|
|
19
|
-
|
|
20
|
-
Add to `quality/token-budget.exceptions.json` with a reason and max byte
|
|
21
|
-
override. Exceptions must be justified (e.g., single-file bundle docs
|
|
22
|
-
are inherently large).
|
package/docs/troubleshooting.md
DELETED
|
@@ -1,288 +0,0 @@
|
|
|
1
|
-
# Troubleshooting
|
|
2
|
-
|
|
3
|
-
Common failure modes and their fixes. Each section starts with the
|
|
4
|
-
symptom you will actually see in chat or in tool output.
|
|
5
|
-
|
|
6
|
-
> **Where rules live, in one paragraph.** Global rules that apply to
|
|
7
|
-
> every mode are in `.roo/rules/`. Mode-specific behavior is in
|
|
8
|
-
> `.roo/rules-{modeSlug}/` — `rules-custom-orchestrator/`,
|
|
9
|
-
> `rules-system-architect/`, `rules-code-tweaker/`. `.roomodes` is
|
|
10
|
-
> minimal and points at those folders. Zoo Flow uses the preferred
|
|
11
|
-
> `.roo/rules-{modeSlug}/` directory form only; legacy single-file
|
|
12
|
-
> fallbacks such as `.roorules-{modeSlug}` and `.clinerules-{modeSlug}`
|
|
13
|
-
> are not used by this template. See [`mode-rules.md`](mode-rules.md)
|
|
14
|
-
> for the full layout.
|
|
15
|
-
|
|
16
|
-
## `.roo/rules/skills/...` ENOENT
|
|
17
|
-
|
|
18
|
-
**Symptom**
|
|
19
|
-
|
|
20
|
-
A mode tries to read a path like
|
|
21
|
-
`.roo/rules/skills/engineering/tweak/SKILL.md` and you get
|
|
22
|
-
`ENOENT: no such file or directory`.
|
|
23
|
-
|
|
24
|
-
**Cause**
|
|
25
|
-
|
|
26
|
-
A skill path drifted under `.roo/rules/`. Skills always live at
|
|
27
|
-
workspace-root `.roo/skills/...`. The most common triggers:
|
|
28
|
-
|
|
29
|
-
- A command file referenced a skill via a path that started with
|
|
30
|
-
`.roo/rules/`.
|
|
31
|
-
- The mode resolved the skill path relative to the location of the
|
|
32
|
-
rules file instead of the workspace root.
|
|
33
|
-
- A model "helpfully" rewrote the path because it thought rules and
|
|
34
|
-
skills should sit together.
|
|
35
|
-
|
|
36
|
-
**Fix**
|
|
37
|
-
|
|
38
|
-
1. Confirm `templates/full/.roo/rules/00-paths.md` is present and that
|
|
39
|
-
the rules loader picks up `.roo/rules/*.md`. If you copied only some
|
|
40
|
-
of the rules into your workspace, copy the rest.
|
|
41
|
-
2. Open the offending command file under
|
|
42
|
-
`templates/full/.roo/commands/` and check the `Run skill:` line. The
|
|
43
|
-
path must look like:
|
|
44
|
-
|
|
45
|
-
```
|
|
46
|
-
.roo/skills/{bucket}/{skill}/SKILL.md
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
Not:
|
|
50
|
-
|
|
51
|
-
```
|
|
52
|
-
.roo/rules/skills/{bucket}/{skill}/SKILL.md
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
If you cannot find a stale reference and the model still produces this
|
|
56
|
-
path, paste the rules in `00-paths.md` directly into the chat as a
|
|
57
|
-
reminder, then file an issue with the chat transcript.
|
|
58
|
-
|
|
59
|
-
## `new_task` missing in orchestrator
|
|
60
|
-
|
|
61
|
-
**Symptom**
|
|
62
|
-
|
|
63
|
-
The orchestrator says it cannot delegate, or it tries to do
|
|
64
|
-
implementation work itself, or it switches mode (which it should never
|
|
65
|
-
do).
|
|
66
|
-
|
|
67
|
-
**Cause**
|
|
68
|
-
|
|
69
|
-
The orchestrator's tool groups in `.roomodes` are `[]` — that is correct
|
|
70
|
-
— but the host UI has not exposed `new_task` to it. Some UIs only enable
|
|
71
|
-
`new_task` when at least one tool group is present.
|
|
72
|
-
|
|
73
|
-
**Fix**
|
|
74
|
-
|
|
75
|
-
1. Confirm `templates/full/.roomodes` has not been edited to add
|
|
76
|
-
read/edit/command/mcp groups for `custom-orchestrator`. The empty
|
|
77
|
-
groups list is intentional.
|
|
78
|
-
2. In Zoo Code settings, confirm subtasks (sometimes called
|
|
79
|
-
"delegated tasks" or "Boomerang tasks") are enabled.
|
|
80
|
-
3. If subtasks are disabled in the host, the orchestrator's correct
|
|
81
|
-
behavior is to stop and report. That is what rule 4 of its
|
|
82
|
-
`customInstructions` says. Do not work around this by giving it more
|
|
83
|
-
tool groups.
|
|
84
|
-
|
|
85
|
-
## `run_slash_command` disabled
|
|
86
|
-
|
|
87
|
-
**Symptom**
|
|
88
|
-
|
|
89
|
-
The mode reports that it cannot run the slash command, or it falls back
|
|
90
|
-
to running the command file but seems unsure.
|
|
91
|
-
|
|
92
|
-
**Cause**
|
|
93
|
-
|
|
94
|
-
`run_slash_command` is an experimental tool in Zoo Code and must be
|
|
95
|
-
enabled in settings before it is available. When it is not enabled,
|
|
96
|
-
or when the host UI does not expose it, the command protocol expects the
|
|
97
|
-
mode to fall back gracefully.
|
|
98
|
-
|
|
99
|
-
**Fix**
|
|
100
|
-
|
|
101
|
-
1. Confirm `templates/full/.roo/rules/01-command-protocol.md` is loaded.
|
|
102
|
-
It is the rule that tells the mode what to do.
|
|
103
|
-
2. Step 3 of the protocol is the fallback: read
|
|
104
|
-
`templates/full/.roo/commands/{command}.md` directly and execute it.
|
|
105
|
-
If the mode does not do this, the rule is not in context.
|
|
106
|
-
3. `run_slash_command` is experimental and must be enabled in Zoo Code
|
|
107
|
-
settings. Zoo Flow still works without it because its command
|
|
108
|
-
protocol falls back to reading `.roo/commands/{command}.md` directly.
|
|
109
|
-
That fallback is a first-class path, not a workaround.
|
|
110
|
-
|
|
111
|
-
## Architect trying to edit source
|
|
112
|
-
|
|
113
|
-
**Symptom**
|
|
114
|
-
|
|
115
|
-
The architect tries to write to a `.ts`, `.py`, or other source file
|
|
116
|
-
and either gets refused by the host or silently writes a Markdown file
|
|
117
|
-
"about" the change instead of the change itself.
|
|
118
|
-
|
|
119
|
-
**Cause**
|
|
120
|
-
|
|
121
|
-
Either:
|
|
122
|
-
|
|
123
|
-
- The architect's `edit` `fileRegex` in `.roomodes` was loosened beyond
|
|
124
|
-
Markdown, `.scratch/`, and `docs/`, or
|
|
125
|
-
- The architect ignored its rule 2 ("NO IMPLEMENTATION CODING") and
|
|
126
|
-
tried to edit anyway.
|
|
127
|
-
|
|
128
|
-
**Fix**
|
|
129
|
-
|
|
130
|
-
1. Restore the regex in `.roomodes`. The shipped form is:
|
|
131
|
-
|
|
132
|
-
```json
|
|
133
|
-
{ "fileRegex": "(.*\\.md$|^\\.scratch/.*|^docs/.*)" }
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
2. The correct architect behavior is to summarize the implementation
|
|
137
|
-
work and `switch_mode` to `code-tweaker` in the same task window.
|
|
138
|
-
If the work is part of a delegated subtask, the architect uses
|
|
139
|
-
`attempt_completion` instead — but only when the delegation contract
|
|
140
|
-
actually expected a planning result, not implementation.
|
|
141
|
-
3. If the architect keeps trying to edit source, paste the relevant
|
|
142
|
-
line from the architect's `customInstructions` directly into chat.
|
|
143
|
-
|
|
144
|
-
## Prototype running in the wrong mode
|
|
145
|
-
|
|
146
|
-
**Symptom**
|
|
147
|
-
|
|
148
|
-
During `/feature`, the architect runs a prototype directly: edits source
|
|
149
|
-
files, starts a dev server, or builds UI scaffolding. Or, the tweaker
|
|
150
|
-
ends up doing PRD or sharpening work instead of the prototype.
|
|
151
|
-
|
|
152
|
-
**Cause**
|
|
153
|
-
|
|
154
|
-
Phase 2 of `/feature` is "the architect summarizes the prototype
|
|
155
|
-
question and switches to `code-tweaker` to run `/prototype`". If the
|
|
156
|
-
architect skips the switch, it ends up doing implementation work it
|
|
157
|
-
cannot do safely. If the orchestrator routes `/prototype` directly to
|
|
158
|
-
`system-architect`, the chain is broken.
|
|
159
|
-
|
|
160
|
-
**Fix**
|
|
161
|
-
|
|
162
|
-
1. Open `templates/full/.roo/commands/feature.md` and confirm phase 2
|
|
163
|
-
reads:
|
|
164
|
-
|
|
165
|
-
- Architect summarizes the prototype question.
|
|
166
|
-
- Architect MUST `switch_mode` -> `code-tweaker`.
|
|
167
|
-
- Tweaker executes `/prototype`.
|
|
168
|
-
- Tweaker MUST `switch_mode` -> `system-architect` with result.
|
|
169
|
-
|
|
170
|
-
2. Confirm the routing matrix in `.roomodes` lists `/prototype` under
|
|
171
|
-
`code-tweaker`, not `system-architect`.
|
|
172
|
-
3. If the architect refuses to switch, paste rule 3 from its
|
|
173
|
-
`customInstructions` ("FEATURE PROTOTYPES") into chat. It is the
|
|
174
|
-
single most-violated rule in practice.
|
|
175
|
-
|
|
176
|
-
## Slash command leakage from subtask summaries
|
|
177
|
-
|
|
178
|
-
**Symptom**
|
|
179
|
-
|
|
180
|
-
A subtask's `attempt_completion` summary contains a line like
|
|
181
|
-
"Recommended next command: `/refactor`". The orchestrator then
|
|
182
|
-
launches `/refactor` immediately, without you typing it.
|
|
183
|
-
|
|
184
|
-
**Cause**
|
|
185
|
-
|
|
186
|
-
The orchestrator's rule 2 ("EXPLICIT COMMANDS") is being ignored.
|
|
187
|
-
Slash commands inside a subtask summary are guidance for *you*, not
|
|
188
|
-
authorization for the orchestrator to launch a new subtask.
|
|
189
|
-
|
|
190
|
-
**Fix**
|
|
191
|
-
|
|
192
|
-
1. Open `.roomodes`. Confirm rule 2 of `custom-orchestrator` reads:
|
|
193
|
-
"If the HUMAN USER explicitly types a supported slash command,
|
|
194
|
-
delegate it directly using the Routing Matrix. **Ignore slash
|
|
195
|
-
commands mentioned only inside subtask summaries.**"
|
|
196
|
-
2. Confirm rule 6 ("POST-SUBTASK HARD STOP"): "When a subtask returns,
|
|
197
|
-
summarize results for the user and HALT. Never auto-launch
|
|
198
|
-
consecutive subtasks."
|
|
199
|
-
3. If those rules are present and the orchestrator still chains, the
|
|
200
|
-
most likely explanation is that the model is confusing a subtask
|
|
201
|
-
summary with a user message. Tell it explicitly: "Halt. The
|
|
202
|
-
`/refactor` in the previous summary was a recommendation, not a
|
|
203
|
-
user command."
|
|
204
|
-
|
|
205
|
-
If the chain happened despite the rules being in place, file an issue
|
|
206
|
-
with the full transcript so the language can be tightened.
|
|
207
|
-
|
|
208
|
-
## Clickable suggestions can route incorrectly
|
|
209
|
-
|
|
210
|
-
Zoo Code may render model suggestions as clickable options. These are
|
|
211
|
-
safe only when they are plain numbered choices.
|
|
212
|
-
|
|
213
|
-
Good:
|
|
214
|
-
|
|
215
|
-
```text
|
|
216
|
-
Which workflow should I use?
|
|
217
|
-
|
|
218
|
-
1. Tweak small implementation
|
|
219
|
-
2. Diagnose bug
|
|
220
|
-
3. Hold
|
|
221
|
-
|
|
222
|
-
Reply with the number, e.g. 1.
|
|
223
|
-
```
|
|
224
|
-
|
|
225
|
-
Avoid suggestions like:
|
|
226
|
-
|
|
227
|
-
```text
|
|
228
|
-
Use /fix
|
|
229
|
-
Run /tweak
|
|
230
|
-
Switch to code-tweaker
|
|
231
|
-
Route to system-architect
|
|
232
|
-
```
|
|
233
|
-
|
|
234
|
-
Slash commands should only be treated as commands when the user
|
|
235
|
-
manually types them into the chat.
|
|
236
|
-
|
|
237
|
-
The short rule that enforces this lives in
|
|
238
|
-
[`templates/full/.roo/rules/03-manual-reply-protocol.md`](../templates/full/.roo/rules/03-manual-reply-protocol.md).
|
|
239
|
-
|
|
240
|
-
## Proceed policy
|
|
241
|
-
|
|
242
|
-
Zoo Flow delegated tasks include a proceed policy so workers know when
|
|
243
|
-
to continue and when to ask the user.
|
|
244
|
-
|
|
245
|
-
Policies:
|
|
246
|
-
|
|
247
|
-
- `Proceed automatically after audit if clean`
|
|
248
|
-
- `Ask user before implementation`
|
|
249
|
-
- `Stop and report only`
|
|
250
|
-
|
|
251
|
-
This prevents unnecessary questions during well-specified subtasks,
|
|
252
|
-
while preserving approval gates for hypotheses, architecture decisions,
|
|
253
|
-
commits, issue changes, and irreversible actions.
|
|
254
|
-
|
|
255
|
-
## Agent loads a skill after every command
|
|
256
|
-
|
|
257
|
-
Some commands are direct workflows, while others are thin wrappers
|
|
258
|
-
around skills. The protocol should only load a skill when the command
|
|
259
|
-
file explicitly says so.
|
|
260
|
-
|
|
261
|
-
Correct behavior:
|
|
262
|
-
|
|
263
|
-
```text
|
|
264
|
-
/tdd
|
|
265
|
-
→ command contains `Skill: .roo/skills/engineering/tdd/SKILL.md`
|
|
266
|
-
→ load the skill
|
|
267
|
-
|
|
268
|
-
/fix
|
|
269
|
-
→ command contains direct workflow steps
|
|
270
|
-
→ execute the command directly
|
|
271
|
-
→ do not invent `.roo/skills/.../fix/SKILL.md`
|
|
272
|
-
```
|
|
273
|
-
|
|
274
|
-
**Fix:** check
|
|
275
|
-
[`templates/full/.roo/rules/01-command-protocol.md`](../templates/full/.roo/rules/01-command-protocol.md).
|
|
276
|
-
It should say to load a skill only when the command explicitly
|
|
277
|
-
contains a `Skill: .roo/skills/...` reference.
|
|
278
|
-
|
|
279
|
-
## Agent reads too many files
|
|
280
|
-
|
|
281
|
-
Check `.roo/rules/04-context-economy.md`.
|
|
282
|
-
|
|
283
|
-
Expected behavior:
|
|
284
|
-
|
|
285
|
-
1. map/search first
|
|
286
|
-
2. read targeted ranges
|
|
287
|
-
3. full-read only when necessary
|
|
288
|
-
4. avoid re-reading unchanged files
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
# Small Tweak
|
|
2
|
-
|
|
3
|
-
## User request
|
|
4
|
-
|
|
5
|
-
"Fix the typo in the README install heading."
|
|
6
|
-
|
|
7
|
-
## Orchestrator recommendation
|
|
8
|
-
|
|
9
|
-
This is low-risk and localized.
|
|
10
|
-
|
|
11
|
-
1. Make the small implementation change
|
|
12
|
-
2. Explore the docs first
|
|
13
|
-
|
|
14
|
-
## User approval
|
|
15
|
-
|
|
16
|
-
"1"
|
|
17
|
-
|
|
18
|
-
## Delegation message
|
|
19
|
-
|
|
20
|
-
Task: Fix the README heading typo.
|
|
21
|
-
Command: `/tweak`
|
|
22
|
-
Proceed policy: Proceed automatically after audit if clean.
|
|
23
|
-
Context hints: `README.md` heading.
|
|
24
|
-
Allowed scope: `README.md`.
|
|
25
|
-
Must follow: command protocol, command file, referenced skill only.
|
|
26
|
-
|
|
27
|
-
## Worker behavior
|
|
28
|
-
|
|
29
|
-
Code Tweaker loads `.roo/commands/tweak.md`, sees `Skill: .roo/skills/engineering/tweak/SKILL.md`, reads only that skill, audits the heading, patches the typo, and avoids unrelated edits.
|
|
30
|
-
|
|
31
|
-
## Verification / review
|
|
32
|
-
|
|
33
|
-
Worker reports no test command was needed for a heading typo. Because risk is R1, it suggests commit only after user satisfaction.
|
|
34
|
-
|
|
35
|
-
## Completion summary
|
|
36
|
-
|
|
37
|
-
Custom Orchestrator summarizes the changed file and halts. It does not auto-run commit.
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
# Unknown Bug Fix
|
|
2
|
-
|
|
3
|
-
## User request
|
|
4
|
-
|
|
5
|
-
"Checkout randomly crashes after payment. It used to work."
|
|
6
|
-
|
|
7
|
-
## Orchestrator recommendation
|
|
8
|
-
|
|
9
|
-
Unknown cause, broken behavior, regression risk.
|
|
10
|
-
|
|
11
|
-
1. Diagnose the bug first
|
|
12
|
-
2. Explore the checkout area first
|
|
13
|
-
|
|
14
|
-
## User approval
|
|
15
|
-
|
|
16
|
-
"Diagnose the bug first."
|
|
17
|
-
|
|
18
|
-
## Delegation message
|
|
19
|
-
|
|
20
|
-
Task: Diagnose checkout crash after payment.
|
|
21
|
-
Command: `/fix`
|
|
22
|
-
Proceed policy: Ask user before implementation.
|
|
23
|
-
Context hints: checkout, payment completion.
|
|
24
|
-
Allowed scope: checkout/payment area after audit.
|
|
25
|
-
Must follow: command protocol and `/fix` phase checklist.
|
|
26
|
-
|
|
27
|
-
## Worker behavior
|
|
28
|
-
|
|
29
|
-
System Architect loads `.roo/commands/fix.md`, writes `.scratch/fix-checkout-crash.md`, runs diagnosis phases, then stops at hypotheses. After user selects one, it confirms root cause, switches to Code Tweaker for implementation, then switches back for post-mortem.
|
|
30
|
-
|
|
31
|
-
## Verification / review
|
|
32
|
-
|
|
33
|
-
Code Tweaker suggests `/verify`, then `/review`, then `/commit-and-document`. No follow-up command is launched automatically.
|
|
34
|
-
|
|
35
|
-
## Completion summary
|
|
36
|
-
|
|
37
|
-
Custom Orchestrator reports root cause, files touched, commands run, remaining risk, and recommended next command. Commit still requires explicit approval.
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
# New Feature
|
|
2
|
-
|
|
3
|
-
## User request
|
|
4
|
-
|
|
5
|
-
"Add team invitations with email invites and pending invite states."
|
|
6
|
-
|
|
7
|
-
## Orchestrator recommendation
|
|
8
|
-
|
|
9
|
-
This is a new capability with product and data-model decisions.
|
|
10
|
-
|
|
11
|
-
1. Plan the feature first
|
|
12
|
-
2. Explore the team/account area first
|
|
13
|
-
|
|
14
|
-
## User approval
|
|
15
|
-
|
|
16
|
-
"1"
|
|
17
|
-
|
|
18
|
-
## Delegation message
|
|
19
|
-
|
|
20
|
-
Task: Plan team invitations.
|
|
21
|
-
Command: `/feature`
|
|
22
|
-
Proceed policy: Ask at phase gates.
|
|
23
|
-
Context hints: teams, invites, email, pending states.
|
|
24
|
-
Allowed scope: planning docs and targeted code reads.
|
|
25
|
-
Must follow: command protocol and `/feature` phase checklist.
|
|
26
|
-
|
|
27
|
-
## Worker behavior
|
|
28
|
-
|
|
29
|
-
System Architect sharpens with docs, asks whether to prototype or skip to PRD, writes PRD, asks before slicing issues, then switches to Code Tweaker for approved implementation slices. Code Tweaker runs `/tdd` per slice.
|
|
30
|
-
|
|
31
|
-
## Verification / review
|
|
32
|
-
|
|
33
|
-
After each slice ships, Code Tweaker suggests `/verify`, then `/review`, then `/commit-and-document`. It does not auto-run them.
|
|
34
|
-
|
|
35
|
-
## Completion summary
|
|
36
|
-
|
|
37
|
-
Custom Orchestrator summarizes phase status, approved decisions, files changed, checks run, and remaining recommended next command.
|