Activity log

2026-07

2026-07-22 lint Vault maintenance pass โ€” catalog pages, orphans, dangling links, summaries

Consistency pass, not an ingest. Five separate problems, all of them consequences of the vault never having had a way to distinguish structural pages from content pages.

Catalog and log pages marked. wiki/index, toolbox/index, books/index and the root index are now type: catalog; log is type: log. All five had opened straight into an H1 with no frontmatter at all; each now carries title, summary, created (taken from git history) and updated, and the duplicate H1 is gone. CLAUDE.md gains both types and a short section explaining why link metrics have to skip them: the five together carry roughly a third of the vault's wikilinks, which is why the Orphans (no inbound links) view in wiki.base has never been able to return a row.

Orphans, computed for the first time. Excluding those five, 44 of 665 pages in wiki/, toolbox/ and books/ had no inbound wikilink. 42 now do. The wiki cluster was systematic โ€” 13 blog-entity pages each linked out to the summary written from that blog and no summary linked back; fixed by making the author's name in each opening sentence the link, which is what the pages that got it right already do. All 19 book pages were orphaned because books/index was their only referrer; each is now cited from the wiki page whose topic it covers. Nine of eleven toolbox orphans found a genuine relative. slogbox and openscreen were left orphaned on purpose โ€” the vault has no page on Go structured logging and none on screen recording, so every candidate link would have been decorative.

Dangling wikilinks: 28 down to 6, measured with warren check. Two were a wrong folder prefix ([[meta/llm-wiki-pattern]] for a page in wiki/), two were PDFs linked without their extension in ingested-urls. Three pages written because the reference count said they were owed: claude-code (four referring pages, and 75 pages mention it in prose), andrew-bosworth (three), obsidian-bases (two, and nothing explained the dashboards the front page is built from). Nine unlinked as prose rather than concepts. Six left as honest gaps: dtrace, gvisor, xray-core, anthropic-and-pentagon, oldnewthing-20260423, stable-urls-as-public-api โ€” each referenced once, two by text that already says the page does not exist.

summary: backfilled on 139 pages โ€” 115 in toolbox/, all 24 in books/ โ€” which had none because neither frontmatter template included the field. Both templates now do. These become the meta description and Open Graph text when the vault is served, so each was written as a search-result line.

Six frontmatter blocks were invalid YAML and always had been: five summary: values contained an unquoted ": ", and early-stage-reality opened with a quoted phrase YAML read as the whole value. Obsidian tolerates them; a stricter parser drops the frontmatter entirely. All 670 blocks in wiki/, toolbox/, books/, meta/ and the root now parse.

Also documented in CLAUDE.md: the optional aliases: field for surviving renames, why filename uniqueness is what allows addressing a page by stem alone, and a decision on inbox-assets/ โ€” it stays, as the staging area ingest drains into sources/assets/, which is what the ingest skill already does.

Not done, deliberately: the catalog listings were not regenerated from summary:. A 20-page sample found no contradictions between the two descriptions โ€” every pair agrees on what the page is, differing only in which secondary detail each keeps โ€” so the duplication is real but not currently harmful, and whether to generate the listings is an open decision in the site spec.