@fernado03/zoo-flow 0.11.3 → 0.12.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.
- package/bin/zoo-flow.js +25 -25
- package/package.json +1 -1
- package/templates/full/.roo/commands/{explore.md → zoo-explore.md} +18 -18
- package/templates/full/.roo/commands/{scaffold-context.md → zoo-scaffold-context.md} +16 -16
- package/templates/full/.roo/commands/{setup-matt-pocock-skills.md → zoo-setup-matt-pocock-skills.md} +7 -7
- package/templates/full/.roo/commands/{update-docs.md → zoo-update-docs.md} +22 -22
- package/templates/full/.roo/rules-custom-orchestrator/00-routing.md +22 -22
- package/templates/full/.roo/skills/engineering/commit-and-document/SKILL.md +163 -163
- package/templates/full/.roo/skills/engineering/diagnose/SKILL.md +3 -3
- package/templates/full/.roo/skills/engineering/grill-with-docs/SKILL.md +1 -1
- package/templates/full/.roo/skills/engineering/improve-codebase-architecture/SKILL.md +1 -1
- package/templates/full/.roo/skills/engineering/prototype/SKILL.md +47 -47
- package/templates/full/.roo/skills/engineering/review/SKILL.md +7 -7
- package/templates/full/.roo/skills/engineering/scaffold-context/SKILL.md +228 -228
- package/templates/full/.roo/skills/engineering/setup-matt-pocock-skills/SKILL.md +2 -2
- package/templates/full/.roo/skills/engineering/tdd/SKILL.md +1 -1
- package/templates/full/.roo/skills/engineering/to-issues/SKILL.md +2 -2
- package/templates/full/.roo/skills/engineering/to-prd/SKILL.md +66 -66
- package/templates/full/.roo/skills/engineering/triage/SKILL.md +2 -2
- package/templates/full/.roo/skills/engineering/tweak/SKILL.md +1 -1
- package/templates/full/.roo/skills/engineering/update-docs/SKILL.md +76 -76
- package/templates/full/.roo/skills/engineering/verify/SKILL.md +2 -2
- package/templates/full/.roo/skills/engineering/zoom-out/SKILL.md +1 -1
- package/templates/full/.roo/skills/productivity/caveman/SKILL.md +1 -1
- package/templates/full/.roo/skills/productivity/teach/SKILL.md +119 -119
- package/templates/full/.roomodes +3 -3
- /package/templates/claude-code/.claude/commands/{caveman.md → zoo-caveman.md} +0 -0
- /package/templates/claude-code/.claude/commands/{commit-and-document.md → zoo-commit-and-document.md} +0 -0
- /package/templates/claude-code/.claude/commands/{diagnose.md → zoo-diagnose.md} +0 -0
- /package/templates/claude-code/.claude/commands/{explore.md → zoo-explore.md} +0 -0
- /package/templates/claude-code/.claude/commands/{feature.md → zoo-feature.md} +0 -0
- /package/templates/claude-code/.claude/commands/{fix.md → zoo-fix.md} +0 -0
- /package/templates/claude-code/.claude/commands/{grill-me.md → zoo-grill-me.md} +0 -0
- /package/templates/claude-code/.claude/commands/{grill-with-docs.md → zoo-grill-with-docs.md} +0 -0
- /package/templates/claude-code/.claude/commands/{handoff.md → zoo-handoff.md} +0 -0
- /package/templates/claude-code/.claude/commands/{improve-codebase-architecture.md → zoo-improve-codebase-architecture.md} +0 -0
- /package/templates/claude-code/.claude/commands/{prototype.md → zoo-prototype.md} +0 -0
- /package/templates/claude-code/.claude/commands/{refactor.md → zoo-refactor.md} +0 -0
- /package/templates/claude-code/.claude/commands/{review.md → zoo-review.md} +0 -0
- /package/templates/claude-code/.claude/commands/{scaffold-context.md → zoo-scaffold-context.md} +0 -0
- /package/templates/claude-code/.claude/commands/{setup-matt-pocock-skills.md → zoo-setup-matt-pocock-skills.md} +0 -0
- /package/templates/claude-code/.claude/commands/{tdd.md → zoo-tdd.md} +0 -0
- /package/templates/claude-code/.claude/commands/{teach.md → zoo-teach.md} +0 -0
- /package/templates/claude-code/.claude/commands/{to-issues.md → zoo-to-issues.md} +0 -0
- /package/templates/claude-code/.claude/commands/{to-prd.md → zoo-to-prd.md} +0 -0
- /package/templates/claude-code/.claude/commands/{triage.md → zoo-triage.md} +0 -0
- /package/templates/claude-code/.claude/commands/{tweak.md → zoo-tweak.md} +0 -0
- /package/templates/claude-code/.claude/commands/{update-docs.md → zoo-update-docs.md} +0 -0
- /package/templates/claude-code/.claude/commands/{verify.md → zoo-verify.md} +0 -0
- /package/templates/claude-code/.claude/commands/{write-a-skill.md → zoo-write-a-skill.md} +0 -0
- /package/templates/claude-code/.claude/commands/{zoom-out.md → zoo-zoom-out.md} +0 -0
- /package/templates/full/.roo/commands/{caveman.md → zoo-caveman.md} +0 -0
- /package/templates/full/.roo/commands/{commit-and-document.md → zoo-commit-and-document.md} +0 -0
- /package/templates/full/.roo/commands/{diagnose.md → zoo-diagnose.md} +0 -0
- /package/templates/full/.roo/commands/{feature.md → zoo-feature.md} +0 -0
- /package/templates/full/.roo/commands/{fix.md → zoo-fix.md} +0 -0
- /package/templates/full/.roo/commands/{grill-me.md → zoo-grill-me.md} +0 -0
- /package/templates/full/.roo/commands/{grill-with-docs.md → zoo-grill-with-docs.md} +0 -0
- /package/templates/full/.roo/commands/{handoff.md → zoo-handoff.md} +0 -0
- /package/templates/full/.roo/commands/{improve-codebase-architecture.md → zoo-improve-codebase-architecture.md} +0 -0
- /package/templates/full/.roo/commands/{prototype.md → zoo-prototype.md} +0 -0
- /package/templates/full/.roo/commands/{refactor.md → zoo-refactor.md} +0 -0
- /package/templates/full/.roo/commands/{review.md → zoo-review.md} +0 -0
- /package/templates/full/.roo/commands/{tdd.md → zoo-tdd.md} +0 -0
- /package/templates/full/.roo/commands/{teach.md → zoo-teach.md} +0 -0
- /package/templates/full/.roo/commands/{to-issues.md → zoo-to-issues.md} +0 -0
- /package/templates/full/.roo/commands/{to-prd.md → zoo-to-prd.md} +0 -0
- /package/templates/full/.roo/commands/{triage.md → zoo-triage.md} +0 -0
- /package/templates/full/.roo/commands/{tweak.md → zoo-tweak.md} +0 -0
- /package/templates/full/.roo/commands/{verify.md → zoo-verify.md} +0 -0
- /package/templates/full/.roo/commands/{write-a-skill.md → zoo-write-a-skill.md} +0 -0
- /package/templates/full/.roo/commands/{zoom-out.md → zoo-zoom-out.md} +0 -0
package/bin/zoo-flow.js
CHANGED
|
@@ -13,34 +13,34 @@ const claudeCodeTemplateRoot = path.join(packageRoot, "templates", "claude-code"
|
|
|
13
13
|
|
|
14
14
|
const COMMAND_POLICY = {
|
|
15
15
|
routed: {
|
|
16
|
-
"tweak": "code-tweaker",
|
|
17
|
-
"tdd": "code-tweaker",
|
|
18
|
-
"update-docs": "code-tweaker",
|
|
19
|
-
"commit-and-document": "code-tweaker",
|
|
20
|
-
"prototype": "code-tweaker",
|
|
21
|
-
"scaffold-context": "code-tweaker",
|
|
22
|
-
"verify": "code-tweaker",
|
|
23
|
-
"fix": "system-architect",
|
|
24
|
-
"feature": "system-architect",
|
|
25
|
-
"refactor": "system-architect",
|
|
26
|
-
"explore": "system-architect",
|
|
27
|
-
"triage": "system-architect",
|
|
28
|
-
"review": "system-architect"
|
|
16
|
+
"zoo-tweak": "code-tweaker",
|
|
17
|
+
"zoo-tdd": "code-tweaker",
|
|
18
|
+
"zoo-update-docs": "code-tweaker",
|
|
19
|
+
"zoo-commit-and-document": "code-tweaker",
|
|
20
|
+
"zoo-prototype": "code-tweaker",
|
|
21
|
+
"zoo-scaffold-context": "code-tweaker",
|
|
22
|
+
"zoo-verify": "code-tweaker",
|
|
23
|
+
"zoo-fix": "system-architect",
|
|
24
|
+
"zoo-feature": "system-architect",
|
|
25
|
+
"zoo-refactor": "system-architect",
|
|
26
|
+
"zoo-explore": "system-architect",
|
|
27
|
+
"zoo-triage": "system-architect",
|
|
28
|
+
"zoo-review": "system-architect"
|
|
29
29
|
},
|
|
30
30
|
helpers: {
|
|
31
|
-
"diagnose": "system-architect",
|
|
32
|
-
"grill-with-docs": "system-architect",
|
|
33
|
-
"improve-codebase-architecture": "system-architect",
|
|
34
|
-
"to-prd": "system-architect",
|
|
35
|
-
"to-issues": "system-architect",
|
|
36
|
-
"zoom-out": "system-architect",
|
|
37
|
-
"handoff": "system-architect",
|
|
38
|
-
"grill-me": "system-architect",
|
|
39
|
-
"write-a-skill": "code-tweaker",
|
|
40
|
-
"setup-matt-pocock-skills": "code-tweaker",
|
|
41
|
-
"teach": "code-tweaker"
|
|
31
|
+
"zoo-diagnose": "system-architect",
|
|
32
|
+
"zoo-grill-with-docs": "system-architect",
|
|
33
|
+
"zoo-improve-codebase-architecture": "system-architect",
|
|
34
|
+
"zoo-to-prd": "system-architect",
|
|
35
|
+
"zoo-to-issues": "system-architect",
|
|
36
|
+
"zoo-zoom-out": "system-architect",
|
|
37
|
+
"zoo-handoff": "system-architect",
|
|
38
|
+
"zoo-grill-me": "system-architect",
|
|
39
|
+
"zoo-write-a-skill": "code-tweaker",
|
|
40
|
+
"zoo-setup-matt-pocock-skills": "code-tweaker",
|
|
41
|
+
"zoo-teach": "code-tweaker"
|
|
42
42
|
},
|
|
43
|
-
modelessUtilities: ["caveman"]
|
|
43
|
+
modelessUtilities: ["zoo-caveman"]
|
|
44
44
|
};
|
|
45
45
|
|
|
46
46
|
const ALLOWED_COMMAND_MODES = new Set(["system-architect", "code-tweaker", "custom-orchestrator"]);
|
package/package.json
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: "Explore unfamiliar code before /feature, /refactor, or /fix. Produces written map."
|
|
3
|
-
argument-hint: <feature or folder to map>
|
|
4
|
-
mode: system-architect
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
Explore unfamiliar code and produce a written map. Follow the skill exactly.
|
|
8
|
-
|
|
9
|
-
Skill: `.roo/skills/engineering/zoom-out/SKILL.md`
|
|
10
|
-
|
|
11
|
-
EXECUTION RULES:
|
|
12
|
-
1. READ `.zoo-flow/CONTEXT.md`. If it does not exist, output one line before step 2: "No CONTEXT.md found. Run /scaffold-context to fill, or continue without." Do not invent content.
|
|
13
|
-
2. OUTPUT MAP: Create markdown with sections: Domain language, Modules, Data flow, Seams/callers, ADRs, Open questions. Derive slug from the target area (e.g. "auth module" → `auth-module.md`). Write to `.scratch/explorations/<YYYY-MM-DD>/<slug>.md`.
|
|
14
|
-
3. WRITE POINTER: Write the exact file path to `.scratch/LAST-EXPLORATION.md` so next commands can find it.
|
|
15
|
-
4. NEXT STEPS: Suggest `/scaffold-context`, `/feature`, `/refactor`, or `/fix`. DO NOT auto-launch.
|
|
16
|
-
5. COMPLETION: Call `attempt_completion` with the exact file path, status, and recommended next command. Do NOT use `ask_followup_question` or write results as plain text.
|
|
17
|
-
|
|
18
|
-
$ARGUMENTS
|
|
1
|
+
---
|
|
2
|
+
description: "Explore unfamiliar code before /feature, /refactor, or /fix. Produces written map."
|
|
3
|
+
argument-hint: <feature or folder to map>
|
|
4
|
+
mode: system-architect
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
Explore unfamiliar code and produce a written map. Follow the skill exactly.
|
|
8
|
+
|
|
9
|
+
Skill: `.roo/skills/engineering/zoom-out/SKILL.md`
|
|
10
|
+
|
|
11
|
+
EXECUTION RULES:
|
|
12
|
+
1. READ `.zoo-flow/CONTEXT.md`. If it does not exist, output one line before step 2: "No CONTEXT.md found. Run /scaffold-context to fill, or continue without." Do not invent content.
|
|
13
|
+
2. OUTPUT MAP: Create markdown with sections: Domain language, Modules, Data flow, Seams/callers, ADRs, Open questions. Derive slug from the target area (e.g. "auth module" → `auth-module.md`). Write to `.scratch/explorations/<YYYY-MM-DD>/<slug>.md`.
|
|
14
|
+
3. WRITE POINTER: Write the exact file path to `.scratch/LAST-EXPLORATION.md` so next commands can find it.
|
|
15
|
+
4. NEXT STEPS: Suggest `/scaffold-context`, `/feature`, `/refactor`, or `/fix`. DO NOT auto-launch.
|
|
16
|
+
5. COMPLETION: Call `attempt_completion` with the exact file path, status, and recommended next command. Do NOT use `ask_followup_question` or write results as plain text.
|
|
17
|
+
|
|
18
|
+
$ARGUMENTS
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: "Bootstrap .zoo-flow/CONTEXT.md (and 0-2 starter ADRs) for an existing project by scanning code for domain terms and cross-cutting decisions. Shows proposed entries inline and asks for confirm before writing. Use when starting Zoo Flow on a project with no CONTEXT.md, or to expand a thin one."
|
|
3
|
-
argument-hint: <optional focus area, e.g. "auth", "billing", or empty for whole project>
|
|
4
|
-
mode: code-tweaker
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
Bootstrap .zoo-flow/CONTEXT.md for an existing project. Follow the skill exactly.
|
|
8
|
-
|
|
9
|
-
Skill: `.roo/skills/engineering/scaffold-context/SKILL.md`
|
|
10
|
-
|
|
11
|
-
EXECUTION RULES:
|
|
12
|
-
1. APPLY the slot discovery rule from `.roo/skills/engineering/grill-with-docs/CONTEXT-FORMAT.md` to find current CONTEXT.md, ADRs.
|
|
13
|
-
2. IF `.zoo-flow/CONTEXT.md` exists and is non-empty, ASK: skip / merge (default) / replace. Skip = do nothing. Merge = add only new terms, never overwrite. Replace = full rewrite from scan.
|
|
14
|
-
3. DO NOT auto-launch any follow-up commands.
|
|
15
|
-
|
|
16
|
-
$ARGUMENTS
|
|
1
|
+
---
|
|
2
|
+
description: "Bootstrap .zoo-flow/CONTEXT.md (and 0-2 starter ADRs) for an existing project by scanning code for domain terms and cross-cutting decisions. Shows proposed entries inline and asks for confirm before writing. Use when starting Zoo Flow on a project with no CONTEXT.md, or to expand a thin one."
|
|
3
|
+
argument-hint: <optional focus area, e.g. "auth", "billing", or empty for whole project>
|
|
4
|
+
mode: code-tweaker
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
Bootstrap .zoo-flow/CONTEXT.md for an existing project. Follow the skill exactly.
|
|
8
|
+
|
|
9
|
+
Skill: `.roo/skills/engineering/scaffold-context/SKILL.md`
|
|
10
|
+
|
|
11
|
+
EXECUTION RULES:
|
|
12
|
+
1. APPLY the slot discovery rule from `.roo/skills/engineering/grill-with-docs/CONTEXT-FORMAT.md` to find current CONTEXT.md, ADRs.
|
|
13
|
+
2. IF `.zoo-flow/CONTEXT.md` exists and is non-empty, ASK: skip / merge (default) / replace. Skip = do nothing. Merge = add only new terms, never overwrite. Replace = full rewrite from scan.
|
|
14
|
+
3. DO NOT auto-launch any follow-up commands.
|
|
15
|
+
|
|
16
|
+
$ARGUMENTS
|
package/templates/full/.roo/commands/{setup-matt-pocock-skills.md → zoo-setup-matt-pocock-skills.md}
RENAMED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: "Sets up an `## Agent skills` block in AGENTS.md/CLAUDE.md and `docs/agents/` so the engineering skills know this repo's issue tracker (GitHub or local markdown), triage label vocabulary, and domain doc layout. Run before first use of `to-issues`, `to-prd`, or `triage` — or if those skills appear to be missing issue tracker, triage label, or domain-doc configuration."
|
|
3
|
-
mode: code-tweaker
|
|
4
|
-
---
|
|
5
|
-
|
|
1
|
+
---
|
|
2
|
+
description: "Sets up an `## Agent skills` block in AGENTS.md/CLAUDE.md and `docs/agents/` so the engineering skills know this repo's issue tracker (GitHub or local markdown), triage label vocabulary, and domain doc layout. Run before first use of `to-issues`, `to-prd`, or `triage` — or if those skills appear to be missing issue tracker, triage label, or domain-doc configuration."
|
|
3
|
+
mode: code-tweaker
|
|
4
|
+
---
|
|
5
|
+
|
|
6
6
|
Skill: `.roo/skills/engineering/setup-matt-pocock-skills/SKILL.md`
|
|
7
|
-
|
|
8
|
-
$ARGUMENTS
|
|
7
|
+
|
|
8
|
+
$ARGUMENTS
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: "Update repo documentation so it matches the current code."
|
|
3
|
-
argument-hint: <doc or area to update>
|
|
4
|
-
mode: code-tweaker
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
Update repo documentation so it matches the current code. Surgical edits only — read existing docs first, verify claims against code, never rewrite wholesale unless the existing doc is unsalvageable. Follow the skill exactly.
|
|
8
|
-
|
|
9
|
-
Skill: `.roo/skills/engineering/update-docs/SKILL.md`
|
|
10
|
-
|
|
11
|
-
Find the target doc in `.zoo-flow/` or `docs/`. If it does not exist, ask once: "No <doc> found. Create a stub at .zoo-flow/<doc>? (yes / pick-existing / skip)".
|
|
12
|
-
|
|
13
|
-
Do NOT use this for:
|
|
14
|
-
|
|
15
|
-
- Domain glossary terms — use `/grill-with-docs`
|
|
16
|
-
- ADRs — use `/grill-with-docs` or `/refactor`
|
|
17
|
-
- Local commit journal entries — use `/commit-and-document`
|
|
18
|
-
- Read-only understanding — use `/explore`
|
|
19
|
-
|
|
20
|
-
If `$ARGUMENTS` is empty, ask once: "Which documentation file or area should I update?"
|
|
21
|
-
|
|
22
|
-
$ARGUMENTS
|
|
1
|
+
---
|
|
2
|
+
description: "Update repo documentation so it matches the current code."
|
|
3
|
+
argument-hint: <doc or area to update>
|
|
4
|
+
mode: code-tweaker
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
Update repo documentation so it matches the current code. Surgical edits only — read existing docs first, verify claims against code, never rewrite wholesale unless the existing doc is unsalvageable. Follow the skill exactly.
|
|
8
|
+
|
|
9
|
+
Skill: `.roo/skills/engineering/update-docs/SKILL.md`
|
|
10
|
+
|
|
11
|
+
Find the target doc in `.zoo-flow/` or `docs/`. If it does not exist, ask once: "No <doc> found. Create a stub at .zoo-flow/<doc>? (yes / pick-existing / skip)".
|
|
12
|
+
|
|
13
|
+
Do NOT use this for:
|
|
14
|
+
|
|
15
|
+
- Domain glossary terms — use `/grill-with-docs`
|
|
16
|
+
- ADRs — use `/grill-with-docs` or `/refactor`
|
|
17
|
+
- Local commit journal entries — use `/commit-and-document`
|
|
18
|
+
- Read-only understanding — use `/explore`
|
|
19
|
+
|
|
20
|
+
If `$ARGUMENTS` is empty, ask once: "Which documentation file or area should I update?"
|
|
21
|
+
|
|
22
|
+
$ARGUMENTS
|
|
@@ -44,25 +44,25 @@ Slash commands are internal routing labels unless the user explicitly typed one
|
|
|
44
44
|
|
|
45
45
|
## Routed commands
|
|
46
46
|
|
|
47
|
-
| Workflow | Command
|
|
48
|
-
| -------------------- |
|
|
49
|
-
| small implementation | `/tweak`
|
|
50
|
-
| test-first | `/tdd`
|
|
51
|
-
| documentation update | `/update-docs`
|
|
52
|
-
| commit and journal | `/commit-and-document` | code-tweaker
|
|
53
|
-
| prototype | `/prototype`
|
|
54
|
-
| context scaffolding | `/scaffold-context`
|
|
55
|
-
| diagnosis | `/fix`
|
|
56
|
-
| feature planning | `/feature`
|
|
57
|
-
| refactor planning | `/refactor`
|
|
58
|
-
| exploration | `/explore`
|
|
59
|
-
| issue triage | `/triage`
|
|
60
|
-
| review | `/review`
|
|
61
|
-
| verification | `/verify`
|
|
47
|
+
| Workflow | Command | Mode |
|
|
48
|
+
| -------------------- | ----------------------- | ---------------- |
|
|
49
|
+
| small implementation | `/zoo-tweak` | code-tweaker |
|
|
50
|
+
| test-first | `/zoo-tdd` | code-tweaker |
|
|
51
|
+
| documentation update | `/zoo-update-docs` | code-tweaker |
|
|
52
|
+
| commit and journal | `/zoo-commit-and-document` | code-tweaker |
|
|
53
|
+
| prototype | `/zoo-prototype` | code-tweaker |
|
|
54
|
+
| context scaffolding | `/zoo-scaffold-context` | code-tweaker |
|
|
55
|
+
| diagnosis | `/zoo-fix` | system-architect |
|
|
56
|
+
| feature planning | `/zoo-feature` | system-architect |
|
|
57
|
+
| refactor planning | `/zoo-refactor` | system-architect |
|
|
58
|
+
| exploration | `/zoo-explore` | system-architect |
|
|
59
|
+
| issue triage | `/zoo-triage` | system-architect |
|
|
60
|
+
| review | `/zoo-review` | system-architect |
|
|
61
|
+
| verification | `/zoo-verify` | code-tweaker |
|
|
62
62
|
|
|
63
63
|
## Routing decision guide
|
|
64
64
|
|
|
65
|
-
Read intent, not keywords. Top-down: 1. unknown code area or unclear next move →
|
|
65
|
+
Read intent, not keywords. Top-down: 1. unknown code area or unclear next move → `/zoo-explore`; 2. broken behavior with unknown cause → `/zoo-fix`; 3. new capability needing design, PRD, issue slicing, or phase gates → `/zoo-feature`; 4. working behavior but structure is the problem → `/zoo-refactor`; 5. small known low-risk change → `/zoo-tweak`; 6. clear behavior and interface, user wants tests first → `/zoo-tdd`; 7. throwaway design/state/UI uncertainty → `/zoo-prototype`; 8. docs drift from code → `/zoo-update-docs`; 9. finished work needs commit/journal → `/zoo-commit-and-document`; 10. issue creation, sorting, labels, or tracker workflow → `/zoo-triage`; 11. diff, branch, PR, standards, architecture, or pre-commit inspection → `/zoo-review`; 12. check if this passes, run tests for this change, verify the branch, or make sure nothing broke → `/zoo-verify`.
|
|
66
66
|
|
|
67
67
|
## Routing weight
|
|
68
68
|
|
|
@@ -78,7 +78,7 @@ Diagnosis vs small implementation: unknown cause → diagnosis; known cause →
|
|
|
78
78
|
|
|
79
79
|
## Confidence and presentation
|
|
80
80
|
|
|
81
|
-
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`.
|
|
81
|
+
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. `/zoo-tweak`; 2. `/zoo-explore`.
|
|
82
82
|
|
|
83
83
|
## Approval gate
|
|
84
84
|
|
|
@@ -94,8 +94,8 @@ For non-trivial work, suggest the next command chain only after the current comm
|
|
|
94
94
|
|
|
95
95
|
Recommended chains:
|
|
96
96
|
|
|
97
|
-
-
|
|
98
|
-
-
|
|
99
|
-
- refactor
|
|
100
|
-
- feature
|
|
101
|
-
-
|
|
97
|
+
- `/zoo-tdd` → `/zoo-verify` → `/zoo-review` → `/zoo-commit-and-document`
|
|
98
|
+
- `/zoo-fix` → `/zoo-verify` → `/zoo-review` → `/zoo-commit-and-document`
|
|
99
|
+
- `/zoo-refactor` → `/zoo-verify` → `/zoo-review` → `/zoo-commit-and-document`
|
|
100
|
+
- `/zoo-feature` → `/zoo-verify` → `/zoo-review` → `/zoo-commit-and-document`
|
|
101
|
+
- `/zoo-tweak` → `/zoo-verify` or `/zoo-review` when risk is R3+
|
|
@@ -1,163 +1,163 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: commit-and-document
|
|
3
|
-
description: Stage selected files, write a Conventional Commit, optionally link a GitHub issue, and append a dated journal entry under docs/journal/. Use when the user wants to commit work and capture a local record of what changed.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Commit and Document
|
|
7
|
-
|
|
8
|
-
Deterministic flow. Execute steps in order; do not deviate.
|
|
9
|
-
|
|
10
|
-
## 1. Inspect git changes
|
|
11
|
-
|
|
12
|
-
Run and read:
|
|
13
|
-
|
|
14
|
-
- `git status --short`
|
|
15
|
-
- `git diff --stat`
|
|
16
|
-
- `git diff --cached --stat`
|
|
17
|
-
|
|
18
|
-
Summarise: which files, what changed.
|
|
19
|
-
|
|
20
|
-
If the working tree is clean, stop and report. Skip the rest.
|
|
21
|
-
|
|
22
|
-
## 2. Propose a Conventional Commit
|
|
23
|
-
|
|
24
|
-
One-line message:
|
|
25
|
-
|
|
26
|
-
```
|
|
27
|
-
<type>(<scope>): <short, action-focused summary>
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
- **type**: `feat`, `fix`, `refactor`, `docs`, `chore`, `test`, `style`, `perf`
|
|
31
|
-
- **scope**: area touched. Omit parens if unclear.
|
|
32
|
-
- **summary**: imperative, present tense, under 70 chars, starts with a verb.
|
|
33
|
-
|
|
34
|
-
Show: proposed message, files to stage, files excluded (tests, docs, secrets). Ask: "Commit with this message? (yes / edit / cancel)". On `edit`, accept the user's revised message verbatim and re-run detection (step 2.5) on it before proceeding. On `cancel`, stop and report.
|
|
35
|
-
|
|
36
|
-
## 2.5 Detect or ask for an issue reference
|
|
37
|
-
|
|
38
|
-
Silent pre-checks first:
|
|
39
|
-
|
|
40
|
-
1. `git remote -v` → bail if no `github.com` remote.
|
|
41
|
-
2. `command -v gh` → bail if `gh` is not installed.
|
|
42
|
-
|
|
43
|
-
Detection on the proposed message:
|
|
44
|
-
|
|
45
|
-
- Closing keywords: `Closes/Close/Closed/Fixes/Fix/Fixed/Resolves/Resolve/Resolved #N` (case-insensitive)
|
|
46
|
-
- Bare `#N` anywhere
|
|
47
|
-
|
|
48
|
-
Branches:
|
|
49
|
-
|
|
50
|
-
- **A — closing keyword present**: ask "After commit, comment on issue #N and close it? (yes / no)". `yes` → `{action: close, issue: N}`.
|
|
51
|
-
- **B — bare `#N`**: ask "After commit, post a progress comment on issue #N? (yes / no / close)". Map to `comment` / `close` / none.
|
|
52
|
-
- **C — no reference**: ask once "Is this commit related to a GitHub issue? (issue number / no / skip)". On a number, ask "Comment only or close after commit? (comment / close)". Anything non-numeric → none.
|
|
53
|
-
|
|
54
|
-
Carry the result as `issue_action` (default `none`).
|
|
55
|
-
|
|
56
|
-
## 3. Stage and commit
|
|
57
|
-
|
|
58
|
-
Stage explicit files with `git add <file>...` (never `git add .`). Exclude:
|
|
59
|
-
|
|
60
|
-
- anything under `test/`, `tests/`, `__tests__/`, `spec/`, `specs/`
|
|
61
|
-
- files matching `*.test.*`, `*.spec.*`, `test_*`, `*_test.*`
|
|
62
|
-
- anything that looks like secrets (`.env`, credentials, tokens)
|
|
63
|
-
|
|
64
|
-
Flag exclusions to the user.
|
|
65
|
-
|
|
66
|
-
Commit with the approved message. Capture the short hash via `git rev-parse --short HEAD`.
|
|
67
|
-
|
|
68
|
-
## 3.5 Act on the issue reference
|
|
69
|
-
|
|
70
|
-
If `issue_action` is `none`, skip.
|
|
71
|
-
|
|
72
|
-
Otherwise build:
|
|
73
|
-
|
|
74
|
-
```
|
|
75
|
-
> *This was generated by AI during commit.*
|
|
76
|
-
|
|
77
|
-
Linked from commit `<short-hash>`: <commit subject>
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
Run `gh issue comment <N> --body "<body>"`. If `action == close`, then run `gh issue close <N>` (never `--comment`; comment first).
|
|
81
|
-
|
|
82
|
-
If either fails, report the error and continue. Do not abort. Do not close an issue you could not comment on.
|
|
83
|
-
|
|
84
|
-
## 4. Ensure docs/ is gitignored
|
|
85
|
-
|
|
86
|
-
Read `.gitignore`. If no line matches `docs/`, append:
|
|
87
|
-
|
|
88
|
-
```
|
|
89
|
-
# Local documentation — never committed
|
|
90
|
-
docs/
|
|
91
|
-
```
|
|
92
|
-
|
|
93
|
-
Do not commit the gitignore change. If the user accidentally staged anything under `docs/`, unstage it (`git restore --staged docs/<path>`) and warn.
|
|
94
|
-
|
|
95
|
-
## 5. Inspect existing docs/journal/
|
|
96
|
-
|
|
97
|
-
List `docs/journal/` if present. If it uses a different date/file convention than the default below, follow its existing convention. Create the directory if missing.
|
|
98
|
-
|
|
99
|
-
## 6. Write a dated entry
|
|
100
|
-
|
|
101
|
-
Date via `date +%Y-%m-%d`. Create `docs/journal/<YYYY-MM-DD>/` if missing. Write `<HH-MM>-<short-slug>.md` (kebab-case slug, 3–6 words from the summary). Template:
|
|
102
|
-
|
|
103
|
-
```md
|
|
104
|
-
# <Commit summary>
|
|
105
|
-
|
|
106
|
-
**Commit:** <full hash>
|
|
107
|
-
**Short hash:** <short hash>
|
|
108
|
-
**Date:** <YYYY-MM-DD HH:MM local time>
|
|
109
|
-
|
|
110
|
-
## What changed
|
|
111
|
-
|
|
112
|
-
<2–4 sentences. Plain English, not a file list.>
|
|
113
|
-
|
|
114
|
-
## Why
|
|
115
|
-
|
|
116
|
-
<1–3 sentences on motivation, pulled from conversation context.>
|
|
117
|
-
|
|
118
|
-
## Notes for future me
|
|
119
|
-
|
|
120
|
-
<Gotchas/follow-ups, one paragraph max. Skip if nothing worth saying.>
|
|
121
|
-
```
|
|
122
|
-
|
|
123
|
-
## 7. Surface stale docs (if any)
|
|
124
|
-
|
|
125
|
-
Read `git diff --cached --stat`. If any staged path overlaps with a path
|
|
126
|
-
referenced in `.zoo-flow/CONTEXT.md`, output exactly one line
|
|
127
|
-
before "Confirm":
|
|
128
|
-
|
|
129
|
-
"Public surface may have drifted. Run /update-docs? (yes / skip)"
|
|
130
|
-
|
|
131
|
-
On `yes` → suggest `/update-docs <area>`. On `skip` → continue.
|
|
132
|
-
|
|
133
|
-
## 8. Confirm
|
|
134
|
-
|
|
135
|
-
Report: commit hash + message, journal entry path, whether `.gitignore` was updated, and any issue actions taken. Close with: "All of `docs/` is gitignored, so this entry stays local."
|
|
136
|
-
|
|
137
|
-
## Complete
|
|
138
|
-
|
|
139
|
-
Call `attempt_completion` with:
|
|
140
|
-
- commit hash (short)
|
|
141
|
-
- journal entry path
|
|
142
|
-
- status (complete / blocked with reason)
|
|
143
|
-
- recommended next command
|
|
144
|
-
|
|
145
|
-
Do NOT use `ask_followup_question` or write results as plain text without calling the tool.
|
|
146
|
-
|
|
147
|
-
## Context economy
|
|
148
|
-
|
|
149
|
-
Before broad reads, locate relevant files/symbols with `list_files`, `search_files`, or `codebase_search`.
|
|
150
|
-
|
|
151
|
-
Prefer targeted `read_file` ranges or indentation/block reads once the relevant area is known.
|
|
152
|
-
|
|
153
|
-
Read full files only when structure, ordering, or surrounding context is required for correctness.
|
|
154
|
-
|
|
155
|
-
Do not re-read unchanged files; use prior findings unless the file changed.
|
|
156
|
-
|
|
157
|
-
Use `git status --short`, `git diff --stat`, and targeted `git diff -- <file>` rather than dumping the full repo diff at once.
|
|
158
|
-
|
|
159
|
-
## Safety
|
|
160
|
-
|
|
161
|
-
- Never `git push`, `--amend`, `--force`, or `reset --hard`.
|
|
162
|
-
- Flag suspected secrets; do not stage them.
|
|
163
|
-
- If `git status` is clean, abort early.
|
|
1
|
+
---
|
|
2
|
+
name: commit-and-document
|
|
3
|
+
description: Stage selected files, write a Conventional Commit, optionally link a GitHub issue, and append a dated journal entry under docs/journal/. Use when the user wants to commit work and capture a local record of what changed.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Commit and Document
|
|
7
|
+
|
|
8
|
+
Deterministic flow. Execute steps in order; do not deviate.
|
|
9
|
+
|
|
10
|
+
## 1. Inspect git changes
|
|
11
|
+
|
|
12
|
+
Run and read:
|
|
13
|
+
|
|
14
|
+
- `git status --short`
|
|
15
|
+
- `git diff --stat`
|
|
16
|
+
- `git diff --cached --stat`
|
|
17
|
+
|
|
18
|
+
Summarise: which files, what changed.
|
|
19
|
+
|
|
20
|
+
If the working tree is clean, stop and report. Skip the rest.
|
|
21
|
+
|
|
22
|
+
## 2. Propose a Conventional Commit
|
|
23
|
+
|
|
24
|
+
One-line message:
|
|
25
|
+
|
|
26
|
+
```
|
|
27
|
+
<type>(<scope>): <short, action-focused summary>
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
- **type**: `feat`, `fix`, `refactor`, `docs`, `chore`, `test`, `style`, `perf`
|
|
31
|
+
- **scope**: area touched. Omit parens if unclear.
|
|
32
|
+
- **summary**: imperative, present tense, under 70 chars, starts with a verb.
|
|
33
|
+
|
|
34
|
+
Show: proposed message, files to stage, files excluded (tests, docs, secrets). Ask: "Commit with this message? (yes / edit / cancel)". On `edit`, accept the user's revised message verbatim and re-run detection (step 2.5) on it before proceeding. On `cancel`, stop and report.
|
|
35
|
+
|
|
36
|
+
## 2.5 Detect or ask for an issue reference
|
|
37
|
+
|
|
38
|
+
Silent pre-checks first:
|
|
39
|
+
|
|
40
|
+
1. `git remote -v` → bail if no `github.com` remote.
|
|
41
|
+
2. `command -v gh` → bail if `gh` is not installed.
|
|
42
|
+
|
|
43
|
+
Detection on the proposed message:
|
|
44
|
+
|
|
45
|
+
- Closing keywords: `Closes/Close/Closed/Fixes/Fix/Fixed/Resolves/Resolve/Resolved #N` (case-insensitive)
|
|
46
|
+
- Bare `#N` anywhere
|
|
47
|
+
|
|
48
|
+
Branches:
|
|
49
|
+
|
|
50
|
+
- **A — closing keyword present**: ask "After commit, comment on issue #N and close it? (yes / no)". `yes` → `{action: close, issue: N}`.
|
|
51
|
+
- **B — bare `#N`**: ask "After commit, post a progress comment on issue #N? (yes / no / close)". Map to `comment` / `close` / none.
|
|
52
|
+
- **C — no reference**: ask once "Is this commit related to a GitHub issue? (issue number / no / skip)". On a number, ask "Comment only or close after commit? (comment / close)". Anything non-numeric → none.
|
|
53
|
+
|
|
54
|
+
Carry the result as `issue_action` (default `none`).
|
|
55
|
+
|
|
56
|
+
## 3. Stage and commit
|
|
57
|
+
|
|
58
|
+
Stage explicit files with `git add <file>...` (never `git add .`). Exclude:
|
|
59
|
+
|
|
60
|
+
- anything under `test/`, `tests/`, `__tests__/`, `spec/`, `specs/`
|
|
61
|
+
- files matching `*.test.*`, `*.spec.*`, `test_*`, `*_test.*`
|
|
62
|
+
- anything that looks like secrets (`.env`, credentials, tokens)
|
|
63
|
+
|
|
64
|
+
Flag exclusions to the user.
|
|
65
|
+
|
|
66
|
+
Commit with the approved message. Capture the short hash via `git rev-parse --short HEAD`.
|
|
67
|
+
|
|
68
|
+
## 3.5 Act on the issue reference
|
|
69
|
+
|
|
70
|
+
If `issue_action` is `none`, skip.
|
|
71
|
+
|
|
72
|
+
Otherwise build:
|
|
73
|
+
|
|
74
|
+
```
|
|
75
|
+
> *This was generated by AI during commit.*
|
|
76
|
+
|
|
77
|
+
Linked from commit `<short-hash>`: <commit subject>
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
Run `gh issue comment <N> --body "<body>"`. If `action == close`, then run `gh issue close <N>` (never `--comment`; comment first).
|
|
81
|
+
|
|
82
|
+
If either fails, report the error and continue. Do not abort. Do not close an issue you could not comment on.
|
|
83
|
+
|
|
84
|
+
## 4. Ensure docs/ is gitignored
|
|
85
|
+
|
|
86
|
+
Read `.gitignore`. If no line matches `docs/`, append:
|
|
87
|
+
|
|
88
|
+
```
|
|
89
|
+
# Local documentation — never committed
|
|
90
|
+
docs/
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
Do not commit the gitignore change. If the user accidentally staged anything under `docs/`, unstage it (`git restore --staged docs/<path>`) and warn.
|
|
94
|
+
|
|
95
|
+
## 5. Inspect existing docs/journal/
|
|
96
|
+
|
|
97
|
+
List `docs/journal/` if present. If it uses a different date/file convention than the default below, follow its existing convention. Create the directory if missing.
|
|
98
|
+
|
|
99
|
+
## 6. Write a dated entry
|
|
100
|
+
|
|
101
|
+
Date via `date +%Y-%m-%d`. Create `docs/journal/<YYYY-MM-DD>/` if missing. Write `<HH-MM>-<short-slug>.md` (kebab-case slug, 3–6 words from the summary). Template:
|
|
102
|
+
|
|
103
|
+
```md
|
|
104
|
+
# <Commit summary>
|
|
105
|
+
|
|
106
|
+
**Commit:** <full hash>
|
|
107
|
+
**Short hash:** <short hash>
|
|
108
|
+
**Date:** <YYYY-MM-DD HH:MM local time>
|
|
109
|
+
|
|
110
|
+
## What changed
|
|
111
|
+
|
|
112
|
+
<2–4 sentences. Plain English, not a file list.>
|
|
113
|
+
|
|
114
|
+
## Why
|
|
115
|
+
|
|
116
|
+
<1–3 sentences on motivation, pulled from conversation context.>
|
|
117
|
+
|
|
118
|
+
## Notes for future me
|
|
119
|
+
|
|
120
|
+
<Gotchas/follow-ups, one paragraph max. Skip if nothing worth saying.>
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
## 7. Surface stale docs (if any)
|
|
124
|
+
|
|
125
|
+
Read `git diff --cached --stat`. If any staged path overlaps with a path
|
|
126
|
+
referenced in `.zoo-flow/CONTEXT.md`, output exactly one line
|
|
127
|
+
before "Confirm":
|
|
128
|
+
|
|
129
|
+
"Public surface may have drifted. Run /zoo-update-docs? (yes / skip)"
|
|
130
|
+
|
|
131
|
+
On `yes` → suggest `/zoo-update-docs <area>`. On `skip` → continue.
|
|
132
|
+
|
|
133
|
+
## 8. Confirm
|
|
134
|
+
|
|
135
|
+
Report: commit hash + message, journal entry path, whether `.gitignore` was updated, and any issue actions taken. Close with: "All of `docs/` is gitignored, so this entry stays local."
|
|
136
|
+
|
|
137
|
+
## Complete
|
|
138
|
+
|
|
139
|
+
Call `attempt_completion` with:
|
|
140
|
+
- commit hash (short)
|
|
141
|
+
- journal entry path
|
|
142
|
+
- status (complete / blocked with reason)
|
|
143
|
+
- recommended next command
|
|
144
|
+
|
|
145
|
+
Do NOT use `ask_followup_question` or write results as plain text without calling the tool.
|
|
146
|
+
|
|
147
|
+
## Context economy
|
|
148
|
+
|
|
149
|
+
Before broad reads, locate relevant files/symbols with `list_files`, `search_files`, or `codebase_search`.
|
|
150
|
+
|
|
151
|
+
Prefer targeted `read_file` ranges or indentation/block reads once the relevant area is known.
|
|
152
|
+
|
|
153
|
+
Read full files only when structure, ordering, or surrounding context is required for correctness.
|
|
154
|
+
|
|
155
|
+
Do not re-read unchanged files; use prior findings unless the file changed.
|
|
156
|
+
|
|
157
|
+
Use `git status --short`, `git diff --stat`, and targeted `git diff -- <file>` rather than dumping the full repo diff at once.
|
|
158
|
+
|
|
159
|
+
## Safety
|
|
160
|
+
|
|
161
|
+
- Never `git push`, `--amend`, `--force`, or `reset --hard`.
|
|
162
|
+
- Flag suspected secrets; do not stage them.
|
|
163
|
+
- If `git status` is clean, abort early.
|
|
@@ -37,7 +37,7 @@ Rules:
|
|
|
37
37
|
|
|
38
38
|
## 3. Hypotheses (with working memory)
|
|
39
39
|
|
|
40
|
-
Initialize session: `.scratch/diagnoses/<YYYY-MM-DD>/diagnose-<slug>/`
|
|
40
|
+
Initialize session: `.scratch/diagnoses/<YYYY-MM-DD>/zoo-diagnose-<slug>/`
|
|
41
41
|
|
|
42
42
|
Write `<session-dir>/session.md` with symptom, repro steps, error signatures.
|
|
43
43
|
|
|
@@ -97,7 +97,7 @@ MUST finish:
|
|
|
97
97
|
- [ ] `[DEBUG-...]` logs removed from source.
|
|
98
98
|
- [ ] Throwaway harnesses deleted/moved.
|
|
99
99
|
- [ ] Winning hypothesis stated in commit/PR.
|
|
100
|
-
- [ ] Seam/locality blocker → recommend `/improve-codebase-architecture`.
|
|
100
|
+
- [ ] Seam/locality blocker → recommend `/zoo-improve-codebase-architecture`.
|
|
101
101
|
|
|
102
102
|
Tweaker MUST `switch_mode` back to `system-architect` for Phase 7.
|
|
103
103
|
|
|
@@ -133,4 +133,4 @@ Call `attempt_completion` with:
|
|
|
133
133
|
- root cause summary
|
|
134
134
|
- fix applied
|
|
135
135
|
- status
|
|
136
|
-
- recommended next command (typically `/verify` then `/review` then `/commit-and-document`)
|
|
136
|
+
- recommended next command (typically `/zoo-verify` then `/zoo-review` then `/zoo-commit-and-document`)
|
|
@@ -16,7 +16,7 @@ description: Grilling session that challenges your plan against the existing dom
|
|
|
16
16
|
|
|
17
17
|
## Docs
|
|
18
18
|
|
|
19
|
-
See `.roo/skills/engineering/grill-with-docs/CONTEXT-FORMAT.md` for layout and detection. Create docs lazily only when recording needed.
|
|
19
|
+
See `.roo/skills/engineering/zoo-grill-with-docs/CONTEXT-FORMAT.md` for layout and detection. Create docs lazily only when recording needed.
|
|
20
20
|
|
|
21
21
|
## Context economy
|
|
22
22
|
|
|
@@ -60,6 +60,6 @@ Call `attempt_completion` with:
|
|
|
60
60
|
- candidates found (count and titles)
|
|
61
61
|
- user selection (which candidate was chosen, if any)
|
|
62
62
|
- status (complete / blocked with reason)
|
|
63
|
-
- recommended next command (`/refactor` to implement the chosen candidate, or `/feature` if it requires PRD + issue slicing)
|
|
63
|
+
- recommended next command (`/zoo-refactor` to implement the chosen candidate, or `/zoo-feature` if it requires PRD + issue slicing)
|
|
64
64
|
|
|
65
65
|
Do NOT use `ask_followup_question` or write results as plain text without calling the tool.
|