openspec-driftlisted
Install: claude install-skill mshegolev/gsd-openspec-integration
## Purpose
Every other verification level asks "did we do what the spec said?" This one asks the harder, opposite question too: "is there anything here the spec never said?" Drift is bidirectional, and the direction nobody checks — code with no requirement behind it — is where scope creep and undocumented behavior accumulate.
## Invocation conditions
- Composed by `openspec-audit` in `strict`, `release`, and `forensic` modes.
- Consumed by `openspec-verify` as its Level 6 — that skill reads this one's summary verdict and does **not** reimplement the checks inline.
- Directly, `/openspec-drift`, when a change feels like it has grown beyond its proposal.
## Required inputs
- A change-id, or "all unshipped changes" (default).
- A phase range to diff against (defaults to the phase's first commit through `HEAD`).
## Files read
- `openspec/changes/<change_id>/**` and `openspec/specs/**` (including `changes/archive/` in forensic mode)
- `.planning/openspec/TRACEABILITY.md`, `EVIDENCE.json`, `id-registry.json`
- `.planning/phases/<NN>-<slug>/**` — `OPENSPEC-LINK.md`, `PLAN.md`, `SUMMARY.md`, `VERIFICATION.md`
- `git log --oneline <phase-start-ref>..HEAD`, `git diff --stat`, `git diff` per commit
## Files this skill may write
- `.planning/openspec/DRIFT.md` (overwritten each run — a snapshot, like `AUDIT-SUMMARY.md`)
- Never writes to `openspec/`. Never writes to `EVIDENCE.json` (that is `openspec-verify`/`openspec-traceability` territory).
## Algorithm — the nine drift clas