>- wikilinks, orphan pages, empty stubs, frontmatter that violates the schema, near-duplicate pages, and stale index entries. Use this skill whenever the user asks to lint, clean, audit or check the health of their vault, says pages feel messy or links are broken, after a large bulk import, or when a scheduled maintenance run fires. Do NOT use for ingesting new sources, for answering questions from the vault, or for rewriting page content that is structurally fine but reads badly.
npx skills add https://github.com/undefined-ui/second-brain-os --skill second-brain-lint
Structural rot is silent. Nothing errors, nothing crashes, the vault just
slowly stops answering questions well because a third of its pages are
unreachable. Linting is the only thing that catches it before the owner does.
Report before repairing. Fix the mechanical problems automatically, but never
delete or merge a page without listing it first and getting a yes, because the
owner may have written it by hand.
[[wikilink]].
two cases: a typo or rename, which you fix, and a genuine gap, which goes
into index.md under Gaps.
should be linked from and add the link, or flag it as a candidate for
deletion.
ingest. Flag for re-ingest from the original source in raw/.
type, missing dates,tags outside the existing vocabulary.
merges; do not perform them unsolicited.
index.md, index entries pointingnowhere.
log.md.Vault: <n> pages (<n> sources, <n> concepts, <n> entities, <n> synthesis)
Link graph: <n> links, average <n> per page, <n> orphans
Fixed automatically:
- <list>
Needs a decision:
- <list, each with the recommended action>
Health: orphan rate <n>%, broken link rate <n>%, stub rate <n>%
An aggressive linter that merges pages on its own judgement destroys work. A
timid one that only reports produces a list nobody acts on. The split above is
the useful line: mechanical fixes happen, semantic decisions get proposed.
Do not run a full lint after every ingest. Weekly, or after an import of more
than about twenty sources.
Take undefined-ui/second-brain-lint from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.