@locksmithdon/dons-flow 2.0.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.
@@ -0,0 +1,154 @@
1
+ ---
2
+ name: setup-dons-flow
3
+ description: Use when installing or onboarding @locksmithdon/dons-flow in a repo — checks dependencies, detects Superpowers, and creates repo conventions
4
+ ---
5
+
6
+ # Setup Don's Flow
7
+
8
+ Onboard a repo to the integrated RPIV + Superpowers + `land` workflow. This skill checks prerequisites, detects what is already installed, creates the repo-owned conventions, and tells you what still needs to be done.
9
+
10
+ ## Announce at start
11
+
12
+ > "I'm using the `setup-dons-flow` skill to onboard this repo to the integrated workflow."
13
+
14
+ ## When to use
15
+
16
+ - Right after installing `@locksmithdon/dons-flow` in a repo.
17
+ - When you suspect prerequisites are missing.
18
+ - When setting up a fresh repo for this workflow.
19
+
20
+ ## Process
21
+
22
+ ### Step 1: Detect installed Pi packages
23
+
24
+ Run:
25
+
26
+ ```bash
27
+ pi list
28
+ ```
29
+
30
+ Look for:
31
+
32
+ | Package | Required? | If missing |
33
+ |---|---|---|
34
+ | `npm:@juicesharp/rpiv-pi` | Yes | `pi install npm:@juicesharp/rpiv-pi` |
35
+ | `npm:@tintinweb/pi-subagents` | Yes | `pi install npm:@tintinweb/pi-subagents` |
36
+ | `npm:@locksmithdon/dons-flow` | Yes | `pi install npm:@locksmithdon/dons-flow` |
37
+
38
+ If RPIV is installed, also run `/rpiv-setup` once and restart Pi to install RPIV's sibling plugins.
39
+
40
+ ### Step 2: Detect Superpowers
41
+
42
+ Superpowers is installed via your agent harness, not as a Pi npm package. Check one of:
43
+
44
+ - **Claude Code:** `/plugin list` should show `superpowers`
45
+ - **Codex CLI:** `/plugins` should list Superpowers
46
+ - **Gemini CLI:** `gemini extensions list` should show it
47
+ - **Skills directory:** `ls ~/.pi/agent/skills/` may contain Superpowers skills if they were copied manually
48
+
49
+ If Superpowers is not installed, ask the user which path they prefer:
50
+
51
+ 1. **Harness plugin** (recommended for most users)
52
+ 2. **Git URL** — `pi install github:obra/superpowers` if their Pi supports git URLs
53
+ 3. **Skip for now** — the closeout workflow still works without Superpowers entry points
54
+
55
+ Record the choice in `docs/memory/MEMORY.md` if this is a long-lived project.
56
+
57
+ ### Step 3: Check repo conventions
58
+
59
+ Check whether these project-owned files and folders exist:
60
+
61
+ ```bash
62
+ ls docs/tabled.md docs/status.md docs/memory/MEMORY.md docs/changes docs/retros docs/runbooks AGENTS.md 2>/dev/null
63
+ ```
64
+
65
+ Expected:
66
+
67
+ | Path | Purpose |
68
+ |---|---|
69
+ | `docs/tabled.md` | Working memory for deferred ideas |
70
+ | `docs/tabled/` | Optional per-item tabled docs |
71
+ | `docs/status.md` | Living status |
72
+ | `docs/memory/` | Persistent memory + `MEMORY.md` index |
73
+ | `docs/changes/` | As-built documentation |
74
+ | `docs/retros/` | Frozen retrospectives |
75
+ | `docs/runbooks/` | Multi-skill processes |
76
+ | `AGENTS.md` | Repo-level agent guidance |
77
+
78
+ ### Step 4: Create missing conventions
79
+
80
+ If the user approves, create missing conventions:
81
+
82
+ ```bash
83
+ mkdir -p docs/{tabled,memory,changes,retros,runbooks}
84
+ touch docs/tabled.md docs/status.md docs/memory/MEMORY.md AGENTS.md
85
+ ```
86
+
87
+ Seed `docs/status.md` with:
88
+
89
+ ```markdown
90
+ # Status
91
+
92
+ ## Active Work
93
+
94
+ - Onboarding `@locksmithdon/dons-flow`
95
+
96
+ ## Recently Completed
97
+
98
+ _None yet._
99
+
100
+ ## What's Next
101
+
102
+ _None yet._
103
+ ```
104
+
105
+ Seed `docs/memory/MEMORY.md` with:
106
+
107
+ ```markdown
108
+ # Memory Index
109
+
110
+ Cross-session context for this project.
111
+
112
+ ## Entries
113
+
114
+ _None yet._
115
+ ```
116
+
117
+ Seed `AGENTS.md` with a minimal entry pointing at this workflow:
118
+
119
+ ```markdown
120
+ # AGENTS.md
121
+
122
+ This project uses the `@locksmithdon/dons-flow` workflow:
123
+ - RPIV pipeline for discovery, research, design/plan, implement, validate, review, commit.
124
+ - Superpowers-style scope control and verification discipline.
125
+ - `land` skill for 10-step cycle closeout.
126
+
127
+ See `docs/runbooks/` for detailed processes and `docs/memory/` for project context.
128
+ ```
129
+
130
+ ### Step 5: Report status and next steps
131
+
132
+ Present a concise summary:
133
+
134
+ ```
135
+ Setup status for <repo>:
136
+
137
+ ✓ RPIV installed
138
+ ✗ @tintinweb/pi-subagents missing — run: pi install npm:@tintinweb/pi-subagents
139
+ ✓ Repo conventions created
140
+ ? Superpowers — not detected; install via harness plugin if desired
141
+
142
+ Next step: /skill:dons-flow to see the workflow map.
143
+ ```
144
+
145
+ ## Anti-patterns
146
+
147
+ - **Creating conventions without asking.** The repo belongs to the team; don't mutate its doc structure unilaterally.
148
+ - **Assuming Superpowers is installed.** It is optional and harness-specific. Always detect or ask.
149
+ - **Installing packages without confirmation.** Present the install commands; let the human run them.
150
+
151
+ ## Integration
152
+
153
+ - Called automatically on first install if an extension hook is added later.
154
+ - Should be re-run after major RPIV or Superpowers updates to refresh conventions.
@@ -0,0 +1,220 @@
1
+ ---
2
+ name: using-git-worktrees
3
+ description: Use when starting feature work that needs isolation from current workspace or before executing implementation plans - creates isolated git worktrees with smart directory selection and safety verification
4
+ ---
5
+
6
+ # Using Git Worktrees
7
+
8
+ ## Overview
9
+
10
+ Git worktrees create isolated workspaces sharing the same repository, allowing work on multiple branches simultaneously without switching.
11
+
12
+ **Core principle:** Systematic directory selection + safety verification = reliable isolation.
13
+
14
+ **Announce at start:** "I'm using the using-git-worktrees skill to set up an isolated workspace."
15
+
16
+ ## Directory Selection Process
17
+
18
+ Follow this priority order:
19
+
20
+ ### 1. Check Existing Directories
21
+
22
+ ```bash
23
+ # Check in priority order
24
+ ls -d .worktrees 2>/dev/null # Preferred (hidden)
25
+ ls -d worktrees 2>/dev/null # Alternative
26
+ ```
27
+
28
+ **If found:** Use that directory. If both exist, `.worktrees` wins.
29
+
30
+ ### 2. Check CLAUDE.md
31
+
32
+ ```bash
33
+ grep -i "worktree.*director" CLAUDE.md 2>/dev/null
34
+ ```
35
+
36
+ **If preference specified:** Use it without asking.
37
+
38
+ ### 3. Ask User
39
+
40
+ If no directory exists and no CLAUDE.md preference:
41
+
42
+ ```
43
+ No worktree directory found. Where should I create worktrees?
44
+
45
+ 1. .worktrees/ (project-local, hidden)
46
+ 2. ~/.pi/worktrees/<project-name>/ (global location)
47
+
48
+ Which would you prefer?
49
+ ```
50
+
51
+ ## Safety Verification
52
+
53
+ ### For Project-Local Directories (.worktrees or worktrees)
54
+
55
+ **MUST verify directory is ignored before creating worktree:**
56
+
57
+ ```bash
58
+ # Check if directory is ignored (respects local, global, and system gitignore)
59
+ git check-ignore -q .worktrees 2>/dev/null || git check-ignore -q worktrees 2>/dev/null
60
+ ```
61
+
62
+ **If NOT ignored:**
63
+
64
+ Per Jesse's rule "Fix broken things immediately":
65
+ 1. Add appropriate line to .gitignore
66
+ 2. Commit the change
67
+ 3. Proceed with worktree creation
68
+
69
+ **Why critical:** Prevents accidentally committing worktree contents to repository.
70
+
71
+ ### For Global Directory (~/.pi/worktrees)
72
+
73
+ No .gitignore verification needed - outside project entirely.
74
+
75
+ ## Creation Steps
76
+
77
+ ### 1. Detect Project Name
78
+
79
+ ```bash
80
+ project=$(basename "$(git rev-parse --show-toplevel)")
81
+ ```
82
+
83
+ ### 2. Create Worktree
84
+
85
+ ```bash
86
+ # Determine full path
87
+ case $LOCATION in
88
+ .worktrees|worktrees)
89
+ path="$LOCATION/$BRANCH_NAME"
90
+ ;;
91
+ ~/.pi/worktrees/*)
92
+ path="~/.pi/worktrees/$project/$BRANCH_NAME"
93
+ ;;
94
+ esac
95
+
96
+ # Create worktree with new branch
97
+ git worktree add "$path" -b "$BRANCH_NAME"
98
+ cd "$path"
99
+ ```
100
+
101
+ ### 3. Run Project Setup
102
+
103
+ Auto-detect and run appropriate setup:
104
+
105
+ ```bash
106
+ # Node.js
107
+ if [ -f package.json ]; then npm install; fi
108
+
109
+ # Rust
110
+ if [ -f Cargo.toml ]; then cargo build; fi
111
+
112
+ # Python
113
+ if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
114
+ if [ -f pyproject.toml ]; then poetry install; fi
115
+
116
+ # Go
117
+ if [ -f go.mod ]; then go mod download; fi
118
+ ```
119
+
120
+ ### 4. Verify Clean Baseline
121
+
122
+ Run tests to ensure worktree starts clean:
123
+
124
+ ```bash
125
+ # Examples - use project-appropriate command
126
+ npm test
127
+ cargo test
128
+ pytest
129
+ go test ./...
130
+ ```
131
+
132
+ **If tests fail:** Report failures, ask whether to proceed or investigate.
133
+
134
+ **If tests pass:** Report ready.
135
+
136
+ ### 5. Report Location
137
+
138
+ ```
139
+ Worktree ready at <full-path>
140
+ Tests passing (<N> tests, 0 failures)
141
+ Ready to implement <feature-name>
142
+ ```
143
+
144
+ ## Quick Reference
145
+
146
+ | Situation | Action |
147
+ |-----------|--------|
148
+ | `.worktrees/` exists | Use it (verify ignored) |
149
+ | `worktrees/` exists | Use it (verify ignored) |
150
+ | Both exist | Use `.worktrees/` |
151
+ | Neither exists | Check CLAUDE.md → Ask user |
152
+ | Directory not ignored | Add to .gitignore + commit |
153
+ | Tests fail during baseline | Report failures + ask |
154
+ | No package.json/Cargo.toml | Skip dependency install |
155
+
156
+ ## Common Mistakes
157
+
158
+ ### Skipping ignore verification
159
+
160
+ - **Problem:** Worktree contents get tracked, pollute git status
161
+ - **Fix:** Always use `git check-ignore` before creating project-local worktree
162
+
163
+ ### Assuming directory location
164
+
165
+ - **Problem:** Creates inconsistency, violates project conventions
166
+ - **Fix:** Follow priority: existing > CLAUDE.md > ask
167
+
168
+ ### Proceeding with failing tests
169
+
170
+ - **Problem:** Can't distinguish new bugs from pre-existing issues
171
+ - **Fix:** Report failures, get explicit permission to proceed
172
+
173
+ ### Hardcoding setup commands
174
+
175
+ - **Problem:** Breaks on projects using different tools
176
+ - **Fix:** Auto-detect from project files (package.json, etc.)
177
+
178
+ ## Example Workflow
179
+
180
+ ```
181
+ You: I'm using the using-git-worktrees skill to set up an isolated workspace.
182
+
183
+ [Check .worktrees/ - exists]
184
+ [Verify ignored - git check-ignore confirms .worktrees/ is ignored]
185
+ [Create worktree: git worktree add .worktrees/auth -b feature/auth]
186
+ [Run npm install]
187
+ [Run npm test - 47 passing]
188
+
189
+ Worktree ready at /Users/jesse/myproject/.worktrees/auth
190
+ Tests passing (47 tests, 0 failures)
191
+ Ready to implement auth feature
192
+ ```
193
+
194
+ ## Red Flags
195
+
196
+ **Never:**
197
+ - Create worktree without verifying it's ignored (project-local)
198
+ - Skip baseline test verification
199
+ - Proceed with failing tests without asking
200
+ - Assume directory location when ambiguous
201
+ - Skip CLAUDE.md check
202
+
203
+ **Always:**
204
+ - Follow directory priority: existing > CLAUDE.md > ask
205
+ - Verify directory is ignored for project-local
206
+ - Auto-detect and run project setup
207
+ - Verify clean test baseline
208
+
209
+ ## Integration
210
+
211
+ **Called by:**
212
+ - **dons-flow** — recommended before `/skill:implement` when working on a feature branch
213
+ - **any skill needing an isolated workspace**
214
+
215
+ **Also pairs with:**
216
+ - RPIV `/skill:implement` — use a worktree for long-running or multi-phase implementation
217
+ - RPIV `/skill:blueprint` or `/skill:plan` — set up the worktree after the plan is ready
218
+
219
+ **Pairs with:**
220
+ - **finishing-a-development-branch** - REQUIRED for cleanup after work complete
@@ -0,0 +1,139 @@
1
+ ---
2
+ name: verification-before-completion
3
+ description: Use when about to claim work is complete, fixed, or passing, before committing or creating PRs - requires running verification commands and confirming output before making any success claims; evidence before assertions always
4
+ ---
5
+
6
+ # Verification Before Completion
7
+
8
+ ## Overview
9
+
10
+ Claiming work is complete without verification is dishonesty, not efficiency.
11
+
12
+ **Core principle:** Evidence before claims, always.
13
+
14
+ **Violating the letter of this rule is violating the spirit of this rule.**
15
+
16
+ ## The Iron Law
17
+
18
+ ```
19
+ NO COMPLETION CLAIMS WITHOUT FRESH VERIFICATION EVIDENCE
20
+ ```
21
+
22
+ If you haven't run the verification command in this message, you cannot claim it passes.
23
+
24
+ ## The Gate Function
25
+
26
+ ```
27
+ BEFORE claiming any status or expressing satisfaction:
28
+
29
+ 1. IDENTIFY: What command proves this claim?
30
+ 2. RUN: Execute the FULL command (fresh, complete)
31
+ 3. READ: Full output, check exit code, count failures
32
+ 4. VERIFY: Does output confirm the claim?
33
+ - If NO: State actual status with evidence
34
+ - If YES: State claim WITH evidence
35
+ 5. ONLY THEN: Make the claim
36
+
37
+ Skip any step = lying, not verifying
38
+ ```
39
+
40
+ ## Common Failures
41
+
42
+ | Claim | Requires | Not Sufficient |
43
+ |-------|----------|----------------|
44
+ | Tests pass | Test command output: 0 failures | Previous run, "should pass" |
45
+ | Linter clean | Linter output: 0 errors | Partial check, extrapolation |
46
+ | Build succeeds | Build command: exit 0 | Linter passing, logs look good |
47
+ | Bug fixed | Test original symptom: passes | Code changed, assumed fixed |
48
+ | Regression test works | Red-green cycle verified | Test passes once |
49
+ | Agent completed | VCS diff shows changes | Agent reports "success" |
50
+ | Requirements met | Line-by-line checklist | Tests passing |
51
+
52
+ ## Red Flags - STOP
53
+
54
+ - Using "should", "probably", "seems to"
55
+ - Expressing satisfaction before verification ("Great!", "Perfect!", "Done!", etc.)
56
+ - About to commit/push/PR without verification
57
+ - Trusting agent success reports
58
+ - Relying on partial verification
59
+ - Thinking "just this once"
60
+ - Tired and wanting work over
61
+ - **ANY wording implying success without having run verification**
62
+
63
+ ## Rationalization Prevention
64
+
65
+ | Excuse | Reality |
66
+ |--------|---------|
67
+ | "Should work now" | RUN the verification |
68
+ | "I'm confident" | Confidence ≠ evidence |
69
+ | "Just this once" | No exceptions |
70
+ | "Linter passed" | Linter ≠ compiler |
71
+ | "Agent said success" | Verify independently |
72
+ | "I'm tired" | Exhaustion ≠ excuse |
73
+ | "Partial check is enough" | Partial proves nothing |
74
+ | "Different words so rule doesn't apply" | Spirit over letter |
75
+
76
+ ## Key Patterns
77
+
78
+ **Tests:**
79
+ ```
80
+ ✅ [Run test command] [See: 34/34 pass] "All tests pass"
81
+ ❌ "Should pass now" / "Looks correct"
82
+ ```
83
+
84
+ **Regression tests (TDD Red-Green):**
85
+ ```
86
+ ✅ Write → Run (pass) → Revert fix → Run (MUST FAIL) → Restore → Run (pass)
87
+ ❌ "I've written a regression test" (without red-green verification)
88
+ ```
89
+
90
+ **Build:**
91
+ ```
92
+ ✅ [Run build] [See: exit 0] "Build passes"
93
+ ❌ "Linter passed" (linter doesn't check compilation)
94
+ ```
95
+
96
+ **Requirements:**
97
+ ```
98
+ ✅ Re-read plan → Create checklist → Verify each → Report gaps or completion
99
+ ❌ "Tests pass, phase complete"
100
+ ```
101
+
102
+ **Agent delegation:**
103
+ ```
104
+ ✅ Agent reports success → Check VCS diff → Verify changes → Report actual state
105
+ ❌ Trust agent report
106
+ ```
107
+
108
+ ## Why This Matters
109
+
110
+ From 24 failure memories:
111
+ - your human partner said "I don't believe you" - trust broken
112
+ - Undefined functions shipped - would crash
113
+ - Missing requirements shipped - incomplete features
114
+ - Time wasted on false completion → redirect → rework
115
+ - Violates: "Honesty is a core value. If you lie, you'll be replaced."
116
+
117
+ ## When To Apply
118
+
119
+ **ALWAYS before:**
120
+ - ANY variation of success/completion claims
121
+ - ANY expression of satisfaction
122
+ - ANY positive statement about work state
123
+ - Committing, PR creation, task completion
124
+ - Moving to next task
125
+ - Delegating to agents
126
+
127
+ **Rule applies to:**
128
+ - Exact phrases
129
+ - Paraphrases and synonyms
130
+ - Implications of success
131
+ - ANY communication suggesting completion/correctness
132
+
133
+ ## The Bottom Line
134
+
135
+ **No shortcuts for verification.**
136
+
137
+ Run the command. Read the output. THEN claim the result.
138
+
139
+ This is non-negotiable.
@@ -0,0 +1,64 @@
1
+ ---
2
+ name: writing-retros
3
+ description: Use at milestone close to produce a retrospective — four-section format (keep doing / stop or change / promote to artifact / commit to memory) with concrete, owned action items
4
+ ---
5
+
6
+ # Writing Retros
7
+
8
+ ## Overview
9
+
10
+ A retrospective at milestone close is the culmination of continuous reflection, not a replacement for it. Tabled entries have been processed throughout execution; end-of-artifact checkpoints have fed back into the next artifact. The retro captures what the milestone *as a whole* teaches us, and converts it into concrete, owned action items.
11
+
12
+ **Announce at start:** "I'm using the writing-retros skill to produce the retro for `<milestone>`."
13
+
14
+ ## Output
15
+
16
+ One file: `docs/retros/YYYY-MM-DD-<milestone>.md`. **Frozen at commit.** Future amendments go into a new retro, not this one — inline edits to a retro erode its value as an episodic record.
17
+
18
+ ## The four sections
19
+
20
+ Every retro has exactly these sections, in this order:
21
+
22
+ 1. **Keep doing.** What worked and should continue. Name the practice, not just the outcome. ("Epiphany-tabling to `tabled.md`" is actionable; "M1 went well" is not.)
23
+ 2. **Stop or change.** What did not work and should adjust. Be specific about the pain and the proposed change.
24
+ 3. **Promote to artifact.** Patterns worth extracting into skills, runbooks, scripts, memory entries, or as-built sections. Cross-reference the **promotion rule** (see `capturing-learnings`) — each item here should have at least one prior sighting the retro can point at.
25
+ 4. **Commit to memory.** What, if anything, belongs in the cross-conversation memory system at `docs/memory/`. Often a subset of §3; sometimes its own distinct item. Announce writes (see AGENTS.md).
26
+
27
+ Optional lightweight sections at the end (appendix-style): headline stats, acknowledgements, historical context. Keep them short.
28
+
29
+ ## Action items
30
+
31
+ Every retro ends with **concrete, owned action items** — not essays. Each item has:
32
+
33
+ - A specific outcome (a file to change, an artifact to create, a decision to make).
34
+ - An owner (a session, a date, a person) — or an explicit "by next milestone."
35
+ - Enough context for someone who didn't run the retro to execute the item.
36
+
37
+ If the action-item list is large enough to risk the retro becoming a working document rather than an episodic record, **split the execution into a separate closeout doc** (e.g., `docs/m1-closeout.md`) and reference it from §5. The retro stays frozen; the closeout doc is the working artifact.
38
+
39
+ ## Process
40
+
41
+ 1. **Gather inputs.**
42
+ - `docs/tabled.md` — every entry is a candidate for one of the four sections or for processing during retro review.
43
+ - The as-built (if already drafted) or the spec + plan + git log (if not).
44
+ - Memory writes made during the milestone.
45
+ - Any explicit "save this for retro" notes from the user during execution.
46
+
47
+ 2. **Draft top-to-bottom.** Short, specific bullets under each section. Avoid the urge to write prose paragraphs — retros are scannable lists.
48
+
49
+ 3. **Review with the user before committing.** Retros are frozen at commit, so the review *must* happen first. Expect the user to expand the action-item set — that is normal; the retro is a conversation starter, not a monologue.
50
+
51
+ 4. **Commit.** One file, one commit. After this point, do **not** rewrite the retro inline; if paths or references later need updating, add a note at the top and point at the source of truth.
52
+
53
+ ## Common failure modes
54
+
55
+ - **Meta-theater.** Reflection that produces more reflection rather than better work. If a section has no concrete output, either it does not belong in the retro or the work to produce the output hasn't happened. Name the missing action item; don't paper over it.
56
+ - **Silent drift.** Practices on paper diverging from practices in use. The retro only catches this if honest — don't smooth over what went wrong.
57
+ - **Stale references.** A frozen retro loses value when the paths it references move. Either update the paths at the close *before* commit, or add a dated note at the top after commit — never rewrite inline.
58
+ - **Undifferentiated "stop or change."** Generic complaints without a proposed change aren't retro content. If you can't name what to try differently, that's a candidate for §3 "promote to artifact" or for a deliberate drop.
59
+
60
+ ## Related practices
61
+
62
+ - `capturing-learnings` — promotion rule; how §3 items become skills/runbooks/memory.
63
+ - `epiphany-tabling` — the in-flight practice that feeds retro content.
64
+ - `as-built-documentation` — the permanent record of what shipped (retros and as-builts are complementary: retros capture *how* we worked; as-builts capture *what* we built).