| name | notebook-lint |
| description | Health check for the notebook vault. Runs 9 checks (orphans, dead wikilinks, stale journals, uncompiled raw cards, aging concepts, index drift, missing frontmatter, graduation candidates, append-only log invariants) and writes a dated report to wiki/meta/. Use when running /notebook-lint, auditing notebook health, or deciding which concepts are ready to graduate. |
| updated | "2026-05-08T00:00:00.000Z" |
notebook-lint
Report-only health audit for the personal notebook vault. Auto-fix is out of scope — surface issues, let the user decide.
Scope Gate (mandatory)
The marker is raw/.manifest.json — it is notebook-unique. Don't substitute wiki/_hot.md; it is a weaker signal and can exist in other vaults.
[ -f raw/.manifest.json ] || { echo "Not a notebook vault — cd into the vault root first"; exit 1; }
Boundaries
- Reads:
wiki/, raw/, raw/.manifest.json. Never modifies raw/.
- Writes: only
wiki/meta/lint-report-YYYY-MM-DD.md, one line in wiki/_log.md, one line in wiki/_index.md.
- Never auto-fixes. Never deletes. Never renames.
Checks (9 total)
| # | Check | Flags |
|---|
| 1 | Orphan wiki pages | Pages with zero inbound wikilinks |
| 2 | Dead wikilinks | [[targets]] that don't resolve (incl. speculative future-dated journal links) |
| 3 | Stale journals (informational) | updated: > 90 days |
| 4 | Un-ingested raw cards | Not in manifest or no source summary |
| 5 | Aging concepts | status: exploring, updated: > 60 days |
| 6 | Index drift | Files ↔ _index.md mismatch |
| 7 | Missing frontmatter | Required fields absent (title, type, created, updated, status) |
| 8 | Graduation candidates | status: refined, > 90 days, ≥ 3 inbound wikilinks |
| 9 | Append-only log invariants | _log.md chronological inversion or 8-char prefix-padding violation |
See reference.md for check definitions, the report template, index/log update rules, and the large-vault performance note.
Report Discipline
The dated report in wiki/meta/lint-report-YYYY-MM-DD.md is the single artifact. Checks 1, 2, 4, 6, 7 typically surface actionable issues; checks 3, 5 are informational (age-based signals that don't imply failure); check 8 identifies graduation candidates, not problems.
Append a single LINT line to wiki/_log.md using the Karpathy append-only discipline — Edit with old_string matching the last line and new_string adding the entry below. Append one line to wiki/_index.md pointing at the dated report. Never rewrite either file.
Auto-Fix is Out of Scope
Auto-fix is deliberately excluded. Orphan pages may be intentional staging; "dead" wikilinks may target work-in-progress; stale journals may be archives. The user decides. If a fix path emerges that is genuinely safe (e.g., normalizing frontmatter order), propose it as a separate skill or command rather than folding it into the lint run.