Skip to content

The index renders from the compile; lint learns the map - #129

Merged
leeovery merged 1 commit into
instance-map-servefrom
instance-map-lint
Sep 1, 2026
Merged

The index renders from the compile; lint learns the map#129
leeovery merged 1 commit into
instance-map-servefrom
instance-map-lint

Conversation

@leeovery

@leeovery leeovery commented Sep 1, 2026

Copy link
Copy Markdown
Owner

PR4 of the instance-map stack (design: #125, on #128). dex-map now writes two artifacts from one compile — state/map.json and wiki/index.md — so the catalog page is rendered, byte-deterministic, and unpinnable (pins target pages' claims; a catalog correction is a taxonomy correction through enrich place). Lint gains map freshness (in-memory recompile, byte diff, bin/dex map as the whole repair), retires the per-entry index rows the rendered index makes impossible, and adds the canonical-topic advisory (a digest naming a canonical topic whose items don't record it — miss or rename residue, session judgment, never exit 1). Skills and README follow.

45 tests added; mutation audit on the compiler and changed lint functions (five real holes closed, including a whole-index byte pin).

🤖 Generated with Claude Code

dex-map now writes two artifacts from one compile: state/map.json and
wiki/index.md, rendered through the kernel primitives — header and
standing preamble, then Topics, Entities and Syntheses sections (each
elided when empty; syntheses list their page's first # heading).
Judgment decides the values, code renders them, both byte-deterministic
and atomically written; a bare instance gets an honestly empty index the
way it gets an honestly empty map. The place and exclude triggers keep
both fresh and say so ("map and index recompiled"), and the index is
declared unpinnable — pins target pages' claims, never the catalog.

Lint gains map freshness: an in-memory recompile diffed byte-for-byte
against both artifacts, a repair row (never exit 1) whose whole fix is
bin/dex map. The per-entry index checks (unindexed pages, ghost index
entries) retire — a rendered index cannot drift page-by-page — while
the shortid-in-index scan stays, since the index renders taxonomy
descriptions a session could write a shortid into. A compile refusal on
a shape lint's tolerant reads let through surfaces as the taxonomy
failure it is. And the canonical-topic advisory lands: a conforming
digest naming a canonical topic whose items do not record it is one
advisory row — placement miss or rename residue, session judgment —
while candidate names stay silent by design.

Skills, README and CLAUDE.md move with it: repairs.md swaps the index
rows for the bin/dex map repair and documents the advisory's judgment,
ingest step 8 and dex-query stop hand-editing the index, and the
dex-lint SKILL states the pin boundary.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@leeovery
leeovery merged commit 2f2fa11 into main Sep 1, 2026
@leeovery
leeovery deleted the instance-map-lint branch September 1, 2026 14:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant