Captured retroactively. This project shipped before the roadmap surface existed. The credit value is a post-hoc estimate per the methodology in Entry 017 and is subject to revision under G-038's calibration mechanism. As with the Journal project, only the infrastructure is captured here — the ongoing authoring of individual register entries is governance work, not project work.
What shipped
Phase 3a — Data layer
src/lib/register.tsloader withRegisterTier(1 / 2 / 3),RegisterVisibility(public / phased / internal), andLoadedRegisterEntryshape that splits body intopublicBodyandinternalBodyat the<!-- internal -->sentinel.getRegisterByTierfor tier-grouped index views;getPublicRegisterEntriesfiltering out internal-visibility entries;getRegisterSlugMapfor the cross-link plugin.
Phase 3b — Components
RegisterEntryHeaderwith tier label, visibility badge, status, owner, depends_on / blocks / related dependency edges.RegisterRenderermirroring the Journal renderer stack.Internalcomponent that conditionally renders an admin-only block at the route level.
Phase 3c — Routes
src/app/register/page.tsx— three tier sections, each with a card list. Internal-visibility entries excluded.src/app/register/[slug]/page.tsx— single entry view, withawait requireRole("admin")for internal entries and conditional<Internal visible={isAdmin}>rendering for the post-sentinel body of phased entries.
Why this is its own project (and a big one)
The Gap Register is the most architecturally distinctive surface OLN ships — three corpora exist (Journal, Register, Roadmap) but only the Register has the visibility model with route-level admin gating and the in-document sentinel pattern. That work didn't ship for free; naming it as its own project makes the cost legible and lets future contributors who add a fourth visibility-gated surface know exactly what they're inheriting.