R77.B — Verification
Test evidence for the R77.B contract acceptance criteria. All criteria (A1–A10) covered.
Criterion A1 — ]\(adr- grep returns zero live-doc hits
Command:
grep -rn '\]\(adr-' docs/ --include='*.md' -i
Result: All remaining hits either in docs/audits/ + docs/packets/ (excluded zone — R75 historical + R77.B own chain artefacts), or in the correctly-cased ADR link-text pattern [ADR-005] where the ]…( target starts with uppercase. Live docs: zero lowercase-adr- URL targets.
Post-fix hit landscape:
| File | Line | Why not broken |
|——|——|—————-|
| docs/packets/r77-b-refs-config-packet.md | 30, 35 | R77.B packet itself — documents the fix as before/after |
| docs/audits/r77-b-refs-config-audit.md | 45 | R77.B audit itself — inventories the (fixed) issue |
| docs/contracts/r77-b-refs-config-contract.md | 43, 48 | R77.B contract itself — goal-A before/after |
| docs/architecture/decisions/README.md | 42–44 | All targets are (ADR-00N-*.md) (uppercase) — not broken |
| docs/architecture/decisions/ADR-004-tool-surface.md | 99 | FIXED — target is now (ADR-005-multi-model-defer.md) |
| docs/architecture/decisions/ADR-004-tool-surface.md | 183 | Long matching line; manual spot-check confirms target is uppercase |
| docs/architecture/decisions/ADR-003-bft-library.md | 115 | Target is (ADR-002-vrf-implementation.md) (uppercase) — not broken |
| docs/architecture/decisions/ADR-002-vrf-implementation.md | 99 | Target is (ADR-003-bft-library.md) (uppercase) — not broken |
| docs/architecture/decisions/index.md | 17–22 | All targets are (ADR-00N-*.md) (uppercase) — not broken |
| docs/architecture/decisions/ADR-005-multi-model-defer.md | 40, 150 | Target is (ADR-004-tool-surface.md) (uppercase) — not broken |
A1 — PASS.
Criterion A2 — ]\(docs/ grep returns zero live-doc hits
Command:
grep -rn '\]\(docs/' docs/ --include='*.md'
Result: All remaining hits in excluded zones.
Post-fix hit landscape:
| File | Why not broken |
|——|—————-|
| docs/audits/r75-plan-red-audit.md (8 hits) | R75 historical artefact — excluded zone |
| docs/packets/r75-plan-red-packet.md (6 hits) | R75 historical artefact — excluded zone |
| docs/audits/r77-b-refs-config-audit.md (1 hit) | R77.B audit itself — inventories the fix |
| docs/packets/r77-b-refs-config-packet.md (2 hits) | R77.B packet itself — documents before/after |
| docs/contracts/r77-b-refs-config-contract.md (2 hits) | R77.B contract itself — goal-B before/after |
Live-doc world-schema.md:3 is FIXED — target is now (colibri-system.md), a sibling-relative.
A2 — PASS.
Criterion A3 — remote_theme: pinned to @v0.12.0
File: docs/_config.yml
Line 11:
remote_theme: just-the-docs/just-the-docs@v0.12.0
A3 — PASS.
Criterion A4 — color_scheme: light present
File: docs/_config.yml
Line 15:
color_scheme: light
A4 — PASS.
Criterion A5 — callouts: block with 5 standard children
File: docs/_config.yml
Lines 52–66:
callouts:
highlight:
color: yellow
important:
title: Important
color: blue
new:
title: New
color: green
note:
title: Note
color: purple
warning:
title: Warning
color: red
All 5 just-the-docs-canonical children (highlight, important, new, note, warning) present. A5 — PASS.
Criterion A6 — mermaid: block with version: "9.1.6"
File: docs/_config.yml
Lines 70–71:
mermaid:
version: "9.1.6"
A6 — PASS.
Criterion A7 — npm run build exit 0
$ npm run build
> colibri@0.0.1 build
> tsc
(exit 0 — clean tsc)
A7 — PASS.
Criterion A8 — npm run lint exit 0
$ npm run lint
> colibri@0.0.1 lint
> eslint src
(exit 0 — clean eslint)
A8 — PASS.
Criterion A9 — npm test green at 1085/1085
$ npm test
...
Test Suites: 26 passed, 26 total
Tests: 1085 passed, 1085 total
Snapshots: 0 total
Time: 21.884 s, estimated 63 s
Ran all test suites.
Note on flakiness: An earlier test-suite run under higher machine load recorded a single failure in src/__tests__/startup.test.ts — startup — subprocess smoke › tsx src/server.ts boots and logs [Startup] Phase 1 where captured stderr came back empty. This is the documented pre-existing nondeterministic flake tracked in project memory (see MEMORY.md “Drift surfaced” — “Pre-existing startup — subprocess smoke flakiness under full-suite load — predates Wave H”). R77.B touches zero src/ files, so a genuine test regression is structurally impossible. The rerun on the same commit produced 1085/1085 green. No action required from R77.B.
A9 — PASS (1085/1085 on rerun; 1084/1085 with known flake on first run; neither indicates an R77.B regression).
Criterion A10 — Protected _config.yml keys unchanged
Diff of docs/_config.yml vs base (ea5055e0):
@@ -8,7 +8,12 @@
url: "https://LastEld.github.io"
# Theme — use remote_theme for GitHub Pages compatibility
-remote_theme: just-the-docs/just-the-docs
+# Pinned to v0.12.0 (latest stable as of 2026-04-19) to guard against upstream drift.
+remote_theme: just-the-docs/just-the-docs@v0.12.0
+
+# Color scheme — just-the-docs supports "light" (default), "dark", or a custom scheme.
+# Setting "light" explicitly so that an upstream default change cannot silently flip us.
+color_scheme: light
# Plugins supported by GitHub Pages
plugins:
@@ -41,6 +46,28 @@
nav_sort: case_insensitive
back_to_top: true
back_to_top_text: "Back to top"
+
+# Callouts — just-the-docs standard variants.
+# Unlocks `{: .note }`, `{: .warning }`, etc. in Markdown pages.
+callouts:
+ highlight:
+ color: yellow
+ important:
+ title: Important
+ color: blue
+ new:
+ title: New
+ color: green
+ note:
+ title: Note
+ color: purple
+ warning:
+ title: Warning
+ color: red
+
+# Mermaid diagrams — opt-in via just-the-docs.
+# Version pinned to match the theme's canonical reference (v0.12.0 _config.yml).
+mermaid:
+ version: "9.1.6"
# Markdown processing
markdown: kramdown
Keys from I2 protection list — byte-identical in post-edit file:
| Key | Pre-edit state | Post-edit state |
|---|---|---|
title |
Colibri |
Colibri |
description |
(unchanged) | (unchanged) |
baseurl |
"/AMS" |
"/AMS" |
url |
"https://LastEld.github.io" |
"https://LastEld.github.io" |
plugins: |
4 entries | 4 entries |
relative_links: |
enabled, collections: true | enabled, collections: true |
search_enabled |
true | true |
search: |
4 keys | 4 keys |
aux_links: |
Repository → //github.com/LastEld/AMS | identical |
footer_content |
identical | identical |
nav_sort |
case_insensitive | case_insensitive |
back_to_top |
true | true |
back_to_top_text |
“Back to top” | “Back to top” |
markdown |
kramdown | kramdown |
highlighter |
rouge | rouge |
kramdown: |
syntax_highlighter + opts | identical |
exclude: |
6 entries | 6 entries |
defaults: |
layout: default | layout: default |
A10 — PASS.
Files touched
| File | Lines before | Lines after | Delta |
|---|---|---|---|
docs/_config.yml |
69 | 97 | +28 |
docs/architecture/decisions/ADR-004-tool-surface.md |
— | — | ±0 lines, 2 chars |
docs/world-schema.md |
— | — | ±0 lines, 5 chars removed |
Plus 4 new 5-step chain artefacts:
docs/audits/r77-b-refs-config-audit.md(new, 164 lines)docs/contracts/r77-b-refs-config-contract.md(new, 125 lines)docs/packets/r77-b-refs-config-packet.md(new, 188 lines)docs/verification/r77-b-refs-config-verification.md(new, this file)
Total files changed: 7 (3 content edits + 4 chain docs).
Commit chain
| Step | Commit | Subject |
|---|---|---|
| 1. Audit | 745252f9 |
audit(r77-b-refs-config): inventory broken refs + config gaps |
| 2. Contract | fe62aad2 |
contract(r77-b-refs-config): ref + config policy |
| 3. Packet | d3a0958f |
packet(r77-b-refs-config): execution plan |
| 4. Implement | edea4007 |
fix(r77-b-refs-config): correct lowercase ADR + stray docs/ prefix refs + pin theme version |
| 5. Verify | (this commit) | verify(r77-b-refs-config): test evidence |
Live-URL confirmation plan (post-merge)
After R77.B merges to main and Pages rebuilds:
- Visit https://lasteld.github.io/AMS/architecture/decisions/adr-004-tool-surface → click “ADR-005” → expect 200 load of ADR-005 page (was 404).
- Visit https://lasteld.github.io/AMS/world-schema → click
`docs/colibri-system.md`→ expect 200 load of the canonical vision (was 404). - View page source → confirm
jekyll-seo-tag+ theme CSS resolve from v0.12.0 CDN path.
Outstanding hazards (post-R77.B)
None introduced. Pre-existing flake in src/__tests__/startup.test.ts remains; unrelated to R77.B. The 14 historical broken-ref strings inside docs/audits/ + docs/packets/ stay as-is (analysis artefacts, not live links).
Verification gate
Step 5 complete. All 10 acceptance criteria pass. Task ready for PR + writeback.