polish
Skill4 starsChanged 8 days agoMITView on GitHub
Autonomous act-then-review convergence loop: iterate /self-review passes, draining every action disposition (Auto-applicable and Agent-resolvable applied, Needs-sign-off applied on the branch) until only irreducible Needs-human-judgment forks remain, then hand off. Local-only: never pushes, never creates a PR. Pass --nested when invoked from a parent skill (such as /execute-task) that owns the handoff.
70 other projects use a version of this.
Adopted by
Most recently taken up by
- Mrbaeksang/skillstheir own version, first seen Nov 8, 2026
- Integralist/agent-skillstheir own version, first seen Nov 6, 2026
- tenequm/skillstheir own version, first seen Nov 5, 2026
- galiprandi/job-seekertheir own version, first seen Nov 5, 2026
- angusfretwell/skillstheir own version, first seen Nov 4, 2026
- theexperiencecompany/gaiatheir own version, first seen Nov 3, 2026
Used with
Projects with it also use layout, shape and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
owshq-mecSkilllayout
Improve layout, spacing, and visual rhythm. Fixes monotonous grids, inconsistent spacing, and weak visual hierarchy. Use when the user mentions layout feeling off, spacing issues, visual hierarchy, crowded UI, alignment problems, or wanting better composition.
Also in 8 projects that use this
HAR5HA-7663Skillshape
Plan the UX and UI for a feature before writing code. Runs a structured discovery interview, then produces a design brief that guides implementation. Use during the planning phase to establish design direction, constraints, and strategy before any code is written.
Also in 13 projects that use this
PeterCangSkilltokens
Count all historical Claude Code token usage across all local projects, broken down by model, project, date, and week. Includes cost estimation based on official Anthropic pricing.
Also in 3 projects that use this
arjunkshahSkillredesign
Redesign existing interfaces to premium quality while preserving product goals and functional behavior.
Also in 3 projects that use this
leonaaardobSkillmotion
Complete Motion.dev documentation - modern animation library for React, JavaScript, and Vue (formerly Framer Motion)
Also in 3 projects that use this
MicrosoftSkillreview-loop
Iterative review loop using any lens agent against any target (plan, code, design). Use when you want to run a focused review cycle: spawn a fresh reviewer subagent with a specific lens, present findings and remediation to the user, apply fixes with user guidance, and repeat until clean.
Also in 3 projects that use this
Other versions70 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 70
- talesofai/cohub★ 585same name
- educlopez/ui-craft★ 441same name
- nexmoe/DayBee★ 424same name
- nexmoe/eve★ 424same name
- Southclaws/storyden★ 348same name
- 10xChengTu/Mux0★ 337same name
- theexperiencecompany/gaia★ 325same name
- AkaraChen/aghub★ 271same name
- zacharyfmarion/openscad-studio★ 238same name
- jagrat7/linux-wallpaper-engine★ 227same name
60 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository13 other files it gives its agents.
- builderSkill
- drainSkill
- execute-taskSkill
- inceptionSkill
- mission-controlSkill
- offloadSkill
- orchestrateSkill
- resumeSkill
- self-reviewSkill
- spec-draftSkill
- spec-kickoffSkill
- spec-walkthroughSkill
- towerSkill
The file
We split this skill into the rules it gives an agent
5 rules. 0 are common, 4 are distinctive, and 1 is very specific to this project.
0
Common
Most of the 62 edited versions we read keep these.
4
Distinctive
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 29
If a rule doc does not resolve, halt with a clear message naming the missing doc and the chain consulted.
- Very specific: line 46
Read the literal flag --nested from $ARGUMENTS at the start of the run:
- Distinctive: line 98
Fold the pass into the ledger: Add every new disposition.
- Distinctive: line 107
Converged?: If the pass produced zero new dispositions (everything found was already in the ledger, or nothing was found), the loop is …
- Distinctive: line 236
After the loop exits (converged or stopped), compare these instructions against the resolved doctrine docs listed above (REQ-B3.2, D-42).
“Common” is measured: kept by at least 6 in 10 of the 62 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
/polish
The autonomous act-then-review loop (REQ-E2.1, D-12): repeat the /self-review
pass against the feature branch until it drains every action disposition and
only irreducible Needs-human-judgment forks remain, then hand off a
projection of the audit record and the file holding it in full. Polish is
local-only per the invariants below: nested /self-review passes reuse
the base pinned at pre-flight, and the skill owning PR creation carries its
checklist to the draft PR.
Doctrine
Resolve the same rule docs as /self-review, listed in the manifest
below, via scripts/resolve-rule-doc.sh <doc-name> through the core root
chain. Their definitions govern wherever this skill names a concept.
Issue one plain command per Bash call (doctrine/plugin-script-invocation.md).
If a rule doc does not resolve, halt with a clear message naming the missing
doc and the chain consulted.
Doctrine manifest (per doctrine/instruction-hygiene.md; run-start docs
load before work begins, point-of-use at the named step):
Doctrine: point-of-use discovery-rigor (nested pass's Discovery) Doctrine: point-of-use validation-rigor (nested pass's Validation) Doctrine: run-start finding-categorization Doctrine: run-start gate-wiring Doctrine: point-of-use research-rigor (the nested /self-review pass's finding-validation) Doctrine: point-of-use refactor-instinct (the nested /self-review pass's refactor filter) Doctrine: run-start security-posture Doctrine: point-of-use proportionality (nested pass's scoping)
Invocation modes
Read the literal flag --nested from $ARGUMENTS at the start of the run:
- Standalone (no flag): on exit, present the handoff to the human.
- Nested (
--nested): a parent skill (typically/execute-task, which runs Polish as its convergence step per REQ-E1.4) invoked the loop in-session and receives the handoff; the parent owns the PR body the audit record lands in.
The loop behaves identically in both modes. Nested invocation is in-session skill composition (REQ-E2.2, D-13): one session, one context, hooks fire once per actual tool call, not once per skill layer. Record the resolved mode in every iteration summary.
Pre-flight
- Resolve the doctrine docs (above).
- Require a clean working tree.
git status --porcelainmust be empty; the loop's commit boundaries (per thegate-wiringcommit discipline) are the audit trail, and uncommitted changes make them ambiguous. Dirty tree: stop and ask the human to commit or stash first (dispatched or unattended: record the unit totasks.mdAwaiting input and end the step, the pause protocol's dispatched arm); never stash or discard yourself. - Identify the base and the active kickoff brief exactly as
/self-reviewpre-flight does. Record both; with no active brief the Agent-resolvable bucket is unavailable for the whole run. - Initialize the loop ledger: an iteration counter at zero, plus the record of every finding the loop has already dispositioned (applied, resolved, applied pending sign-off, declined, queued).
Iteration loop
Each iteration:
- Run a
/self-reviewpass, nested. Invoke/self-review --nestedin-session. The pass does its own discovery, validation, routing, and dispositions per the gate wiring, and returns the audit record. Its Discovery loadsdiscovery-rigor(andrefactor-instinctat the refactor filter), its Validationvalidation-rigor,proportionality, andresearch-rigor, all point-of-use. Its Documentation lens holds todiscovery-rigor's four defect classes, so merely improvable prose is not a finding and never holds off convergence. Pass the loop ledger in: findings already dispositioned in a previous iteration are not re-routed (a declined finding stays declined; a queued fork stays queued), with one deliberate exception: a re-discovered finding whose ledger disposition is any on-branch application (applied, resolved, or applied pending sign-off) means the fix did not hold, and it counts toward the Loop detection safety condition instead of being suppressed. The signal never re-opens the item itself: a re-discovered pending-sign-off item keeps its checklist entry and its PR-review decision, and only the did-the-fix-hold signal escapes suppression. - Fold the pass into the ledger. Add every new disposition. Count the iteration's new dispositions of any kind: findings newly applied (Auto-applicable), resolved with evidence (Agent-resolvable), applied pending sign-off, declined with rationale, or queued. "New" means not already in the ledger: a re-discovered, already-dispositioned finding never counts, however it was dispositioned. ("Action dispositions" elsewhere in this skill means only the three applied-on-branch kinds; the convergence counter deliberately counts all five.)
- Check the safety conditions (below). Any trigger: stop per its row.
- Converged? If the pass produced zero new dispositions (everything found was already in the ledger, or nothing was found), the loop is drained: exit to the handoff. Otherwise print the iteration summary (iteration number, mode, brief path, new dispositions by bucket, commits created, tooling result), increment the iteration counter, and loop.
Finding fixes commit inside the pass per the gate-wiring commit
discipline (loop-level writes, such as observation fragment writes, take
their own chore commit at the iteration boundary). A fix editing only prose
is classed on finding-categorization's Prose findings axis first:
expression-only when no normative statement changes meaning, meaning-class
otherwise. A behaviour-changing Needs-sign-off fix commits alone unless the
wiring doc's shared-commit exception applies; prose-only ones batch into one
commit per iteration carrying the wiring doc's manifest, so one checklist
entry carries a sub-item per fix. Attended or unattended, a
Needs-sign-off fix is committed on the branch, never asked about first. Each
iteration's commits stand as the per-iteration audit trail.
Signed-bundle edits. Each iteration's nested pass runs the stale-anchor
pre-flight before its first edit to each Ready or Active bundle's anchored content, per
the meta-spec's writer prose (doctrine/spec-format.md, Sign-off records and
content anchors): a mismatch, an absent or unparseable entry, and a failed
recompute block that edit alike, and the loop repairs none of them: the
blocked finding queues as an irreducible fork whose route is the anchor
repair, and the iteration drains its remaining findings normally. An
expression-only fix carries its dated Changelog entry and the marked
Class: expression-only self-re-anchor entry citing that entry, in the same
commit as the edit, so the ritual never spans an iteration boundary. A
meaning-class fix stays unapplied and queued for a /spec-kickoff delta
re-walkthrough; the ledger keeps it queued rather than re-routing it on a
later iteration.
Safety conditions (mandatory handoff)
The doctrine's two pause triggers interrupt mid-iteration and follow the
gate-wiring pause protocol. Everything else below stops the loop at an
iteration boundary (the
dirty-tree check runs at pre-flight, before iteration one; its handoff
emits empty none tables):
| Condition | Trigger |
| Wider-suite failure | The project's full test/lint/type-check suite fails after an iteration's fixes and the failure cannot be resolved within the findings' own scope. |
| Loop detection | A finding the ledger records as applied on the branch (applied, resolved, or applied pending sign-off) is re-discovered in a later iteration (same location, same rule or description; the ledger exception above). |
| Iteration cap | Ten iterations completed without convergence. |
| Dirty tree | Pre-flight found uncommitted changes (stops before iteration one). |
On any safety stop: write the latest audit record to the handoff file below, name the condition, and hand off its projection. A stop never resets, stashes, or rewrites committed dispositions.
Handoff
Each iteration appends to <worktree>/.claude/polish-audit.md the loop-end
handoff in gate-wiring order. That file is this skill's artifact-side
record — the named artifact the wiring's loop-end rule allows a skill that
owns no PR body — and across the run it holds:
- The lens-coverage table from the final pass.
- In the wiring doc's formats: the four bucket tables, the declined log, and the pending-sign-off checklist regenerated from the sign-off trailers ahead of the base.
- The queued irreducible forks with their bespoke options: the only items that ask the human a question.
- The final iteration's pass summary (the per-iteration summaries cover the rest).
The file is uncommitted and gitignored, a self-draining cache in
accumulator-taxonomy's sense: overwritten at the start of each run,
appended to per iteration, never a source of truth. Writing it is not a
breach of the local-only invariants below — it is worktree state, beside the
handover brief, not a remote or a commit. Apply security-posture artifact
data-hygiene to everything written; the record reaches a committed PR body
through the parent.
The turn gets the projection, never the record. This skill's
instantiation of the wiring's loop-end rule: iterations run and the reason
the loop ended (converged, or the safety condition that fired), per-bucket
counts across the run, then the residue itself projected — each pending
sign-off and each queued fork as one line of decision and options — and the
path to the file; print each trailered commit's SHA and the command git log --format='%h
%(trailers:key=Planwright-Sign-Off,key=Planwright-Sign-Off-Rejected,separator=%x20)
%s' <base>..HEAD.
The approval act, never the ready flip, signs off
pending-sign-off items; reject one before it by its printed recipe. A safety
stop projects that same shape; the record it
points at is already written, so a stop never trades the projection for a
dump.
Standalone, put the queued forks to the human directly; /resume reads the
file at the next session start, the same ritual as the handover brief.
Nested, return that projection plus the file path: the parent skill reads the
file and folds the full record into the draft PR body it owns, where the
wiring's collapsed-is-not-abridged rule governs it, and surfaces the forks.
Local-only invariants
These hold at every step, in both modes, each list rule labelled with its
doctrine/human-gates.md kind:
- Contract: never push, create a PR, flip, merge, or write to any remote; the owning skill publishes. Remote interaction is the single read-only base-pinning fetch at pre-flight.
- Gate: pushed history stays append-only. Policy: reshape
never-pushed commits only per
unpushed_rewrite, never an iteration's audit-trail commits. - Never apply a finding in a hard-disqualifier zone without the pause protocol's human direction, however clear the fix looks.
- Never silently drop a finding: every routed finding ends in one of the five terminal dispositions, on the record.
Observations
In a repository with a spec bundle under specs/, record anything the loop
surfaced outside the branch's scope (recurring tooling or doctrine gaps,
complexity trends) as one fragment per observation through
scripts/obs-record.sh --slug <topic> --scope <repo> --text '<observation>'
(resolved under the planwright root) (REQ-E2.1, REQ-H1.6). Each iteration,
before committing its fragments, review them with the spec lens set plus a
duplication check against the store, each quoted message, named test, figure
and attribution read against its source; record every disposition, and a
refused record's recurrence or withdrawal, in the audit record, correcting
or withdrawing a falsified fragment. Commit them within that iteration (its
action commit, or a chore commit), so the tree is clean at every iteration
boundary; surface a non-zero helper exit.
Maintenance
After the loop exits (converged or stopped), compare these instructions
against the resolved doctrine docs listed above (REQ-B3.2, D-42). If a
concept this skill names has changed meaning, gained or lost a step, or moved
between docs, record a drift observation (scripts/obs-record.sh --slug
skill-drift --scope <repo> --text 'skill-drift(polish): <what>', the text
keeping that prefix; without specs/, surface the drift to the user
instead), review the fragment as the Observations step does, commit it (its
own chore commit), and tell the user what drifted; surface a non-zero helper
exit. Do not edit this skill or the doctrine
docs to resolve the drift; the accumulator's canonical reader
(/spec-draft) owns folding drift into spec amendments.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

