Refire - the plate failed the pass, send it back
SkillDev toolsTurns confirmed findings from a taste into one scoped fix run, then re-verifies each finding at its cited location. Use after /sous-chef:taste when the user says to fix the findings, apply the review, or refire it. Not for new feature work - that is a fresh /sous-chef:fire.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Refire - the plate failed the pass, send it back skill
What this skill tells your AI
The instructions your AI receives, as published by tomascupr/sous-chef in skills/refire/SKILL.md and read by ahel’s review.
A refire is a fix run whose spec already exists on disk: the findings.md a taste
wrote after validating every finding. That is what makes the ticket unusually
precise - file, line, failure scenario, prescribed fix, all confirmed against the
code. Your job is to carry that precision through and then prove each finding is
actually gone.
Inputs
- Default: the
findings.mdthe most recent/sous-chef:tastewrote - its report names the path; inside/sous-chef:serveit is thefindings:line in the run'sstate.md. (Lost the path? It's the newestfindings.mdunder$SCRATCHPAD.) - Alternative: a review the user pastes or points to. Validate unfamiliar findings against the code first (taste's step 3); never refire a finding you have not confirmed yourself.
- No findings available? Say so and stop. Refire without a review is just a fire.
Preflight
Same as fire, and for the same reasons:
- Git repo with at least one commit (
git rev-parse HEAD). - The resolved worker's route preflight - resolve the worker (a leading
--with <worker>or, inside a serve, state.md'sworker:line; default Codex), then run that route's preflight from fire's--withtable. Default route:test -f ~/.codex/sous-chef.config.toml; missing means stop and offer/sous-chef:mise(Codex silently ignores a missing profile). - Mint a fresh job dir:
JOB=$(mktemp -d "$SCRATCHPAD/refire-XXXXXX")($SCRATCHPADis your session scratchpad directory; substitute its absolute path). - Snapshot the tree: save
git diffandgit status --shortinto$JOBas the baseline. The tree is usually dirty here (it holds the diff that was just tasted); that is expected; the baseline is what separates the tasted diff from the refire's changes. Then fire's step 5 verbatim -.sous-chef/into$(git rev-parse --git-path info/exclude)plus the notebook's run marker - the refire ticket carries the same<progress>block, so the worker will write.sous-chef/progress.mdhere too. - Anchor check: recompute
$(git rev-parse --short HEAD)+$(idx=$(mktemp -u); GIT_INDEX_FILE=$idx git add -A && GIT_INDEX_FILE=$idx git write-tree | cut -c1-12)and compare it to thetree:line in the findings' header. On mismatch - or notree:line at all - the tree has moved since the taste and the cited line numbers may have drifted: say so, then treat the file as an unvalidated review (the Inputs rule above) - revalidate each finding at its cited location before writing the ticket, dropping any that no longer hold.
The refire ticket
Write $JOB/ticket.md with the fire template's XML blocks, specialized:
<task>: "Fix the review findings below. Each is confirmed against the code." Then one block per finding: file:line, the defect in one sentence, the evidence (quoted code), and the prescribed fix. Taste'sfindings.mdis already in this shape - carry its CONFIRMED blocks over near-verbatim; its refuted audit-trail section is not refire input.<done_when>: every listed finding resolved at its cited location, plus the repo's verification commands passing.<files>: touch only files named in the findings. Everything else is off limits.<constraints>: fix ONLY the findings; no drive-by improvements, no refactors of surrounding code, no reformatting.<verification>: the repo's check commands.<output_contract>: CHANGED / VERIFIED / OPEN, with a per-finding line under CHANGED stating how each was resolved.
Firing and plating
Identical to fire: backgrounded run from the repo root using the resolved worker's
invocation, announce it in one line (what, which model, expected minutes, log path,
cancel offer), no polling. Same backgrounding rule as fire - never &, nohup, or
disown inside the command, or the harness reports false completion while the
worker keeps running. Fire's ledger line applies too, with "skill":"refire".
At plating, in addition to fire's outcome checks (exit code, result file present, sandbox banner):
- Open each finding's cited location and confirm the defect is gone. A finding-by-finding checklist, not a vibe.
- Run the verification commands yourself.
- Diff against the pre-refire baseline and compare the changed file set to the
ticket's
<files>Touch list, using fire's concurrent-edit rule. Name outside-list files, warnconcurrent edit detected - these changes are NOT part of this run's review, exclude them from the refire-attributed delta, and revert or flag worker out-of-scope changes. - For risky diffs, offer a confirmation
/sous-chef:taste; two clean models in a row is the strongest ship signal this kitchen produces.
Cap
One refire per taste. If a finding survives its refire, do not loop: fix it yourself or bring it back to the user with what was tried. (Same diminishing-returns rule as fire's two-delta cap.)
Signals
- GitHub stars
- 76
- Forks
- 11
- Last commit
- Aug 2026
Advanced
- Catalog kind
- skill
- Gateway key
refire- Source
- github.com/tomascupr/sous-chef