@fernado03/zoo-flow 0.1.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/LICENSE +21 -0
- package/README.md +326 -0
- package/bin/zoo-flow.js +358 -0
- package/package.json +44 -0
- package/templates/full/.roo/commands/caveman.md +7 -0
- package/templates/full/.roo/commands/commit-and-document.md +202 -0
- package/templates/full/.roo/commands/diagnose.md +7 -0
- package/templates/full/.roo/commands/explore.md +13 -0
- package/templates/full/.roo/commands/feature.md +24 -0
- package/templates/full/.roo/commands/fix.md +19 -0
- package/templates/full/.roo/commands/grill-me.md +7 -0
- package/templates/full/.roo/commands/grill-with-docs.md +7 -0
- package/templates/full/.roo/commands/handoff.md +8 -0
- package/templates/full/.roo/commands/improve-codebase-architecture.md +7 -0
- package/templates/full/.roo/commands/prototype.md +9 -0
- package/templates/full/.roo/commands/refactor.md +17 -0
- package/templates/full/.roo/commands/setup-matt-pocock-skills.md +7 -0
- package/templates/full/.roo/commands/tdd.md +9 -0
- package/templates/full/.roo/commands/to-issues.md +7 -0
- package/templates/full/.roo/commands/to-prd.md +7 -0
- package/templates/full/.roo/commands/triage.md +7 -0
- package/templates/full/.roo/commands/tweak.md +9 -0
- package/templates/full/.roo/commands/update-docs.md +130 -0
- package/templates/full/.roo/commands/write-a-skill.md +7 -0
- package/templates/full/.roo/commands/zoom-out.md +7 -0
- package/templates/full/.roo/rules/00-paths.md +17 -0
- package/templates/full/.roo/rules/01-command-protocol.md +25 -0
- package/templates/full/.roo/rules/03-manual-reply-protocol.md +13 -0
- package/templates/full/.roo/rules-code-tweaker/00-scope.md +7 -0
- package/templates/full/.roo/rules-code-tweaker/01-completion.md +14 -0
- package/templates/full/.roo/rules-custom-orchestrator/00-routing.md +14 -0
- package/templates/full/.roo/rules-custom-orchestrator/01-delegation-message.md +12 -0
- package/templates/full/.roo/rules-system-architect/00-scope.md +9 -0
- package/templates/full/.roo/rules-system-architect/01-feature-prototype.md +10 -0
- package/templates/full/.roo/rules-system-architect/02-completion.md +11 -0
- package/templates/full/.roo/skills/docs/adr/0001-explicit-setup-pointer-only-for-hard-dependencies.md +18 -0
- package/templates/full/.roo/skills/engineering/README.md +12 -0
- package/templates/full/.roo/skills/engineering/diagnose/SKILL.md +73 -0
- package/templates/full/.roo/skills/engineering/diagnose/scripts/hitl-loop.template.sh +41 -0
- package/templates/full/.roo/skills/engineering/grill-with-docs/ADR-FORMAT.md +33 -0
- package/templates/full/.roo/skills/engineering/grill-with-docs/CONTEXT-FORMAT.md +45 -0
- package/templates/full/.roo/skills/engineering/grill-with-docs/SKILL.md +32 -0
- package/templates/full/.roo/skills/engineering/improve-codebase-architecture/DEEPENING.md +24 -0
- package/templates/full/.roo/skills/engineering/improve-codebase-architecture/HTML-REPORT.md +88 -0
- package/templates/full/.roo/skills/engineering/improve-codebase-architecture/INTERFACE-DESIGN.md +45 -0
- package/templates/full/.roo/skills/engineering/improve-codebase-architecture/LANGUAGE.md +34 -0
- package/templates/full/.roo/skills/engineering/improve-codebase-architecture/SKILL.md +43 -0
- package/templates/full/.roo/skills/engineering/prototype/LOGIC.md +28 -0
- package/templates/full/.roo/skills/engineering/prototype/SKILL.md +27 -0
- package/templates/full/.roo/skills/engineering/prototype/UI.md +53 -0
- package/templates/full/.roo/skills/engineering/setup-matt-pocock-skills/SKILL.md +77 -0
- package/templates/full/.roo/skills/engineering/setup-matt-pocock-skills/domain.md +36 -0
- package/templates/full/.roo/skills/engineering/setup-matt-pocock-skills/issue-tracker-github.md +21 -0
- package/templates/full/.roo/skills/engineering/setup-matt-pocock-skills/issue-tracker-gitlab.md +23 -0
- package/templates/full/.roo/skills/engineering/setup-matt-pocock-skills/issue-tracker-local.md +20 -0
- package/templates/full/.roo/skills/engineering/setup-matt-pocock-skills/triage-labels.md +11 -0
- package/templates/full/.roo/skills/engineering/tdd/SKILL.md +52 -0
- package/templates/full/.roo/skills/engineering/tdd/deep-modules.md +9 -0
- package/templates/full/.roo/skills/engineering/tdd/interface-design.md +6 -0
- package/templates/full/.roo/skills/engineering/tdd/mocking.md +17 -0
- package/templates/full/.roo/skills/engineering/tdd/refactoring.md +9 -0
- package/templates/full/.roo/skills/engineering/tdd/tests.md +12 -0
- package/templates/full/.roo/skills/engineering/to-issues/SKILL.md +45 -0
- package/templates/full/.roo/skills/engineering/to-prd/SKILL.md +58 -0
- package/templates/full/.roo/skills/engineering/triage/AGENT-BRIEF.md +43 -0
- package/templates/full/.roo/skills/engineering/triage/OUT-OF-SCOPE.md +37 -0
- package/templates/full/.roo/skills/engineering/triage/SKILL.md +79 -0
- package/templates/full/.roo/skills/engineering/tweak/SKILL.md +17 -0
- package/templates/full/.roo/skills/engineering/zoom-out/SKILL.md +7 -0
- package/templates/full/.roo/skills/in-progress/README.md +8 -0
- package/templates/full/.roo/skills/in-progress/review/SKILL.md +39 -0
- package/templates/full/.roo/skills/in-progress/writing-beats/SKILL.md +32 -0
- package/templates/full/.roo/skills/in-progress/writing-fragments/SKILL.md +45 -0
- package/templates/full/.roo/skills/in-progress/writing-shape/SKILL.md +50 -0
- package/templates/full/.roo/skills/misc/README.md +6 -0
- package/templates/full/.roo/skills/misc/git-guardrails-claude-code/SKILL.md +64 -0
- package/templates/full/.roo/skills/misc/git-guardrails-claude-code/scripts/block-dangerous-git.sh +25 -0
- package/templates/full/.roo/skills/misc/migrate-to-shoehorn/SKILL.md +37 -0
- package/templates/full/.roo/skills/misc/scaffold-exercises/SKILL.md +61 -0
- package/templates/full/.roo/skills/misc/setup-pre-commit/SKILL.md +62 -0
- package/templates/full/.roo/skills/personal/README.md +6 -0
- package/templates/full/.roo/skills/personal/edit-article/SKILL.md +13 -0
- package/templates/full/.roo/skills/personal/obsidian-vault/SKILL.md +39 -0
- package/templates/full/.roo/skills/productivity/README.md +6 -0
- package/templates/full/.roo/skills/productivity/caveman/SKILL.md +28 -0
- package/templates/full/.roo/skills/productivity/grill-me/SKILL.md +13 -0
- package/templates/full/.roo/skills/productivity/handoff/SKILL.md +14 -0
- package/templates/full/.roo/skills/productivity/write-a-skill/SKILL.md +52 -0
- package/templates/full/.roomodes +47 -0
package/package.json
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@fernado03/zoo-flow",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Smoke-tested workflow control plane for Zoo Code.",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"bin": {
|
|
7
|
+
"zoo-flow": "bin/zoo-flow.js"
|
|
8
|
+
},
|
|
9
|
+
"files": [
|
|
10
|
+
"bin",
|
|
11
|
+
"templates",
|
|
12
|
+
"README.md",
|
|
13
|
+
"LICENSE"
|
|
14
|
+
],
|
|
15
|
+
"license": "MIT",
|
|
16
|
+
"repository": {
|
|
17
|
+
"type": "git",
|
|
18
|
+
"url": "git+https://github.com/Fernado03/zoo-flow.git"
|
|
19
|
+
},
|
|
20
|
+
"bugs": {
|
|
21
|
+
"url": "https://github.com/Fernado03/zoo-flow/issues"
|
|
22
|
+
},
|
|
23
|
+
"homepage": "https://github.com/Fernado03/zoo-flow#readme",
|
|
24
|
+
"keywords": [
|
|
25
|
+
"zoo-code",
|
|
26
|
+
"zoo",
|
|
27
|
+
"ai-agents",
|
|
28
|
+
"coding-agents",
|
|
29
|
+
"workflow",
|
|
30
|
+
"slash-commands",
|
|
31
|
+
"custom-modes",
|
|
32
|
+
"agent-workflows"
|
|
33
|
+
],
|
|
34
|
+
"scripts": {
|
|
35
|
+
"check": "node bin/zoo-flow.js doctor --template-only",
|
|
36
|
+
"pack:check": "npm pack --dry-run"
|
|
37
|
+
},
|
|
38
|
+
"engines": {
|
|
39
|
+
"node": ">=18"
|
|
40
|
+
},
|
|
41
|
+
"publishConfig": {
|
|
42
|
+
"access": "public"
|
|
43
|
+
}
|
|
44
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Ultra-compressed communication mode. Cuts token usage ~75% by dropping filler, articles, and pleasantries while keeping full technical accuracy. Use when user says \"caveman mode\", \"talk like caveman\", \"use caveman\", \"less tokens\", \"be brief\", or invokes /caveman."
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
Run skill: `.roo/skills/productivity/caveman/SKILL.md`
|
|
6
|
+
|
|
7
|
+
$ARGUMENTS
|
|
@@ -0,0 +1,202 @@
|
|
|
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
|
+
You are running the **commit + document** procedure. This is a deterministic flow, not a skill — execute the steps in order. Do not deviate.
|
|
8
|
+
|
|
9
|
+
## Step 1 — Inspect git changes
|
|
10
|
+
|
|
11
|
+
Run these three commands and read the output:
|
|
12
|
+
|
|
13
|
+
- `git status --short`
|
|
14
|
+
- `git diff --stat`
|
|
15
|
+
- `git diff --cached --stat` (in case anything is already staged)
|
|
16
|
+
|
|
17
|
+
Summarise to the user what's changed: which files, roughly what the changes do.
|
|
18
|
+
|
|
19
|
+
## Step 2 — Suggest a Conventional Commit message
|
|
20
|
+
|
|
21
|
+
Propose ONE single-line commit message in this exact format:
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
<type>(<scope>): <short, action-focused summary>
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
- **type** — one of: `feat`, `fix`, `refactor`, `docs`, `chore`, `test`, `style`, `perf`
|
|
28
|
+
- **scope** — the area of the repo touched (e.g. `chat`, `documents`, `ui`, `core`, or a specific module name). Omit parens if scope is unclear.
|
|
29
|
+
- **summary** — imperative mood, present tense, under 70 chars total. Start with a verb.
|
|
30
|
+
|
|
31
|
+
Show the user the proposed message, the list of files that will be staged, and a separate list of excluded files such as test files, test folders, docs, or secrets. Ask: "Commit with this message? (yes / edit / cancel)"
|
|
32
|
+
|
|
33
|
+
If they say `edit`, take their revised message. If `cancel`, stop the whole procedure and report.
|
|
34
|
+
|
|
35
|
+
## Step 2.5 — Detect or ask for an issue reference
|
|
36
|
+
|
|
37
|
+
This step links the commit to a GitHub issue if one applies. It is opt-in — if no issue applies, skip cleanly.
|
|
38
|
+
|
|
39
|
+
### Pre-checks (silent, fast bail-out)
|
|
40
|
+
|
|
41
|
+
Before asking the user anything, run these silent checks:
|
|
42
|
+
|
|
43
|
+
1. Run `git remote -v` and look for a `github.com` remote.
|
|
44
|
+
2. If no GitHub remote exists, skip this entire step. Do NOT prompt.
|
|
45
|
+
3. If `gh` CLI is not installed (check with `command -v gh`), skip this entire step. Do NOT prompt.
|
|
46
|
+
|
|
47
|
+
### Detection
|
|
48
|
+
|
|
49
|
+
Scan the proposed commit message from Step 2 for issue references:
|
|
50
|
+
|
|
51
|
+
- Closing keywords: `Closes #N`, `Close #N`, `Closed #N`, `Fixes #N`, `Fix #N`, `Fixed #N`, `Resolves #N`, `Resolve #N`, `Resolved #N` (case-insensitive)
|
|
52
|
+
- Bare references: `#N` anywhere in the message
|
|
53
|
+
|
|
54
|
+
### Branch A — Commit message already has a closing keyword
|
|
55
|
+
|
|
56
|
+
Show the user the detected reference and ask:
|
|
57
|
+
|
|
58
|
+
> Detected `Closes #42` in the commit message. After commit, comment on issue #42 and close it? (yes / no)
|
|
59
|
+
|
|
60
|
+
- yes → proceed; remember `{action: close, issue: 42}` for Step 3.5
|
|
61
|
+
- no → proceed without issue actions
|
|
62
|
+
|
|
63
|
+
### Branch B — Commit message has bare `#N` (not a closing keyword)
|
|
64
|
+
|
|
65
|
+
> Detected `#42` in the commit message. After commit, post a progress comment on issue #42? (yes / no / close)
|
|
66
|
+
|
|
67
|
+
- yes → remember `{action: comment, issue: 42}`
|
|
68
|
+
- close → remember `{action: close, issue: 42}`
|
|
69
|
+
- no → no issue actions
|
|
70
|
+
|
|
71
|
+
### Branch C — No reference detected
|
|
72
|
+
|
|
73
|
+
Ask once:
|
|
74
|
+
|
|
75
|
+
> Is this commit related to a GitHub issue? (issue number / no / skip)
|
|
76
|
+
|
|
77
|
+
- A number like `42` → ask one follow-up: "Comment only or close after commit? (comment / close)" — remember the chosen action
|
|
78
|
+
- `no` or `skip` or empty input → no issue actions; do NOT ask again
|
|
79
|
+
- Anything that doesn't parse as a number → treat as `no`
|
|
80
|
+
|
|
81
|
+
### Carry-over
|
|
82
|
+
|
|
83
|
+
Whatever was decided in Branch A / B / C, store it as `issue_action` for Step 3.5 to act on. If nothing was decided, `issue_action` is `none`.
|
|
84
|
+
|
|
85
|
+
## Step 3 — Stage and commit
|
|
86
|
+
|
|
87
|
+
Stage the specific files (not `git add .`). Use `git add <file1> <file2> ...` with the files identified in Step 1.
|
|
88
|
+
|
|
89
|
+
Before staging, exclude:
|
|
90
|
+
- any file or folder under `test/`, `tests/`, `__tests__/`, `spec/`, or `specs/`
|
|
91
|
+
- any test file matching `*.test.*`, `*.spec.*`, `test_*`, or `*_test.*`
|
|
92
|
+
- any file that looks like it contains secrets (`.env`, credentials, tokens)
|
|
93
|
+
|
|
94
|
+
Flag excluded files to the user instead of staging them.
|
|
95
|
+
|
|
96
|
+
Commit with the approved message: `git commit -m "<message>"`.
|
|
97
|
+
|
|
98
|
+
Capture the commit hash from the commit output. The user will need it for Step 6. You can also run `git rev-parse --short HEAD` to get it.
|
|
99
|
+
|
|
100
|
+
## Step 3.5 — Act on the issue reference (if any)
|
|
101
|
+
|
|
102
|
+
If `issue_action` from Step 2.5 is `none`, skip this step entirely.
|
|
103
|
+
|
|
104
|
+
Otherwise, do the following:
|
|
105
|
+
|
|
106
|
+
1. Capture the short commit hash from Step 3.
|
|
107
|
+
2. Construct a comment body:
|
|
108
|
+
|
|
109
|
+
```
|
|
110
|
+
> *This was generated by AI during commit.*
|
|
111
|
+
|
|
112
|
+
Linked from commit `<short-hash>`: <commit message subject line>
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
3. Post the comment with `gh issue comment <N> --body "<body>"`.
|
|
116
|
+
4. If `issue_action.action == "close"`, also run `gh issue close <N>`. Do NOT pass a comment to `gh issue close`; the comment was already posted in step 3.
|
|
117
|
+
5. If either gh command fails (auth missing, issue doesn't exist, network error), DO NOT abort the workflow. Print the error to the user with a clear note: "Issue update failed — commit and journal entry are still complete. Re-run `gh issue comment <N>` manually if needed." Then continue.
|
|
118
|
+
|
|
119
|
+
Safety:
|
|
120
|
+
|
|
121
|
+
- Never use `gh issue close --comment` — comment first, then close, so a closing comment is always posted even if `gh close` later fails.
|
|
122
|
+
- Never close an issue you couldn't successfully comment on.
|
|
123
|
+
- Never push. The commit stays local; gh API calls are separate from `git push`.
|
|
124
|
+
|
|
125
|
+
## Step 4 — Ensure docs/ is gitignored
|
|
126
|
+
|
|
127
|
+
Read [`.gitignore`](.gitignore:1). The repo treats the entire `docs/` tree as local-only — nothing under `docs/` should ever be committed.
|
|
128
|
+
|
|
129
|
+
If `.gitignore` does NOT contain a line matching `docs/` (with or without trailing slash), append this block to the end:
|
|
130
|
+
|
|
131
|
+
```
|
|
132
|
+
# Local documentation — never committed
|
|
133
|
+
docs/
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
If `.gitignore` was modified, tell the user — but do NOT commit the gitignore change as part of this flow.
|
|
137
|
+
|
|
138
|
+
If the user has staged any file under `docs/` in Step 3 by mistake, unstage it (`git restore --staged docs/<path>`) and warn them: "Files under `docs/` should not be committed. Unstaged."
|
|
139
|
+
|
|
140
|
+
## Step 5 — Inspect existing docs/journal/ structure
|
|
141
|
+
|
|
142
|
+
Look at the current shape of `docs/journal/` if it exists:
|
|
143
|
+
|
|
144
|
+
- Run `ls -la docs/journal/` (or list it via tools).
|
|
145
|
+
- Note the existing date subfolders and file naming pattern, if any. Match whatever convention is already in use.
|
|
146
|
+
|
|
147
|
+
If `docs/journal/` does not exist yet, create it.
|
|
148
|
+
|
|
149
|
+
## Step 6 — Create a dated subfolder and write the entry
|
|
150
|
+
|
|
151
|
+
Determine today's date in `YYYY-MM-DD` format using `date +%Y-%m-%d`.
|
|
152
|
+
|
|
153
|
+
Create `docs/journal/<YYYY-MM-DD>/` if it does not exist.
|
|
154
|
+
|
|
155
|
+
Inside that folder, write a new markdown file named `<HH-MM>-<short-slug>.md` where:
|
|
156
|
+
- `<HH-MM>` is the current local time in 24-hour format
|
|
157
|
+
- `<short-slug>` is a kebab-case version of the commit summary (3–6 words max)
|
|
158
|
+
|
|
159
|
+
Use this template for the entry:
|
|
160
|
+
|
|
161
|
+
```md
|
|
162
|
+
# <Commit summary>
|
|
163
|
+
|
|
164
|
+
**Commit:** <full commit hash>
|
|
165
|
+
**Short hash:** <short hash>
|
|
166
|
+
**Date:** <YYYY-MM-DD HH:MM local time>
|
|
167
|
+
|
|
168
|
+
## What changed
|
|
169
|
+
|
|
170
|
+
<2–4 sentences describing what the commit changes. Plain English, not a file list.>
|
|
171
|
+
|
|
172
|
+
## Why
|
|
173
|
+
|
|
174
|
+
<1–3 sentences on the motivation. Pull from the conversation context if available.>
|
|
175
|
+
|
|
176
|
+
## Notes for future me
|
|
177
|
+
|
|
178
|
+
<Any gotchas, follow-ups, or things to revisit. One paragraph max. Skip the section if there's nothing worth saying.>
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
Fill in the placeholders from:
|
|
182
|
+
- The commit hash from Step 3
|
|
183
|
+
- The conversation context for "What changed" and "Why"
|
|
184
|
+
|
|
185
|
+
## Step 7 — Confirm
|
|
186
|
+
|
|
187
|
+
Tell the user:
|
|
188
|
+
- Commit hash and message
|
|
189
|
+
- Path to the journal entry just created
|
|
190
|
+
- Whether `.gitignore` was updated
|
|
191
|
+
- If `issue_action` was acted on: "Issue #N commented and closed." or "Issue #N commented." (whichever applies)
|
|
192
|
+
|
|
193
|
+
End with: "All of `docs/` is gitignored, so this entry stays local."
|
|
194
|
+
|
|
195
|
+
## Safety notes
|
|
196
|
+
|
|
197
|
+
- Never run `git push`. Commits stay local.
|
|
198
|
+
- Never use `--amend`, `--force`, or `reset --hard`.
|
|
199
|
+
- If `git status` shows the working tree is clean, abort early: tell the user there's nothing to commit and skip the rest of the flow.
|
|
200
|
+
- If files look like they contain secrets, flag them and skip staging them.
|
|
201
|
+
|
|
202
|
+
$ARGUMENTS
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Disciplined diagnosis loop for hard bugs and performance regressions. Reproduce → minimise → hypothesise → instrument → fix → regression-test. Use when user says \"diagnose this\" / \"debug this\", reports a bug, says something is broken/throwing/failing, or describes a performance regression."
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
Run skill: `.roo/skills/engineering/diagnose/SKILL.md`
|
|
6
|
+
|
|
7
|
+
$ARGUMENTS
|
|
@@ -0,0 +1,13 @@
|
|
|
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
|
+
EXECUTION RULES:
|
|
7
|
+
1. READ: `CONTEXT.md`, `CONTEXT-MAP.md`, `docs/adr/`, `FLOW.md`, `ARCHITECTURE.md`, `APP_MAP.md` in target area.
|
|
8
|
+
2. RUN skill: `.roo/skills/engineering/zoom-out/SKILL.md`.
|
|
9
|
+
3. OUTPUT MAP: Create markdown with sections: Domain language, Modules, Data flow, Seams/callers, ADRs, Open questions.
|
|
10
|
+
4. NEXT STEPS: Suggest `/grill-with-docs`, `/feature`, `/refactor`, or `/fix`. DO NOT auto-launch.
|
|
11
|
+
5. SAVE (Optional): Ask to save map to .scratch/explorations/<date>/explore-<slug>.md.
|
|
12
|
+
|
|
13
|
+
$ARGUMENTS
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Add new feature. Chains grill-with-docs, prototype, to-prd, to-issues, tdd."
|
|
3
|
+
argument-hint: <describe the feature>
|
|
4
|
+
mode: system-architect
|
|
5
|
+
---
|
|
6
|
+
EXECUTION RULES (Run sequentially. Wait for user between phases):
|
|
7
|
+
1. SHARPEN (Architect): Run skill `.roo/skills/engineering/grill-with-docs/SKILL.md`. Update docs.
|
|
8
|
+
HARD STOP: Ask user to choose: Prototype OR skip to PRD.
|
|
9
|
+
2. PROTOTYPE [Optional]:
|
|
10
|
+
- Architect summarizes the prototype question, constraints, relevant context, and expected decision.
|
|
11
|
+
- Architect MUST `switch_mode` -> `code-tweaker`.
|
|
12
|
+
- Tweaker executes the `/prototype` command workflow using `.roo/rules/01-command-protocol.md`.
|
|
13
|
+
- Tweaker MUST `switch_mode` -> `system-architect` with prototype result, run command/URL if any, files changed, and decision needed.
|
|
14
|
+
HARD STOP: Wait for user verdict.
|
|
15
|
+
3. PRD (Architect): Run skill `.roo/skills/engineering/to-prd/SKILL.md` using a 3-bullet summary of prior phases.
|
|
16
|
+
HARD STOP: Ask "Ready to slice into issues?". Wait for approval.
|
|
17
|
+
4. SLICE (Architect): Run skill `.roo/skills/engineering/to-issues/SKILL.md`.
|
|
18
|
+
HARD STOP: Wait for user to approve issues list.
|
|
19
|
+
5. IMPLEMENT (Tweaker):
|
|
20
|
+
- Architect summarizes issues.
|
|
21
|
+
- Architect MUST `switch_mode` -> `code-tweaker`.
|
|
22
|
+
- Tweaker: For each issue, execute the `/tdd` command workflow (per `.roo/rules/01-command-protocol.md`). After each ships, suggest `/commit-and-document`.
|
|
23
|
+
|
|
24
|
+
$ARGUMENTS
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Fix bugs/regressions. Chains diagnose -> tweak -> post-mortem."
|
|
3
|
+
argument-hint: <describe the bug or error>
|
|
4
|
+
mode: system-architect
|
|
5
|
+
---
|
|
6
|
+
EXECUTION RULES:
|
|
7
|
+
1. DIAGNOSE (Architect): Run skill `.roo/skills/engineering/diagnose/SKILL.md`. Run phases 1-3.
|
|
8
|
+
HARD STOP: Present hypotheses. Wait for user selection. Ignore internal AFK rules.
|
|
9
|
+
2. INSTRUMENT (Architect): Run phase 4 on chosen hypothesis. Find root cause.
|
|
10
|
+
3. IMPLEMENT (Tweaker):
|
|
11
|
+
- Architect summarizes fix.
|
|
12
|
+
- Architect MUST `switch_mode` -> `code-tweaker`.
|
|
13
|
+
- Tweaker executes phase 5 (Fix + test).
|
|
14
|
+
- Tweaker MUST `switch_mode` -> `system-architect`.
|
|
15
|
+
4. POST-MORTEM (Architect): Execute Phase 6. If architectural rot, suggest `/refactor`.
|
|
16
|
+
- Architect MUST `switch_mode` -> `code-tweaker`.
|
|
17
|
+
5. COMMIT (Tweaker): Suggest `/commit-and-document`.
|
|
18
|
+
|
|
19
|
+
$ARGUMENTS
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Interview the user relentlessly about a plan or design until reaching shared understanding, resolving each branch of the decision tree. Use when user wants to stress-test a plan, get grilled on their design, or mentions \"grill me\"."
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
Run skill: `.roo/skills/productivity/grill-me/SKILL.md`
|
|
6
|
+
|
|
7
|
+
$ARGUMENTS
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Grilling session that challenges your plan against the existing domain model, sharpens terminology, and updates documentation (CONTEXT.md, ADRs) inline as decisions crystallise. Use when user wants to stress-test a plan against their project's language and documented decisions."
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
Run skill: `.roo/skills/engineering/grill-with-docs/SKILL.md`
|
|
6
|
+
|
|
7
|
+
$ARGUMENTS
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Find deepening opportunities in a codebase, informed by the domain language in CONTEXT.md and the decisions in docs/adr/. Use when the user wants to improve architecture, find refactoring opportunities, consolidate tightly-coupled modules, or make a codebase more testable and AI-navigable."
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
Run skill: `.roo/skills/engineering/improve-codebase-architecture/SKILL.md`
|
|
6
|
+
|
|
7
|
+
$ARGUMENTS
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Build a throwaway prototype to flesh out a design before committing to it. Routes between logic/state/data-model prototypes and UI prototypes."
|
|
3
|
+
argument-hint: <prototype question or design uncertainty>
|
|
4
|
+
mode: code-tweaker
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
Run skill: `.roo/skills/engineering/prototype/SKILL.md`
|
|
8
|
+
|
|
9
|
+
$ARGUMENTS
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Improve working code. Chains improve-codebase-architecture -> tdd."
|
|
3
|
+
argument-hint: <area to refactor>
|
|
4
|
+
mode: system-architect
|
|
5
|
+
---
|
|
6
|
+
EXECUTION RULES:
|
|
7
|
+
1. FIND (Architect): Run skill `.roo/skills/engineering/improve-codebase-architecture/SKILL.md`. List candidates.
|
|
8
|
+
HARD STOP: Ask user which candidate to explore.
|
|
9
|
+
2. GRILL (Architect): Run grilling loop. Update CONTEXT/ADRs inline.
|
|
10
|
+
HARD STOP: Summarize plan, get explicit user approval.
|
|
11
|
+
3. EXECUTE (Tweaker):
|
|
12
|
+
- Architect summarizes approved plan.
|
|
13
|
+
- Architect MUST `switch_mode` -> `code-tweaker`.
|
|
14
|
+
- Tweaker executes the `/tdd` command workflow (per `.roo/rules/01-command-protocol.md`) — new tests at interface, delete old.
|
|
15
|
+
- Tweaker suggests `/commit-and-document`.
|
|
16
|
+
|
|
17
|
+
$ARGUMENTS
|
|
@@ -0,0 +1,7 @@
|
|
|
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
|
+
---
|
|
4
|
+
|
|
5
|
+
Run skill: `.roo/skills/engineering/setup-matt-pocock-skills/SKILL.md`
|
|
6
|
+
|
|
7
|
+
$ARGUMENTS
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Test-driven development with red-green-refactor loop, one vertical slice at a time. Use when user wants to write tests first, build a feature TDD-style, or follow a strict test-first loop."
|
|
3
|
+
argument-hint: <feature or bug to build>
|
|
4
|
+
mode: code-tweaker
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
Run skill: `.roo/skills/engineering/tdd/SKILL.md`
|
|
8
|
+
|
|
9
|
+
$ARGUMENTS
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Break a plan, spec, or PRD into independently-grabbable issues on the project issue tracker using tracer-bullet vertical slices. Use when user wants to convert a plan into issues, create implementation tickets, or break down work into issues."
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
Run skill: `.roo/skills/engineering/to-issues/SKILL.md`
|
|
6
|
+
|
|
7
|
+
$ARGUMENTS
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Triage issues through a state machine driven by triage roles. Use when user wants to create an issue, triage issues, review incoming bugs or feature requests, prepare issues for an AFK agent, or manage issue workflow."
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
Run skill: `.roo/skills/engineering/triage/SKILL.md`
|
|
6
|
+
|
|
7
|
+
$ARGUMENTS
|
|
@@ -0,0 +1,130 @@
|
|
|
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
|
+
You are guiding the user through the **Update Docs** workflow. Use this when the goal is to make repo documentation match the current code.
|
|
8
|
+
|
|
9
|
+
This command edits repo docs such as:
|
|
10
|
+
|
|
11
|
+
- `FLOW.md` files
|
|
12
|
+
- `APP_MAP.md`
|
|
13
|
+
- `ARCHITECTURE.md`
|
|
14
|
+
- `README.md`
|
|
15
|
+
- Other markdown docs that explain how code works
|
|
16
|
+
|
|
17
|
+
Do NOT use this for:
|
|
18
|
+
|
|
19
|
+
- Domain glossary terms — use `/grill-with-docs` instead
|
|
20
|
+
- ADRs / architectural decisions — use `/grill-with-docs` or `/refactor` so ADRs are offered properly
|
|
21
|
+
- Local commit journal entries — use `/commit-and-document`
|
|
22
|
+
- Read-only understanding — use `/explore`
|
|
23
|
+
|
|
24
|
+
The user may pass a target doc or area as `$ARGUMENTS`, e.g.:
|
|
25
|
+
|
|
26
|
+
- `apps/kikonnekt_w_sso/core/chat/FLOW.md`
|
|
27
|
+
- `chat flow`
|
|
28
|
+
- `documents flow`
|
|
29
|
+
- `APP_MAP.md`
|
|
30
|
+
- `ARCHITECTURE.md`
|
|
31
|
+
|
|
32
|
+
If no target is provided, ask once: "Which documentation file or area should I update?"
|
|
33
|
+
|
|
34
|
+
## Phase 1 — Identify target doc
|
|
35
|
+
|
|
36
|
+
Infer or ask for the target documentation file.
|
|
37
|
+
|
|
38
|
+
Prefer existing docs when possible:
|
|
39
|
+
|
|
40
|
+
- For a subsystem flow, look for a nearby `FLOW.md`.
|
|
41
|
+
- For app-wide navigation or module mapping, use `APP_MAP.md`.
|
|
42
|
+
- For system-level structure and constraints, use `ARCHITECTURE.md`.
|
|
43
|
+
- For setup or usage, use `README.md`.
|
|
44
|
+
|
|
45
|
+
If the target doc does not exist, ask before creating it. Do not invent a new doc location silently.
|
|
46
|
+
|
|
47
|
+
## Phase 2 — Read existing docs first
|
|
48
|
+
|
|
49
|
+
Read the target doc fully before editing.
|
|
50
|
+
|
|
51
|
+
Also read nearby related docs, if relevant:
|
|
52
|
+
|
|
53
|
+
- Neighboring `FLOW.md` files
|
|
54
|
+
- `APP_MAP.md`
|
|
55
|
+
- `ARCHITECTURE.md`
|
|
56
|
+
- `README.md`
|
|
57
|
+
- Any module-local docs in the same subtree
|
|
58
|
+
|
|
59
|
+
Goal: match the existing documentation style, section structure, vocabulary, and level of detail.
|
|
60
|
+
|
|
61
|
+
## Phase 3 — Verify against code
|
|
62
|
+
|
|
63
|
+
Inspect the code that the doc claims to describe. Update docs from code reality, not guesses.
|
|
64
|
+
|
|
65
|
+
Check:
|
|
66
|
+
|
|
67
|
+
- Entrypoints
|
|
68
|
+
- Main functions/classes
|
|
69
|
+
- Data flow
|
|
70
|
+
- State changes
|
|
71
|
+
- Side effects
|
|
72
|
+
- Dependencies
|
|
73
|
+
- Error/fallback paths
|
|
74
|
+
- Files involved
|
|
75
|
+
|
|
76
|
+
If a claim cannot be verified, either remove it or move it to an `Open questions` section. Do not present guesses as facts.
|
|
77
|
+
|
|
78
|
+
## Phase 4 — Make surgical edits
|
|
79
|
+
|
|
80
|
+
Do not rewrite the whole doc by default.
|
|
81
|
+
|
|
82
|
+
Prefer surgical edits:
|
|
83
|
+
|
|
84
|
+
- Keep useful existing sections
|
|
85
|
+
- Update stale sections
|
|
86
|
+
- Add missing flows
|
|
87
|
+
- Remove false claims
|
|
88
|
+
- Preserve heading style
|
|
89
|
+
- Preserve existing tone and detail level
|
|
90
|
+
|
|
91
|
+
Only rewrite the whole file if the current doc is too stale to salvage. If doing that, say why before editing.
|
|
92
|
+
|
|
93
|
+
## Phase 5 — Add or update freshness block
|
|
94
|
+
|
|
95
|
+
At the bottom of the doc, add or update this section if it fits the existing style:
|
|
96
|
+
|
|
97
|
+
```md
|
|
98
|
+
## Freshness
|
|
99
|
+
|
|
100
|
+
Last checked against code: YYYY-MM-DD
|
|
101
|
+
Relevant files checked:
|
|
102
|
+
- `path/to/file.py`
|
|
103
|
+
- `path/to/other_file.py`
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
Use today's date. Include only files actually inspected.
|
|
107
|
+
|
|
108
|
+
## Phase 6 — Sanity check
|
|
109
|
+
|
|
110
|
+
After editing:
|
|
111
|
+
|
|
112
|
+
- Re-read the updated doc
|
|
113
|
+
- Check referenced file paths exist
|
|
114
|
+
- Ensure every major claim maps to code or a cited doc
|
|
115
|
+
- Ensure no stale contradiction remains with nearby docs
|
|
116
|
+
- Summarise what changed
|
|
117
|
+
|
|
118
|
+
## Phase 7 — Recommend next step
|
|
119
|
+
|
|
120
|
+
Recommend one next command:
|
|
121
|
+
|
|
122
|
+
- `/explore` if the user still seems unsure how the area works
|
|
123
|
+
- `/feature` if the docs update revealed a feature plan
|
|
124
|
+
- `/refactor` if the docs update revealed tangled-but-working code
|
|
125
|
+
- `/fix` if the docs update revealed a bug
|
|
126
|
+
- `/commit-and-document` if the docs update is complete
|
|
127
|
+
|
|
128
|
+
Do not auto-run the next command. The user chooses.
|
|
129
|
+
|
|
130
|
+
$ARGUMENTS
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Tell the agent to zoom out and give broader context or a higher-level perspective. Use when you're unfamiliar with a section of code or need to understand how it fits into the bigger picture."
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
Run skill: `.roo/skills/engineering/zoom-out/SKILL.md`
|
|
6
|
+
|
|
7
|
+
$ARGUMENTS
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# Path Safety
|
|
2
|
+
|
|
3
|
+
All skill and command paths are workspace-root paths.
|
|
4
|
+
|
|
5
|
+
Valid skill path form:
|
|
6
|
+
|
|
7
|
+
- `.roo/skills/{bucket}/{skill}/SKILL.md`
|
|
8
|
+
|
|
9
|
+
Valid command path form:
|
|
10
|
+
|
|
11
|
+
- `.roo/commands/{command}.md`
|
|
12
|
+
|
|
13
|
+
Commands and modes must load skills only from `.roo/skills/...`.
|
|
14
|
+
|
|
15
|
+
Never resolve skill paths relative to `.roo/rules/`, `.roo/rules-{mode}/`, or the command file location.
|
|
16
|
+
|
|
17
|
+
Invalid path forms include any skill path under `.roo/rules/`.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Command Protocol
|
|
2
|
+
|
|
3
|
+
When assigned a slash command, execute the command workflow before doing task-specific work.
|
|
4
|
+
|
|
5
|
+
Protocol:
|
|
6
|
+
|
|
7
|
+
1. Normalize the command by stripping the leading slash.
|
|
8
|
+
- `/fix` becomes `fix`
|
|
9
|
+
- `/tdd` becomes `tdd`
|
|
10
|
+
|
|
11
|
+
2. Preferred execution:
|
|
12
|
+
- Use `run_slash_command` if available.
|
|
13
|
+
- Pass `command` as the normalized command name.
|
|
14
|
+
- Pass `args` as the full user/delegated task context.
|
|
15
|
+
|
|
16
|
+
3. Fallback execution:
|
|
17
|
+
- If `run_slash_command` is unavailable, disabled, rejected, or fails, read the command file from:
|
|
18
|
+
- `.roo/commands/{command}.md`
|
|
19
|
+
|
|
20
|
+
4. If the command file references a skill:
|
|
21
|
+
- Read the exact `.roo/skills/...` path from the command file.
|
|
22
|
+
- Follow the skill instructions after loading.
|
|
23
|
+
|
|
24
|
+
5. Do not auto-run follow-up commands merely because they are mentioned in a subtask summary.
|
|
25
|
+
- Only the human user or orchestrator routing may authorize a new command.
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# Manual Reply Protocol
|
|
2
|
+
|
|
3
|
+
For workflow routing choices, use numbered options and ask the user to type the number.
|
|
4
|
+
|
|
5
|
+
Example:
|
|
6
|
+
|
|
7
|
+
1. `/tweak`
|
|
8
|
+
2. `/fix`
|
|
9
|
+
3. Hold
|
|
10
|
+
|
|
11
|
+
Clickable suggestions, if shown, must be numeric only. Do not put slash commands or mode names in clickable suggestions.
|
|
12
|
+
|
|
13
|
+
Only treat slash commands as commands when manually typed by the user.
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
# Code Tweaker Scope
|
|
2
|
+
|
|
3
|
+
Implement, test, update docs, prototype, and commit only after approval.
|
|
4
|
+
|
|
5
|
+
Do not make broad architecture decisions.
|
|
6
|
+
|
|
7
|
+
Escalate to `system-architect` with `switch_mode` when architecture decisions are needed or the same test/approach fails 3 times.
|