doc-freshness-reverse-lintlisted
Install: claude install-skill wan-huiyan/claude-ecosystem-hygiene
# Doc Freshness Reverse-Lint
## Problem
Huiyan's project docs under `docs/{research,decisions,findings,runbooks}/` contain normative
guidance. When she later corrects that guidance in `~/.claude/lessons.md` or a
`feedback_*.md` entry, the original project docs stay stale. Future Claude sessions
read them as authoritative and repeat the retracted advice.
Real example: `schuh_causal_impact/docs/research/pre_period_length_methodology.md:92,98`
referenced "sorting by p-value" after the user had already decided that approach was wrong.
## Mechanisms
### 1. Reverse-lint (primary, event-driven)
Runs when a negation rule is added to a memory file. Extracts the "don't X" phrase,
greps project docs, lists matches. Does NOT edit.
### 2. Weekly cron audit (safety net)
Scans `docs/**/*.md` for normative claims, cross-checks against recent `lessons.md`
entries, flags contradictions.
### 3. Skill freshness audit (per axiom #21)
Scans `~/.claude/skills/<name>/SKILL.md` for two explicit signals:
- **`last_verified` exceeded `staleness_window_days`** (default 90): the skill
declared a freshness contract and has aged past it. Re-verify the cited config
/ CLI surface and bump `last_verified`.
- **`scope: project-specific` without `last_verified`**: the skill declared
itself project-scoped but didn't supply the freshness contract that scope
requires. Add `last_verified: YYYY-MM-DD` (and optionally `staleness_window_days`).
Default mode is **silent unless explicit signals are p