R77.B — Audit
Inventory of broken internal .md refs in the Colibri docs corpus and gaps in docs/_config.yml against the just-the-docs canonical reference config. Basis for the R77.B contract (Step 2) and packet (Step 3).
Scope
R77.B ships no src/ code. It is a docs-and-Pages-config task only. Two independent sub-goals:
- Fix broken internal .md refs that render as 404 on GitHub Pages (case-sensitivity hazards + stray
docs/prefixes). - Harden
docs/_config.ymlwithremote_themeversion pin, explicitcolor_scheme,callouts:block, andmermaid:block.
Sub-goal 1 — Broken .md refs inventory
1.1. Hazard grep patterns used
| Pattern | Purpose | Scope |
|---|---|---|
]\(adr- (case-insensitive) |
Lowercase ADR filename in link target — hazardous on Pages (Linux case-sensitive FS) | docs/**/*.md |
]\(docs/ |
Stray docs/ prefix inside a doc already under docs/ — resolves to /AMS/docs/docs/... 404 |
docs/**/*.md |
]\(ADR-00.\.md\) |
ADR ↔ ADR cross-refs — verify uppercase casing preserved | docs/architecture/decisions/**/*.md |
1.2. Exclusion zones
Per R77.B brief, historical artefacts under the following dirs are not fixed (they document past states and the broken-ref strings in them are analysis, not live links):
docs/audits/**/*.md— past-round audit artefactsdocs/packets/**/*.md— past-round execution plansdocs/verification/**/*.md— past-round test evidence
1.3. Broken refs found — LIVE docs (fix these)
| File | Line | Current ref | Issue | Target fix |
|---|---|---|---|---|
docs/architecture/decisions/ADR-004-tool-surface.md |
99 | ](adr-005-multi-model-defer.md) |
Lowercase filename → case-mismatch 404 on Pages | ](ADR-005-multi-model-defer.md) |
docs/world-schema.md |
3 | [`docs/colibri-system.md`](docs/colibri-system.md) |
Stray docs/ prefix → /AMS/docs/docs/colibri-system.md 404 on Pages |
[`docs/colibri-system.md`](colibri-system.md) (sibling relative; link text kept verbatim) |
Total live broken refs: 2.
1.4. Grep evidence — ]\(adr- pattern
Hits scanned: 14 total.
- 8 legitimate hits where link text contains “adr-“ (lowercase prefix like “adr-005” in prose) but the link target is correctly-cased — these are not broken and are not touched.
- 4 hits in
docs/architecture/decisions/{ADR-003, ADR-002, ADR-005, README, index}.md— all target files correctly cased (ADR-00N-*.md). Not broken. - 1 legitimate hit
ADR-004-tool-surface.md:183— this is the “Rejected options” table row referencing theadr-005decision in prose; target casing is correct (long matching line, Grep truncated). Manual spot-check confirms. - 1 broken hit
ADR-004-tool-surface.md:99— lowercase target filename. Fix required.
1.5. Grep evidence — ]\(docs/ pattern
Hits scanned: 13 total.
- 12 hits in
docs/audits/r75-plan-red-audit.md+docs/packets/r75-plan-red-packet.md— excluded zone, historical artefacts. - 1 hit
docs/world-schema.md:3— live straydocs/prefix in blockquote attribution. Fix required.
1.6. Grep evidence — ADR ↔ ADR cross-refs
Pattern ]\(ADR-00.\.md\) returned zero hits — meaning all ADR cross-refs use the full filename ADR-00N-<slug>.md (not the short ADR-00N.md form). Current cross-refs manually verified:
ADR-003-bft-library.md:115→(ADR-002-vrf-implementation.md)✓ADR-002-vrf-implementation.md:99→(ADR-003-bft-library.md)✓ADR-005-multi-model-defer.md:40, 150→(ADR-004-tool-surface.md)✓docs/architecture/decisions/README.md:42-44→(ADR-001-*.md),(ADR-002-*.md),(ADR-003-*.md)✓docs/architecture/decisions/index.md:17-22→(ADR-001-*.md)through(ADR-006-*.md)✓
All ADR cross-refs except the single R77.B target at ADR-004-tool-surface.md:99 use correct casing.
Sub-goal 2 — _config.yml hardening
2.1. Current docs/_config.yml inventory
Present keys (keep untouched):
title,description,baseurl,urlremote_theme(needs version pin)plugins(4 plugins declared)relative_links:(enabled, collections: true)search_enabled: true,search:block (heading_level 3, previews 3, 5/10 before/after)aux_links:(Repository → //github.com/LastEld/AMS)footer_content(Apache 2.0 + Commons Clause)nav_sort: case_insensitiveback_to_top: true,back_to_top_textmarkdown: kramdown,highlighter: rouge,kramdown:blockexclude:list (6 entries)defaults:block (layout: default)
2.2. Missing keys (add via R77.B)
| Key | Current | Target | Source |
|---|---|---|---|
remote_theme |
just-the-docs/just-the-docs (unpinned) |
just-the-docs/just-the-docs@v0.12.0 |
Latest stable release tag (GitHub releases API, fetched 2026-04-19) |
color_scheme |
absent | light |
just-the-docs default made explicit; canonical value per _config.yml line 166 of just-the-docs main (comment: “only supports dark, light/nil, or a custom scheme”) |
callouts: block |
absent | 5 standard variants (highlight, important, new, note, warning) | just-the-docs canonical _config.yml lines 168-183 |
mermaid: block |
absent | version: "9.1.6" |
just-the-docs canonical _config.yml lines 97-103 |
2.3. Latest stable just-the-docs release
Fetched via gh api repos/just-the-docs/just-the-docs/releases/latest on 2026-04-19:
| Tag | Published | Prerelease |
|---|---|---|
| v0.12.0 (LATEST STABLE) | 2026-01-23 | false |
| v0.11.2 | 2026-01-23 | false |
| v0.11.1 | 2026-01-03 | false |
| v0.11.0 | 2026-01-01 | false |
| v0.10.2 | 2026-01-01 | false |
Decision: pin to v0.12.0 (current stable, six-week track record). Prompt suggestion of v0.10.1 was speculative — the actual current stable as of Apr 2026 is v0.12.0.
2.4. Keys that must NOT be touched
Per R77.B brief — these are already correct and are explicitly outside scope:
title,description,baseurl,urlplugins:(4 entries)relative_links:blocksearch_enabled,search:blockaux_links:blockfooter_contentnav_sortback_to_top,back_to_top_textmarkdown,highlighter,kramdown:blockexclude:listdefaults:block
Pages rendering expectation
After merge of R77.B:
https://lasteld.github.io/AMS/architecture/decisions/adr-004-tool-surface.html— “ADR-005” link resolves to 200 instead of 404.https://lasteld.github.io/AMS/world-schema.html— “docs/colibri-system.md” link resolves to/AMS/colibri-system.html(200) instead of/AMS/docs/colibri-system.html(404).- Theme renders from a pinned version (v0.12.0) — no silent breakage when just-the-docs main branch lands an unrelated change.
- Explicit
color_scheme: light— preserves existing visual (was defaulting to light); protects against upstream default flip. - Callouts block — unlocks just-the-docs
{: .note },{: .warning }, etc. syntax (not currently used in Colibri docs, but surface becomes available). - Mermaid block — unlocks mermaid diagram rendering (not currently used, but surface becomes available).
Risks flagged
- Theme pin semantics:
remote_theme: owner/repo@tag— verified syntax in GitHub Pages docs (https://docs.github.com/en/pages/setting-up-a-github-pages-site-with-jekyll/adding-a-theme-to-your-github-pages-site-using-jekyll#adding-a-theme). Safe. - Callouts + mermaid blocks inert: adding them activates no existing content. Zero content-layer risk.
- No
src/touched: R77.B is docs-only; test suite (1085/1085) should pass unchanged.
Files inventoried
| Count | Path |
|---|---|
| 1 | docs/_config.yml (target for sub-goal 2) |
| 1 | docs/architecture/decisions/ADR-004-tool-surface.md (target for sub-goal 1) |
| 1 | docs/world-schema.md (target for sub-goal 1) |
Total files to edit in Step 4: 3.
Audit gate
Step 1 complete. Step 2 (contract) will specify the exact edits and invariants preserved.