@fernado03/zoo-flow 0.5.2 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (135) hide show
  1. package/README.md +105 -90
  2. package/bin/zoo-flow.js +405 -56
  3. package/docs/architecture.md +380 -0
  4. package/docs/bloat-control.md +49 -0
  5. package/docs/command-design.md +38 -0
  6. package/docs/command-flow.md +133 -0
  7. package/docs/comparison.md +86 -0
  8. package/docs/context-packs.md +35 -0
  9. package/docs/dogfood/01-small-library.md +28 -0
  10. package/docs/dogfood/02-web-app.md +29 -0
  11. package/docs/dogfood/03-mixed-monorepo.md +29 -0
  12. package/docs/mode-rules.md +86 -0
  13. package/docs/npm-publishing.md +79 -0
  14. package/docs/out-of-scope/mainstream-issue-trackers-only.md +25 -0
  15. package/docs/out-of-scope/question-limits.md +18 -0
  16. package/docs/out-of-scope/setup-skill-verify-mode.md +15 -0
  17. package/docs/overview.md +61 -0
  18. package/docs/philosophy.md +73 -0
  19. package/docs/quality-scorecard.md +23 -0
  20. package/docs/skill-maintenance.md +32 -0
  21. package/docs/skills-index.md +61 -0
  22. package/docs/team-mode.md +46 -0
  23. package/docs/token-budget.md +22 -0
  24. package/docs/troubleshooting.md +288 -0
  25. package/examples/demo-transcripts/01-small-tweak.md +37 -0
  26. package/examples/demo-transcripts/02-unknown-bug-fix.md +37 -0
  27. package/examples/demo-transcripts/03-new-feature.md +37 -0
  28. package/examples/demo-transcripts/04-refactor.md +37 -0
  29. package/examples/demo-transcripts/05-review-and-verify.md +37 -0
  30. package/examples/feature-flow.md +117 -0
  31. package/examples/fix-flow.md +139 -0
  32. package/package.json +16 -5
  33. package/quality/scorecard.json +88 -0
  34. package/quality/token-budget.exceptions.json +13 -0
  35. package/scripts/bundle.ps1 +135 -0
  36. package/scripts/check-golden-transcripts.js +69 -0
  37. package/scripts/check-package-links.js +72 -0
  38. package/scripts/check-package-manifest.js +70 -0
  39. package/scripts/eval-routing.js +149 -0
  40. package/scripts/score-quality.js +292 -0
  41. package/scripts/test-doctor.js +107 -0
  42. package/scripts/test-project-shapes.js +99 -0
  43. package/scripts/token-budget.js +105 -0
  44. package/templates/full/.roo/commands/caveman.md +1 -1
  45. package/templates/full/.roo/commands/diagnose.md +2 -1
  46. package/templates/full/.roo/commands/explore.md +13 -13
  47. package/templates/full/.roo/commands/feature.md +1 -1
  48. package/templates/full/.roo/commands/fix.md +1 -1
  49. package/templates/full/.roo/commands/grill-me.md +2 -1
  50. package/templates/full/.roo/commands/grill-with-docs.md +2 -1
  51. package/templates/full/.roo/commands/handoff.md +2 -1
  52. package/templates/full/.roo/commands/improve-codebase-architecture.md +2 -1
  53. package/templates/full/.roo/commands/prototype.md +1 -1
  54. package/templates/full/.roo/commands/refactor.md +1 -1
  55. package/templates/full/.roo/commands/review.md +11 -0
  56. package/templates/full/.roo/commands/scaffold-context.md +13 -13
  57. package/templates/full/.roo/commands/setup-matt-pocock-skills.md +8 -8
  58. package/templates/full/.roo/commands/tdd.md +1 -1
  59. package/templates/full/.roo/commands/to-issues.md +2 -1
  60. package/templates/full/.roo/commands/to-prd.md +2 -1
  61. package/templates/full/.roo/commands/triage.md +1 -1
  62. package/templates/full/.roo/commands/tweak.md +1 -1
  63. package/templates/full/.roo/commands/update-docs.md +22 -22
  64. package/templates/full/.roo/commands/verify.md +11 -0
  65. package/templates/full/.roo/commands/write-a-skill.md +2 -1
  66. package/templates/full/.roo/commands/zoom-out.md +2 -1
  67. package/templates/full/.roo/rules/01-command-protocol.md +1 -1
  68. package/templates/full/.roo/rules/04-context-economy.md +27 -29
  69. package/templates/full/.roo/rules-code-tweaker/01-completion.md +12 -8
  70. package/templates/full/.roo/rules-custom-orchestrator/00-routing.md +77 -63
  71. package/templates/full/.roo/rules-custom-orchestrator/01-delegation-message.md +59 -55
  72. package/templates/full/.roo/rules-system-architect/02-completion.md +6 -2
  73. package/templates/full/.roo/skills/engineering/README.md +2 -0
  74. package/templates/full/.roo/skills/engineering/commit-and-document/SKILL.md +1 -2
  75. package/templates/full/.roo/skills/engineering/grill-with-docs/ADR-FORMAT.md +1 -1
  76. package/templates/full/.roo/skills/engineering/grill-with-docs/CONTEXT-FORMAT.md +36 -61
  77. package/templates/full/.roo/skills/engineering/grill-with-docs/SKILL.md +1 -1
  78. package/templates/full/.roo/skills/engineering/improve-codebase-architecture/SKILL.md +3 -3
  79. package/templates/full/.roo/skills/engineering/prototype/SKILL.md +37 -37
  80. package/templates/full/.roo/skills/engineering/review/SKILL.md +111 -0
  81. package/templates/full/.roo/skills/engineering/scaffold-context/SKILL.md +218 -152
  82. package/templates/full/.roo/skills/engineering/scaffold-context/templates/writing-patterns.md +17 -0
  83. package/templates/full/.roo/skills/engineering/setup-matt-pocock-skills/SKILL.md +3 -3
  84. package/templates/full/.roo/skills/engineering/setup-matt-pocock-skills/domain.md +2 -3
  85. package/templates/full/.roo/skills/engineering/tdd/SKILL.md +2 -0
  86. package/templates/full/.roo/skills/engineering/to-prd/SKILL.md +57 -57
  87. package/templates/full/.roo/skills/engineering/tweak/SKILL.md +2 -1
  88. package/templates/full/.roo/skills/engineering/verify/SKILL.md +80 -0
  89. package/templates/full/.roo/skills/in-progress/README.md +0 -1
  90. package/templates/full/.roomodes +47 -47
  91. package/templates/full/.zoo-flow/CONTEXT.md +8 -8
  92. package/templates/full/.zoo-flow/START_HERE.md +61 -61
  93. package/templates/full/.zoo-flow/docs/adr/0001-record-architecture-decisions.md +22 -22
  94. package/templates/full/.zoo-flow/evals/no-regression-checklist.md +26 -24
  95. package/templates/full/.zoo-flow/evals/routing-cases.jsonl +20 -0
  96. package/templates/full/.zoo-flow/evals/routing-cases.md +213 -189
  97. package/templates/full/.zoo-flow/project-profile.json +24 -0
  98. package/tests/fixtures/bad-routing-cases/bad-json.jsonl +1 -0
  99. package/tests/fixtures/bad-routing-cases/bad-mode.jsonl +1 -0
  100. package/tests/fixtures/bad-routing-cases/missing-command.jsonl +1 -0
  101. package/tests/fixtures/doctor/bad-built-in-delegation/fixture.json +1 -0
  102. package/tests/fixtures/doctor/bad-mode-slug/fixture.json +1 -0
  103. package/tests/fixtures/doctor/bad-skill-wrapper/fixture.json +1 -0
  104. package/tests/fixtures/doctor/bad-zoo-path/fixture.json +1 -0
  105. package/tests/fixtures/doctor/helper-missing-mode/fixture.json +1 -0
  106. package/tests/fixtures/doctor/helper-not-permitted/fixture.json +1 -0
  107. package/tests/fixtures/doctor/manual-good-template/fixture.json +1 -0
  108. package/tests/fixtures/doctor/missing-command/fixture.json +1 -0
  109. package/tests/fixtures/doctor/missing-roomodes/fixture.json +1 -0
  110. package/tests/fixtures/doctor/missing-skill/fixture.json +1 -0
  111. package/tests/fixtures/project-shapes/cli-tool/cmd/root.go +1 -0
  112. package/tests/fixtures/project-shapes/cli-tool/fixture.json +1 -0
  113. package/tests/fixtures/project-shapes/cli-tool/package.json +1 -0
  114. package/tests/fixtures/project-shapes/data-pipeline/fixture.json +1 -0
  115. package/tests/fixtures/project-shapes/data-pipeline/pipelines/invoices.py +1 -0
  116. package/tests/fixtures/project-shapes/data-pipeline/pyproject.toml +2 -0
  117. package/tests/fixtures/project-shapes/library/fixture.json +1 -0
  118. package/tests/fixtures/project-shapes/library/package.json +1 -0
  119. package/tests/fixtures/project-shapes/library/src/index.ts +1 -0
  120. package/tests/fixtures/project-shapes/monorepo/fixture.json +1 -0
  121. package/tests/fixtures/project-shapes/monorepo/package.json +1 -0
  122. package/tests/fixtures/project-shapes/monorepo/packages/core/index.ts +1 -0
  123. package/tests/fixtures/project-shapes/monorepo/packages/web/index.ts +1 -0
  124. package/tests/fixtures/project-shapes/serverless/fixture.json +1 -0
  125. package/tests/fixtures/project-shapes/serverless/functions/webhook.ts +1 -0
  126. package/tests/fixtures/project-shapes/serverless/package.json +1 -0
  127. package/tests/fixtures/project-shapes/web-app/app/routes/index.tsx +1 -0
  128. package/tests/fixtures/project-shapes/web-app/fixture.json +1 -0
  129. package/tests/fixtures/project-shapes/web-app/package.json +1 -0
  130. package/tests/golden-transcripts/01-small-tweak-golden.md +21 -0
  131. package/tests/golden-transcripts/02-diagnosis-golden.md +26 -0
  132. package/tests/golden-transcripts/03-verification-golden.md +24 -0
  133. package/tests/golden-transcripts/04-review-golden.md +26 -0
  134. package/tests/golden-transcripts/05-feature-planning-golden.md +23 -0
  135. package/templates/full/.roo/skills/in-progress/review/SKILL.md +0 -39
