auditlisted
Install: claude install-skill nhhthong/clio
**Run only when the user asked for it, this turn** — by slash command, or in plain words ("is the
plan still right?", "check the specs against the plans"). Clio's drift nudge is about `/clio:memo`
and is not a trigger for this. Unsure → ask in one line, don't run.
Mode (may be empty): $ARGUMENTS — anything other than `--fix` is a **report**.
`requirements.md` says what was decided. `docs/plans/*.md` says how it gets built. The ledgers say
what was built and what is owed. Each is written by a different command at a different time, so they
drift, and the drift is silent: a spec row can move months after its area was planned and every later
session will read a plan that no longer matches the decision.
This skill finds that. It **writes no plan itself** — `/clio:plan` is the only writer of
`docs/plans/*.md`, and the rules for re-planning around a ticked row live there. With `--fix` this
skill runs `/clio:plan <area>` for the areas that drifted, and only those.
## 1. Read the three layers
```bash
"${CLAUDE_PLUGIN_ROOT}"/skills/memo/scripts/validate.sh all # schema first; a FAIL here outranks any drift
awk -F'|' 'NF>4 && $2 ~ /^ *[0-9.]+ *$/ {gsub(/^ +| +$/,"",$2); print $2"\t"$5}' \
.claude/docs/specs/requirements.md # row → decision marker
awk -F'|' 'NF>5 && $2 ~ /^ *[0-9.]+ *$/ {gsub(/^ +| +$/,"",$2); print FILENAME"\t"$2"\t"$4"\t"$7}' \
.claude/docs/plans/*.md # plan → id, req, Done
jq -s -c 'group_by