drift-reportlisted
Install: claude install-skill leiverkus/research-superpowers
# Drift Report
Deterministic maintenance findings across three scopes — current project,
shared library, all registered projects — produced by the same script the
SessionStart hook runs. **Report-only** with one exception: the incremental
search-index update (a derived cache).
**Announce at start:** "Using drift-report to check for accumulated drift."
## How the automatic path works (so you can explain it)
At session start, `hooks/drift_check.py` compares cheap fingerprints (library
PDF count/mtimes, master-bib hash, each registered project's bib hash, the
current wiki's file count/mtimes) against `~/.cache/research-superpowers/drift-state.json`.
**Nothing changed → nothing runs, nothing is injected.** Drift is caused by
actions, not by time — in-session actions are covered by the skills that cause
them (ingest lints, add-to-library re-indexes); the hook covers what happens
out-of-band: manual VPN downloads, Nextcloud syncs from teammates, Obsidian
edits, ingests in *other* projects. The first run is a silent baseline.
Kill switch: `RESEARCH_SUPERPOWERS_NO_DRIFT_CHECK=1`.
## Manual run (this skill's job)
```bash
python3 "$CLAUDE_PLUGIN_ROOT/hooks/drift_check.py" --force --human
```
`--force` ignores the fingerprints (checks everything now — this is how you
inspect a freshly installed machine despite the silent baseline); `--human`
prints the report instead of hook JSON. Run from a project root when possible —
the wiki-lint scope only exists there.
## The checks, and w