@@ -1,69 +1,83 @@
1
- # Orchestrator Routing
2
-
3
- Router only. No reading implementation files, editing, shell, or answering implementation questions. Delegate only with `new_task` to `code-tweaker` or `system-architect` (planning/architecture slug is `system-architect`, never `architect`). Summarize and stop after a subtask returns; do not auto-launch another.
4
-
5
- ## Hard delegation boundary
6
-
7
- The only valid `new_task` target slugs are:
8
-
9
- - `code-tweaker`
10
- - `system-architect`
11
-
12
- Never delegate to built-in/default modes, including Ask, Code, Debug, Architect, or Orchestrator.
13
-
14
- If a task sounds like "ask", "inspect", "review", "analyze", "deep inspection", "investigate", or "reason about safety", route it to `system-architect`.
15
-
16
- If a task requires source edits, tests, docs updates, prototypes, or commits, route it to `code-tweaker`.
17
-
18
- If neither custom mode is suitable, stop and report that no valid Zoo Flow mode exists. Do not fall back to Ask mode.
19
-
20
- ## Natural language first
21
-
22
- Users are not expected to know slash commands. For free-form requests, infer the best workflow from intent and present a plain-language recommendation. Slash commands are optional power-user overrides. Mention command syntax only when the user typed a slash command or asked for syntax.
23
-
24
- ## User-facing workflow names
25
-
26
- Slash commands are internal routing labels unless the user explicitly typed one or asked for syntax. For free-form requests, use plain-language workflow names only: small implementation, test-first, diagnosis, feature planning, refactor planning, exploration, documentation update, commit and journal, prototype, issue triage. Never show slash commands as selectable options for free-form requests. Internal delegation may still use the slash command after approval.
27
-
28
- ## Routed commands
29
-
30
- | Workflow | Command | Mode |
31
- | -------------------- | ---------------------- | ---------------- |
32
- | small implementation | `/tweak` | code-tweaker |
33
- | test-first | `/tdd` | code-tweaker |
34
- | documentation update | `/update-docs` | code-tweaker |
35
- | commit and journal | `/commit-and-document` | code-tweaker |
36
- | prototype | `/prototype` | code-tweaker |
37
- | diagnosis | `/fix` | system-architect |
38
- | feature planning | `/feature` | system-architect |
39
- | refactor planning | `/refactor` | system-architect |
1
+ # Orchestrator Routing
2
+
3
+ Router only. No reading implementation files, editing, shell, or answering implementation questions. Delegate only with `new_task` to `code-tweaker` or `system-architect` (planning/architecture slug is `system-architect`, never `architect`). Summarize and stop after a subtask returns; do not auto-launch another.
4
+
5
+ ## Hard delegation boundary
6
+
7
+ The only valid `new_task` target slugs are:
8
+
9
+ - `code-tweaker`
10
+ - `system-architect`
11
+
12
+ Never delegate to built-in/default modes, including Ask, Code, Debug, Architect, or Orchestrator.
13
+
14
+ If a task sounds like "ask", "inspect", "review", "branch review", "pre-commit review", "analyze", "deep inspection", "investigate", or "reason about safety", route it to `system-architect`.
15
+
16
+ If a task requires source edits, tests, verification, docs updates, prototypes, or commits, route it to `code-tweaker`.
17
+
18
+ If neither custom mode is suitable, stop and report that no valid Zoo Flow mode exists. Do not fall back to Ask mode.
19
+
20
+ ## Natural language first
21
+
22
+ Users are not expected to know slash commands. For free-form requests, infer the best workflow from intent and present a plain-language recommendation. Slash commands are optional power-user overrides. Mention command syntax only when the user typed a slash command or asked for syntax.
23
+
24
+ ## User-facing workflow names
25
+
26
+ Slash commands are internal routing labels unless the user explicitly typed one or asked for syntax. For free-form requests, use plain-language workflow names only: small implementation, test-first, diagnosis, feature planning, refactor planning, exploration, documentation update, commit and journal, prototype, issue triage, review, verification. Never show slash commands as selectable options for free-form requests. Internal delegation may still use the slash command after approval.
27
+
28
+ ## Routed commands
29
+
30
+ | Workflow | Command | Mode |
31
+ | -------------------- | ---------------------- | ---------------- |
32
+ | small implementation | `/tweak` | code-tweaker |
33
+ | test-first | `/tdd` | code-tweaker |
34
+ | documentation update | `/update-docs` | code-tweaker |
35
+ | commit and journal | `/commit-and-document` | code-tweaker |
36
+ | prototype | `/prototype` | code-tweaker |
37
+ | diagnosis | `/fix` | system-architect |
38
+ | feature planning | `/feature` | system-architect |
39
+ | refactor planning | `/refactor` | system-architect |
40
40
  | exploration | `/explore` | system-architect |
