project-spine-driftlisted
Install: claude install-skill PetriLahdelma/project-spine
# Drift detection and resolution
**Goal:** determine whether the generated files still match the current inputs, and if not, help the user pick the right fix for each drift category.
## Prerequisites
- `.project-spine/export-manifest.json` exists. If not, the project was never compiled — switch to project-spine-kickoff.
- CLI ≥ 0.8.1.
## Step 1 — run the check
From the project root:
```bash
spine drift check
```
Exit codes:
- `0` — clean; nothing to do.
- `1` — drift detected; continue.
- `2` — can't check (missing manifest, unreadable inputs); investigate before proceeding.
The command prints a summary with three counters and writes `drift-report.md` + `drift-report.json` under `.project-spine/`.
## Step 2 — interpret each drift category
### Input drift
One or more of: `brief.md`, `design-rules.md`, `tokens.json`, repo profile, or the spine hash itself changed.
**Fix:** `spine compile --brief ./brief.md --repo .` (add the same `--template`, `--design`, or `--tokens` the project uses). This regenerates all exports from the new inputs.
The `[input:tokens]` drift kind fires specifically when the design tokens JSON file (DTCG or Tokens Studio) changed — typical when the design team re-exports from Figma.
### Export hand-edits
A generated file (e.g. `AGENTS.md`) was edited manually after the last compile.
**Two valid responses — ask the user which they want:**
1. **"Accept my edits as canonical"** → the user wants the hand-edit to survive. They must edit the ups