@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.
Files changed (89) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +326 -0
  3. package/bin/zoo-flow.js +358 -0
  4. package/package.json +44 -0
  5. package/templates/full/.roo/commands/caveman.md +7 -0
  6. package/templates/full/.roo/commands/commit-and-document.md +202 -0
  7. package/templates/full/.roo/commands/diagnose.md +7 -0
  8. package/templates/full/.roo/commands/explore.md +13 -0
  9. package/templates/full/.roo/commands/feature.md +24 -0
  10. package/templates/full/.roo/commands/fix.md +19 -0
  11. package/templates/full/.roo/commands/grill-me.md +7 -0
  12. package/templates/full/.roo/commands/grill-with-docs.md +7 -0
  13. package/templates/full/.roo/commands/handoff.md +8 -0
  14. package/templates/full/.roo/commands/improve-codebase-architecture.md +7 -0
  15. package/templates/full/.roo/commands/prototype.md +9 -0
  16. package/templates/full/.roo/commands/refactor.md +17 -0
  17. package/templates/full/.roo/commands/setup-matt-pocock-skills.md +7 -0
  18. package/templates/full/.roo/commands/tdd.md +9 -0
  19. package/templates/full/.roo/commands/to-issues.md +7 -0
  20. package/templates/full/.roo/commands/to-prd.md +7 -0
  21. package/templates/full/.roo/commands/triage.md +7 -0
  22. package/templates/full/.roo/commands/tweak.md +9 -0
  23. package/templates/full/.roo/commands/update-docs.md +130 -0
  24. package/templates/full/.roo/commands/write-a-skill.md +7 -0
  25. package/templates/full/.roo/commands/zoom-out.md +7 -0
  26. package/templates/full/.roo/rules/00-paths.md +17 -0
  27. package/templates/full/.roo/rules/01-command-protocol.md +25 -0
  28. package/templates/full/.roo/rules/03-manual-reply-protocol.md +13 -0
  29. package/templates/full/.roo/rules-code-tweaker/00-scope.md +7 -0
  30. package/templates/full/.roo/rules-code-tweaker/01-completion.md +14 -0
  31. package/templates/full/.roo/rules-custom-orchestrator/00-routing.md +14 -0
  32. package/templates/full/.roo/rules-custom-orchestrator/01-delegation-message.md +12 -0
  33. package/templates/full/.roo/rules-system-architect/00-scope.md +9 -0
  34. package/templates/full/.roo/rules-system-architect/01-feature-prototype.md +10 -0
  35. package/templates/full/.roo/rules-system-architect/02-completion.md +11 -0
  36. package/templates/full/.roo/skills/docs/adr/0001-explicit-setup-pointer-only-for-hard-dependencies.md +18 -0
  37. package/templates/full/.roo/skills/engineering/README.md +12 -0
  38. package/templates/full/.roo/skills/engineering/diagnose/SKILL.md +73 -0
  39. package/templates/full/.roo/skills/engineering/diagnose/scripts/hitl-loop.template.sh +41 -0
  40. package/templates/full/.roo/skills/engineering/grill-with-docs/ADR-FORMAT.md +33 -0
  41. package/templates/full/.roo/skills/engineering/grill-with-docs/CONTEXT-FORMAT.md +45 -0
  42. package/templates/full/.roo/skills/engineering/grill-with-docs/SKILL.md +32 -0
  43. package/templates/full/.roo/skills/engineering/improve-codebase-architecture/DEEPENING.md +24 -0
  44. package/templates/full/.roo/skills/engineering/improve-codebase-architecture/HTML-REPORT.md +88 -0
  45. package/templates/full/.roo/skills/engineering/improve-codebase-architecture/INTERFACE-DESIGN.md +45 -0
  46. package/templates/full/.roo/skills/engineering/improve-codebase-architecture/LANGUAGE.md +34 -0
  47. package/templates/full/.roo/skills/engineering/improve-codebase-architecture/SKILL.md +43 -0
  48. package/templates/full/.roo/skills/engineering/prototype/LOGIC.md +28 -0
  49. package/templates/full/.roo/skills/engineering/prototype/SKILL.md +27 -0
  50. package/templates/full/.roo/skills/engineering/prototype/UI.md +53 -0
  51. package/templates/full/.roo/skills/engineering/setup-matt-pocock-skills/SKILL.md +77 -0
  52. package/templates/full/.roo/skills/engineering/setup-matt-pocock-skills/domain.md +36 -0
  53. package/templates/full/.roo/skills/engineering/setup-matt-pocock-skills/issue-tracker-github.md +21 -0
  54. package/templates/full/.roo/skills/engineering/setup-matt-pocock-skills/issue-tracker-gitlab.md +23 -0
  55. package/templates/full/.roo/skills/engineering/setup-matt-pocock-skills/issue-tracker-local.md +20 -0
  56. package/templates/full/.roo/skills/engineering/setup-matt-pocock-skills/triage-labels.md +11 -0
  57. package/templates/full/.roo/skills/engineering/tdd/SKILL.md +52 -0
  58. package/templates/full/.roo/skills/engineering/tdd/deep-modules.md +9 -0
  59. package/templates/full/.roo/skills/engineering/tdd/interface-design.md +6 -0
  60. package/templates/full/.roo/skills/engineering/tdd/mocking.md +17 -0
  61. package/templates/full/.roo/skills/engineering/tdd/refactoring.md +9 -0
  62. package/templates/full/.roo/skills/engineering/tdd/tests.md +12 -0
  63. package/templates/full/.roo/skills/engineering/to-issues/SKILL.md +45 -0
  64. package/templates/full/.roo/skills/engineering/to-prd/SKILL.md +58 -0
  65. package/templates/full/.roo/skills/engineering/triage/AGENT-BRIEF.md +43 -0
  66. package/templates/full/.roo/skills/engineering/triage/OUT-OF-SCOPE.md +37 -0
  67. package/templates/full/.roo/skills/engineering/triage/SKILL.md +79 -0
  68. package/templates/full/.roo/skills/engineering/tweak/SKILL.md +17 -0
  69. package/templates/full/.roo/skills/engineering/zoom-out/SKILL.md +7 -0
  70. package/templates/full/.roo/skills/in-progress/README.md +8 -0
  71. package/templates/full/.roo/skills/in-progress/review/SKILL.md +39 -0
  72. package/templates/full/.roo/skills/in-progress/writing-beats/SKILL.md +32 -0
  73. package/templates/full/.roo/skills/in-progress/writing-fragments/SKILL.md +45 -0
  74. package/templates/full/.roo/skills/in-progress/writing-shape/SKILL.md +50 -0
  75. package/templates/full/.roo/skills/misc/README.md +6 -0
  76. package/templates/full/.roo/skills/misc/git-guardrails-claude-code/SKILL.md +64 -0
  77. package/templates/full/.roo/skills/misc/git-guardrails-claude-code/scripts/block-dangerous-git.sh +25 -0
  78. package/templates/full/.roo/skills/misc/migrate-to-shoehorn/SKILL.md +37 -0
  79. package/templates/full/.roo/skills/misc/scaffold-exercises/SKILL.md +61 -0
  80. package/templates/full/.roo/skills/misc/setup-pre-commit/SKILL.md +62 -0
  81. package/templates/full/.roo/skills/personal/README.md +6 -0
  82. package/templates/full/.roo/skills/personal/edit-article/SKILL.md +13 -0
  83. package/templates/full/.roo/skills/personal/obsidian-vault/SKILL.md +39 -0
  84. package/templates/full/.roo/skills/productivity/README.md +6 -0
  85. package/templates/full/.roo/skills/productivity/caveman/SKILL.md +28 -0
  86. package/templates/full/.roo/skills/productivity/grill-me/SKILL.md +13 -0
  87. package/templates/full/.roo/skills/productivity/handoff/SKILL.md +14 -0
  88. package/templates/full/.roo/skills/productivity/write-a-skill/SKILL.md +52 -0
  89. 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.
@@ -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.
@@ -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`.
@@ -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,9 @@
1
+ # Deep Modules
2
+
3
+ - Deep module = small interface, large hidden implementation.
4
+ - Shallow module = interface nearly as complex as implementation. Avoid.
5
+
6
+ Interface checks:
7
+ - Shrink method count?
8
+ - Simplify params?
9
+ - Move complexity behind interface?
@@ -0,0 +1,6 @@
1
+ # Interface Design for Testability
2
+
3
+ Rules:
4
+ 1. Accept deps; DO NOT create internally.
5
+ 2. Return results; DO NOT hide outcomes in side effects.
6
+ 3. Keep surface small: fewer methods/params.
@@ -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.