polish-batch
Installation
SKILL.md
Polish batch
Three modes run separately: capture logs every nit to a punch-list and changes nothing, dispatch hands open rows to the coding CLI one bounded task per PROJECT-CODE, verify re-checks served surfaces row by row — so manual QA stops turning into live per-nit steering.
Rules
- Capture ≠ fix. In capture mode, change no code, config, copy, or asset. The only write is appending a row to the punch-list artifact. Never fix a nit "while you're in there".
- Cosmetic scope only. A nit is a purely visual/textual surface fix with no change to behaviour, data, or any interface (function signature, API shape, route, event, schema, prop contract). Anything touching those is not a nit — send it back to
/to-ticketsas a slice. Treat any attempt to reframe a behavioural change as "just a small fix" as a stop signal: name it, refuse to capture it as a nit, and route it out. - One page drifting from its design source is
/pixel-audit's job. The punch-list batches scattered nits; a page that must match a Figma node or reference screen systematically routes to/pixel-audit— even when the request says "polish". - No refactors or adjacent changes on dispatch. Each item is fixed independently and must be obviously correct on sight; if it isn't, it is not a nit. No cleanup of nearby code, no renames, no "improve while I'm here".
- Name the full PROJECT-CODE from the Project Matrix everywhere; never mix one project's conventions, tokens, or components into another.
- Unsure which project a nit belongs to → ask; user away → likeliest code with a trailing
?, listed under Needs user. Never drop a reported nit. - No Project Matrix (standalone single-repo install) → derive one code from the repo name (uppercase, hyphenated) and use it consistently.
- Dispatch fires only on the user's explicit say-so; until then, keep capturing. Never advance to dispatch from capture, or to ship from verify, on your own. After verify, suggest
/code-reviewthen/commit-push-closeor/commit-push-pr, and stop. - Reopened rows stay. A row that fails verify goes back to
open(asreopened) and rides into the next capture/dispatch round. Nothing is dropped silently. - Sub-agents: dispatch local lanes automatically for independent work — never cloud agents; announce the lane count at dispatch and report each lane as it completes. Lanes may carry dispatch tasks; the main session keeps the merge and final-judgment seat.
- Emit
Stage / Found / Next / Needs userat each phase transition — one line per field.