skills/cmd-pr-follow-up/SKILL.md
Self-review after implementation — surface missed work, simplification opportunities, and idiomatic improvements
npx skillsauth add olshansk/agent-skills cmd-pr-follow-upInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Post-implementation reflection pass. Run after completing a task to catch loose ends and simplify before calling it done.
Default (no scope specified): diff the current branch against the repo's base branch.
Detect the base branch in order — stop at the first success:
gh repo view --json defaultBranchRef -q '.defaultBranchRef.name' 2>/dev/nullgit remote show origin 2>/dev/null | grep "HEAD branch" | cut -d: -f2 | xargsgit symbolic-ref refs/remotes/origin/HEAD 2>/dev/null | sed 's@^refs/remotes/origin/@@'Do not assume main or master. If all methods fail, ask the user.
Once resolved, run:
git diff <base>...HEAD -- ":(exclude)*.lock" ":(exclude)package-lock.json" ":(exclude)pnpm-lock.yaml" ":(exclude)package.json"
If the user specifies a scope, use the corresponding command instead:
| Scope | Command | What it covers |
|---|---|---|
| unstaged | git diff HEAD -- <excludes> | All uncommitted changes (staged + unstaged) |
| last commit / last 1 commit | git diff HEAD~1...HEAD -- <excludes> | Changes in the most recent commit |
| last N commits | git diff HEAD~N...HEAD -- <excludes> | Changes in the last N commits |
| entire repo | git ls-files \| grep -vE "\.(lock\|snap)$\|package-lock\.json\|pnpm-lock\.yaml" | All tracked source files; no diff — run all follow-up questions against the full current state of the codebase |
For all diff commands, apply: -- ":(exclude)*.lock" ":(exclude)package-lock.json" ":(exclude)pnpm-lock.yaml" ":(exclude)package.json"
file_path:line_number and fix it directly.except, mutable default args; Go: exported names that shouldn't be; JS/TS: any types that should be narrowed)Applies to block code comments, docstrings, and markdown prose ≥ 3 lines — anywhere a reader hits a paragraph-shaped wall of text. Leave 1–2 line comments alone. Do not add new comments to satisfy this rule; the default is still "no comment." Governs how multi-line blocks are written, not whether they exist.
Context:, Workflow:, Why:, Caveats:). One header per logical chunk.Before:
- Earnings SA for `CDPIdentityType` (humans): owner EOA is the user's CDP
Embedded Wallet. The signer lives client-side in the user's browser; Grove
has NO server-side signer for this EOA. The **client** deploys via
`grove-app/src/lib/wallet/ensureEarningsDeployed.ts` by sending a
paymaster-sponsored no-op UserOp. Server-side kickoff is a no-op for this
identity class — attempting it guarantees a CDP `get_account` 404 because
embedded EOAs are not Server-Wallet accounts.
After:
Earnings SA for `CDPIdentityType` (humans).
Context:
- Owner EOA is the user's CDP Embedded Wallet.
- The signer lives client-side in the user's browser; Grove has NO server-side signer for this EOA.
Workflow:
- The **client** deploys via `grove-app/src/lib/wallet/ensureEarningsDeployed.ts` by sending a paymaster-sponsored no-op UserOp.
- Server-side kickoff is a no-op for this identity class — attempting it guarantees a CDP `get_account` 404 because embedded EOAs are not Server-Wallet accounts.
Counter-check: If restructuring would inflate a 3-line comment into 12 lines of scaffolding (headers, blank lines, single-bullet sections), leave it as prose. Structure pays off when there are multiple logical chunks.
For each question where you find something actionable:
file_path:line_numberWhen there are multiple independent action items, prefer a markdown table to present them with columns like Severity, Source, Finding, and Fix.
Only use a table when it makes the review easier to scan for the user.
Do not force a table for single findings or tightly coupled issues where plain bullets are clearer.
If nothing actionable is found, say: "Clean — nothing to follow up on."
When the follow-up surfaces 3 or more distinct action items, present a numbered action menu after the findings so the user can triage at a glance:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🚀 DO ALL THE THINGS — fix everything below
🔢 PICK YOUR MENU — pick specific numbers; e.g., "1, 3, 5"
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1. 🔧 <fix description> (`file_path:line`)
2. 🔧 <fix description> (`file_path:line`)
3. ✅ <test/verify step>
4. 🎨 Run formatting: `make dev-format`
When the user says "DO ALL THE THINGS", execute ALL items in order and then show an Execution Results Matrix:
| # | Item | Status | Details |
|---|--------------------------|--------|-----------------------------|
| 1 | Fix: <description> | ✅/❌ | What was done / what failed |
| 2 | Fix: <description> | ✅/❌ | What was done / what failed |
| 3 | Formatting | ✅/❌ | Clean / N issues found |
Status icons:
| Icon | Meaning | When to use | |------|---------|-------------| | ✅ | Passed | Completed successfully | | ❌ | Failed | Ran but produced errors | | 🔴 | Blocked | Could not run (missing env, dependency) | | ⏭️ | Skipped | Intentionally skipped (not applicable) |
When the user picks specific numbers, execute only those. Always show the results matrix after execution — a wall of ✅ is still useful confirmation.
testing
Ask the agent whether it finished everything or has more to do — a lightweight completeness gate for the end of any task
development
Audit personal skills for redundancy, verbosity, weak triggers, and overlap. Runs a Claude→Codex review loop, presents per-item approval checkboxes, then applies approved edits and updates README and agent metadata. Use when asked to "review my skills", "audit my skills", "revisit my skills", or "clean up my skills". Accepts an optional skill name to scope the review to a single skill.
development
Set up or extend golden/snapshot tests for a project. Covers fixture design, Makefile targets, snapshot storage, diff workflow, and update protocol.
development
Proofread posts before publishing for spelling, grammar, repetition, logic, weak arguments, broken links, and optionally reformat for skimmability or shape the writing vibe toward a known author's style