Close session
Orchestrate the three end-of-session skills in order, applying fixes as you go, then report a single summary. This skill is the one place where fixing is pre-authorized: invoking it is the user asking you to fix what the reviews surface — so override the "report, never silently fix" default of the sub-skills for this run only.
Run quietly
The user does not want a play-by-play. Stay silent during the work except for the rare very short
status line when something needs saying (e.g. Fixing 3 a11y issues…). Emit exactly one summary
at the very end — see below. No headers, no per-step narration, no re-printing of sub-skill reports.
Steps (in order)
- Accessibility — invoke the
accessibility-reviewskill on the session's changed UI. For every confirmed WCAG violation it surfaces, apply the fix. If nothing renders UI this session (no HTML/JSX/CSS/component changes), skip with nothing to do. - Verify — run after the a11y fixes so it also catches any type/test regression they
introduced. Split the judgment from the fixing:
- Judge in isolation. Launch a read-only subagent (e.g.
Explore— it cannot edit, so it structurally can only report) that invokes theverify-changesskill and returns only its findings. The orchestrator is usually the author of this session's changes; a fresh agent judges test adequacy without that author bias, and keeps the type-check / test output out of this context. Do not invokeverify-changesinline here. - Fix inline. Apply what the subagent flags: type errors in changed files, failing tests, missing coverage for new/changed behavior. Re-run the project's real test suite (all configured runs of any multi-environment matrix) inline until green. The re-run is an objective gate — no need to re-judge in a fork; the independent judgment only needs to happen once, up front.
- Judge in isolation. Launch a read-only subagent (e.g.
- Save — invoke the
save-sessionskill last, so any learning from steps 1–2 is persisted.
If a step's fix touches source again, re-run the relevant check before moving on. Don't commit, push, or stage anything — that stays the user's call.
Final summary
One message. Terse. Cover each step in a line or two: what was fixed, or that it was already clean.
If the whole run needed no changes, All good — nothing needed fixing. is a complete and acceptable
summary. Flag anything you could not safely auto-fix (ambiguous, needs a decision) so the user
can act on it.