@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
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# UI Prototype
|
|
2
|
+
|
|
3
|
+
Use for visual/layout/design. Not logic/state.
|
|
4
|
+
|
|
5
|
+
## Shape
|
|
6
|
+
|
|
7
|
+
Prefer A.
|
|
8
|
+
|
|
9
|
+
A. Existing page:
|
|
10
|
+
- Same route.
|
|
11
|
+
- Keep data fetching/params/auth.
|
|
12
|
+
- Switch rendering subtree via `?variant=`.
|
|
13
|
+
|
|
14
|
+
B. Throwaway route:
|
|
15
|
+
- Only if no natural host page.
|
|
16
|
+
- Follow routing convention.
|
|
17
|
+
- Include `prototype` in route/file name.
|
|
18
|
+
- Use `?variant=`.
|
|
19
|
+
|
|
20
|
+
## Process
|
|
21
|
+
|
|
22
|
+
1. State question + N variants in prototype location. Default 3; max 5.
|
|
23
|
+
2. Create radical variants: layout/info hierarchy/primary affordance differs; use project styling; export `VariantA/B/C`; DO NOT ship color/copy-only variants.
|
|
24
|
+
3. Wire route switch:
|
|
25
|
+
|
|
26
|
+
```tsx
|
|
27
|
+
const variant = searchParams.get('variant') ?? 'A';
|
|
28
|
+
return (
|
|
29
|
+
<>
|
|
30
|
+
{variant === 'A' && <VariantA {...data} />}
|
|
31
|
+
{variant === 'B' && <VariantB {...data} />}
|
|
32
|
+
{variant === 'C' && <VariantC {...data} />}
|
|
33
|
+
<PrototypeSwitcher variants={['A','B','C']} current={variant} />
|
|
34
|
+
</>
|
|
35
|
+
);
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
4. Build `PrototypeSwitcher`:
|
|
39
|
+
- Fixed bottom-centre bar.
|
|
40
|
+
- Prev arrow/current label/next arrow.
|
|
41
|
+
- Click updates URL search param via router.
|
|
42
|
+
- `←`/`→` cycle.
|
|
43
|
+
- DO NOT intercept if `input`, `textarea`, or `[contenteditable]` focused.
|
|
44
|
+
- Visually distinct from design.
|
|
45
|
+
- Hide in production via `process.env.NODE_ENV !== 'production'` or equivalent.
|
|
46
|
+
5. Hand over URL + variant keys.
|
|
47
|
+
6. Winner picked: capture which/why; existing page → delete losing variants/switcher + fold winner in; new route → promote winner + delete prototype route/switcher.
|
|
48
|
+
|
|
49
|
+
## Rules
|
|
50
|
+
|
|
51
|
+
- Read-only unless mutation is design question; stub mutations.
|
|
52
|
+
- Do not over-share layout code between variants.
|
|
53
|
+
- Do not promote prototype without cleanup.
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: setup-matt-pocock-skills
|
|
3
|
+
description: Sets up an `## Agent skills` block in AGENTS.md/CLAUDE.md and `docs/agents/` so engineering skills know this repo's issue tracker, 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.
|
|
4
|
+
disable-model-invocation: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Setup Matt Pocock's Skills
|
|
8
|
+
|
|
9
|
+
Seeds repo config for issue tracker, triage labels, domain docs.
|
|
10
|
+
|
|
11
|
+
## Explore
|
|
12
|
+
|
|
13
|
+
Read/check:
|
|
14
|
+
1. `git remote -v` + `.git/config`.
|
|
15
|
+
2. Root `AGENTS.md`, `CLAUDE.md`.
|
|
16
|
+
3. Existing `## Agent skills` blocks.
|
|
17
|
+
4. Root `CONTEXT.md`, `CONTEXT-MAP.md`.
|
|
18
|
+
5. `docs/adr/`, `src/*/docs/adr/`.
|
|
19
|
+
6. `docs/agents/`.
|
|
20
|
+
7. `.scratch/`.
|
|
21
|
+
|
|
22
|
+
## Ask decisions one at a time
|
|
23
|
+
|
|
24
|
+
A. Issue tracker:
|
|
25
|
+
- Explain: issue tracker = where skills read/write issues/PRDs.
|
|
26
|
+
- Default: GitHub remote → GitHub; GitLab remote → GitLab; else offer choices.
|
|
27
|
+
- Choices: GitHub via `gh`; GitLab via `glab`; local markdown `.scratch/{feature}/`; other = ask one-paragraph workflow.
|
|
28
|
+
|
|
29
|
+
B. Triage labels:
|
|
30
|
+
- Explain: triage skill needs real label strings.
|
|
31
|
+
- Roles: `needs-triage`, `needs-info`, `ready-for-agent`, `ready-for-human`, `wontfix`.
|
|
32
|
+
- Default label string = role name; ask overrides.
|
|
33
|
+
|
|
34
|
+
C. Domain docs:
|
|
35
|
+
- Explain: skills read `CONTEXT.md` + ADRs.
|
|
36
|
+
- Choices: single-context root `CONTEXT.md` + `docs/adr/`; multi-context `CONTEXT-MAP.md` → per-context docs.
|
|
37
|
+
|
|
38
|
+
## Confirm before write
|
|
39
|
+
|
|
40
|
+
Show:
|
|
41
|
+
1. `## Agent skills` block.
|
|
42
|
+
2. `docs/agents/issue-tracker.md`.
|
|
43
|
+
3. `docs/agents/triage-labels.md`.
|
|
44
|
+
4. `docs/agents/domain.md`.
|
|
45
|
+
|
|
46
|
+
## Write
|
|
47
|
+
|
|
48
|
+
Root doc:
|
|
49
|
+
1. If `CLAUDE.md` exists, edit it.
|
|
50
|
+
2. Else if `AGENTS.md` exists, edit it.
|
|
51
|
+
3. Else ask which to create.
|
|
52
|
+
4. DO NOT create other doc when one exists.
|
|
53
|
+
5. Update existing `## Agent skills` block in place; no duplicates.
|
|
54
|
+
|
|
55
|
+
Block:
|
|
56
|
+
|
|
57
|
+
```markdown
|
|
58
|
+
## Agent skills
|
|
59
|
+
|
|
60
|
+
### Issue tracker
|
|
61
|
+
|
|
62
|
+
[one-line summary]. See `docs/agents/issue-tracker.md`.
|
|
63
|
+
|
|
64
|
+
### Triage labels
|
|
65
|
+
|
|
66
|
+
[one-line summary]. See `docs/agents/triage-labels.md`.
|
|
67
|
+
|
|
68
|
+
### Domain docs
|
|
69
|
+
|
|
70
|
+
[one-line summary]. See `docs/agents/domain.md`.
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
Seed files: GitHub=`issue-tracker-github.md`; GitLab=`issue-tracker-gitlab.md`; Local=`issue-tracker-local.md`; labels=`triage-labels.md`; domain=`domain.md`; other=workflow prose.
|
|
74
|
+
|
|
75
|
+
## Done
|
|
76
|
+
|
|
77
|
+
Report created/updated files. State engineering skills now read `docs/agents/*.md`; user may edit directly.
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# Domain Docs
|
|
2
|
+
|
|
3
|
+
## Read before work
|
|
4
|
+
|
|
5
|
+
If present:
|
|
6
|
+
1. Root `CONTEXT.md`, or root `CONTEXT-MAP.md` then relevant context docs.
|
|
7
|
+
2. Relevant root `docs/adr/` ADRs.
|
|
8
|
+
3. If multi-context, relevant `src/{context}/docs/adr/`.
|
|
9
|
+
|
|
10
|
+
If missing, proceed silently.
|
|
11
|
+
|
|
12
|
+
## Layouts
|
|
13
|
+
|
|
14
|
+
Single-context:
|
|
15
|
+
|
|
16
|
+
```text
|
|
17
|
+
/CONTEXT.md
|
|
18
|
+
/docs/adr/
|
|
19
|
+
/src/
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
Multi-context:
|
|
23
|
+
|
|
24
|
+
```text
|
|
25
|
+
/CONTEXT-MAP.md
|
|
26
|
+
/docs/adr/
|
|
27
|
+
/src/{context}/CONTEXT.md
|
|
28
|
+
/src/{context}/docs/adr/
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Rules
|
|
32
|
+
|
|
33
|
+
- Use glossary vocabulary in outputs/tests/issues/hypotheses.
|
|
34
|
+
- Avoid `_Avoid_` synonyms.
|
|
35
|
+
- If term missing, reconsider wording or note `/grill-with-docs` gap.
|
|
36
|
+
- If output contradicts ADR, surface conflict.
|
package/templates/full/.roo/skills/engineering/setup-matt-pocock-skills/issue-tracker-github.md
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# Issue tracker: GitHub
|
|
2
|
+
|
|
3
|
+
Issues/PRDs: GitHub Issues. Use `gh` in repo; let `gh` infer remote.
|
|
4
|
+
|
|
5
|
+
## Commands
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
gh issue create --title "..." --body "..."
|
|
9
|
+
gh issue view {number} --comments
|
|
10
|
+
gh issue list --state open --json number,title,body,labels,comments --jq '[.[] | {number, title, body, labels: [.labels[].name], comments: [.comments[].body]}]'
|
|
11
|
+
gh issue comment {number} --body "..."
|
|
12
|
+
gh issue edit {number} --add-label "..."
|
|
13
|
+
gh issue edit {number} --remove-label "..."
|
|
14
|
+
gh issue close {number} --comment "..."
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Rules
|
|
18
|
+
|
|
19
|
+
- Publish = create GitHub issue.
|
|
20
|
+
- Fetch = `gh issue view {number} --comments`.
|
|
21
|
+
- Use heredoc for multiline bodies.
|
package/templates/full/.roo/skills/engineering/setup-matt-pocock-skills/issue-tracker-gitlab.md
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Issue tracker: GitLab
|
|
2
|
+
|
|
3
|
+
Issues/PRDs: GitLab Issues. Use `glab` in repo; let `glab` infer remote.
|
|
4
|
+
|
|
5
|
+
## Commands
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
glab issue create --title "..." --description "..."
|
|
9
|
+
glab issue view {number} --comments
|
|
10
|
+
glab issue list -F json
|
|
11
|
+
glab issue note {number} --message "..."
|
|
12
|
+
glab issue update {number} --label "..."
|
|
13
|
+
glab issue update {number} --unlabel "..."
|
|
14
|
+
glab issue note {number} --message "..."
|
|
15
|
+
glab issue close {number}
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## Rules
|
|
19
|
+
|
|
20
|
+
- Publish = create GitLab issue.
|
|
21
|
+
- Fetch = `glab issue view {number} --comments`.
|
|
22
|
+
- GitLab PRs = merge requests; use `glab mr ...`.
|
|
23
|
+
- Post note before `glab issue close`.
|
package/templates/full/.roo/skills/engineering/setup-matt-pocock-skills/issue-tracker-local.md
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Issue tracker: Local Markdown
|
|
2
|
+
|
|
3
|
+
Issues/PRDs live under `.scratch/`.
|
|
4
|
+
|
|
5
|
+
## Paths
|
|
6
|
+
|
|
7
|
+
```text
|
|
8
|
+
.scratch/{feature-slug}/PRD.md
|
|
9
|
+
.scratch/{feature-slug}/issues/{NN}-{slug}.md
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
## Rules
|
|
13
|
+
|
|
14
|
+
- One feature per `.scratch/{feature-slug}/`.
|
|
15
|
+
- PRD: `.scratch/{feature-slug}/PRD.md`.
|
|
16
|
+
- Issue: `.scratch/{feature-slug}/issues/{NN}-{slug}.md`, start `01`.
|
|
17
|
+
- Triage state: `Status:` near top.
|
|
18
|
+
- Comments: append under `## Comments`.
|
|
19
|
+
- Publish = create markdown under `.scratch/{feature-slug}/`.
|
|
20
|
+
- Fetch = read referenced path.
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# Triage Labels
|
|
2
|
+
|
|
3
|
+
RULE: Map canonical role → tracker label. When skill says role, apply mapped label.
|
|
4
|
+
|
|
5
|
+
| Canonical role | Tracker label | Meaning |
|
|
6
|
+
| --- | --- | --- |
|
|
7
|
+
| `needs-triage` | `needs-triage` | Maintainer evaluation needed |
|
|
8
|
+
| `needs-info` | `needs-info` | Waiting on reporter |
|
|
9
|
+
| `ready-for-agent` | `ready-for-agent` | Fully specified; AFK-ready |
|
|
10
|
+
| `ready-for-human` | `ready-for-human` | Human implementation needed |
|
|
11
|
+
| `wontfix` | `wontfix` | Will not be actioned |
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: tdd
|
|
3
|
+
description: Test-driven development with red-green-refactor loop. Use when user wants to build features or fix bugs using TDD, mentions "red-green-refactor", wants integration tests, or asks for test-first development.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Test-Driven Development
|
|
7
|
+
|
|
8
|
+
RULE: Test observable behaviour through public interfaces. No implementation-detail tests. Use glossary. Respect ADRs.
|
|
9
|
+
|
|
10
|
+
## Planning
|
|
11
|
+
|
|
12
|
+
Before code:
|
|
13
|
+
1. Confirm public interface changes.
|
|
14
|
+
2. Confirm behaviours; prioritise critical paths/complex logic.
|
|
15
|
+
3. Identify deep-module opportunities.
|
|
16
|
+
4. Design for testability.
|
|
17
|
+
5. List behaviours, not implementation steps.
|
|
18
|
+
6. Get user approval.
|
|
19
|
+
|
|
20
|
+
Ask: `What should the public interface look like? Which behaviours matter most?`
|
|
21
|
+
|
|
22
|
+
## Loop
|
|
23
|
+
|
|
24
|
+
DO NOT write all tests then all code.
|
|
25
|
+
|
|
26
|
+
For each slice:
|
|
27
|
+
1. RED: write one failing behaviour test.
|
|
28
|
+
2. GREEN: write minimal code to pass.
|
|
29
|
+
3. Repeat next behaviour.
|
|
30
|
+
|
|
31
|
+
Rules:
|
|
32
|
+
- One test at a time.
|
|
33
|
+
- Public interface only.
|
|
34
|
+
- Minimal code only.
|
|
35
|
+
- No speculative features.
|
|
36
|
+
- 3 failed green attempts → STOP; show blocker + exact error; ask user.
|
|
37
|
+
|
|
38
|
+
## Refactor
|
|
39
|
+
|
|
40
|
+
Only after green:
|
|
41
|
+
1. Remove duplication.
|
|
42
|
+
2. Deepen shallow modules.
|
|
43
|
+
3. Apply SOLID where natural.
|
|
44
|
+
4. Refactor problematic existing code revealed.
|
|
45
|
+
5. Run tests after each refactor.
|
|
46
|
+
|
|
47
|
+
Checklist per cycle:
|
|
48
|
+
- [ ] Test describes behaviour.
|
|
49
|
+
- [ ] Test uses public interface.
|
|
50
|
+
- [ ] Test survives internal refactor.
|
|
51
|
+
- [ ] Code minimal.
|
|
52
|
+
- [ ] No speculation.
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# Mocking
|
|
2
|
+
|
|
3
|
+
Mock only system boundaries:
|
|
4
|
+
- External APIs.
|
|
5
|
+
- DB when no test DB/stand-in.
|
|
6
|
+
- Time/randomness.
|
|
7
|
+
- Filesystem when needed.
|
|
8
|
+
|
|
9
|
+
DO NOT mock:
|
|
10
|
+
- Own classes/modules.
|
|
11
|
+
- Internal collaborators.
|
|
12
|
+
- Controlled code.
|
|
13
|
+
|
|
14
|
+
Boundary interface rules:
|
|
15
|
+
1. Inject deps.
|
|
16
|
+
2. Prefer SDK-style specific methods over generic fetchers: `getUser`, `getOrders`, `createOrder`.
|
|
17
|
+
3. DO NOT require mocks with conditional endpoint logic.
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# Refactor Candidates
|
|
2
|
+
|
|
3
|
+
After green tests:
|
|
4
|
+
- Duplication → extract.
|
|
5
|
+
- Long methods → private helpers; keep tests on public interface.
|
|
6
|
+
- Shallow modules → combine/deepen.
|
|
7
|
+
- Feature envy → move logic to data owner.
|
|
8
|
+
- Primitive obsession → value objects.
|
|
9
|
+
- Exposed bad existing code → refactor if safe.
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# Tests
|
|
2
|
+
|
|
3
|
+
Rules:
|
|
4
|
+
- Prefer integration-style through public interface.
|
|
5
|
+
- Assert observable behaviour.
|
|
6
|
+
- Describe what, not how.
|
|
7
|
+
- One logical assertion.
|
|
8
|
+
- Tests MUST survive refactors.
|
|
9
|
+
- DO NOT mock internal collaborators.
|
|
10
|
+
- DO NOT test private methods.
|
|
11
|
+
- DO NOT assert call counts/order unless observable contract.
|
|
12
|
+
- DO NOT bypass interface.
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: to-issues
|
|
3
|
+
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.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# To Issues
|
|
7
|
+
|
|
8
|
+
Issue tracker + label vocabulary should exist; run `/setup-matt-pocock-skills` if missing.
|
|
9
|
+
|
|
10
|
+
## Process
|
|
11
|
+
|
|
12
|
+
1. Use current context.
|
|
13
|
+
2. If user passes issue/path/URL, fetch/read full body + comments.
|
|
14
|
+
3. Explore codebase if needed; use glossary; respect ADRs.
|
|
15
|
+
4. Draft tracer-bullet issues: thin vertical slice; independently demoable/verifiable; prefer many thin; mark `HITL`/`AFK`, prefer `AFK`.
|
|
16
|
+
5. Present numbered breakdown: title; `HITL`/`AFK`; blockers; user stories.
|
|
17
|
+
6. Ask user to validate granularity/deps/HITL/AFK/merge/split.
|
|
18
|
+
7. Iterate until approved.
|
|
19
|
+
8. Publish in dependency order.
|
|
20
|
+
9. Apply `ready-for-agent` label unless instructed otherwise.
|
|
21
|
+
10. DO NOT close/modify parent issue.
|
|
22
|
+
|
|
23
|
+
## Issue template
|
|
24
|
+
|
|
25
|
+
```markdown
|
|
26
|
+
## Parent
|
|
27
|
+
|
|
28
|
+
{parent reference if any}
|
|
29
|
+
|
|
30
|
+
## What to build
|
|
31
|
+
|
|
32
|
+
{end-to-end behaviour; no stale file paths. Prototype decision snippets allowed if precise and trimmed.}
|
|
33
|
+
|
|
34
|
+
## Acceptance criteria
|
|
35
|
+
|
|
36
|
+
- [ ] Criterion 1
|
|
37
|
+
- [ ] Criterion 2
|
|
38
|
+
- [ ] Criterion 3
|
|
39
|
+
|
|
40
|
+
## Blocked by
|
|
41
|
+
|
|
42
|
+
- {blocking ticket}
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
If no blockers: `None - can start immediately`.
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: to-prd
|
|
3
|
+
description: Turn the current conversation context into a PRD and publish it to the project issue tracker. Use when user wants to create a PRD from the current context.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# To PRD
|
|
7
|
+
|
|
8
|
+
Issue tracker + label vocabulary should exist; run `/setup-matt-pocock-skills` if missing.
|
|
9
|
+
|
|
10
|
+
RULE: Do not interview user. Synthesize current context.
|
|
11
|
+
|
|
12
|
+
## Process
|
|
13
|
+
|
|
14
|
+
1. Explore repo if needed; use glossary; respect ADRs.
|
|
15
|
+
2. Sketch major modules to build/modify.
|
|
16
|
+
3. Find deep modules testable in isolation.
|
|
17
|
+
4. Check with user: modules match expectations? which modules need tests?
|
|
18
|
+
5. Write PRD.
|
|
19
|
+
6. Publish to issue tracker.
|
|
20
|
+
7. Apply `ready-for-agent`.
|
|
21
|
+
|
|
22
|
+
## PRD template
|
|
23
|
+
|
|
24
|
+
```markdown
|
|
25
|
+
## Problem Statement
|
|
26
|
+
|
|
27
|
+
{user-facing problem}
|
|
28
|
+
|
|
29
|
+
## Solution
|
|
30
|
+
|
|
31
|
+
{user-facing solution}
|
|
32
|
+
|
|
33
|
+
## User Stories
|
|
34
|
+
|
|
35
|
+
1. As a {actor}, I want {feature}, so that {benefit}
|
|
36
|
+
|
|
37
|
+
## Implementation Decisions
|
|
38
|
+
|
|
39
|
+
- Modules/interfaces changed.
|
|
40
|
+
- Technical clarifications.
|
|
41
|
+
- Architecture/schema/API/contracts/interactions.
|
|
42
|
+
- No file paths.
|
|
43
|
+
- Prototype snippets allowed only if decision-rich and trimmed.
|
|
44
|
+
|
|
45
|
+
## Testing Decisions
|
|
46
|
+
|
|
47
|
+
- Good tests verify external behaviour, not implementation.
|
|
48
|
+
- Modules to test.
|
|
49
|
+
- Similar tests/prior art.
|
|
50
|
+
|
|
51
|
+
## Out of Scope
|
|
52
|
+
|
|
53
|
+
{excluded work}
|
|
54
|
+
|
|
55
|
+
## Further Notes
|
|
56
|
+
|
|
57
|
+
{other notes}
|
|
58
|
+
```
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# Agent Briefs
|
|
2
|
+
|
|
3
|
+
Agent brief = authoritative issue comment for `ready-for-agent`.
|
|
4
|
+
|
|
5
|
+
## Rules
|
|
6
|
+
|
|
7
|
+
- Durable over precise.
|
|
8
|
+
- Describe behaviour/interfaces/types/config shapes.
|
|
9
|
+
- DO NOT reference file paths or line numbers.
|
|
10
|
+
- Say what, not how.
|
|
11
|
+
- Include testable acceptance criteria.
|
|
12
|
+
- Include out-of-scope boundaries.
|
|
13
|
+
|
|
14
|
+
## Template
|
|
15
|
+
|
|
16
|
+
```markdown
|
|
17
|
+
## Agent Brief
|
|
18
|
+
|
|
19
|
+
**Category:** bug / enhancement
|
|
20
|
+
**Summary:** one-line description
|
|
21
|
+
|
|
22
|
+
**Current behavior:**
|
|
23
|
+
{what happens now}
|
|
24
|
+
|
|
25
|
+
**Desired behavior:**
|
|
26
|
+
{what should happen; include edge/error cases}
|
|
27
|
+
|
|
28
|
+
**Key interfaces:**
|
|
29
|
+
- `TypeName` — required change/contract
|
|
30
|
+
- `functionName()` return type — current vs desired
|
|
31
|
+
- Config shape — new/changed options
|
|
32
|
+
|
|
33
|
+
**Acceptance criteria:**
|
|
34
|
+
- [ ] Specific criterion 1
|
|
35
|
+
- [ ] Specific criterion 2
|
|
36
|
+
- [ ] Specific criterion 3
|
|
37
|
+
|
|
38
|
+
**Out of scope:**
|
|
39
|
+
- Excluded thing
|
|
40
|
+
- Adjacent feature not included
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Reject if vague/path-driven/missing category/current/desired/criteria/scope.
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# Out-of-Scope Knowledge Base
|
|
2
|
+
|
|
3
|
+
Path: `.out-of-scope/{concept}.md`. One file per rejected enhancement concept.
|
|
4
|
+
|
|
5
|
+
## File format
|
|
6
|
+
|
|
7
|
+
```markdown
|
|
8
|
+
# Concept Name
|
|
9
|
+
|
|
10
|
+
Decision summary.
|
|
11
|
+
|
|
12
|
+
## Why this is out of scope
|
|
13
|
+
|
|
14
|
+
Durable reason: scope, technical constraint, strategy. Include examples if useful.
|
|
15
|
+
|
|
16
|
+
## Prior requests
|
|
17
|
+
|
|
18
|
+
- #42 — "Issue title"
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Rules
|
|
22
|
+
|
|
23
|
+
- Use kebab-case filenames.
|
|
24
|
+
- Group same concept across issues.
|
|
25
|
+
- Write durable substantive reason.
|
|
26
|
+
- DO NOT use temporary capacity as reason.
|
|
27
|
+
- Only `wontfix` enhancements go here.
|
|
28
|
+
- Bugs do not go here.
|
|
29
|
+
|
|
30
|
+
## Triage flow
|
|
31
|
+
|
|
32
|
+
1. Read `.out-of-scope/*.md`.
|
|
33
|
+
2. Match by concept similarity, not keyword.
|
|
34
|
+
3. Surface possible match.
|
|
35
|
+
4. If confirmed: append issue; comment; apply `wontfix`; close.
|
|
36
|
+
5. If reconsidered: delete/update file; normal triage.
|
|
37
|
+
6. If distinct: normal triage.
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: triage
|
|
3
|
+
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.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Triage
|
|
7
|
+
|
|
8
|
+
Issue tracker + label mapping should exist; run `/setup-matt-pocock-skills` if missing.
|
|
9
|
+
|
|
10
|
+
Every posted issue/comment MUST start:
|
|
11
|
+
|
|
12
|
+
```markdown
|
|
13
|
+
> *This was generated by AI during triage.*
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## Roles
|
|
17
|
+
|
|
18
|
+
Category: `bug`, `enhancement`.
|
|
19
|
+
State: `needs-triage`, `needs-info`, `ready-for-agent`, `ready-for-human`, `wontfix`.
|
|
20
|
+
|
|
21
|
+
Rules:
|
|
22
|
+
- Each triaged issue gets exactly one category + one state.
|
|
23
|
+
- State label conflict → ask maintainer.
|
|
24
|
+
- Flow: unlabeled → `needs-triage` → other state.
|
|
25
|
+
- `needs-info` returns to `needs-triage` after reporter reply.
|
|
26
|
+
- Maintainer may override.
|
|
27
|
+
|
|
28
|
+
## Attention queue
|
|
29
|
+
|
|
30
|
+
Query tracker; show oldest first:
|
|
31
|
+
1. Unlabeled.
|
|
32
|
+
2. `needs-triage`.
|
|
33
|
+
3. `needs-info` with reporter activity after triage notes.
|
|
34
|
+
|
|
35
|
+
Show counts + one-line summaries. Let maintainer pick.
|
|
36
|
+
|
|
37
|
+
## Specific issue
|
|
38
|
+
|
|
39
|
+
1. Gather full body/comments/labels/reporter/dates; prior triage notes; relevant code/glossary/ADRs; `.out-of-scope/*.md` matches.
|
|
40
|
+
2. Recommend category + state with reasoning + codebase summary.
|
|
41
|
+
3. Wait for direction.
|
|
42
|
+
4. Bugs: attempt repro before grilling: reporter steps, code trace, tests/commands, repro result.
|
|
43
|
+
5. If underspecified, run `/grill-with-docs`.
|
|
44
|
+
6. Apply outcome.
|
|
45
|
+
|
|
46
|
+
## Outcomes
|
|
47
|
+
|
|
48
|
+
- `ready-for-agent`: post agent brief from `AGENT-BRIEF.md`.
|
|
49
|
+
- `ready-for-human`: same; include why human needed.
|
|
50
|
+
- `needs-info`: post triage notes template.
|
|
51
|
+
- `wontfix` bug: comment + close.
|
|
52
|
+
- `wontfix` enhancement: update `.out-of-scope/`, comment, close.
|
|
53
|
+
- `needs-triage`: apply role; optional progress comment.
|
|
54
|
+
|
|
55
|
+
## Quick override
|
|
56
|
+
|
|
57
|
+
1. Trust maintainer.
|
|
58
|
+
2. Confirm role/comment/close actions.
|
|
59
|
+
3. Apply labels directly.
|
|
60
|
+
4. Skip grilling.
|
|
61
|
+
5. If `ready-for-agent` without brief, ask whether to write one.
|
|
62
|
+
|
|
63
|
+
## Needs-info template
|
|
64
|
+
|
|
65
|
+
```markdown
|
|
66
|
+
## Triage Notes
|
|
67
|
+
|
|
68
|
+
**What we've established so far:**
|
|
69
|
+
|
|
70
|
+
- point 1
|
|
71
|
+
- point 2
|
|
72
|
+
|
|
73
|
+
**What we still need from you (@reporter):**
|
|
74
|
+
|
|
75
|
+
- question 1
|
|
76
|
+
- question 2
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
Rules: capture resolved info; ask specific/actionable questions; on resume, do not re-ask answered questions.
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: tweak
|
|
3
|
+
description: Direct implementation mode for small, known fixes or UI updates. Bypasses heavy diagnosis or PRD creation.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Tweak
|
|
7
|
+
|
|
8
|
+
Use for small known fixes.
|
|
9
|
+
|
|
10
|
+
1. Locate target files quickly.
|
|
11
|
+
2. Ask only if multiple identical matches.
|
|
12
|
+
3. Implement exact requested fix.
|
|
13
|
+
4. DO NOT rewrite surrounding logic unless requested.
|
|
14
|
+
5. If existing test covers touched area, run it.
|
|
15
|
+
6. DO NOT write new tests unless asked.
|
|
16
|
+
7. Confirm change.
|
|
17
|
+
8. Offer `/commit-and-document` only after user satisfied.
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: zoom-out
|
|
3
|
+
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.
|
|
4
|
+
disable-model-invocation: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
Zoom out: map relevant modules + callers at higher abstraction. Use glossary vocabulary.
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
# In Progress
|
|
2
|
+
|
|
3
|
+
Draft skills. Excluded from plugin/top README until stable.
|
|
4
|
+
|
|
5
|
+
- **[review](./review/SKILL.md)** — Review diff on Standards + Spec axes.
|
|
6
|
+
- **[writing-beats](./writing-beats/SKILL.md)** — Assemble article beat-by-beat.
|
|
7
|
+
- **[writing-fragments](./writing-fragments/SKILL.md)** — Capture raw writing fragments.
|
|
8
|
+
- **[writing-shape](./writing-shape/SKILL.md)** — Shape raw material into article.
|