|
| 1 | +# GOLDEN CHAIN Build Audit — v12 (Next-Wave Critic-Proof Pass) |
| 2 | + |
| 3 | +**Date:** 2026-05-29 |
| 4 | +**Scope:** SSOT `ssot_brochure.chapters` + derived `GOLDEN_CHAIN_2026-05-29.pdf` |
| 5 | +**Predecessor:** v11 audit — `docs/audits/build-2026-05-29-v11.md` |
| 6 | +**Trigger:** maintainer requested another forensic pass after v11 |
| 7 | +("критикуй и еще подумай что улучшить чтобы критики не доебались … |
| 8 | +next wave") to surface and close any remaining anomalies a reviewer |
| 9 | +could exploit. |
| 10 | +**Outcome:** 1 P0 + 4 P1 anomalies fixed in the SSOT; PDF rebuilt |
| 11 | +cleanly with the same page count and a slightly larger byte size due |
| 12 | +to the additional References blocks and status badges. |
| 13 | + |
| 14 | +## Headline Numbers (Before → After) |
| 15 | + |
| 16 | +| Metric | v11 (5e19773) | v12 (this build) | |
| 17 | +|--------------------------------------------|---------------|------------------| |
| 18 | +| `\tbd` macro leaks in PDF text | 6 | **0** | |
| 19 | +| `\status` literal leaks in PDF text | 0 | **0** | |
| 20 | +| Smart quotes inside code spans (`16'h47C0`)| 1 | **0** | |
| 21 | +| Real chapters missing claim-status badge | 4 | **0** | |
| 22 | +| Long chapters missing `## References` | 5 | **0** | |
| 23 | +| Pages | 259 | 259 | |
| 24 | +| File size | 3.36 MB | 3.36 MB (3530837 B) | |
| 25 | +| SHA-256 | `25dd2b18…` | `6d2e29ed32cc92b4aea32a0c639f7f16c646d94e1aa4adba97787869ec79293d` | |
| 26 | + |
| 27 | +## Anomaly Catalogue (v12 Audit, Post-v11) |
| 28 | + |
| 29 | +Each finding lists its origin probe (`C{n}`), severity, target row(s) |
| 30 | +in `ssot_brochure.chapters`, the failure mode, and the chosen fix. The |
| 31 | +classes here are numbered C1–C32, continuing the v11 series. |
| 32 | + |
| 33 | +### P0 — Critical (must fix) |
| 34 | + |
| 35 | +#### C15 — `\tbd{real measurement pending}` macro leak (`fm-13-depin-positioning`) |
| 36 | + |
| 37 | +- **Probe.** Search for `\tbd{` outside `\providecommand` blocks in |
| 38 | + the SSOT. The macro is defined in `chapter.template.tex` line 125 |
| 39 | + (`\providecommand{\tbd}[1]{\hspace{0.25em}\fcolorbox{red!50}{red!5} |
| 40 | + {\textsf{\scriptsize TBD:\,#1}}}`) and is intentionally available for |
| 41 | + rare uses inside raw-LaTeX blocks. In `fm-13-depin-positioning` the |
| 42 | + string `` `\tbd{real measurement pending}` `` appears six times |
| 43 | + *inside markdown backtick code spans*. The author's intent was to |
| 44 | + show the macro **as code** — a placeholder reminding the reader of |
| 45 | + the field that needs a real measurement. Pandoc's default backtick |
| 46 | + handling escaped most of the body but the backslash-prefixed macro |
| 47 | + identifier still leaked through, so the tectonic pass rendered six |
| 48 | + live red TBD badges scattered through the chapter. |
| 49 | +- **Impact.** Visible red boxes in body prose, reviewer-bait, and a |
| 50 | + rule-5 violation (claim-status framing is reserved for the explicit |
| 51 | + badge set; ad-hoc `\tbd` boxes inside prose dilute the discipline). |
| 52 | +- **Fix.** Migration `2026-05-29-v12-fixes.sql` — replace the six |
| 53 | + occurrences of the literal string `\tbd{real measurement pending}` |
| 54 | + with the plain text `TBD: real measurement pending`. The backticks |
| 55 | + are preserved so the placeholder still reads as a code-style field |
| 56 | + marker; no badge box is emitted. |
| 57 | +- **Verification.** `pdftotext generated/out/GOLDEN_CHAIN_2026-05-29.pdf -` |
| 58 | + | `grep -c '\\tbd'` → 0. SQL `DO` block in the migration also |
| 59 | + asserts zero rows match the leak pattern. |
| 60 | + |
| 61 | +### P1 — Quality / Reviewer-Bait |
| 62 | + |
| 63 | +#### C12 — Smart quote inside Verilog literal (`unified-symmetry-article`) |
| 64 | + |
| 65 | +- **Probe.** Search for U+2019 (right single quotation mark) inside |
| 66 | + backtick code spans. Found once at body offset 35007: |
| 67 | + `` `16’h47C0` `` (assertion `{uio_out, uo_out} == 16'h47C0`). The |
| 68 | + Verilog literal must use an ASCII apostrophe; the smart-quote form |
| 69 | + is invalid Verilog and looks unprofessional in code style. |
| 70 | +- **Fix.** Targeted `replace(body_md, '16’h47C0', "16'h47C0")` scoped |
| 71 | + to that one slug. |
| 72 | +- **Verification.** SQL `DO` block asserts no row in |
| 73 | + `unified-symmetry-article` contains the smart-quote variant. |
| 74 | + |
| 75 | +#### C18 — Claim-status badge missing on 4 real chapters |
| 76 | + |
| 77 | +- **Probe.** For every chapter whose `kind` is `article`, `audit`, |
| 78 | + `handout`, or `unified`, the body should open with a raw-LaTeX |
| 79 | + block that emits a status badge (`\statusVerified`, |
| 80 | + `\statusEmpirical`, `\statusOpen`, `\statusHighRisk`, or |
| 81 | + `\statusRetracted`). Four chapters had no badge: |
| 82 | + `gf-format-audit`, `gf-numeric-formats-history`, `london-handout`, |
| 83 | + `unified-symmetry-article`. |
| 84 | +- **Status assignments (rule 5).** |
| 85 | + - `gf-format-audit` → **Open conjecture** — audit catalogue of |
| 86 | + GoldenFloat formats; many entries are still "Proposal" or |
| 87 | + "Experimental". |
| 88 | + - `gf-numeric-formats-history` → **Verified** — historical survey |
| 89 | + of established formats (IEEE 754, posit, FP8) anchored entirely |
| 90 | + by external DOIs / arXiv IDs. |
| 91 | + - `london-handout` → **Open conjecture** — talk handout collecting |
| 92 | + programmatic claims, not yet independently validated. |
| 93 | + - `unified-symmetry-article` → **Empirical fit** — long article |
| 94 | + reporting partial empirical fit (symbolic regression + φ-grammar) |
| 95 | + with explicit open questions in §7. |
| 96 | +- **Fix.** Migration inserts `` ```{=latex}\n\statusXxx\n``` `` after |
| 97 | + the H1 in three chapters and prepends it to the body of |
| 98 | + `unified-symmetry-article` (which has no leading H1; the pipeline |
| 99 | + injects `# {title}` at render time, so the badge lands immediately |
| 100 | + under the injected H1). |
| 101 | +- **Verification.** SQL `DO` block asserts all four targets now match |
| 102 | + the `\\status(Verified|Empirical|Open|HighRisk|Retracted)` regex. |
| 103 | + Visual QA — page 226 shows the **Empirical fit** badge on |
| 104 | + `unified-symmetry-article`; page 221 shows the **Open conjecture** |
| 105 | + badge on `gf-format-audit`. |
| 106 | + |
| 107 | +#### C27 — `## References` missing on two long chapters |
| 108 | + |
| 109 | +- **Probe.** Any chapter with body length > 25 KB and no `## References` |
| 110 | + section is suspect. Two hits: |
| 111 | + - `unified-symmetry-article` (48 KB, no references section despite |
| 112 | + citing the Coq proof base, Trinity Clara, Tiny Tapeout, Fring & |
| 113 | + Korff (2005), and Coldea et al. (2010)). |
| 114 | + - `gf-numeric-formats-history` (30 KB, no references section despite |
| 115 | + inline citations of IEEE 754, Gustafson, Jacob et al., Micikevicius |
| 116 | + et al., Sun et al., Spallanzani et al.). |
| 117 | +- **Fix.** Append a properly-formatted `## References {.unnumbered}` |
| 118 | + section to each chapter, with every external anchor that already |
| 119 | + appears in body extracted into a markdown bullet list with clickable |
| 120 | + DOI / arXiv links. |
| 121 | +- **Verification.** SQL `DO` block asserts both rows now contain the |
| 122 | + pattern `## References`. Visual QA — page 221 shows the new |
| 123 | + `gf-numeric-formats-history` References block (8 entries). |
| 124 | + |
| 125 | +#### C31 — `## References` missing on three P2 chapters with badges |
| 126 | + |
| 127 | +- **Probe.** Paper-2 chapters carrying `\statusEmpirical` or |
| 128 | + `\statusVerified` (citation-bearing labels) but no `## References` |
| 129 | + section: `p2-02-epistemic-boundary`, `p2-03-math-preliminaries`, |
| 130 | + `p2-04-e8-toda`. |
| 131 | +- **Fix.** Same approach as C27 — append `## References {.unnumbered}` |
| 132 | + with the actual DOIs / arXiv IDs that already appear in body |
| 133 | + (Fring & Korff 2005, Coldea et al. 2010, Zamolodchikov 1997, Popper |
| 134 | + 1963, Zenodo 19227877). |
| 135 | +- **Verification.** SQL `DO` block asserts all three rows now match |
| 136 | + `## References`. |
| 137 | + |
| 138 | +### Deferred (intentional) |
| 139 | + |
| 140 | +- **C5** — `authority-outreach-templates` `Dear Professor [NAME]` is |
| 141 | + an intentional outreach template placeholder. Recorded so a future |
| 142 | + audit does not flag it. |
| 143 | +- **C24** — early false positive on math-mode escapes; on re-check, |
| 144 | + every `\xx` escape resolves to a defined LaTeX macro. |
| 145 | + |
| 146 | +### Clean (probed, no actionable issue) |
| 147 | + |
| 148 | +C1, C2, C4, C6, C7, C8, C9, C10, C11, C13, C14, C19, C20, C21, C22, |
| 149 | +C23, C26, C28, C32 all returned negative. The probe set is |
| 150 | +deliberately broad — it includes orphan citations, hyperref anchor |
| 151 | +drift, URL wrapping, HTML entity leaks, trailing whitespace, code |
| 152 | +fence balancing, blank-line runs, paren balance in headers, ASCII |
| 153 | +arrows in prose, empty list items, malformed table cells, zombie |
| 154 | +section references, all-caps shouting, abbreviation consistency, |
| 155 | +duplicate slugs / titles, invalid `\xx` escapes, abnormal line |
| 156 | +density, footnote / citation mixing, and status-badge placement. |
| 157 | + |
| 158 | +## Deferred to v13+ |
| 159 | + |
| 160 | +These were noted but intentionally not changed in this pass — each is |
| 161 | +listed with the v-number at which the cost / benefit is expected to |
| 162 | +become favourable. |
| 163 | + |
| 164 | +- **B17** heroes absent — `illustration_url` is NULL on all 69 rows; |
| 165 | + the image manifest needs population before re-enabling hero blocks |
| 166 | + (`TRIOS_PHD_NO_IMAGE_TRAIN` rule applies). Target v13. |
| 167 | +- **B18** PDF/UA-2 tagging — accessibility metadata is not yet |
| 168 | + emitted. Requires Lua filter for tagged structure. Target v13. |
| 169 | +- **B19** `\statusNonClaim` macro for `p1-acknowledgments` and |
| 170 | + `p2-13-phd-provenance` — these chapters intentionally carry no |
| 171 | + claim, but the audit script currently has to special-case them. |
| 172 | + Cleaner to introduce a `\statusNonClaim` badge with a neutral |
| 173 | + colour. Target v13. |
| 174 | +- **B20** `\nicefrac` migration — replace ad-hoc `1/φ` notation with |
| 175 | + `\nicefrac{1}{\varphi}` for typographic consistency. Target v14. |
| 176 | +- **B21** Pellis Definition A.1+ ASCII math wrap — long Definition |
| 177 | + blocks in the Pellis appendix render with ragged math. Target v14. |
| 178 | +- **B8(v9)** `S³AI` → `S3 AI` flatten in three `\addcontentsline` |
| 179 | + entries to silence a tectonic hyperref warning. Target v13. |
| 180 | +- **B3** sub-3pt overfull `hbox` in longtable paragraphs — `\hfuzz` |
| 181 | + does not silence paragraph-mode overfull warnings in longtable |
| 182 | + cells. Target v14. |
| 183 | + |
| 184 | +## Build Provenance |
| 185 | + |
| 186 | +- Build host: linux sandbox, tectonic via `cargo build --release` |
| 187 | + binary `target/release/trios-mcp-rag` (SHA matches v11). |
| 188 | +- Database: read-only fetch from `ssot_brochure.chapters` on |
| 189 | + `127.0.0.1:5433/railway` (local Postgres 17 mirror of Railway SSOT). |
| 190 | + All writes for this audit happened under the v12 migration's single |
| 191 | + transaction; rollback path documented in |
| 192 | + `docs/migrations/2026-05-29-v12-runbook.md`. |
| 193 | +- Reproducibility: `pandoc --version` and `tectonic --version` pinned |
| 194 | + by `Cargo.lock` workspace. Migration SQL is idempotent (every probe |
| 195 | + is a `replace()` or `regexp_replace()` that produces no further |
| 196 | + change when re-applied to the post-v12 state). |
| 197 | + |
| 198 | +## Backups |
| 199 | + |
| 200 | +- `/tmp/pgbackup/all_chapters_pre_v12_20260529T135422Z.tsv` (566 KB) |
| 201 | +- `/tmp/pgbackup/chapter.template.tex.pre_v12_20260529T135422Z` (9.0 KB) |
| 202 | +- `/tmp/pgbackup/GOLDEN_CHAIN_v11_20260529T135422Z.pdf` (3.4 MB) |
| 203 | + |
| 204 | +Restore procedure is in |
| 205 | +`docs/migrations/2026-05-29-v12-runbook.md` §"Rollback". |
0 commit comments