41
41
  | issue triage | `/triage` | system-architect |
42
+ | review | `/review` | system-architect |
43
+ | verification | `/verify` | code-tweaker |
44
+
45
+ ## Routing decision guide
46
+
47
+ Read intent, not keywords. Top-down: 1. unknown code area or unclear next move → exploration; 2. broken behavior with unknown cause → diagnosis; 3. new capability needing design, PRD, issue slicing, or phase gates → feature planning; 4. working behavior but structure is the problem → refactor planning; 5. small known low-risk change → small implementation; 6. clear behavior and interface, user wants tests first → test-first; 7. throwaway design/state/UI uncertainty → prototype; 8. docs drift from code → documentation update; 9. finished work needs commit/journal → commit and journal; 10. issue creation, sorting, labels, or tracker workflow → issue triage; 11. diff, branch, PR, standards, architecture, or pre-commit inspection → review; 12. check if this passes, run tests for this change, verify the branch, or make sure nothing broke → verification.
48
+
49
+ ## Routing weight
50
+
51
+ Prefer the lightest workflow that preserves correctness. Use small implementation for known, localized, low-risk changes. Do not use feature planning merely because code will be added. Do not use diagnosis when the cause and target change are already known. Do not use refactor planning for one-file cleanup without design tradeoffs. If the target area is unknown, choose exploration first.
52
+
53
+ ## Risk levels
54
+
55
+ Use risk to choose the lightest safe workflow. Risk does not override command intent; explicit slash commands still route as-is. R1 copy/style/doc typo/one-line obvious edit → small implementation. R2 localized code change with known target → small implementation or test-first. R3 behavior change with clear interface → test-first, then suggest verification or review. R4 cross-module change or design tradeoff → feature planning or refactor planning, then suggest verification and review. R5 auth/payments/security/migrations/data loss/external API contracts → strict planning/diagnosis with explicit approval gates, then suggest verification and review.
56
+
57
+ ## Disambiguation
58
+
59
+ Diagnosis vs small implementation: unknown cause → diagnosis; known cause → small implementation. Diagnosis vs refactor planning: wrong behavior → diagnosis; working behavior but bad structure → refactor planning. Feature planning vs test-first: needs sharpening/PRD/issues → feature planning; clear interface/behavior → test-first. Feature planning vs prototype: real implementation → feature planning; throwaway design check → prototype. Refactor planning vs small implementation: cross-module design tradeoff → refactor planning; localized edit → small implementation. Documentation update vs commit and journal: align docs with code → documentation update; record finished work → commit and journal. Unknown target area beats all: choose exploration first.
60
+
61
+ ## Confidence and presentation
62
+
63
+ Explicit slash command from user = approval; route as-is. Clear free-form request = recommend one plain-language workflow plus one safe alternative if useful. Genuine tie = offer numbered plain-language choices. Prefer lighter workflow when safe, but do not skip needed diagnosis, planning, or approval. Follow `.roo/rules/03-manual-reply-protocol.md`: no slash commands, mode names, or executable routing text in selectable options. Good free-form option: 1. Make the small implementation change; 2. Explore the area first. Bad free-form option: 1. `/tweak`; 2. `/explore`.
64
+
65
+ ## Approval gate
66
+
67
+ The orchestrator proposes; the user approves; then the orchestrator delegates. Explicit slash command = approval; route immediately. A free-form request is never self-approving; propose a workflow and wait for approval. Present the recommendation, then stop and wait. Treat replies as approval only when they select the proposed workflow by number, option text, or clear restatement. A fresh free-form request restarts routing. If unsure whether the user approved, ask.
68
+
69
+ ## Delegation
70
+
71
+ Delegate only after the approval gate is satisfied. Choose the safest proceed policy from `01-delegation-message.md`.
42
72
 
