Use when finishing a PR — before or right after merge. Fires on: "close the PR", "wrap up this PR", "PR is green", "move this to history". Moves finished work out of the live status file into the archive, runs a docs freshness pass, and squash-merges once CI is green.
SkillScore74Maintained
Automatic
◆Coding pack
Last verified 8/9/2026
What it changes
Passed 14 of 19 test cases with the skill, and 7 of 19 without it.
Without skill39%
With skill74%
Checks it passed that the model alone missed
The check-drift skill must be run before attempting any merge operation.
The dependent consumer list section named §who-uses-me is audited for updates.
The Markdown template contains a `Closes #` placeholder line for linking issues.
and 6 more in the full report
8 fixed9 passed either way6 still failing0 broke
Pass-rate lift
+35 pp
Tokens
+19%
Agent turns
0%
Response time
-35%
Model gemini-3.6-flashMeasured 8/9/2026v217 of 23 cases passed with skill · 19 comparable
Tokens, turns and time describe resource use, not a dollar price.
See it in action
One of 7 test cases the skill fixed. Same model, same prompt, with and without the skill.
1 of 7
Prompt
PR #33 changed exported helper functions in the common-utils module. Which specific section in dependent module READMEs needs to be audited during the freshness pass?
What was checked, without and with the skill
Checked
Without skill
With skill
The dependent consumer list section named §who-uses-me is audited for updates.
Missed
Passed
case-16 · gemini-3.6-flash · 8/9/2026 · answers are capped and redacted
What's inside
The instructions your model reads when the skill loads.
SKILL.md44 linessingle file
close-pr — keep the live status lean, land on green
The live status file is read in full every session, so finished work must not
accumulate there. Closing a PR is a mechanical ritual — this is it.
Procedure
Move status → history: cut the completed items out of the live status
file (e.g. plans/STATUS.md) and append a terse timeline row to the archive
(e.g. plans/HISTORY.md): date · milestone · → domain plan + PR. Never leave
✅ DONE bullets in the live "Now" section — that append-only drift is exactly
what bloats it.
Detail lives at the source: the authoritative "what was done" is the
domain plan + module README. Status/history only link to them; do not
duplicate detail.
Freshness pass over the blind spots nothing else forces a look at:
root README status line + layout,
the closed domain's module README status headers,
any consumer's §who-uses-me list you touched.
Epic closer? Widen the sweep. If this PR ships the last slice of a
multi-PR epic — signals: it flips the last open [ ] action item of an ADR /
design doc to [x], the PR body closes #<epic-issue>, or it's the final
numbered slice — then a single-slice freshness pass is not enough. This is the
classic drift: a mid-epic slice updates the authoritative source, but the
summaries scattered across the repo lag, and the final slice never triggers a
"the whole epic is done now" sweep. So:
Keep one source of truth per epic status (the ADR header, or the roadmap
bullet; the live status file while in flight). Flip that to complete.
Every other doc that mentions the epic must link, not restate — sweep the
root README status list, any plan index/map (keep it statusless), the domain
plan header, and the ADR's own status line so none still says "in flight" /
"deferred". Fewer restatements is the fix, not more edits.
Consult the repo's coupling registry (e.g. .skills/change-map.yaml) for which
summary docs are wired to that epic.
Drift gate: run the check-drift skill. Do not merge with open drift.
Merge on green: confirm CI is green, then squash-merge and delete the
branch (only if the project authorizes self-merge — check its rules first).
Never direct-push to the default branch.