@fernado03/zoo-flow 0.1.0 → 0.1.2
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/README.md
CHANGED
|
@@ -1,76 +1,70 @@
|
|
|
1
1
|
# Zoo Flow
|
|
2
2
|
|
|
3
|
-
> **Smoke-tested workflow control plane for Zoo Code.**
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
-
|
|
19
|
-
- An **architect mode** plans, diagnoses, and triages — and cannot edit
|
|
20
|
-
source code.
|
|
21
|
-
- A **tweaker mode** implements, runs tests, prototypes, and commits — only
|
|
22
|
-
when explicitly approved.
|
|
23
|
-
- A small set of **slash commands** acts as the public API between you and
|
|
24
|
-
the modes.
|
|
25
|
-
- A few **always-on rules** keep the path layout honest and stop skill paths
|
|
26
|
-
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
|
-
## Why are the folders still named `.roo/`?
|
|
32
|
-
|
|
33
|
-
Zoo Code keeps compatibility with Roo-style workspace paths. Project
|
|
34
|
-
modes still live in `.roomodes`, project slash commands still live in
|
|
35
|
-
`.roo/commands/`, and mode-specific rules still live in
|
|
36
|
-
`.roo/rules-{mode-slug}/`.
|
|
37
|
-
|
|
38
|
-
Zoo Flow uses Zoo Code as the primary target, but keeps those `.roo/`
|
|
39
|
-
paths because they are the official Zoo Code configuration paths. See
|
|
40
|
-
[the Zoo Code docs](https://docs.zoocode.dev/) for the canonical
|
|
41
|
-
reference.
|
|
42
|
-
|
|
43
|
-
Zoo Flow keeps skill discovery in [`docs/skills-index.md`](docs/skills-index.md),
|
|
44
|
-
not `.roo/rules/`, so the always-loaded rule set stays small. Zoo Code
|
|
45
|
-
loads everything in `.roo/rules/` on every turn, so that folder only
|
|
46
|
-
contains rules needed every turn: path safety, the command protocol,
|
|
47
|
-
and the manual-reply protocol.
|
|
48
|
-
|
|
49
|
-
## Core workflow
|
|
50
|
-
|
|
51
|
-
```mermaid
|
|
52
|
-
flowchart TD
|
|
53
|
-
User([User])
|
|
54
|
-
Orchestrator[🪃 custom-orchestrator<br/>router only]
|
|
55
|
-
Architect[🏗️ system-architect<br/>plan / diagnose / triage<br/>Markdown edits only]
|
|
56
|
-
Tweaker[⚡ code-tweaker<br/>implement / test / prototype / commit]
|
|
57
|
-
|
|
58
|
-
User -- "free-form request" --> Orchestrator
|
|
59
|
-
Orchestrator -- "proposes /command, waits" --> User
|
|
60
|
-
User -- "/tweak, /tdd, /update-docs,<br/>/commit-and-document, /prototype" --> Orchestrator
|
|
61
|
-
User -- "/fix, /feature, /refactor,<br/>/explore, /triage" --> Orchestrator
|
|
62
|
-
|
|
63
|
-
Orchestrator -- "new_task" --> Tweaker
|
|
64
|
-
Orchestrator -- "new_task" --> Architect
|
|
65
|
-
|
|
66
|
-
Architect -- "switch_mode (same window)" --> Tweaker
|
|
67
|
-
Tweaker -- "switch_mode (same window)" --> Architect
|
|
68
|
-
|
|
69
|
-
Tweaker -- "attempt_completion" --> Orchestrator
|
|
70
|
-
Architect -- "attempt_completion" --> Orchestrator
|
|
71
|
-
Orchestrator -- "summarize, HALT" --> User
|
|
3
|
+
> **Smoke-tested workflow control plane for [Zoo Code](https://docs.zoocode.dev/).**
|
|
4
|
+
|
|
5
|
+
A small, opinionated template that turns Zoo Code into a predictable
|
|
6
|
+
mode + command + skill orchestrator. Three modes, a fixed routing
|
|
7
|
+
matrix, a command protocol, and path-safety rules. Drop it into a
|
|
8
|
+
workspace and your AI assistant stops freelancing.
|
|
9
|
+
|
|
10
|
+
For the deeper rationale, see [`docs/overview.md`](docs/overview.md)
|
|
11
|
+
and [`docs/philosophy.md`](docs/philosophy.md).
|
|
12
|
+
|
|
13
|
+
## Install
|
|
14
|
+
|
|
15
|
+
Run this from the root of the project where you use Zoo Code:
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
npx @fernado03/zoo-flow@latest init
|
|
72
19
|
```
|
|
73
20
|
|
|
21
|
+
This copies only the runtime template (`.roomodes` and `.roo/`) into
|
|
22
|
+
your project. It does not copy this repository's `docs/` folder.
|
|
23
|
+
|
|
24
|
+
If `.roomodes` or `.roo/` already exist, Zoo Flow stops without
|
|
25
|
+
overwriting. To back up and overwrite:
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
npx @fernado03/zoo-flow@latest init --force
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
A timestamped backup is always written to `.zoo-flow-backup/` before
|
|
32
|
+
overwrite.
|
|
33
|
+
|
|
34
|
+
After install, reload VS Code (Command Palette → **Developer: Reload
|
|
35
|
+
Window**), open Zoo Code, switch to `custom-orchestrator`, and try a
|
|
36
|
+
small request like:
|
|
37
|
+
|
|
38
|
+
> change a harmless comment in `README`
|
|
39
|
+
|
|
40
|
+
Numbered choices are safe to click or type. Suggestions never carry
|
|
41
|
+
slash commands or mode names, so they will not route you into another
|
|
42
|
+
mode — see
|
|
43
|
+
[`docs/troubleshooting.md`](docs/troubleshooting.md#clickable-suggestions-can-route-incorrectly).
|
|
44
|
+
|
|
45
|
+
> **Note**: `.roomodes`, `.roo/commands/`, and `.roo/rules-{mode-slug}/`
|
|
46
|
+
> are kept as-is because they are the official Zoo Code configuration
|
|
47
|
+
> paths. Zoo Flow does not introduce a `.zoo/` directory.
|
|
48
|
+
|
|
49
|
+
### Before using `/triage`, `/to-issues`, or `/to-prd`
|
|
50
|
+
|
|
51
|
+
Switch to `code-tweaker` and run `/setup-matt-pocock-skills` once per
|
|
52
|
+
repo. It seeds an `## Agent skills` block in `AGENTS.md` or
|
|
53
|
+
`CLAUDE.md` and a few files under `docs/agents/` so the issue and PRD
|
|
54
|
+
skills know your tracker, labels, and domain layout. Skip it if you
|
|
55
|
+
only plan to use `/tweak`, `/fix`, `/explore`, `/refactor`,
|
|
56
|
+
`/diagnose`, `/prototype`, `/update-docs`, or `/commit-and-document`.
|
|
57
|
+
|
|
58
|
+
## Update
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
npx @fernado03/zoo-flow@latest update
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
Backs up your current `.roomodes` and `.roo/` to
|
|
65
|
+
`.zoo-flow-backup/<timestamp>/`, then replaces them with the latest
|
|
66
|
+
template. Preview with `--dry-run`.
|
|
67
|
+
|
|
74
68
|
## Modes
|
|
75
69
|
|
|
76
70
|
| Slug | Name | Role | Edits allowed | Delegation |
|
|
@@ -79,26 +73,18 @@ flowchart TD
|
|
|
79
73
|
| `system-architect` | 🏗️ System Architect | Planning, diagnosis, refactor design, exploration, triage. | Markdown, `.scratch/`, `docs/` | `switch_mode` to tweaker in same window |
|
|
80
74
|
| `code-tweaker` | ⚡ Code Tweaker | Implementation, TDD, docs updates, prototypes, commits. | Full repo edits within the assigned command | `switch_mode` to architect in same window |
|
|
81
75
|
|
|
82
|
-
Modes are defined in
|
|
83
|
-
The
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
layout and the rationale.
|
|
87
|
-
|
|
88
|
-
> Zoo Flow uses the preferred `.roo/rules-{modeSlug}/` directory form
|
|
89
|
-
> only. Legacy single-file fallbacks such as `.roorules-{modeSlug}` and
|
|
90
|
-
> `.clinerules-{modeSlug}` are not used by this template.
|
|
76
|
+
Modes are defined in
|
|
77
|
+
[`templates/full/.roomodes`](templates/full/.roomodes). The detailed
|
|
78
|
+
behavior lives in `.roo/rules-{modeSlug}/` folders. See
|
|
79
|
+
[`docs/mode-rules.md`](docs/mode-rules.md).
|
|
91
80
|
|
|
92
81
|
## Commands
|
|
93
82
|
|
|
94
|
-
The orchestrator
|
|
95
|
-
|
|
96
|
-
them
|
|
97
|
-
them. They are intentionally outside the routing matrix so the
|
|
98
|
-
orchestrator stays focused on the workflows that benefit from
|
|
99
|
-
delegation.
|
|
83
|
+
The orchestrator routes the **core** commands. **Helper** commands you
|
|
84
|
+
run directly inside `system-architect` or `code-tweaker` when you
|
|
85
|
+
need them.
|
|
100
86
|
|
|
101
|
-
### Core
|
|
87
|
+
### Core (routed by the orchestrator)
|
|
102
88
|
|
|
103
89
|
| Command | Routes to | What it does |
|
|
104
90
|
| ------------------------ | -------------------- | ----------------------------------------------------------- |
|
|
@@ -113,7 +99,7 @@ delegation.
|
|
|
113
99
|
| `/explore` | `system-architect` | Map unfamiliar code before touching it. |
|
|
114
100
|
| `/triage` | `system-architect` | Clean and prioritize an issue queue. |
|
|
115
101
|
|
|
116
|
-
### Helper
|
|
102
|
+
### Helper (run directly when needed)
|
|
117
103
|
|
|
118
104
|
| Command | Best run in | What it does |
|
|
119
105
|
| -------------------------------- | -------------------- | ----------------------------------------------------------- |
|
|
@@ -129,197 +115,53 @@ delegation.
|
|
|
129
115
|
| `/write-a-skill` | `code-tweaker` | Author a new skill following the bucket layout. |
|
|
130
116
|
| `/setup-matt-pocock-skills` | `code-tweaker` | One-shot setup helper for the bundled skill set. |
|
|
131
117
|
|
|
132
|
-
|
|
133
|
-
inside [`templates/full/.roomodes`](templates/full/.roomodes). The command
|
|
134
|
-
files themselves live in
|
|
118
|
+
Command files live in
|
|
135
119
|
[`templates/full/.roo/commands/`](templates/full/.roo/commands).
|
|
136
120
|
|
|
137
|
-
##
|
|
138
|
-
|
|
139
|
-
Run this from the root of the project where you use Zoo Code:
|
|
140
|
-
|
|
141
|
-
```bash
|
|
142
|
-
npx @fernado03/zoo-flow@latest init
|
|
143
|
-
```
|
|
144
|
-
|
|
145
|
-
If the project already has `.roomodes` or `.roo/`, Zoo Flow will stop
|
|
146
|
-
instead of overwriting.
|
|
147
|
-
|
|
148
|
-
To back up and overwrite existing config:
|
|
149
|
-
|
|
150
|
-
```bash
|
|
151
|
-
npx @fernado03/zoo-flow@latest init --force
|
|
152
|
-
```
|
|
153
|
-
|
|
154
|
-
Zoo Flow installs only the runtime template:
|
|
155
|
-
|
|
156
|
-
- `.roomodes`
|
|
157
|
-
- `.roo/`
|
|
158
|
-
|
|
159
|
-
It does not copy this repository's `docs/` folder into your project.
|
|
160
|
-
|
|
161
|
-
> Zoo Flow overwrites `.roomodes` and `.roo/` only when you pass
|
|
162
|
-
> `--force` or run `update`. It always creates a backup in
|
|
163
|
-
> `.zoo-flow-backup/<timestamp>/`.
|
|
164
|
-
|
|
165
|
-
After install, reload VS Code:
|
|
166
|
-
|
|
167
|
-
> Command Palette → **Developer: Reload Window**
|
|
168
|
-
|
|
169
|
-
Then open Zoo Code, switch to `custom-orchestrator`, and run the smoke
|
|
170
|
-
test:
|
|
171
|
-
|
|
172
|
-
> change a harmless comment in `README`
|
|
173
|
-
|
|
174
|
-
When choices appear, manually type the number, e.g. `1`. Do not click
|
|
175
|
-
suggestions that contain slash commands or mode names. See
|
|
176
|
-
[`docs/troubleshooting.md`](docs/troubleshooting.md#clickable-suggestions-can-route-incorrectly).
|
|
177
|
-
|
|
178
|
-
## Quick start
|
|
121
|
+
## Smoke tests
|
|
179
122
|
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
123
|
+
A short, fixed set of smoke tests in
|
|
124
|
+
[`docs/smoke-tests.md`](docs/smoke-tests.md) verifies routing, mode
|
|
125
|
+
boundaries, and skill loading. Worked examples:
|
|
183
126
|
|
|
184
|
-
|
|
127
|
+
- [`examples/tweak-smoke-test.md`](examples/tweak-smoke-test.md)
|
|
128
|
+
- [`examples/fix-flow.md`](examples/fix-flow.md)
|
|
129
|
+
- [`examples/feature-flow.md`](examples/feature-flow.md)
|
|
185
130
|
|
|
186
|
-
|
|
131
|
+
## How this is different
|
|
187
132
|
|
|
188
|
-
|
|
133
|
+
Zoo Flow is not a methodology and not a giant skills pack. It is a
|
|
134
|
+
thin Zoo-native control plane: three modes, a routing matrix, and a
|
|
135
|
+
path-safety contract that turn into a predictable workflow. For a
|
|
136
|
+
longer comparison with adjacent projects, see
|
|
137
|
+
[`docs/comparison.md`](docs/comparison.md).
|
|
189
138
|
|
|
190
139
|
## Manual install
|
|
191
140
|
|
|
192
141
|
If you would rather copy the template by hand:
|
|
193
142
|
|
|
194
|
-
### macOS / Linux
|
|
195
|
-
|
|
196
143
|
```sh
|
|
197
144
|
git clone https://github.com/Fernado03/zoo-flow.git /tmp/zoo-flow
|
|
198
145
|
cp /tmp/zoo-flow/templates/full/.roomodes .
|
|
199
146
|
cp -R /tmp/zoo-flow/templates/full/.roo .
|
|
200
147
|
```
|
|
201
148
|
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
```powershell
|
|
205
|
-
git clone https://github.com/Fernado03/zoo-flow.git C:\Temp\zoo-flow
|
|
206
|
-
Copy-Item C:\Temp\zoo-flow\templates\full\.roomodes .
|
|
207
|
-
Copy-Item -Recurse C:\Temp\zoo-flow\templates\full\.roo .
|
|
208
|
-
```
|
|
209
|
-
|
|
210
|
-
After copying:
|
|
211
|
-
|
|
212
|
-
1. Open the project in an editor running Zoo Code.
|
|
213
|
-
2. Confirm the three custom modes appear: `🪃 Custom Orchestrator`,
|
|
214
|
-
`🏗️ System Architect`, `⚡ Code Tweaker`.
|
|
215
|
-
3. Switch to `custom-orchestrator` and start a new task.
|
|
216
|
-
|
|
217
|
-
If a slash command does not run, see
|
|
218
|
-
[`docs/troubleshooting.md`](docs/troubleshooting.md).
|
|
219
|
-
|
|
220
|
-
## Update Zoo Flow
|
|
221
|
-
|
|
222
|
-
Run this from your project root:
|
|
223
|
-
|
|
224
|
-
```bash
|
|
225
|
-
npx @fernado03/zoo-flow@latest update
|
|
226
|
-
```
|
|
227
|
-
|
|
228
|
-
Zoo Flow backs up your current runtime config before replacing it:
|
|
229
|
-
|
|
230
|
-
- `.roomodes`
|
|
231
|
-
- `.roo/`
|
|
232
|
-
|
|
233
|
-
Backups are stored in:
|
|
234
|
-
|
|
235
|
-
```text
|
|
236
|
-
.zoo-flow-backup/<timestamp>/
|
|
237
|
-
```
|
|
149
|
+
Windows uses `git clone ... C:\Temp\zoo-flow` and `Copy-Item` instead.
|
|
238
150
|
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
```bash
|
|
242
|
-
npx @fernado03/zoo-flow@latest update --dry-run
|
|
243
|
-
```
|
|
244
|
-
|
|
245
|
-
Zoo Flow does not copy this repository's `docs/` folder into your
|
|
246
|
-
project.
|
|
247
|
-
|
|
248
|
-
## Smoke tests
|
|
249
|
-
|
|
250
|
-
The repo ships a fixed set of smoke tests in
|
|
251
|
-
[`docs/smoke-tests.md`](docs/smoke-tests.md). They are short scripts you can
|
|
252
|
-
run by hand inside Zoo Code to verify routing, mode boundaries,
|
|
253
|
-
and skill loading. The first one — README tweak with no slash command —
|
|
254
|
-
takes about a minute.
|
|
255
|
-
|
|
256
|
-
When the orchestrator asks which workflow to use, **type the number
|
|
257
|
-
manually**, for example `1`. Do not click suggestions that contain slash
|
|
258
|
-
commands or mode names — clicking them can route incorrectly. See
|
|
259
|
-
[`docs/troubleshooting.md`](docs/troubleshooting.md#clickable-suggestions-can-route-incorrectly).
|
|
260
|
-
|
|
261
|
-
Example choice list:
|
|
262
|
-
|
|
263
|
-
```text
|
|
264
|
-
1. /tweak — small known implementation change
|
|
265
|
-
2. /update-docs — documentation-focused change
|
|
266
|
-
3. Hold — I will specify more detail
|
|
267
|
-
|
|
268
|
-
Reply by typing only the number, e.g. 1.
|
|
269
|
-
```
|
|
270
|
-
|
|
271
|
-
Worked examples for the most common flows live in
|
|
272
|
-
[`examples/`](examples/):
|
|
273
|
-
|
|
274
|
-
- [`tweak-smoke-test.md`](examples/tweak-smoke-test.md)
|
|
275
|
-
- [`fix-flow.md`](examples/fix-flow.md)
|
|
276
|
-
- [`feature-flow.md`](examples/feature-flow.md)
|
|
277
|
-
|
|
278
|
-
## Screenshots
|
|
279
|
-
|
|
280
|
-
Screenshots and short clips of the orchestrator routing, the architect
|
|
281
|
-
hand-off, and the tweaker running a slash command will land in
|
|
282
|
-
[`assets/`](assets/) before the first tagged release.
|
|
283
|
-
|
|
284
|
-
## Roadmap
|
|
285
|
-
|
|
286
|
-
- `templates/minimal/` — a stripped-down template with only the three modes,
|
|
287
|
-
the path-safety rules, and `/tweak` + `/fix`.
|
|
288
|
-
- Optional CI workflow that runs the smoke-test JSON validation on every
|
|
289
|
-
PR.
|
|
290
|
-
- A short demo video in `assets/`.
|
|
291
|
-
- ADRs covering the three-mode split, the routing matrix, and the
|
|
292
|
-
path-safety choice.
|
|
293
|
-
- Guidance on integrating Zoo Flow alongside other workflow tools.
|
|
294
|
-
|
|
295
|
-
## How this is different
|
|
296
|
-
|
|
297
|
-
Zoo Flow is not a methodology and it is not a giant skills pack. It is a
|
|
298
|
-
**Zoo-native control plane**: a thin layer that turns three modes,
|
|
299
|
-
a routing matrix, and a path-safety contract into a predictable workflow.
|
|
300
|
-
|
|
301
|
-
For a longer comparison with adjacent projects, see
|
|
302
|
-
[`docs/comparison.md`](docs/comparison.md).
|
|
303
|
-
|
|
304
|
-
## Migration note
|
|
151
|
+
## Migration
|
|
305
152
|
|
|
306
153
|
Zoo Flow started as a Roo Flow template and was renamed for Zoo Code.
|
|
307
154
|
The `.roo/` folder names are intentionally preserved because Zoo Code
|
|
308
|
-
still uses those paths for project modes, commands, rules, and
|
|
309
|
-
|
|
310
|
-
`.roo/` directory and `.roomodes` file
|
|
311
|
-
expected to keep working.
|
|
155
|
+
still uses those paths for project modes, commands, rules, and
|
|
156
|
+
skills. Migrating from a Roo Code workspace by copying the same
|
|
157
|
+
`.roo/` directory and `.roomodes` file is expected to keep working.
|
|
312
158
|
|
|
313
159
|
## Inspiration
|
|
314
160
|
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
Zoo Flow is not affiliated with, endorsed by, or maintained by Matt
|
|
320
|
-
Pocock. It is an independent Zoo Code workflow-control template
|
|
321
|
-
focused on custom modes, delegation, command routing, and smoke-tested
|
|
322
|
-
agent workflows.
|
|
161
|
+
Inspired by Matt Pocock's agent-skills workflow ideas — small,
|
|
162
|
+
composable, task-focused skills for coding agents. Zoo Flow is not
|
|
163
|
+
affiliated with, endorsed by, or maintained by him; it is an
|
|
164
|
+
independent Zoo Code workflow-control template.
|
|
323
165
|
|
|
324
166
|
## License
|
|
325
167
|
|
package/package.json
CHANGED
|
@@ -1,13 +1,27 @@
|
|
|
1
1
|
# Manual Reply Protocol
|
|
2
2
|
|
|
3
|
-
For workflow
|
|
3
|
+
For workflow choices, put options in the suggestions, not in the question body. Map the chosen number back to a command privately.
|
|
4
|
+
|
|
5
|
+
Suggestions:
|
|
6
|
+
|
|
7
|
+
- Descriptive labels OK.
|
|
8
|
+
- No slash commands or mode names.
|
|
9
|
+
- Include a Hold/Skip option when relevant.
|
|
10
|
+
|
|
11
|
+
Question body:
|
|
12
|
+
|
|
13
|
+
- One short prompt. Real newlines only; never the literal `\n`.
|
|
14
|
+
- Do not restate the options.
|
|
15
|
+
|
|
16
|
+
Typed numeric reply is always valid.
|
|
4
17
|
|
|
5
18
|
Example:
|
|
6
19
|
|
|
7
|
-
|
|
8
|
-
2. `/fix`
|
|
9
|
-
3. Hold
|
|
20
|
+
Question: Pick a regression test option.
|
|
10
21
|
|
|
11
|
-
|
|
22
|
+
1. Import-time smoke test
|
|
23
|
+
2. Extract helper and unit-test
|
|
24
|
+
3. AST guard test
|
|
25
|
+
4. Hold
|
|
12
26
|
|
|
13
27
|
Only treat slash commands as commands when manually typed by the user.
|