43
- ## Routing decision guide
44
-
45
- Read intent, not keywords. Top-down: 1. unknown code area or unclear next move → exploration; 2. broken behavior with unknown cause → diagnosis; 3. new capability needing design, PRD, issue slicing, or phase gates → feature planning; 4. working behavior but structure is the problem → refactor planning; 5. small known low-risk change → small implementation; 6. clear behavior and interface, user wants tests first → test-first; 7. throwaway design/state/UI uncertainty → prototype; 8. docs drift from code → documentation update; 9. finished work needs commit/journal → commit and journal; 10. issue creation, sorting, labels, or tracker workflow → issue triage.
46
-
47
- ## Routing weight
48
-
49
- Prefer the lightest workflow that preserves correctness. Use small implementation for known, localized, low-risk changes. Do not use feature planning merely because code will be added. Do not use diagnosis when the cause and target change are already known. Do not use refactor planning for one-file cleanup without design tradeoffs. If the target area is unknown, choose exploration first.
50
-
51
- ## Risk levels
52
-
53
- Use risk to choose the lightest safe workflow. Risk does not override command intent; explicit slash commands still route as-is. R1 copy/style/doc typo/one-line obvious edit → small implementation. R2 localized code change with known target → small implementation or test-first. R3 behavior change with clear interface → test-first. R4 cross-module change or design tradeoff → feature planning or refactor planning. R5 auth/payments/security/migrations/data loss/external API contracts → strict planning/diagnosis with explicit approval gates.
54
-
55
- ## Disambiguation
56
-
57
- Diagnosis vs small implementation: unknown cause → diagnosis; known cause → small implementation. Diagnosis vs refactor planning: wrong behavior → diagnosis; working behavior but bad structure → refactor planning. Feature planning vs test-first: needs sharpening/PRD/issues → feature planning; clear interface/behavior → test-first. Feature planning vs prototype: real implementation → feature planning; throwaway design check → prototype. Refactor planning vs small implementation: cross-module design tradeoff → refactor planning; localized edit → small implementation. Documentation update vs commit and journal: align docs with code → documentation update; record finished work → commit and journal. Unknown target area beats all: choose exploration first.
58
-
59
- ## Confidence and presentation
60
-
61
- Explicit slash command from user = approval; route as-is. Clear free-form request = recommend one plain-language workflow plus one safe alternative if useful. Genuine tie = offer numbered plain-language choices. Prefer lighter workflow when safe, but do not skip needed diagnosis, planning, or approval. Follow `.roo/rules/03-manual-reply-protocol.md`: no slash commands, mode names, or executable routing text in selectable options. Good free-form option: 1. Make the small implementation change; 2. Explore the area first. Bad free-form option: 1. `/tweak`; 2. `/explore`.
62
-
63
- ## Approval gate
73
+ ## Follow-up recommendations
64
74
 
65
- The orchestrator proposes; the user approves; then the orchestrator delegates. Explicit slash command = approval; route immediately. Free-form request = not self-approving; present the recommendation, then stop and wait. Treat replies as approval only when they select the proposed workflow by number, option text, or clear restatement. A fresh free-form request restarts routing. If unsure whether the user approved, ask.
75
+ For non-trivial work, suggest the next command chain only after the current command completes. Do not auto-launch follow-up commands merely because they are mentioned.
66
76
 
