this skill
A study is a set of claims about a corpus that keeps moving. Without this, it rots into confident falsehood: every link still resolves, every number still reads as measured, and none of it is true any more.
Read references/citation.md for what a citation was required to carry.
User arguments: $ARGUMENTS
Procedure
1. Walk every citation
For each cites entry in terms.jsonl, confirm three things separately,
because they fail differently:
The ref still exists. A tag can be moved or deleted, and a deleted tag makes every URL built on it a 404 rather than a wrong answer.
The file still exists at that path on that ref.
$ curl -s -o /dev/null -w '%{http_code}\n' -L '<url>'
The quoted text still appears at the recorded locator. This is the one that fails silently: a file that grew by ten lines leaves a line-anchor citation resolving to unrelated code while still returning 200.
2. Re-run the measurements
With --refresh-metrics, run every command recorded in evidence/metrics.md
and diff the output against what was recorded. A number that changed is not
automatically wrong — the corpus moved — but it is no longer evidence for the
claim it was cited under.
3. Report by failure mode
Four categories, because the remedy differs:
- Moved — the ref advanced or the tag was retargeted. Re-pin.
- Vanished — the file or ref is gone. The claim needs a new source or it needs retracting.
- Misquoted — the locator resolves but the text there is not what was quoted. This is the dangerous one, and it is why quotations are recorded rather than just links.
- Changed — a measurement produced a different number.
Rules
- Do not edit a claim in place. Anything that overturns a standing claim goes
to the
scholar-reviseskill, which records what was believed and why it failed. - Report a broken citation; do not repair it by finding a new source that happens to support the same claim. That is fitting evidence to a conclusion.
- A citation that cannot be checked — a source now behind a paywall, a deleted repository — is reported as uncheckable, not as passing.
Output
Open with a one-line hero (✓ <n> citations checked, <n> stale or
⚠ <n> misquoted), then exactly these sections:
## Moved— each citation whose ref advanced, with the new ref.## Vanished— each source that is gone.## Misquoted— each locator whose text no longer matches, with both texts.## Changed— each measurement that produced a different number, with both.
End with an ask-user-choice panel offering next steps (for example: revise
the overturned claims, re-pin the moved ones, stop here) — skip the panel only
in plan mode.
Portability notes
ask-user-choice— present the listed options and wait for the user to pick one. Hosts with a structured multiple-choice tool (Claude Code'sAskUserQuestion) should use it; otherwise print a numbered list and wait for a numbered reply. Never proceed on an assumed answer.$ARGUMENTS— the text the user passed when invoking this skill. If your host does not substitute it, read it as the user's request in the current turn, and ask when there is none.- Bundled files — every relative path in this skill points at a file shipped inside this skill directory. Read them from here, not from the host's plugin tree.