Experience Honesty Audit — the ten interactive experiences vs. the vault that licenses them
Scope: the ten interactive experiences served by tools/server.ts (+ tools/tree-data.ts, tools/pantheon-data.ts) — /timeline, the header time scrubber, /tree, /voices (+ /unas, /baal), /map, /scenes/eridu, /observatory, /pantheon, /whisper, /rituals/shang-divination — audited dimension-by-dimension (date fidelity, verdict fidelity, quote honesty, reconstruction marking, link integrity, scope creep) against the vault notes each rendered claim cites. Method: full read of the three TS files; full read of every licensing note named by an experience (motif notes, the Eridu pair, the Shang quartet, the Rigveda-gap pair, the Aboriginal/Henige pair, Faulkner, the Baal Cycle, the flood-corridor sources, Linear B, Dyḗus, El–Yahweh cluster, karma-rebirth, Enheduanna, sumerian-religion); rendered pages fetched via curl http://127.0.0.1:4870/...; /api/timeline spot-checked; vault-wide rg sweeps for every suspect phrase.
PASS with three major findings, zero critical. No factual falsehood was found anywhere in the rendered output. The verdict discipline holds: flood renders contact scoped to the Near East with the honesty banner; sky-father renders descent scoped to the IE cognate set with all PIE wood dashed; dying-rising is never given a category verdict in any UI — only the per-strand verdicts the motif note itself calls "the real deliverable." Reconstruction marking is present in all four required places. All 48 hardcoded note hrefs resolve to real files. The majors are all of one species: content that is true in mainstream scholarship but not carried by any vault note — exactly the failure mode the vault's own rules exist to prevent.
/timeline + header time scrubber — PASS
- Date fidelity:
/api/timelineis generated from frontmatter (attestation_earliest/date_of_evidence); parser spot-checks correct (92,000 BP → −90050; "c. 1646–1626 BCE" → −1645, older endpoint per convention; "speculative"-led strings → undated, omitted rather than guessed). 79 events, 6 honestly null-dated. - Legend matches implementation (faded dot =
confidence: speculative; class colors archaeology/text/other). Era bands (Paleolithic → Common Era) are standard periodization, cosmetic. - Scrubber strip ("nearest attestations before this moment") filters
e.y <= y— no anachronistic surfacing found.
/tree — PASS, one minor
- All node dates traced: PIE root "projected before c. 3000 BCE" (sky-father frontmatter); Anatolian 16th-c. copies; Vedic composed/mss split; KN Fp 1 c. 1400–1375 BCE; Homer c. 750–700 BCE; Kylver c. 400 CE; Baltic late-medieval + 19th-c. ethnography sub; Soleb c. 1390–1352 BCE; Kuntillet Ajrud c. 800 BCE; Mitanni c. 1380 BCE; Bṛhadāraṇyaka c. 700–600 BCE — every one in its linked note.
- Reconstruction marking exemplary: every edge out of the PIE root is dashed; El–Yahweh merge, southern-Yahweh root, śramaṇa fork all dashed + recon rings; root-zone honesty labels rendered.
- Minor (T1): the Italic node's date chip "c. 6th–3rd c. BCE" covers archaic Latin, but its sub-label cites "Umbrian Iupater (Iguvine Tablets)" which sky-father.md dates c. 3rd–1st c. BCE — the chip doesn't cover its own exhibit.
/voices (+ /unas, /baal) — quote honesty PASS; one major, two minors
- Verbatim quotes verified: "The texts preserved in the pyramid of Unas constitute the earliest known collection of religious literature in the world" — exact in faulkner-pyramid-texts-1969.md. "Baal is dead!" and "mightiest Baal lives, the prince, lord of the earth, exists" — exact in ugaritic-baal-cycle.md, with attributions (El/Anat mourning; post-dream-vision proclamation, KTU 1.6 iii) matching the note. Paraphrases are visibly labeled as paraphrases in both rooms. Etic records (editions, dates, Ilimilku colophon, c. 1185 BCE terminus, broken-revival caveat, composition-vs-inscription caveat) all match.
- MAJOR (V1) — /voices/baal emic panel hardens a reading its licensing note qualifies. The panel asserts the seasonal/agricultural meaning as the request ("drought is Mot winning… that the rains come back, that the dry season not be forever"), but ugaritic-baal-cycle.md says the fertility imagery "ground[s] — but do[es] not prove — a seasonal/agricultural reading; Smith himself resists a simple annual-cycle interpretation, reading royal ideology and cosmology as primary," and its reliability notes say the seasonal reading "is now widely qualified." The "emic · interpretive" label is present but the chosen interpretation is the one the cited edition resists, and the resistance is nowhere on the page.
- Minor (V2): /voices/unas says the hieroglyphs are "carved in vertical columns" — that detail appears in no vault note (notes say "interior walls and antechambers").
- Minor (V3): the Unas paraphrase is labeled "after Faulkner (1969)" but its "rises and is gathered together" phrase is licensed by pyramid-texts-osiris.md (Allen-based), which the room does not link.
/map — PASS, two minors
- Date fidelity: every node/edge/log date verified — King List allusion c. 1900–1800 BCE; Atra-ḫasīs c. 1635 BCE (Ammi-ṣaduqa colophon); CBS 10673 c. 1600 BCE; Megiddo 14th c.; RS 22.421 13th c.; SB redaction c. 1200–1100 BCE / copies 7th c.; Genesis 7th–5th c. + exile 597–539 BCE; Pindar Ol. 9 466 BCE; Suigongxu c. 900 BCE; Śatapatha c. 700–600 BCE; Americas/Oceania 16th c. CE+ post-contact. All in great-flood.md and the four corridor source notes.
- Verdict fidelity: honesty banner scopes the verdict exactly as the motif note does; Q4 alternative route rendered dashed because the question is open; ghosts gated behind an explicit toggle labeled "unresolved — Q5."
- Minor (M1): the blanket ghost tooltip "Independent occurrence: cannot derive from Mesopotamia by any documented route" is licensed by the motif note's counter-evidence for the Americas, Oceania, and East Asia — but India is not in that list: applying the sentence to "Manu and the fish" asserts independence the vault leaves open under Q5.
- Minor (M2, cosmetic): scrubber readout shows "3001 BCE" beside the "3000 BCE" min hint (astronomical-year display off-by-one against the label).
/scenes/eridu — PASS, exemplary
Every one of the 18 narration lines checked against its cited licensing notes: virgin sand dune, ~12 × 15 ft mud brick (Bertman p. 108), podium/altar, niche, fish bones + ash, 18 levels / c. 5500→3500 BCE, pre-literate Ubaid with proto-cuneiform c. 3200–3000 BCE (sumerian-religion.md), Enki/first-city as later emic tradition with back-projection flag, "temple" label as medium-confidence interpretation. Grades (attested/inferred/imagined) match how the notes actually ground each sentence — the cult-statue identification and the "temple" label are correctly demoted to inferred. The scene's confidence: medium badge honors the claim note's AGENTS §2.4 tertiary-provenance cap. The backdrop is explicitly declared a placeholder. No findings.
/observatory — PASS
Fully generated from frontmatter (no hand-typed dates to drift); horizon zone ("beyond the evidence horizon") renders undated/reconstruction-only items as required; calibration-alarm rings (high confidence × class-3+) and counter-evidence "!" ticks implement the vault's own epistemics; Q-gauges parse OPEN_QUESTIONS.md live and exclude the parked backlog with an on-page explanation. Verdict colors keyed to the same transmission values as the notes.
/pantheon — one major, two minors
- Date fidelity: all 18 tiles verified against their notes (An/Anu ED III god-lists c. 2600–2500 BCE; Tiān Western Zhou c. 1046–771 BCE; Enheduanna fl. c. 2300 / OB copies c. 1800–1600 BCE; Osiris c. 2375–2345 BCE allusive + Plutarch 2nd c. CE; Dumuzi ED god-lists + OB tablets; Ezekiel 8:14 early 6th c.; Sappho fr. 140 c. 600 BCE with late return-claims; KTU dates; Mitanni anchor; Kylver; KN Fp 1).
- Verdict fidelity: the five edges match the motif notes exactly (3 × descent·high from sky-father.md including the *deywós → Týr sound-law text; Dumuzi→Tammuz contact·high; Tammuz→Adonis contact·medium-high). Dying-rising row carries no category verdict — Q6/Q7 rowTags keep both sub-questions visibly open. Gaps are honest gaps.
- MAJOR (P1) — unlicensed etymon on the Thor tile. The rowTag asserts "Þórr continues þun(a)raz 'thunder'". That etymon appears nowhere in the vault (
rg -i 'þun|thunraz'→ zero hits). The vault's own framing (proto-indo-european-religion.md, dyeus-sky-father-cognate-set.md, and the pantheon proposal itself) derives Thor from the \Per(k)wunos** storm-deity lexicon. The claim is true in mainstream scholarship, but it is invented relative to the vault — and the tile's backing note (sky-father.md) never mentions Thor at all, so "click to open the backing vault note" overpromises. - Minor (P2): the El gap hint quotes "father of gods" — the quoted phrase appears nowhere in el-yahweh-identification-canaanite.md (or anywhere in the vault); quotation marks confer attestation the note doesn't carry.
- Minor (P3): the An/Anu
convergencebadge rests on sky-father.md's general non-IE convergence scope (An is not named there), while dyeus-sky-father-cognate-set.md records Anu being borrowed into the Hittite sky-slot — a contact event a one-line caveat should acknowledge.
/whisper — one major, two minors
- Date fidelity: composition c. 1500–1200 BCE as inference; gap ~2,300–2,500 years ≈ 100 generations (derived in the proposal); Mitanni c. 1380 BCE with the four theonyms; Indo-Iranian split c. 2000–1800 BCE; iron c. 1200–1000 BCE; c. 1040 CE Nepal (Witzel 1997, single report, not fully published); 1464 CE BORI + UNESCO 2007; HUD labels pre-1200 BCE "composition window — inferred (3-reconstruction)" — all verbatim-faithful to the two Rigveda-gap notes.
- Honesty architecture PASS: drift lane explicitly labeled "deterministic simulation, not data"; Aboriginal coda renders dim because the claim note rates it low; badges (events 1-archaeology / transmission 4-ethnography·speculative) match the note's split exactly; Henige title-quote verbatim, correctly framed as the standing 2009 critique that predates Nunn & Reid 2016; "almost entirely without corruptions" is quoted as the note quotes it.
- MAJOR (W1) — the RV 1.1.1 English rendering is an unlicensed quotation. "I praise Agni, the household priest, divine minister of the sacrifice, the invoker, greatest bestower of treasure." is rendered in quotation marks attributed to "Rigveda 1.1.1," but this wording appears in no vault note (vault-wide
rg→ zero hits); no translator is named; the only provenance pointer is the idea file, which says "an English render" without giving one. rigveda-dyaus.md (the vault's Rigveda source record) explicitly warns that Griffith-era renderings "are unreliable for load-bearing claims," and this string is load-bearing — it seeds the drift simulation. Under the /voices standard ("unverified quotes are forbidden") this line fails. - Minor (W2): the chasm panel states the 1464 CE manuscript is "birch bark, Sharada script" — the notes say the BORI collection includes a Kashmiri birch-bark Sharada manuscript without pinning it to the 1464-dated item (04's note: "Sharada and Devanagari scripts on birch bark and paper").
- Minor (W3): the krama/jaṭā/ghana pattern demos (ab·bc·cd, ab·ba·ab, the full braid) are standard descriptions but the notes name the modes without specifying the permutation patterns — illustrative detail beyond the notes.
/rituals/shang-divination — PASS, exemplary
Every caption traced: 150,000+ fragments; 26 bones ¹⁴C-dated 1254–1197 BCE ±10 yr (Zhichun Jing et al., Radiocarbon); excavated from 1928; exclusively royal corpus / last nine kings / final ~200 years; the charge formula "On day X, crack-making. The king should hunt at Y?" verbatim from Keightley's note; diviners (bu) + king as ultimate authority; war/harvest/weather/health/childbirth/hunting domains; legitimation, cooperation-enforcement, anxiety-reduction tags; Keightley-vs-Eno Di dispute correctly left open and filed (Q25 verified in the register); "records of something done" verbatim from the claim note's emic; B15 verified in the backlog; Q31–Q33 stubs verified as real register rows. Emic/etic never blend. No findings.
| ID | Experience | Finding | Severity |
|---|---|---|---|
| W1 | /whisper | RV 1.1.1 English rendering presented as quotation; attested in no vault note; translator unnamed | major |
| P1 | /pantheon | Thor rowTag etymon "þun(a)raz" unlicensed (vault carries Per(k)wunos lineage); backing note never mentions Thor | major |
| V1 | /voices/baal | Emic panel commits to the seasonal/drought reading the licensing note says Smith resists; qualification absent | major |
| M1 | /map | Blanket ghost tooltip claims "cannot derive… by any documented route" for Manu (India not in the note's list; Q5 open) | minor |
| P2 | /pantheon | Gap hint quotes "father of gods" — phrase not in the referenced note or the vault | minor |
| V2 | /voices/unas | "Carved in vertical columns" detail unlicensed | minor |
| V3 | /voices/unas | "Gathered together" phrase licensed by pyramid-texts-osiris.md, which the room doesn't link | minor |
| W2 | /whisper | 1464 CE manuscript asserted to be the birch-bark Sharada item; notes only say the collection includes one | minor |
| W3 | /whisper | pāṭha permutation-pattern demos exceed what the notes specify | minor |
| P3 | /pantheon | An/Anu convergence badge unnamed in licensing note; Anu→Hittite borrowing (contact) uncaveated | minor |
| T1 | /tree | Italic date chip doesn't cover the Iguvine Tablets named in its sub-label | minor |
| M2 | /map | Scrubber readout "3001 BCE" beside "3000 BCE" hint (display convention mismatch) | minor |
Critical: 0 · Major: 3 · Minor: 9.
- W1 —
tools/server.ts(whisperPage, the.wtransline andWH_SYNseed comment): either (a) drop the quotation marks and label the line "working rendering (unverified — see W1)" the way /voices/unas labels its paraphrase, or (b) add the Jamison & Brereton 1.1.1 wording to rigveda-dyaus.md as a verified extraction and quote that, naming the translator. The drift-lane seed can stay (it is already labeled simulation) but should not be presented as the verse "per" anything until licensed. - P1 —
tools/pantheon-data.ts(ThorrowTag.text): replace "continues þun(a)raz 'thunder'" with the vault-carried framing ("the storm-deity lexicon the vault derives from Per(k)wunos — see proto-indo-european-religion") or first add the *þun(a)raz etymon to a tier-1/2 note; repoint the tile'snotefrom sky-father.md to/04_indo_european/2_notes/proto-indo-european-religion.md, which actually mentions Thor. - V1 —
tools/server.ts(voiceRoomBaal, the.vemicblock): add the qualification in-pane or to the etic record, e.g. "…the seasonal reading is one layer — Smith, the edition this room quotes, reads royal ideology and cosmology as primary," mirroring ugaritic-baal-cycle.md's reliability note. - M1 —
tools/server.ts(MAP_GHOSTS/ ghost<title>): vary the tooltip per ghost; for Manu (and optionally Gun-Yu) use the note's actual status ("no documented route is recorded in the vault; mechanism unresolved — Q5") instead of "cannot derive." - P2 —
tools/pantheon-data.ts(P_GAP_HINTS["sky-father:ugaritic"]): drop the quotation marks ("El is father of the gods in the Ugaritic corpus but not the sky…") or add the attribute, sourced, to el-yahweh-identification-canaanite.md. - V2 —
tools/server.ts(voiceRoomUnas): delete "carved in vertical columns" or reduce to "carved on the chamber walls" (what the notes carry). - V3 —
tools/server.ts(voiceRoomUnasetic record): add a link to/09_comparative/1_sources/pyramid-texts-osiris.mdand credit the "rising, being gathered together" phrasing to it. - W2 —
tools/server.ts(whisperPage, the BORI.wmcard): "the oldest securely documented manuscript: 1464 CE, BORI Pune (the collection includes a Kashmiri birch-bark manuscript in Sharada script)…". - W3 —
tools/server.ts(MODES/demo()): add "(illustrative)" to the pattern line, or extend the 04 note with a sourced description of the patterns. - P3 —
tools/pantheon-data.ts(An/Anu deity entry): add arowTagnoting "convergent with the IE set per sky-father scope; NB Anu was himself borrowed into the Hittite sky-slot (contact) — see dyeus-sky-father-cognate-set." - T1 —
tools/tree-data.ts(italic node): date string "c. 6th–3rd c. BCE (Latin); Iguvine Tablets c. 3rd–1st c. BCE" or drop the Iguvine mention from the sub. - M2 —
tools/server.ts(MAP_JSfmt): display the slider minimum as the label states (clamp/format −3000 → "3000 BCE") or change the hint to match the astronomical convention.
All 12 findings were remediated in commit dad4de8 and independently re-verified against the rendered output (curl + rg, service restarted): W1 now labeled "working rendering after public-domain translations — not a vault-verified quotation" with the quoted form gone; P1's þun(a)raz removed (zero rendered hits), rowTag now carries the vault's Per(k)wunos framing and the tile points at proto-indo-european-religion.md; V1's emic pane now carries Smith's "royal ideology and cosmology as primary" qualification; M1 ghosts are per-ghost (Manu no longer claims "cannot derive"); P2/V2/V3/W2/W3/P3/T1/M2 all confirmed in rendered HTML. bun tools/validate.ts green (0 errors).
Residual found and fixed during verification — M2b (minor, same class as M2): the M2 fix corrected the client scrubber formatter but two server-side sites still applied the astronomical 1 − y formatter to calendar-negative data: (a) the /map journey-log year chips rendered "1636 BCE" for the c. 1635 BCE Atra-ḫasīs entry and "467 BCE" for Pindar's 466 BCE — contradicting the vault dates in their own row text — and (b) the /tree gridline labels ("3001 BCE"-style) against calendar-negative node y values. Both formatters corrected to −y with licensing comments; re-verified rendered: log chips now read 1635 BCE / 466 BCE etc., gridlines 3000/2000/1000 BCE. This off-by-one pre-dated the remediation (present at original audit time) and is an under-scoping of finding M2, recorded here for honesty.
The system's strongest property is that its two most dangerous surfaces — /scenes/eridu (second-person narration) and /rituals/shang-divination (ritual reconstruction) — are its two cleanest, because both were built with per-line licensing machinery. The generated surfaces (/timeline, /observatory, header scrubber) inherit honesty from frontmatter by construction. Every transmission verdict rendered anywhere matches its motif note's verdict and scope; no UI hardens dying-rising, Q4, Q5, Q6, Q7, or Q25. All 48 hardcoded note links resolve. The three majors share one root cause — true-but-unlicensed content written at experience-build time — which the existing per-line licensing pattern (SCENE_NOTES / R_NOTES) already knows how to prevent; extending that pattern to /voices, /whisper, and the pantheon rowTags closes the class.