67
- ## Delegation
77
+ Recommended chains:
68
78
 
69
- Delegate only after the approval gate is satisfied. Choose the safest proceed policy from `01-delegation-message.md`.
79
+ - test-first verification review commit and journal
80
+ - diagnosis → verification → review → commit and journal
81
+ - refactor planning → verification → review → commit and journal
82
+ - feature planning → verification → review → commit and journal
83
+ - small implementation → verification or review when risk is R3+
@@ -1,62 +1,66 @@
1
- # Delegation Message
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
-
5
- ## Compact delegation template
6
-
7
- Use this shape unless the task needs more detail:
8
-
9
- ```
10
- Task:
11
- Command:
12
- Proceed policy:
13
- Context hints:
14
- Allowed scope:
15
- Must follow:
16
- - `.roo/rules/01-command-protocol.md`
17
- - relevant command file
18
- - referenced skill only
19
- Completion must include:
20
- - files inspected/changed
21
- - commands/tests run
22
- - status
23
- - blockers
24
- - recommended next command
25
- ```
26
-
27
- Fields expand as:
28
-
29
- - **Task** — what the user asked for, in plain language.
30
- - **Command** — the slash command being delegated, with leading slash.
31
- - **Proceed policy** — one of the three policies below.
32
- - **Context hints** — known files, symbols, line ranges, or search terms when available. Pass paths, not file bodies.
33
- - **Allowed scope** — what the worker may edit or read, when it is not "the whole repo".
34
-
35
- Do not paste long rule bodies, command bodies, or file contents into delegation messages. Pass paths, symbols, search terms, and decisions instead.
36
-
37
- The receiving worker already loads `.roo/rules/01-command-protocol.md` and `.roo/rules/00-paths.md` on every turn. Reminders are not needed for those, but command-file and skill-path pointers still help when the worker has not loaded them yet.
38
-
39
- Ignore slash commands mentioned only inside subtask summaries.
40
-
41
- # Proceed Policy
42
-
43
- Every delegated task must include one proceed policy:
44
-
45
- - `Proceed automatically after audit if clean`
46
- - `Ask user before implementation`
47
- - `Stop and report only`
48
-
49
- Use the least-interruptive policy that is safe.
50
-
51
- Defaults:
52
-
53
- - `/tweak`: proceed automatically after audit if clean
54
- - `/tdd`: proceed automatically after audit if clean, unless the public interface, expected behavior, or test target is unclear
55
- - `/explore`: proceed automatically; ask only if the target area is ambiguous
1
+ # Delegation Message
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
+
5
+ ## Compact delegation template
6
+
7
+ Use this shape unless the task needs more detail:
8
+
9
+ ```
10
+ Task:
11
+ Command:
12
+ Proceed policy:
13
+ Context hints:
14
+ Allowed scope:
15
+ Must follow:
16
+ - `.roo/rules/01-command-protocol.md`
17
+ - relevant command file
18
+ - referenced skill only
19
+ Completion must include:
20
+ - files inspected/changed
21
+ - commands/tests run
22
+ - status
23
+ - blockers
24
+ - recommended next command
25
+ ```
26
+
27
+ Fields expand as:
28
+
29
+ - **Task** — what the user asked for, in plain language.
30
+ - **Command** — the slash command being delegated, with leading slash.
31
+ - **Proceed policy** — one of the three policies below.
32
+ - **Context hints** — known files, symbols, line ranges, or search terms when available. Pass paths, not file bodies.
33
+ - **Allowed scope** — what the worker may edit or read, when it is not "the whole repo".
34
+
35
+ Do not paste long rule bodies, command bodies, or file contents into delegation messages. Pass paths, symbols, search terms, and decisions instead.
36
+
37
+ The receiving worker already loads `.roo/rules/01-command-protocol.md` and `.roo/rules/00-paths.md` on every turn. Reminders are not needed for those, but command-file and skill-path pointers still help when the worker has not loaded them yet.
38
+
39
+ Ignore slash commands mentioned only inside subtask summaries.
40
+
41
+ # Proceed Policy
42
+
43
+ Every delegated task must include one proceed policy:
44
+
45
+ - `Proceed automatically after audit if clean`
46
+ - `Ask user before implementation`
47
+ - `Stop and report only`
48
+
49
+ Use the least-interruptive policy that is safe.
50
+
51
+ Defaults:
52
+
53
+ - `/tweak`: proceed automatically after audit if clean
54
+ - `/tdd`: proceed automatically after audit if clean, unless the public interface, expected behavior, or test target is unclear
55
+ - `/explore`: proceed automatically; ask only if the target area is ambiguous
56
56
  - `/update-docs`: proceed automatically after audit if the target doc/area is clear; ask if unclear
57
57
  - `/prototype`: proceed automatically if prototype branch is clear; ask if logic vs UI is ambiguous
58
+ - `/verify`: proceed automatically after changed scope and project checks are identified; report exact commands run
59
+ - `/review`: stop and report only; do not patch application source
58
60
  - `/fix`: ask after reproduced hypotheses before instrumentation/fix
59
61
  - `/feature`: ask at phase gates: Prototype/PRD, prototype verdict, slice approval, issue approval
60
62
  - `/refactor`: ask before selecting a candidate and before implementation
61
63
  - `/triage`: ask before publishing, closing, labeling, or making irreversible tracker changes unless the user explicitly requested it
