@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/command-design.md
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
# Command Design
|
|
2
|
-
|
|
3
|
-
Zoo Flow should not add a composite command unless it meets all criteria:
|
|
4
|
-
|
|
5
|
-
1. It crosses `system-architect` / `code-tweaker` boundaries.
|
|
6
|
-
2. It needs hard stops or user approval gates.
|
|
7
|
-
3. It benefits from `.scratch/` phase tracking.
|
|
8
|
-
4. It is common across many projects.
|
|
9
|
-
5. Chaining existing commands manually is awkward or unsafe.
|
|
10
|
-
|
|
11
|
-
If not, prefer:
|
|
12
|
-
|
|
13
|
-
- a skill
|
|
14
|
-
- a helper command
|
|
15
|
-
- a routing eval
|
|
16
|
-
- a doctor check
|
|
17
|
-
- documentation
|
|
18
|
-
|
|
19
|
-
## Good composites
|
|
20
|
-
|
|
21
|
-
- `/feature`
|
|
22
|
-
- `/fix`
|
|
23
|
-
- `/refactor`
|
|
24
|
-
|
|
25
|
-
## Good non-composites
|
|
26
|
-
|
|
27
|
-
- `/review`
|
|
28
|
-
- `/verify`
|
|
29
|
-
- `/update-docs`
|
|
30
|
-
- `/commit-and-document`
|
|
31
|
-
|
|
32
|
-
## Do not add yet
|
|
33
|
-
|
|
34
|
-
- `/ship`
|
|
35
|
-
- `/release`
|
|
36
|
-
- `/migrate`
|
|
37
|
-
- `/security-audit`
|
|
38
|
-
- `/cleanup`
|
package/docs/command-flow.md
DELETED
|
@@ -1,133 +0,0 @@
|
|
|
1
|
-
# Command flow
|
|
2
|
-
|
|
3
|
-
This document walks the lifecycle of a slash command from chat input to
|
|
4
|
-
completion, and shows the difference between same-window switches and
|
|
5
|
-
delegated subtasks.
|
|
6
|
-
|
|
7
|
-
## End-to-end: explicit slash command
|
|
8
|
-
|
|
9
|
-
```mermaid
|
|
10
|
-
sequenceDiagram
|
|
11
|
-
autonumber
|
|
12
|
-
actor User
|
|
13
|
-
participant O as 🪃 custom-orchestrator
|
|
14
|
-
participant A as 🏗️ system-architect
|
|
15
|
-
participant T as ⚡ code-tweaker
|
|
16
|
-
|
|
17
|
-
User->>O: /fix Login button is dead on second click.
|
|
18
|
-
O->>O: Look up routing matrix
|
|
19
|
-
O->>A: new_task("/fix ...", protocol + skill location)
|
|
20
|
-
A->>A: Load /fix command, run diagnose phases 1-3
|
|
21
|
-
A-->>User: Hypotheses, HITL stop
|
|
22
|
-
User->>A: Choose hypothesis 2
|
|
23
|
-
A->>A: Diagnose phase 4 (instrument), find root cause
|
|
24
|
-
A->>T: switch_mode (same window) — implement fix
|
|
25
|
-
T->>T: Phase 5 — patch + tests
|
|
26
|
-
T->>A: switch_mode — back for post-mortem
|
|
27
|
-
A->>A: Phase 6 — post-mortem
|
|
28
|
-
A->>O: attempt_completion (summary, files, blockers)
|
|
29
|
-
O-->>User: Summary + halt
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
Notes:
|
|
33
|
-
|
|
34
|
-
- Step 3 is the only `new_task` in the flow. The orchestrator never uses
|
|
35
|
-
`switch_mode`.
|
|
36
|
-
- Steps 7 and 9 are `switch_mode` calls in the **same task window**.
|
|
37
|
-
Context is preserved across them.
|
|
38
|
-
- Step 11 is `attempt_completion`. It returns to the orchestrator, which
|
|
39
|
-
then halts in step 12.
|
|
40
|
-
|
|
41
|
-
## End-to-end: free-form request
|
|
42
|
-
|
|
43
|
-
```mermaid
|
|
44
|
-
sequenceDiagram
|
|
45
|
-
autonumber
|
|
46
|
-
actor User
|
|
47
|
-
participant O as 🪃 custom-orchestrator
|
|
48
|
-
|
|
49
|
-
User->>O: Tweak the README to mention Windows first.
|
|
50
|
-
O->>O: No explicit slash command
|
|
51
|
-
O->>O: Map to /tweak (or /update-docs)
|
|
52
|
-
O-->>User: Offers numbered choices: 1. Tweak README 2. Update docs
|
|
53
|
-
User->>O: 1
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
After step 5 the flow continues exactly like the explicit case above.
|
|
57
|
-
|
|
58
|
-
## Same-window vs delegated
|
|
59
|
-
|
|
60
|
-
| Primitive | Used by | When | Cost | Context |
|
|
61
|
-
| -------------------- | ------------------------------- | --------------------------------------------- | --------- | ----------- |
|
|
62
|
-
| `switch_mode` | architect ↔ tweaker | Tight loop inside one workflow | Cheap | Preserved |
|
|
63
|
-
| `new_task` | orchestrator → architect / tweaker | Top-level delegation of a workflow | Expensive | Fresh |
|
|
64
|
-
| `attempt_completion` | architect / tweaker → orchestrator | End of the command chain (final phase) | Free | Returns up |
|
|
65
|
-
|
|
66
|
-
The orchestrator only uses `new_task`. Modes only use `switch_mode` and
|
|
67
|
-
`attempt_completion`. Crossing those wires is a bug. `attempt_completion`
|
|
68
|
-
fires only after the command's final phase — mid-chain mode handoffs use
|
|
69
|
-
`switch_mode`.
|
|
70
|
-
|
|
71
|
-
## Phase chains
|
|
72
|
-
|
|
73
|
-
Some commands are single-skill (`/tweak`, `/prototype`). Others chain
|
|
74
|
-
phases across modes. The composite chains are `/fix`, `/feature`, and
|
|
75
|
-
`/refactor`.
|
|
76
|
-
|
|
77
|
-
Helper commands are directly runnable in their documented mode because
|
|
78
|
-
their command files include `mode:` frontmatter. `/caveman` is intentionally
|
|
79
|
-
modeless because it changes communication style, not workflow authority.
|
|
80
|
-
|
|
81
|
-
Each composite command writes an unchecked phase checklist to `.scratch/`
|
|
82
|
-
at the start and updates it before every `switch_mode` or
|
|
83
|
-
`attempt_completion`. A worker must not `attempt_completion` while any
|
|
84
|
-
phase is still unchecked — it `switch_mode`s to the phase's owner instead.
|
|
85
|
-
This anchors the chain so a mid-chain mode does not mistake "this phase is
|
|
86
|
-
done" for "the command is done" after the command body scrolls out of
|
|
87
|
-
attention.
|
|
88
|
-
|
|
89
|
-
### `/fix` chain
|
|
90
|
-
|
|
91
|
-
| Phase | Mode | Action | Hard stop? |
|
|
92
|
-
| ----- | --------- | ----------------------------------------------- | ----------------- |
|
|
93
|
-
| 1 | Architect | Diagnose phases 1–3, propose hypotheses | Yes — pick one |
|
|
94
|
-
| 2 | Architect | Diagnose phase 4, instrument chosen hypothesis | No |
|
|
95
|
-
| 3 | Tweaker | Implement fix, add/extend tests | No |
|
|
96
|
-
| 4 | Architect | Post-mortem; suggest `/refactor` if rot found | No |
|
|
97
|
-
| 5 | Tweaker | Suggest `/verify`, `/review`, then commit | Yes — user approval|
|
|
98
|
-
|
|
99
|
-
### `/feature` chain
|
|
100
|
-
|
|
101
|
-
| Phase | Mode | Action | Hard stop? |
|
|
102
|
-
| ----- | --------- | --------------------------------------------------- | --------------------------- |
|
|
103
|
-
| 1 | Architect | Sharpen via `grill-with-docs`; update docs | Yes — Prototype or skip? |
|
|
104
|
-
| 2a | Tweaker | Prototype via `/prototype` (only if user picks it) | Yes — verdict on prototype |
|
|
105
|
-
| 3 | Architect | Build PRD via `to-prd` | Yes — ready to slice? |
|
|
106
|
-
| 4 | Architect | Slice into issues via `to-issues` | Yes — approve issue list |
|
|
107
|
-
| 5 | Tweaker | For each issue, run `/tdd`; suggest verify/review/commit | Yes — user approval per issue|
|
|
108
|
-
|
|
109
|
-
Hard stops are not optional. Removing them is the fastest way to make the
|
|
110
|
-
flow unsafe.
|
|
111
|
-
|
|
112
|
-
## What the delegated message looks like
|
|
113
|
-
|
|
114
|
-
When the orchestrator hands work to a mode, the `new_task` message
|
|
115
|
-
contains, at minimum:
|
|
116
|
-
|
|
117
|
-
- the slash command, including the leading slash
|
|
118
|
-
- the user context
|
|
119
|
-
- a proceed policy
|
|
120
|
-
- a reminder to follow `.roo/rules/01-command-protocol.md`
|
|
121
|
-
- a reminder that skills live under `.roo/skills/...`
|
|
122
|
-
- a completion rule: finish the **whole command chain**, then end with
|
|
123
|
-
`attempt_completion` containing summary, files inspected/changed,
|
|
124
|
-
commands/tests run, blockers, and a recommended next command. Mid-chain
|
|
125
|
-
mode handoffs use `switch_mode`, not `attempt_completion`.
|
|
126
|
-
|
|
127
|
-
Command normalization is handled by `.roo/rules/01-command-protocol.md`,
|
|
128
|
-
not repeated in the delegated message.
|
|
129
|
-
|
|
130
|
-
For non-trivial implementation, the recommended follow-up chain is
|
|
131
|
-
`/verify` -> `/review` -> `/commit-and-document`. This is a suggestion,
|
|
132
|
-
not authorization: workers and the orchestrator must not auto-launch those
|
|
133
|
-
commands merely because they were mentioned.
|
package/docs/comparison.md
DELETED
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
# Comparison and positioning
|
|
2
|
-
|
|
3
|
-
A few projects in the agentic-coding space share vocabulary with Zoo
|
|
4
|
-
Flow — "skills", "agents", "commands". They are doing different things.
|
|
5
|
-
This page is meant to make the differences clear so you can pick the
|
|
6
|
-
right tool for the job.
|
|
7
|
-
|
|
8
|
-
## Short version
|
|
9
|
-
|
|
10
|
-
- **Superpowers** is a broad methodology and skills library. The center
|
|
11
|
-
of gravity is the *skills*: a large, well-curated collection of named
|
|
12
|
-
techniques the agent can pull in.
|
|
13
|
-
- **ECC (Extended Coding Companion / "extended coding context")** is a
|
|
14
|
-
large agent harness. The center of gravity is the *runtime*: a rich
|
|
15
|
-
agent loop, memory, and tooling stack.
|
|
16
|
-
- **Zoo Flow** is a Zoo Code-native workflow control plane. It focuses
|
|
17
|
-
on mode-safe delegation, slash-command routing, and path-safe skill
|
|
18
|
-
loading. The center of gravity is the
|
|
19
|
-
*contract*: three modes, a routing matrix, a command protocol, and a
|
|
20
|
-
path-safety guarantee.
|
|
21
|
-
|
|
22
|
-
These projects are complementary more than competitive. You can run a
|
|
23
|
-
broad skills library inside Zoo Flow's three-mode contract, and you can
|
|
24
|
-
plug Zoo Flow's commands into a richer harness if you have one.
|
|
25
|
-
|
|
26
|
-
## What Zoo Flow is not
|
|
27
|
-
|
|
28
|
-
- It is not a replacement for a methodology like Superpowers. If you
|
|
29
|
-
want a long, opinionated guide to *how to think* about agentic
|
|
30
|
-
coding, look there.
|
|
31
|
-
- It is not a runtime. Zoo Flow runs inside Zoo Code; it does not ship
|
|
32
|
-
its own agent loop, memory store, or tool registry.
|
|
33
|
-
- It is not a giant skills pack. The bundled skills are a starting
|
|
34
|
-
point. The control plane is the product.
|
|
35
|
-
|
|
36
|
-
## What Zoo Flow is
|
|
37
|
-
|
|
38
|
-
- A `.roomodes` file that defines three custom modes with deliberate
|
|
39
|
-
tool-group boundaries.
|
|
40
|
-
- A handful of always-on rules: path safety, command protocol,
|
|
41
|
-
three-failure guardrail, manual reply safety, and context economy.
|
|
42
|
-
- A directory layout for slash commands and on-demand skills.
|
|
43
|
-
|
|
44
|
-
If you only adopt one piece of Zoo Flow, adopt the path-safety rule and
|
|
45
|
-
the command protocol. Those two files alone fix most of the "agent
|
|
46
|
-
hallucinated a path" problems.
|
|
47
|
-
|
|
48
|
-
## When to pick Zoo Flow
|
|
49
|
-
|
|
50
|
-
- You are using Zoo Code as your primary host.
|
|
51
|
-
- You want a small, validated control plane more than a big skill set.
|
|
52
|
-
- You care about the mode boundary between planning and implementation.
|
|
53
|
-
- You want explicit human-in-the-loop checkpoints in multi-phase flows
|
|
54
|
-
like `/fix` and `/feature`.
|
|
55
|
-
|
|
56
|
-
## When to pick something else
|
|
57
|
-
|
|
58
|
-
- You want a comprehensive methodology and a broad skill set out of the
|
|
59
|
-
box. Superpowers and similar projects are a better fit.
|
|
60
|
-
- You are not on Zoo Code and you do not plan to be. Zoo Flow leans on
|
|
61
|
-
`customModes`, `run_slash_command`, `new_task`, and `switch_mode`
|
|
62
|
-
semantics from that host.
|
|
63
|
-
- You want a full agent runtime with its own loop and memory layer.
|
|
64
|
-
ECC-style harnesses are aimed at that.
|
|
65
|
-
|
|
66
|
-
## Working alongside other projects
|
|
67
|
-
|
|
68
|
-
Zoo Flow plays well with broader skills libraries. The skills under
|
|
69
|
-
`templates/full/.roo/skills/` follow a standard `SKILL.md` format and
|
|
70
|
-
are loaded by command. If you want to bring in a skill from another
|
|
71
|
-
project, drop it under the right bucket, add a one-line entry to the
|
|
72
|
-
bucket `README.md` and to `docs/skills-index.md`, and reference it from
|
|
73
|
-
a command file. The control plane does not care where the skill came
|
|
74
|
-
from.
|
|
75
|
-
|
|
76
|
-
The opposite direction works too: if you want to take just the modes
|
|
77
|
-
and the command protocol into a different setup, that is two files
|
|
78
|
-
(`.roomodes` and `01-command-protocol.md`) plus the path-safety rule
|
|
79
|
-
(`00-paths.md`).
|
|
80
|
-
|
|
81
|
-
## Respect
|
|
82
|
-
|
|
83
|
-
The projects mentioned here are the work of people who care about this
|
|
84
|
-
problem space. Zoo Flow exists because their work raised the bar.
|
|
85
|
-
Where Zoo Flow disagrees with them, it disagrees on tradeoffs, not on
|
|
86
|
-
intent.
|
package/docs/context-packs.md
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
# Context Packs
|
|
2
|
-
|
|
3
|
-
Context packs are optional reusable groups of documentation, rules,
|
|
4
|
-
commands, and skills that can be layered on top of Zoo Flow for
|
|
5
|
-
specific project needs.
|
|
6
|
-
|
|
7
|
-
## When to use
|
|
8
|
-
|
|
9
|
-
- A project needs specialized workflow patterns (e.g., writing
|
|
10
|
-
workflows, database migrations, CI/CD).
|
|
11
|
-
- A team wants to share a common set of conventions across repos.
|
|
12
|
-
- A user wants optional extras without modifying core Zoo Flow files.
|
|
13
|
-
|
|
14
|
-
## How it works
|
|
15
|
-
|
|
16
|
-
Context packs live under `.roo/templates/context-packs/`. Each pack is a
|
|
17
|
-
directory with its own `manifest.json` declaring what it adds.
|
|
18
|
-
|
|
19
|
-
The `/scaffold-context` command detects candidate packs based on project
|
|
20
|
-
shape and offers them as optional additions.
|
|
21
|
-
|
|
22
|
-
## Built-in candidate packs
|
|
23
|
-
|
|
24
|
-
These are templates evaluated by `/scaffold-context` but never applied
|
|
25
|
-
without user confirmation:
|
|
26
|
-
|
|
27
|
-
- **Writing patterns** — shapes, beats, fragments for content projects
|
|
28
|
-
- **ADR starter** — minimal ADR template and convention
|
|
29
|
-
- **Setup docs** — setup conventions beyond the boiletplate
|
|
30
|
-
|
|
31
|
-
## Quality gate
|
|
32
|
-
|
|
33
|
-
Context packs must follow the same quality rules as core Zoo Flow:
|
|
34
|
-
canonical `Skill:` markers, correct mode declarations, no built-in
|
|
35
|
-
delegation. They are validated by `doctor`.
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
# Dogfood Report: Small Library
|
|
2
|
-
|
|
3
|
-
**Date:** YYYY-MM-DD
|
|
4
|
-
**Project shape:** library (npm package, ~2K LOC, 10 exports)
|
|
5
|
-
**Zoo Flow version:** 0.7.0
|
|
6
|
-
|
|
7
|
-
## Commands tested
|
|
8
|
-
|
|
9
|
-
- `/scaffold-context` — should detect library shape, propose 5-8 domain terms, 0-1 ADRs
|
|
10
|
-
- `/verify` — should detect package.json, run npm test
|
|
11
|
-
- `/commit-and-document` — should stage, commit, write journal entry
|
|
12
|
-
|
|
13
|
-
## What Zoo Flow routed correctly
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
## What it over-read
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
## What it tried to create unnecessarily
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
## Token budget impact
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
## Fixes made to Zoo Flow
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
## Remaining risk
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
# Dogfood Report: Web App
|
|
2
|
-
|
|
3
|
-
**Date:** YYYY-MM-DD
|
|
4
|
-
**Project shape:** web app (Next.js, auth, payments, ~20K LOC)
|
|
5
|
-
**Zoo Flow version:** 0.7.0
|
|
6
|
-
|
|
7
|
-
## Commands tested
|
|
8
|
-
|
|
9
|
-
- `/feature` — new payment flow with phase gates
|
|
10
|
-
- `/fix` — checkout crash diagnosis
|
|
11
|
-
- `/review` — branch review with Security/Risk axis
|
|
12
|
-
- `/verify` — targeted test run
|
|
13
|
-
|
|
14
|
-
## What Zoo Flow routed correctly
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
## What it over-read
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
## What it tried to create unnecessarily
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
## Token budget impact
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
## Fixes made to Zoo Flow
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
## Remaining risk
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
# Dogfood Report: Mixed Monorepo
|
|
2
|
-
|
|
3
|
-
**Date:** YYYY-MM-DD
|
|
4
|
-
**Project shape:** monorepo (apps/web, services/api, workers/billing, packages/core)
|
|
5
|
-
**Zoo Flow version:** 0.7.0
|
|
6
|
-
|
|
7
|
-
## Commands tested
|
|
8
|
-
|
|
9
|
-
- `/scaffold-context` — should detect monorepo shape, propose MONOREPO_MAP.md as recommended
|
|
10
|
-
- `/explore` — should map unfamiliar sub-package
|
|
11
|
-
- `/refactor` — should plan cross-package design change
|
|
12
|
-
- `/tweak` — should handle localized change in one package
|
|
13
|
-
|
|
14
|
-
## What Zoo Flow routed correctly
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
## What it over-read
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
## What it tried to create unnecessarily
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
## Token budget impact
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
## Fixes made to Zoo Flow
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
## Remaining risk
|
package/docs/mode-rules.md
DELETED
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
# Mode-specific rules
|
|
2
|
-
|
|
3
|
-
Zoo Flow uses three rule scopes, each loaded by Zoo Code automatically:
|
|
4
|
-
|
|
5
|
-
- `.roo/rules/` — loaded for **every** mode, every turn.
|
|
6
|
-
- `.roo/rules-{modeSlug}/` — loaded **only** when that mode is active.
|
|
7
|
-
- `.roo/skills/` — **on-demand**, loaded by slash commands. Never auto-loaded.
|
|
8
|
-
|
|
9
|
-
> Zoo Flow uses the preferred `.roo/rules-{modeSlug}/` directory form
|
|
10
|
-
> only. Legacy single-file fallbacks such as `.roorules-{modeSlug}` and
|
|
11
|
-
> `.clinerules-{modeSlug}` are not used by this template.
|
|
12
|
-
|
|
13
|
-
Mode-specific behavior lives in dedicated folders under `.roo/`:
|
|
14
|
-
|
|
15
|
-
- `.roo/rules-custom-orchestrator/` — routing rules and the delegation
|
|
16
|
-
message contract for the orchestrator.
|
|
17
|
-
- `.roo/rules-system-architect/` — scope, feature-prototype handoff, and
|
|
18
|
-
completion rules for the architect.
|
|
19
|
-
- `.roo/rules-code-tweaker/` — scope and completion rules for the
|
|
20
|
-
tweaker, including the git hard stop.
|
|
21
|
-
|
|
22
|
-
Files inside these folders are short on purpose. They are concatenated
|
|
23
|
-
into the model's context every turn the matching mode is active, so each
|
|
24
|
-
extra paragraph costs tokens for the entire session.
|
|
25
|
-
|
|
26
|
-
## What belongs in a mode rules folder
|
|
27
|
-
|
|
28
|
-
- Standing instructions specific to that mode's job (e.g. "the architect
|
|
29
|
-
cannot edit application source").
|
|
30
|
-
- Short hard stops (e.g. "halt for explicit user approval before
|
|
31
|
-
publishing issues").
|
|
32
|
-
- Pointers to global rules the mode must follow.
|
|
33
|
-
|
|
34
|
-
## What does NOT belong here
|
|
35
|
-
|
|
36
|
-
- **On-demand skills.** Those live under `.roo/skills/` and are loaded
|
|
37
|
-
explicitly by slash commands.
|
|
38
|
-
- **Workspace-wide always-on rules** that apply to every mode. Those
|
|
39
|
-
stay in `.roo/rules/`.
|
|
40
|
-
- **Long policy or knowledge files.** If a policy is long enough to need
|
|
41
|
-
multiple paragraphs of explanation, write it under `docs/` and
|
|
42
|
-
reference it from the rule. The mode rule should be a short reminder,
|
|
43
|
-
not a full essay.
|
|
44
|
-
- **Duplicates of the global command protocol or path safety.** Those
|
|
45
|
-
live in `.roo/rules/01-command-protocol.md` and
|
|
46
|
-
`.roo/rules/00-paths.md` respectively.
|
|
47
|
-
|
|
48
|
-
## Why `.roomodes` is intentionally minimal
|
|
49
|
-
|
|
50
|
-
Each `customInstructions` block in `.roomodes` is loaded with the mode
|
|
51
|
-
metadata. Putting detailed behavior there duplicates what already lives
|
|
52
|
-
in `.roo/rules-{modeSlug}/`, costs tokens twice, and creates two places
|
|
53
|
-
to keep in sync.
|
|
54
|
-
|
|
55
|
-
The current `.roomodes` keeps four things per mode:
|
|
56
|
-
|
|
57
|
-
1. `slug`, `name`, `roleDefinition`, `whenToUse`, `description`,
|
|
58
|
-
`groups` — these can't move.
|
|
59
|
-
2. A short `customInstructions` that:
|
|
60
|
-
- points at the matching `.roo/rules-{modeSlug}/` folder,
|
|
61
|
-
- lists permitted routed commands and permitted direct helper commands
|
|
62
|
-
(or the routing matrix, for the orchestrator),
|
|
63
|
-
- references the global rules it calls out directly (`00-paths.md`,
|
|
64
|
-
`01-command-protocol.md`, `03-manual-reply-protocol.md`). Other
|
|
65
|
-
global rules, such as `02-three-failure-rule.md` and
|
|
66
|
-
`04-context-economy.md`, are loaded automatically from
|
|
67
|
-
`.roo/rules/`.
|
|
68
|
-
- says what to do if an unsupported command is assigned.
|
|
69
|
-
|
|
70
|
-
Documented helper commands must have `mode:` frontmatter unless they are
|
|
71
|
-
explicitly modeless utilities such as `/caveman`.
|
|
72
|
-
|
|
73
|
-
Everything else lives in the mode rules folder.
|
|
74
|
-
|
|
75
|
-
## Related directories
|
|
76
|
-
|
|
77
|
-
- [`.roo/rules/`](../templates/full/.roo/rules/) — always-on rules for **all** modes.
|
|
78
|
-
- [`.roo/skills/`](../templates/full/.roo/skills/) — on-demand skills, invoked by slash commands.
|
|
79
|
-
- [`.roo/commands/`](../templates/full/.roo/commands/) — slash command definitions
|
|
80
|
-
(e.g. `/tweak`, `/fix`).
|
|
81
|
-
- [`.roo/rules-custom-orchestrator/`](../templates/full/.roo/rules-custom-orchestrator/) —
|
|
82
|
-
router-only rules.
|
|
83
|
-
- [`.roo/rules-system-architect/`](../templates/full/.roo/rules-system-architect/) —
|
|
84
|
-
architect rules.
|
|
85
|
-
- [`.roo/rules-code-tweaker/`](../templates/full/.roo/rules-code-tweaker/) —
|
|
86
|
-
tweaker rules.
|
package/docs/npm-publishing.md
DELETED
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
# npm Publishing
|
|
2
|
-
|
|
3
|
-
Zoo Flow is published as a CLI installer.
|
|
4
|
-
|
|
5
|
-
## Package name
|
|
6
|
-
|
|
7
|
-
```text
|
|
8
|
-
@fernado03/zoo-flow
|
|
9
|
-
```
|
|
10
|
-
|
|
11
|
-
## Local validation
|
|
12
|
-
|
|
13
|
-
```bash
|
|
14
|
-
npm run release:check
|
|
15
|
-
```
|
|
16
|
-
|
|
17
|
-
## Publish
|
|
18
|
-
|
|
19
|
-
```bash
|
|
20
|
-
npm login
|
|
21
|
-
npm publish --access public
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
## Test install after publish
|
|
25
|
-
|
|
26
|
-
From a separate test project:
|
|
27
|
-
|
|
28
|
-
```bash
|
|
29
|
-
npx @fernado03/zoo-flow@latest init
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
If the project already has `.roomodes` or `.roo/`, test:
|
|
33
|
-
|
|
34
|
-
```bash
|
|
35
|
-
npx @fernado03/zoo-flow@latest init --force
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
## Test update after publish
|
|
39
|
-
|
|
40
|
-
From a temporary directory:
|
|
41
|
-
|
|
42
|
-
```bash
|
|
43
|
-
tmpdir="$(mktemp -d)"
|
|
44
|
-
cd "$tmpdir"
|
|
45
|
-
|
|
46
|
-
npx @fernado03/zoo-flow@latest init
|
|
47
|
-
npx @fernado03/zoo-flow@latest update --dry-run
|
|
48
|
-
npx @fernado03/zoo-flow@latest update
|
|
49
|
-
|
|
50
|
-
test -f .roomodes
|
|
51
|
-
test -d .roo
|
|
52
|
-
test -d .zoo-flow-backup
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
## What ships in the package
|
|
56
|
-
|
|
57
|
-
The `files` field in `package.json` controls what npm publishes:
|
|
58
|
-
|
|
59
|
-
- `bin/` — the CLI entry point
|
|
60
|
-
- `scripts/` — validation and release checks
|
|
61
|
-
- `templates/` — the runtime template (`.roomodes` and `.roo/`)
|
|
62
|
-
- `docs/` — product documentation linked from the README
|
|
63
|
-
- `examples/` — worked examples linked from the README
|
|
64
|
-
- `README.md`
|
|
65
|
-
- `LICENSE`
|
|
66
|
-
|
|
67
|
-
`node_modules/`, `.git/`, `.scratch/`, backups, and generated tarballs are not shipped.
|
|
68
|
-
|
|
69
|
-
## Versioning
|
|
70
|
-
|
|
71
|
-
Bump `version` in `package.json` before each publish, following
|
|
72
|
-
[Semantic Versioning](https://semver.org/):
|
|
73
|
-
|
|
74
|
-
- patch: bug fixes in the CLI or template content
|
|
75
|
-
- minor: new commands, new modes, new skills
|
|
76
|
-
- major: breaking changes to mode slugs, command names, or routing
|
|
77
|
-
|
|
78
|
-
Update `CHANGELOG.md` under `## [Unreleased]` with the change, then
|
|
79
|
-
move it under a new versioned section when you publish.
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
# Issue tracker integrations are limited to mainstream tools
|
|
2
|
-
|
|
3
|
-
`setup-matt-pocock-skills` only offers first-class support for **mainstream** issue trackers. Requests to add support for niche, new, or single-vendor experimental trackers are out of scope.
|
|
4
|
-
|
|
5
|
-
## Why this is out of scope
|
|
6
|
-
|
|
7
|
-
Every issue-tracker backend hard-codes a CLI shape into the skills (commands, flags, output parsing). Each new backend is permanent maintenance surface — it has to keep working as the tool's CLI evolves, and it has to keep being tested against `/to-prd`, `/to-issues`, `/triage`, and friends. That cost is only worth paying for trackers a meaningful fraction of users actually have.
|
|
8
|
-
|
|
9
|
-
"Mainstream" is a judgment call, not a numeric bar:
|
|
10
|
-
|
|
11
|
-
- GitHub, GitLab, and Backlog.md are the kind of tools we'd consider mainstream — broadly known, widely used, well past the experimental phase.
|
|
12
|
-
- A brand-new agent-focused tool with a few hundred GitHub stars is not, no matter how interesting the design.
|
|
13
|
-
|
|
14
|
-
Stars, age, and download counts are useful signals when making the call but none of them is the rule. The rule is: would a typical engineer recognise this tool and have plausibly chosen it for their team?
|
|
15
|
-
|
|
16
|
-
The escape hatches for non-mainstream trackers already exist:
|
|
17
|
-
|
|
18
|
-
- `local markdown` for lightweight in-repo tracking.
|
|
19
|
-
- `other/custom` for users who want to wire something up themselves.
|
|
20
|
-
|
|
21
|
-
Neither requires the core skills to know about the specific tool.
|
|
22
|
-
|
|
23
|
-
## Prior requests
|
|
24
|
-
|
|
25
|
-
- #99 — "Add dex as an issue tracker backend" (dex was ~3 months old and ~300 stars at the time of the request)
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
# Hard limits on the number of questions during grilling
|
|
2
|
-
|
|
3
|
-
The `/grill-me` skill (and grilling sessions inside other skills) does not enforce a maximum number of questions. Requests to add a configurable cap or hard ceiling are out of scope.
|
|
4
|
-
|
|
5
|
-
## Why this is out of scope
|
|
6
|
-
|
|
7
|
-
Grilling is intentionally open-ended. The point is to keep digging until each branch of the decision tree is resolved — some plans need three questions, some need fifty. A fixed cap would either cut off useful exploration on hard problems or feel arbitrary on easy ones.
|
|
8
|
-
|
|
9
|
-
If a session feels too long, the right escape hatches already exist:
|
|
10
|
-
|
|
11
|
-
- The user can stop the session at any time and accept the current state of the plan.
|
|
12
|
-
- The user can tell the model to wrap up, summarise, and move on — natural-language steering is the intended control surface, not a numeric limit.
|
|
13
|
-
|
|
14
|
-
Adding a hard cap would also conflate two different failure modes: a model that asks too many questions because the plan is genuinely under-specified (working as intended) vs. a model that asks redundant or low-value questions (a prompt-quality issue, not a quantity issue). The fix for the latter belongs in the skill prompt, not in a counter.
|
|
15
|
-
|
|
16
|
-
## Prior requests
|
|
17
|
-
|
|
18
|
-
- #44 — "Codex just asked me 200 questions"
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
# Verify/Check Mode for `setup-matt-pocock-skills`
|
|
2
|
-
|
|
3
|
-
This project will not add a dedicated verify/check mode (or a separate verify skill) for `setup-matt-pocock-skills`.
|
|
4
|
-
|
|
5
|
-
## Why this is out of scope
|
|
6
|
-
|
|
7
|
-
A second skill — or a `--verify` flag — for checking whether `docs/agents/*.md` artifacts still match the seed-template schema would duplicate work the existing setup skill already handles in conversation.
|
|
8
|
-
|
|
9
|
-
The intended workflow is: **run `/setup-matt-pocock-skills` and tell it to verify your current setup.** The skill is prompt-driven, so the maintainer can scope it to a verification pass ("don't rewrite anything, just check my existing files against the current seed templates and report drift") without needing a separate code path. Adding a flag or a sibling skill would split the surface area of a feature that's already expressible through the natural-language entry point.
|
|
10
|
-
|
|
11
|
-
Keeping configuration management to a single skill also avoids the maintenance cost of two skills drifting from each other when seed templates evolve.
|
|
12
|
-
|
|
13
|
-
## Prior requests
|
|
14
|
-
|
|
15
|
-
- #106 — Feature request: verify/check mode for setup-matt-pocock-skills
|
package/docs/overview.md
DELETED
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
# Overview
|
|
2
|
-
|
|
3
|
-
Zoo Flow is a small, opinionated template that turns
|
|
4
|
-
[Zoo Code](https://docs.zoocode.dev/) into a predictable mode +
|
|
5
|
-
command + skill orchestrator. It defines three modes, a fixed routing
|
|
6
|
-
matrix, a command protocol, and path-safety rules. Drop it into a
|
|
7
|
-
workspace and your AI assistant stops freelancing.
|
|
8
|
-
|
|
9
|
-
## Why this exists
|
|
10
|
-
|
|
11
|
-
Out of the box, AI coding assistants tend to skip planning when you
|
|
12
|
-
want planning, plan when you want a tweak, and quietly invent file
|
|
13
|
-
paths that do not exist. Adding a pile of skills makes it worse.
|
|
14
|
-
|
|
15
|
-
Zoo Flow takes a different bet:
|
|
16
|
-
|
|
17
|
-
- A **router mode** chooses the workflow.
|
|
18
|
-
- An **architect mode** plans, diagnoses, and triages — and cannot
|
|
19
|
-
edit source code.
|
|
20
|
-
- A **tweaker mode** implements, runs tests, prototypes, and commits —
|
|
21
|
-
only when explicitly approved.
|
|
22
|
-
- A small set of **slash commands** acts as the public API between
|
|
23
|
-
you and the modes. Free-form requests go through the orchestrator;
|
|
24
|
-
typing a slash command jumps straight to its configured mode.
|
|
25
|
-
- A few **always-on rules** keep the path layout honest and stop
|
|
26
|
-
skill paths from drifting under `.roo/rules/`.
|
|
27
|
-
|
|
28
|
-
Everything else is optional. The skills bundled in the template are a
|
|
29
|
-
sensible starting point, not the point of the project.
|
|
30
|
-
|
|
31
|
-
## Core workflow
|
|
32
|
-
|
|
33
|
-
```mermaid
|
|
34
|
-
flowchart TD
|
|
35
|
-
User([User])
|
|
36
|
-
Orchestrator[🪃 custom-orchestrator<br/>router only]
|
|
37
|
-
Architect[🏗️ system-architect<br/>plan / diagnose / triage<br/>Markdown edits only]
|
|
38
|
-
Tweaker[⚡ code-tweaker<br/>implement / test / prototype / commit]
|
|
39
|
-
|
|
40
|
-
User -- "free-form request" --> Orchestrator
|
|
41
|
-
Orchestrator -- "proposes /command, waits" --> User
|
|
42
|
-
User -- "/tweak, /tdd, /update-docs,<br/>/commit-and-document, /prototype, /verify" --> Orchestrator
|
|
43
|
-
User -- "/fix, /feature, /refactor,<br/>/explore, /triage, /review" --> Orchestrator
|
|
44
|
-
|
|
45
|
-
Orchestrator -- "new_task" --> Tweaker
|
|
46
|
-
Orchestrator -- "new_task" --> Architect
|
|
47
|
-
|
|
48
|
-
Architect -- "switch_mode (same window)" --> Tweaker
|
|
49
|
-
Tweaker -- "switch_mode (same window)" --> Architect
|
|
50
|
-
|
|
51
|
-
Tweaker -- "attempt_completion" --> Orchestrator
|
|
52
|
-
Architect -- "attempt_completion" --> Orchestrator
|
|
53
|
-
Orchestrator -- "summarize, HALT" --> User
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
For the deeper "why", see [`philosophy.md`](philosophy.md). For the
|
|
57
|
-
component-level reference, see [`architecture.md`](architecture.md).
|
|
58
|
-
|
|
59
|
-
For non-trivial work, the normal endgame is implementation, then
|
|
60
|
-
`/verify`, then `/review`, then `/commit-and-document`. These are
|
|
61
|
-
recommendations only; Zoo Flow does not auto-run follow-up commands.
|