From example-skills
Detects stale citations, missing files, and orphan plans across CLAUDE.md and memory files; classifies findings and emits proposed diffs. Use when memory claims drift from on-disk reality.
How this skill is triggered — by the user, by Claude, or both
Slash command
/example-skills:artifact-resurfacingThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Open the drift on the table. Surface the buried artifacts — stale citations, missing referenced files, orphan plans, cross-scope memory entries pointing at paths that moved. Polish them in proposal form. Codify the lesson so the next session does not have to re-discover the same drift.
Open the drift on the table. Surface the buried artifacts — stale citations, missing referenced files, orphan plans, cross-scope memory entries pointing at paths that moved. Polish them in proposal form. Codify the lesson so the next session does not have to re-discover the same drift.
This skill is propose-not-apply for any constitutional surface. It produces drift tables, edit diffs, and IRF row proposals. It does not commit edits to CLAUDE.md, MEMORY.md, governance-rules.json, registry-v2.json, or any seed.yaml without explicit conductor authorization in the same session.
closeout. This skill does not assign DONE-NNN / IRF-XXX-NNN labels; it surfaces orphans for closeout's classifier.consolidate-memory for memory file mutations. This skill emits proposed memory diffs.cross-agent-handoff. This skill writes the polish-log entry; handoff carries it forward.qa-audit.Discovery ≠ remediation. The skill finds and proposes. The conductor applies.
MEMORY.md walkback flags ≥1 stale path citationfind for a CLAUDE.md-cited path returns zero resultsEnumerate the domain's surface. For a target CLAUDE.md or MEMORY.md, extract every:
~/-anchored)foo.py, bar(), --flag)IRF-XXX-NNN, DONE-NNN, GH#123)~/.claude/plans/*.md referenced by path)Run the citation audit:
bash scripts/audit-citations.sh <path-to-CLAUDE.md>
The script emits one JSONL record per citation: {cited, kind, exists, found_at, status}. A path is present if test -f (or test -d) succeeds. It is stale if a different path on disk holds the same canonical content (e.g., the institution moved from ~/Workspace/... to ~/Code/...). It is missing if no candidate path holds the artifact.
Run the orphan-plan scan:
bash scripts/find-orphan-plans.sh [glob]
Default glob is ~/.claude/plans/*.md. Output: one JSONL record per plan, with {path, mtime, has_done_ref, has_irf_ref, has_delivered_research_marker}. Plans lacking all three markers are orphan candidates.
Surface a four-column finding table to the user before classifying:
| artifact | cited-at | status | candidate-action |
|---|---|---|---|
| ... | ... | present | stale | missing | orphan | (proposed action, no execution yet) |
For each finding, assign one class:
(planned — not yet written, YYYY-MM-DD)) rather than reconstruction.closeout's classifier (EXECUTED / IN-PROGRESS / ABANDONED / DELIVERED-RESEARCH). This skill does not assign closure labels.For ambiguous classifications, surface the finding to the conductor and stop. Universal Rule #21 ("Do what is asked — never preempt") applies.
See references/buried-bodies-taxonomy.md for the full taxonomy with worked examples.
For each classified finding, generate a polish artifact. Never write directly to constitutional files. Emit diffs and proposals instead.
For stale citations, run the proposer:
python3 scripts/propose-citation-fix.py \
--file <path-to-CLAUDE.md-or-memory-file> \
--stale-path <wrong-path> \
--canonical-path <correct-path>
Output: a unified diff to stdout. The conductor reviews and applies (or rejects) the diff via Edit. The script never writes the file itself.
For missing-probably-never-written, emit a one-line annotation diff:
- See ~/path/to/cited-but-missing.md for details.
+ See ~/path/to/cited-but-missing.md for details (planned — not yet written as of YYYY-MM-DD).
For missing-but-lost, emit the deep-search command set first:
find /Users/4jp -name "<artifact-name>*" 2>/dev/null | grep -v node_modules
grep -rl "<artifact-keyword>" ~/.claude/projects/*/memory/*.md 2>/dev/null
grep -rl "<artifact-keyword>" ~/Code/organvm/praxis-perpetua/prompt-corpus/ 2>/dev/null
If the search returns hits, the finding reclassifies as stale-citation and the citation-fix proposer runs. If the search returns zero hits across the deep corpus, the finding reclassifies as probably-never-written and the annotation diff applies.
For orphan plans, hand the plan path to closeout with a classification request. Do not move plans to abandoned/ from this skill — closeout owns that decision.
See references/constitutional-doc-policy.md for the full rule set on what may/may not be auto-edited.
Polishing one drift instance is tactical. Codifying so the next drift self-corrects is strategic.
For each polished finding, append an entry to a polish-log.md in the affected repo's root (create if absent):
## YYYY-MM-DD — <one-line summary>
- **Artifact**: <cited-path-or-id>
- **Class**: stale-citation | missing-never-written | missing-lost | orphan-plan
- **Finding**: <what was wrong>
- **Action**: <what was proposed; "applied" or "deferred-to-conductor">
- **Authorization**: <session-id-and-approver, or "pending">
- **Codification**: <what's been added to prevent recurrence, or "none yet">
Then check for compound patterns:
CLAUDE.md autogen footer (under <!-- ORGANVM:AUTO:START --> sentinels) to assert the canonical path. The next organvm refresh will re-write it, making the truth periodic rather than ad-hoc.closeout's SKILL.md so the class is auto-recognized in future sessions.reference_<topic>_canonical_path.md memory at the workspace scope so all sibling scopes can grep-find one truth.Emit one IRF row proposal per unresolved finding (Universal Rule #1: N/A = vacuum). Format:
- id: IRF-<DOMAIN>-<NNN> # next available
title: "<artifact>: <class> drift surfaced in session <id>"
status: open
domain: <domain-code>
surfaced_by: artifact-resurfacing
resurfacing_session: <session-id-or-date>
action_required: <one line>
authorization_required_from: conductor
The IRF row is a proposal. Writing it into INST-INDEX-RERUM-FACIENDARUM.md requires conductor authorization (Universal Rule #21).
CLAUDE.md, MEMORY.md, governance-rules.json, registry-v2.json, or any seed.yaml without same-session conductor authorizationcloseout's job)~/.claude/plans/abandoned/ (also closeout's job)scripts/audit-citations.sh — citation audit; emits {cited, kind, exists, found_at, status} JSONLscripts/find-orphan-plans.sh — orphan-plan scan; emits {path, mtime, has_done_ref, has_irf_ref, has_delivered_research_marker} JSONLscripts/propose-citation-fix.py — propose-only unified diff for stale citation rewritesreferences/buried-bodies-taxonomy.md — the four classes with worked examples from this skill's genesis sessionreferences/composition-with-closeout.md — how this skill chains with /closeout (closeout discovers; this polishes)references/constitutional-doc-policy.md — the propose-not-apply rule setexamples/2026-05-17-praxis-perpetua-resurfacing.md — the genesis case: praxis-perpetua moved from ~/Workspace/meta-organvm/ to ~/Code/organvm/, leaving stale citations in pipeline CLAUDE.md + memory and three referenced-but-missing 2026-03-15 papers. The session that built this skill is the case study.CLAUDE.md "Academic & Institutional Context" block in the same session that discovered it was stale (discovery ≠ remediation — surface, do not silently fix)MEMORY.md, each is independently mutable, all need their own proposed-diff-v2 revisions when polish requires content change.Drift between memory claims, CLAUDE.md citations, and on-disk reality is the entropy of a multi-session, multi-scope, multi-repo workflow. Sessions name artifacts; artifacts move; sessions end; memory persists the old name; the next session re-discovers the same drift. Without a ritual, drift compounds until the system's self-description no longer matches the system.
The genesis session (2026-05-17) found four classes of drift in one domain (the institutional-authority / SGO / praxis-perpetua surface). Closeout caught the four as "follow-ups"; this skill exists to give those follow-ups a protocol instead of an ad-hoc fix-or-defer decision.
Pairs with closeout (which surfaces) and consolidate-memory (which prunes). Three skills, one entropy regime.
~/.claude/plans/where-on-my-local-enchanted-meerkat.md — genesis plan, Phase 2 section~/.claude/plans/closeout-2026-05-17-plugin-surface-reconciliation.md — genesis closeout~/.claude/plans/2026-05-17-handoff-plugin-surface-reconciliation.md — genesis handoffreferences/buried-bodies-taxonomy.md, references/composition-with-closeout.md, references/constitutional-doc-policy.mdnpx claudepluginhub organvm/a-i--skills --plugin coliseum-from-grainAudits Claude Code context files (CLAUDE.md, MEMORY.md, skills, agents, commands, plugins) for outdated claims, contradictions, and risky/ambiguous wording. Outputs prioritized improvement reports to .drift-reports/.
Audits Claude Code memory files for structural issues, stale rules, near-duplicates, and orphaned files. Reports findings by severity and fixes only on confirmation.
Audits CLAUDE.md, rules, and memory files for stale references, orphaned content, contradictions, duplicates, misplacement, budget overruns, and unenforced claims.