# ✅ Do the docs' cited artifacts exist? — 11 broken links repaired **Status:** ✅ checked mechanically and fixed, with the count verified both ways. The brief's rule is *"commit the reference data beside the finding, so the port can be built without a disc in the loop"*. An answer whose evidence is not reachable cannot be used. Nothing had ever checked that. [`tools/re-capture/doc_link_check.py`](../../tools/re-capture/doc_link_check.py) walks every markdown file under `docs/`, resolves each relative link, and reports targets that do not exist — and, separately, targets that exist but are **empty**, which is the sneakier failure since a zero-byte file looks fine in any listing. | | before | after | |---|---|---| | links resolving | 1 038 | **1 049** | | missing targets | **16** | 5 | | empty targets | 0 | 0 | **+11 resolving, −11 missing — the two numbers pair exactly**, which is the check that the repair did what it claimed and nothing else. ## 🔴 Two of them were the evidence for the UI decode itself `structures/ui-rat-layout.md` is the layout decode the port is built on. Its two figures — the ones backing *"the tutorial PAUSE menu rebuilds pixel-accurately from its sprites"* and *"the same method reproduces the main menu"* — were written as `captures/ui-layout/…` from a file in `structures/`, one directory too shallow. **The headline evidence for the decode was unreachable from its own document.** ## What was wrong, and what still is Eleven links had the **wrong relative depth** while their targets existed — a missing or surplus `../`, or a missing `structures/`. Those are repaired; each was rewritten only when exactly one candidate path resolved, so nothing was guessed. ❔ **Five remain genuinely absent** and are left alone rather than invented: | doc | target | |---|---| | `autopilot-knowledge-sources.md`, `entities-live-roster.md` | `../../MEMORY.md` — outside the repo | | `challenge-mission-gate.md` | a header in the separate `xenia-canary-native` tree | | `stage-drift-is-navigation-not-save.md` | `structures/weapon-datasheet-runtime.md` — never written | | `mission-freeze-resume-spin.md` | `canary-build-verified-env-confound.md` — never written | None is port-relevant: they are mission, entity and emulator-side documents. Two name documents that do not exist, which is a different problem from a bad path and is not something to paper over with a link fix.