62
64
  - `/commit-and-document`: always ask before `git commit`, `git push`, or issue close actions
65
+
66
+ Do not auto-launch `/verify`, `/review`, or `/commit-and-document` merely because a worker recommended it. Suggest only; wait for explicit approval.
@@ -11,6 +11,10 @@ If you entered this window via `switch_mode` (you are mid-chain, not the entry p
11
11
 
12
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
13
 
14
- Do not use `attempt_completion` to avoid required implementation work.
14
+ Do not use `attempt_completion` to avoid required implementation work. Every `attempt_completion` must include evidence of what was produced or discovered, not just summaries.
15
15
 
16
- Halt for explicit user approval before testing a bug hypothesis, finalizing an architecture plan, publishing issues, or making irreversible decisions.
16
+ Halt for explicit user approval before testing a bug hypothesis, finalizing an architecture plan, publishing issues, or making irreversible decisions.
17
+
18
+ For non-trivial completed plans or reviews, recommend the next command only. Typical chain: implementation command -> `/verify` -> `/review` -> `/commit-and-document`. Do not auto-launch those commands.
19
+
20
+ If the user explicitly says to remember a project rule, or the same mistake has repeated, ask before appending a short lesson to `.zoo-flow/LESSONS.md`. Do not read or write lessons by default.
@@ -10,3 +10,5 @@
10
10
  - **[to-prd](./to-prd/SKILL.md)** — Context → PRD issue.
11
11
  - **[zoom-out](./zoom-out/SKILL.md)** — Map modules/callers.
12
12
  - **[prototype](./prototype/SKILL.md)** — Throwaway logic/UI prototype.
13
+ - **[review](./review/SKILL.md)** — Diff/branch review against spec and standards.
14
+ - **[verify](./verify/SKILL.md)** — Targeted tests/typecheck/lint/build evidence.
@@ -123,8 +123,7 @@ Date via `date +%Y-%m-%d`. Create `docs/journal/<YYYY-MM-DD>/` if missing. Write
123
123
  ## 7. Surface stale docs (if any)
124
124
 
125
125
  Read `git diff --cached --stat`. If any staged path overlaps with a path
126
- referenced in `.zoo-flow/CONTEXT.md`, `.zoo-flow/ARCHITECTURE.md`,
127
- `.zoo-flow/APP_MAP.md`, or any nearby `FLOW.md`, output exactly one line
126
+ referenced in `.zoo-flow/CONTEXT.md`, output exactly one line
128
127
  before "Confirm":
129
128
 
130
129
  "Public surface may have drifted. Run /update-docs? (yes / skip)"
@@ -1,6 +1,6 @@
1
1
  # ADR Format
2
2
 
3
- Path: `docs/adr/NNNN-slug.md`. Create dir lazily.
3
+ Path: `.zoo-flow/docs/adr/NNNN-slug.md`. Create dir lazily.
4
4
 
5
5
  ## Template
6
6
 
@@ -1,61 +1,36 @@
1
- # CONTEXT.md Format
2
-
3
- ## Shape
4
-
5
- ```md
6
- # {Context Name}
7
-
8
- {1-2 sentences: context purpose.}
9
-
10
- ## Language
11
-
12
- **Order**:
13
- {1-2 sentence definition}
14
- _Avoid_: Purchase, transaction
15
-
16
- ## Flagged ambiguities
17
-
18
- **Account** means Customer here, not User.
19
- ```
20
-
21
- ## Rules
22
-
23
- - **Be opinionated.** When multiple words exist for the same concept, pick the best one and list the others under `_Avoid`.
24
- - Define term in 1–2 sentences: what it is, not behavior.
25
- - Include domain terms only; exclude generic programming terms.
26
-
27
- ## Slots
28
-
29
- | Slot | File (if present) | Authored by | Default location |
30
- |---|---|---|---|
31
- | Domain language | `CONTEXT.md` | User via /grill-with-docs | `.zoo-flow/CONTEXT.md` |
32
- | Decisions | `docs/adr/<NNNN-slug>.md` | User via /grill-with-docs | `.zoo-flow/docs/adr/` |
33
- | Subsystem flow | `FLOW.md` | Subsystem owner | Next to the code |
34
- | App map | `APP_MAP.md` | User via /update-docs | `.zoo-flow/APP_MAP.md` |
35
- | Architecture | `ARCHITECTURE.md` | User via /update-docs | `.zoo-flow/ARCHITECTURE.md` |
36
- | Setup | `README.md` | Project owner | Project root |
37
-
38
- ## Discovery rule (used by /explore, /update-docs, /grill-with-docs)
39
-
40
- For each slot, in this order:
41
-
42
- 1. If the file exists at the documented location, read it.
43
- 2. If the slot is empty/missing, that is **not an error**. The user has
44
- not authored it yet. Do not invent content. Do not lazy-create unless
45
- the calling command explicitly says so (e.g. /grill-with-docs on a
46
- first resolved term).
47
- 3. If the calling command depends on a populated slot and none exist,
48
- surface once: "Slot `<name>` not yet authored. Run /grill-with-docs
49
- to fill, or continue without."
50
-
51
- ## Multi-context (rare)
52
-
53
- A single project can hold multiple domain contexts when subsystems do
54
- not share language. Use:
55
-
56
- - `.zoo-flow/CONTEXT-MAP.md` — index of contexts.
57
- - `.zoo-flow/contexts/<slug>/CONTEXT.md` — per-context.
58
- - `.zoo-flow/contexts/<slug>/docs/adr/` — per-context ADRs.
59
-
60
- `/grill-with-docs` and `/explore` consult the map first, then the
61
- relevant per-context file.
1
+ # CONTEXT.md Format
2
+
3
+ ## Shape
4
+
5
+ ```md
6
+ # {Context Name}
7
+
8
+ {1-2 sentences: context purpose.}
9
+
10
+ ## Language
11
+
12
+ **Order**:
13
+ {1-2 sentence definition}
14
+ _Avoid_: Purchase, transaction
15
+
16
+ ## Flagged ambiguities
17
+
18
+ **Account** means Customer here, not User.
19
+ ```
20
+
21
+ ## Rules
22
+
23
+ - **Be opinionated.** When multiple words exist for the same concept, pick the best one and list the others under `_Avoid`.
24
+ - Define term in 1–2 sentences: what it is, not behavior.
25
+ - Include domain terms only; exclude generic programming terms.
26
+
27
+ ## Directory layout
28
+
29
+ - `.zoo-flow/CONTEXT.md` domain language glossary
30
+ - `.zoo-flow/docs/adr/<NNNN-slug>.md` — architecture decisions
31
+
32
+ ## Discovery rule
33
+
34
+ 1. If the file exists, read it.
35
+ 2. If the file is missing, that is **not an error**. Do not invent content.
36
+ 3. For commands that depend on populated context, surface once: "No CONTEXT.md or ADRs found yet. Run /grill-with-docs or /scaffold-context to fill, or continue without."
@@ -7,7 +7,7 @@ description: Grilling session that challenges your plan against the existing dom
7
7
 
8
8
  ## Loop
9
9
 
10
- 1. Read relevant `CONTEXT.md`/`CONTEXT-MAP.md` + ADRs.
10
+ 1. Read relevant `.zoo-flow/CONTEXT.md` + ADRs.
11
11
  2. Ask one question at a time.
12
12
  3. Include recommended answer.
13
13
  4. Inspect code instead of asking when code can answer.
@@ -5,11 +5,11 @@ description: Find deepening opportunities in a codebase, informed by the domain
5
5
 
6
6
  # Improve Codebase Architecture
7
7
 
8
- RULE: Use `LANGUAGE.md` terms. Use glossary. Respect ADRs; surface only reopen-worthy conflicts.
8
+ RULE: Use `.zoo-flow/CONTEXT.md` terms. Use glossary. Respect ADRs; surface only reopen-worthy conflicts.
9
9
 
10
10
  ## Explore
11
11
 
12
- 1. Read relevant `CONTEXT.md`/`CONTEXT-MAP.md`.
12
+ 1. Read relevant `.zoo-flow/CONTEXT.md`.
13
13
  2. Read relevant ADRs.
14
14
  3. Explore code organically.
15
15
  4. Find friction:
@@ -52,4 +52,4 @@ Use searches to identify dependency/call patterns before reading full modules. R
52
52
  2. If module name introduces unresolved domain term, update `CONTEXT.md` lazily.
53
53
  3. If term sharpened, update `CONTEXT.md` immediately.
54
54
  4. Durable rejected reason useful later → offer ADR.
55
- 5. Interface options requested → run `INTERFACE-DESIGN.md`.
55
+ 5. Interface options requested → run interface-design workflow.
@@ -1,37 +1,37 @@
1
- ---
2
- name: prototype
3
- description: Build a throwaway prototype to flesh out a design before committing to it. Routes between two branches — a runnable terminal app for state/business-logic questions, or several radically different UI variations toggleable from one route. Use when the user wants to prototype, sanity-check a data model or state machine, mock up a UI, explore design options, or says "prototype this", "let me play with it", "try a few designs".
4
- ---
5
-
6
- # Prototype
7
-
8
- RULE: Prototype answers one question. Throw away or absorb after answer.
9
-
10
- ## Branch
11
-
12
- - Logic/state/data-model → `LOGIC.md`.
13
- - Visual/layout/UI → `UI.md`.
14
- - Ambiguous → ask.
15
- - User AFK → infer + state assumption.
16
-
17
- ## Context economy
18
-
19
- Before broad reads, locate relevant files/symbols with `list_files`, `search_files`, or `codebase_search`.
20
-
21
- Prefer targeted `read_file` ranges or indentation/block reads once the relevant area is known.
22
-
23
- Read full files only when structure, ordering, or surrounding context is required for correctness.
24
-
25
- Do not re-read unchanged files; use prior findings unless the file changed.
26
-
27
- ## Rules
28
-
29
- 1. Mark throwaway clearly.
30
- 2. Place under `.scratch/prototypes/<slug>/` (logic/state/data-model) or near the real module/page (UI). UI prototypes need the real route, data fetching, and auth, so they stay adjacent to the page they mock up; logic prototypes have no such constraint, so they go in `.scratch/` with the other throwaway work.
31
- 3. Follow existing routing/tooling.
32
- 4. Provide one run command.
33
- 5. Default no persistence; state in memory.
34
- 6. Persistence target → scratch DB/file named `PROTOTYPE — wipe me` in the prototype folder.
35
- 7. No polish: no tests, minimal errors, no abstractions.
36
- 8. Surface full relevant state after each action/variant switch.
37
- 9. Done → capture answer in commit/ADR/issue/`NOTES.md`; delete or fold into real code.
1
+ ---
2
+ name: prototype
3
+ description: Build a throwaway prototype to flesh out a design before committing to it. Routes between two branches — a runnable terminal app for state/business-logic questions, or several radically different UI variations toggleable from one route. Use when the user wants to prototype, sanity-check a data model or state machine, mock up a UI, explore design options, or says "prototype this", "let me play with it", "try a few designs".
4
+ ---
5
+
6
+ # Prototype
7
+
8
+ RULE: Prototype answers one question. Throw away or absorb after answer.
9
+
10
+ ## Branch
11
+
12
+ - Logic/state/data-model → `LOGIC.md`.
13
+ - Visual/layout/UI → `UI.md`.
14
+ - Ambiguous → ask.
15
+ - User AFK → infer + state assumption.
16
+
17
+ ## Context economy
18
+
19
+ Before broad reads, locate relevant files/symbols with `list_files`, `search_files`, or `codebase_search`.
20
+
21
+ Prefer targeted `read_file` ranges or indentation/block reads once the relevant area is known.
22
+
23
+ Read full files only when structure, ordering, or surrounding context is required for correctness.
24
+
25
+ Do not re-read unchanged files; use prior findings unless the file changed.
26
+
27
+ ## Rules
28
+
29
+ 1. Mark throwaway clearly.
30
+ 2. Place under `.scratch/prototypes/<slug>/` (logic/state/data-model) or near the real module/page (UI). UI prototypes need the real route, data fetching, and auth, so they stay adjacent to the page they mock up; logic prototypes have no such constraint, so they go in `.scratch/` with the other throwaway work.
31
+ 3. Follow existing routing/tooling.
32
+ 4. Provide one run command.
33
+ 5. Default no persistence; state in memory.
34
+ 6. Persistence target → scratch DB/file named `PROTOTYPE — wipe me` in the prototype folder.
35
+ 7. No polish: no tests, minimal errors, no abstractions.
36
+ 8. Surface full relevant state after each action/variant switch.
37
+ 9. Done → capture answer in commit/ADR/issue/`NOTES.md`; delete or fold into real code.
@@ -0,0 +1,111 @@
1
+ ---
2
+ name: review
3
+ description: Review a diff, branch, PR, or work-in-progress change against the requested spec, repo standards, architecture, and likely regressions. Use before committing non-trivial work.
4
+ ---
5
+
6
+ # Review
7
+
8
+ Purpose: answer whether the diff matches the spec, standards, architecture, and project intent.
9
+
10
+ Review only. Do not patch application source. As `system-architect`, edits are limited to Markdown, `.scratch/`, and `docs/`.
11
+
12
+ ## 1. Identify target
13
+
14
+ Use the narrowest target that fits the request:
15
+
16
+ - User-provided base ref, PR, issue, files, or review focus.
17
+ - Staged diff when staged changes exist.
18
+ - Unstaged diff when unstaged changes exist.
19
+ - Branch diff against the likely base (`main`, `master`, or merge-base) when asked to review a branch.
20
+ - Specific files/specs/PRDs when provided.
21
+
22
+ If the target is unclear, ask one short question and stop.
23
+
24
+ ## 2. Read needed context only
25
+
26
+ Start with:
27
+
28
+ - `git status --short`
29
+ - `git diff --stat`
30
+ - `git diff --cached --stat` when staged changes exist
31
+
32
+ Then read targeted diffs only:
33
+
34
+ - `git diff -- <file>`
35
+ - `git diff --cached -- <file>`
36
+ - `git diff <base>...HEAD -- <file>`
37
+
38
+ Read relevant specs, issues, PRDs, standards, docs, ADRs, security notes, or project conventions only when they affect the changed area or the user requested that axis.
39
+
40
+ ## 3. Review axes
41
+
42
+ Standards axis:
43
+
44
+ - style
45
+ - architecture
46
+ - test quality
47
+ - maintainability
48
+ - security
49
+ - project conventions
50
+
51
+ Spec axis:
52
+
53
+ - did it solve the requested problem?
54
+ - did it change public behavior unexpectedly?
55
+ - did it miss edge cases?
56
+ - did it violate PRD, issue, or user intent?
57
+
58
+ Security/Risk axis:
59
+
60
+ - does the change touch auth, payments, PII, session data, or external API contracts?
61
+ - does it introduce new dependencies or entitlements?
62
+ - are there error paths that could leak information?
63
+ - is there a regression path that would be hard to detect?
64
+ - does the change affect audit logs or compliance obligations?
65
+
66
+ For every Security/Risk finding, include the severity and a concrete
67
+ mitigation suggestion. Omitting this axis is allowed when the change
68
+ clearly cannot affect security (copy changes, comment fixes, test-only
69
+ additions, docs-only updates).
70
+
71
+ ## 4. Findings
72
+
73
+ Order findings by severity:
74
+
75
+ - Blocker
76
+ - High
77
+ - Medium
78
+ - Low
79
+ - Nit
80
+
81
+ For every finding include:
82
+
83
+ - file/path
84
+ - line or symbol when possible
85
+ - problem
86
+ - why it matters
87
+ - suggested fix
88
+
89
+ Prefer concrete findings over commentary. If no findings exist for a severity, omit that severity.
90
+
91
+ ## 5. Result
92
+
93
+ End with exactly one result line:
94
+
95
+ - `Review result: approve`
96
+ - `Review result: approve with nits`
97
+ - `Review result: changes requested`
98
+ - `Review result: blocked`
99
+
100
+ ## Recommended next command
101
+
102
+ If fixes are needed, recommend one next command only:
103
+
104
+ - small fix -> `/tweak`
105
+ - behavior fix -> `/tdd`
106
+ - unknown cause -> `/fix`
107
+ - design issue -> `/refactor`
108
+ - ready for evidence -> `/verify`
109
+ - ready to commit -> `/commit-and-document`
110
+
111
+ Do not auto-launch any follow-up command.