pipelines/CRITIC_knowledge-progression-decipherment.md
knowledge-progression-deciphermentFresh-context adversarial refutation of
LENS_knowledge-progression-decipherment_DRAFT.md (KPD-1..KPD-10 + COVERED ×7 + DIVERGENT ×4 +
REFUTED-AND-DROPPED ×7).
Method: every citation opened; every registry number recomputed independently with csv (not
grep); every "zero" re-run with my own positive control and, where the author scoped narrowly,
BROADENED to _source / registries / harness / the engine tree; every MISSING vs
DESIGNED-UNBUILT boundary re-searched against docs/PRE_5090_BUILD_PLAN.md (incl. the ranked-30
open-items list), VOL2 (incl. §A.0), docs/factory_contract.json and
docs/DESIGN_GAP_REGISTER.md before accepting. Devil's-advocate-against-timidity run on every
recommendation.
---
The arithmetic is flawless. Every registry figure I recomputed matched to the row:
184 / 122 blank reward_class / 98 blank primary_source / 88 needs_research / 86 primary / 10
blank / 0 blank evidence_basis / exactly the 16 named exposed link_ids; 79 clue files / 10
rows / all CH_02; Thread_Grid 666 rows, 22 threads, histogram exact to all nine stage values; 30
gates by name; RingCap = 16; FieldSenseLines = 5. Independent recomputation found zero
counting errors. The method notes (escaped-underscore trap, csv-not-grep, programmatic gate
enumeration) are real, reproducible, and worth promoting into the program's shared method file.
Two systemic defects, in opposite directions.
1. Scope failure on the absence side. The author positive-controlled every *registry/code*
zero rigorously but did not search the build plan's ranked-30 open-items list, VOL2 §A.0,
or factory_contract.json before minting its two most prominent framings. The journal-IA gap
(KPD-1) and the clue-density gap (KPD-4) are already named, ranked, open items. Verdict
classes stay right; novelty does not.
2. Truncated histograms converted into "no blanks" claims. Three separate places state or
imply full population from a histogram the author cut short. Actual: mastery_tier_threshold
has 2 blanks (not 0); trade_9_tier_gate has 3 blanks and eleven distinct values,
not the six listed; payoff_chapter has 18 literal N/A rows. This is the repo's own
"a search that cannot match reports zero" failure in histogram clothing.
**One finding carries a canon-authority error serious enough to block its recommendation as
written** (KPD-3 rec-2: an await_josh_confirm recommendation is cited as "ratified").
---
Citations — all real. CVD Pillar 6 executable test verbatim ✔ (read directly).
T1_UI_UX_Spec [DRAFT v0.1].md = 35 bytes, 2 lines, title-only ✔ (# T1\_UI\_UX\_Spec \[DRAFT v0.1\]);
T1_Audio_Spec = 34 bytes ✔. WS_010 journal_entries_unlocked with consumers
journal_renderer, save_state_system ✔. Source/Humanity/Public/UI/ = exactly 4 headers, no
journal widget ✔. Pipeline Contracts §1.9 L222 "UI display routes through T1\_UI\_UX\_Spec" ✔
and L224 deferral clause verbatim ✔. The escaped-underscore trap is REAL — I reproduced it
(literal grep = 0; tolerant pattern finds CVD + Contracts). Promote to the program method file.
REFUTED — "the ENTRY ARCHITECTURE is genuinely absent … that is what this finding asks for."
Four artifacts the draft never cites:
docs/PRE_5090_BUILD_PLAN.md — **Q3.6 `| Journal system | BUILD-NOW | Auto-assemble entriesfrom decision flags + path-band template selection; hard-anchored Ch13/38/57 entries;
healer's-child voice; Evil sparse/cold → Good rich/warm texture. |`** Auto-assembly + template
selection is structure, not only content.
information architecture (L1/L2/L3 layers, journal/Grimoire/map screens) … None exist as
specs today.**" — the exact gap, already ranked and self-declared absent.
vs empty before deep implementation." — the empty-stub observation is itself a registered item.
container"), both BUILD-NOW.
REFUTED — the slice-criticality argument as a discovery. VOL2 §A.0 already carries it:
"U11.18 (journal slice stub, empty-state by design) … **Q3.6's Ch-13 activation was OUTSIDE the
old slice and is now its TERMINAL node … Re-derive whether the journal ships as a
correctly-empty shell or as an activating system.**" The draft presents this as its own
deduction. It is a vote in an already-open re-derive.
What survives — and it is worth landing. None of the four artifacts specifies an **entry-state
enum, an evidence back-link, or a "more here" flag**. Obra Dinn's fill-in-the-blank and
Outer Wilds' rumor-vs-fact edge distinction are a genuine, un-held import.
AMENDED VERDICT: DESIGNED-UNBUILT (class unchanged) · HIGH → MEDIUM-HIGH · retitle
"*Q3.6 specs journal assembly and voice but not the deduction-workspace information
architecture*" · must cite Q3.6, plan items 26 + 29, U11.18/U11.20, VOL2 §A.0 · reframe as
comparator input to the open §A.0 re-derive (evidence for "activating system", not
"correctly-empty shell"). Recommendation moves 1-3 all name existing homes — reuse-first ✔, keep.
---
Zero re-run and BROADENED — this is now the most heavily positive-controlled zero in the audit.
The author searched docs/ only. Three independent re-runs:
docs/ (my own walk) → ZERO; control link.action = 8 hits._source/ → ZERO; control Cross.Cultural Link|link action =23 hits across 9 files.
_source + registries + harness + C:/dev/Humanity/Humanity/Source (.md/.csv/.json/.h/.cpp/.py) → one hit, and it is a false positive:
_source/02_Tier_2_Region_Pages/flores_island.md L1706 — "re-targeted from the stale Ch-39
mis-link (Ch 39 is West Africa modern, not Flores)", i.e. a stale chapter cross-reference,
not a player wrong-link mechanic. Control in the same sweep = 24 hits.
The zero survives a materially stronger search than the author ran, across both repos. ✔
Citations. CVD Pillar 5 verbatim ✔ (read directly). Q3.8 BUILD-NOW spec verbatim ✔.
VOL2 U11.19 slice stub ✔. NATURAL_VOICE_DOCTRINE §4 non-gating ruling verbatim ✔ — the divergence
check was genuinely done, not asserted.
Reuse-first ✔ — quorum on existing link_type / link_strength / evidence_basis columns;
evidence_basis blank on 0/184 confirmed ✔ (so the acquire-the-source gate is buildable today).
LINK_0001's lore_pointer quote verbatim ✔.
DEVIL'S-ADVOCATE / TIMIDITY FLAG (the one substantive objection). The finding equates "never
gate progression" with "never cost anything". Those are different. NATURAL_VOICE_DOCTRINE §4
bars hard progression gates; it does not bar a non-gating cost. At the R-17 AAA bar a
wrong link can legitimately cost vril, time, a cooldown, or standing with a scholar NPC without
gating a single beat — and a cost-free unbounded action is exactly what invites the enumeration
the finding is trying to prevent. **AMENDMENT: widen the recommendation's option space to
quorum + optional non-gating cost, and let the Q3.8 spec choose.** Do not ship "costs nothing"
as the only option — that is the defanged read of the ruling.
VERDICT: SURVIVES, priority HIGH confirmed, recommendation AMENDED (add the cost option).
---
The 16-row exposure — SURVIVES, fully verified, this is the audit's single best finding.
Recomputed independently: exactly 16 rows with a reward_class, blank primary_source, and
evidence_tier != primary — and the id list matches the draft's exactly
(LINK_0001, 0002, 0006, 0009, 0010, 0011, 0012, 0013, 0030, 0039, 0088, 0092, 0100, 0104, 0116,
0118). I additionally verified the draft's unstated-but-load-bearing claim that **all 16 carry a
MECHANICAL class**: INTUITION_TIER ×4, DISCOVERY_UNLOCK ×5, PUZZLE_UNLOCK ×4, SCHOOL_TECHNIQUE
×3 — zero LORE. ✔ Against CVD Pillar 5's "Cross-cultural reward without primary-source
documentation = pillar violation" (verbatim ✔), these are violations today.
The no-gate claim — SURVIVES, and I strengthened it. The author checked the 30-gate list.
I went further and grepped the column names across all of harness/*.py: reward_class /
primary_source appear only in apply_t03_extensions.py (an applier, and there only on the
QUEST_65 family) and enrich.py (a pack builder) — neither is a gate.
Cross_Cultural_Link_Graph is read by check_region_page.py only for link_type lookup and
LINK_\d+ FK validation, never for reward/source coverage. check_source_anchors.py docstring
verbatim ✔; check_weave_lifecycle.py scoped to story_seed_tags on
T0_Source_Material_Registry, WARN-tier ✔. No gate watches this. ✔
KILLED — the ratification claim, and with it recommendation 2 as written.
The draft states: "*docs/DECISION_DOSSIER.md L534-547 ratified Option A … the apply is only
34% landed. This is a deterministic-transform commit (the proven O-1 method), not an authoring
wave.*"
Decisive counter-evidence, docs/DECISION_DOSSIER.md §9, the header line of that very entry:
- Key:CCLG_REWARD_TAXONOMYType: creative Disposition: await_josh_confirm
CCLG_REWARD_TAXONOMY appears nowhere else in docs/ (single hit, that line). The dossier's
disposition histogram is 20 × await_josh_confirm vs 1 × apply_now — this entry is in the
first bucket. Option A is the recommendation, not a ruling. The draft mistook a
recommendation section for a ratification.
This matters beyond pedantry: the same dossier rejects Option C explicitly because per
CLAUDE.md "Claude does not decide weapon/ability/school assignments; those are
numerical/naming canon Josh authors." Running rec-2 as written would apply an unratified
mechanical-reward rule across 122 rows — a cardinal-rule breach dressed as a mechanical transform.
This also RESOLVES the draft's own contested note (it flagged rather than guessed — correct
instinct, and it lands on the right answer): the 122 blanks are not a stalled apply, they are
awaiting Josh's confirmation of the taxonomy. Verdict on the 122 accordingly softens to
DESIGNED-UNBUILT / awaiting-ruling, exactly as the note hedged.
AMENDED VERDICT: split the finding.
check_link_rewards.py gate modelled on check_weave_lifecycle.py) is reuse-first and sound —
land it.
written**; the correct ask is to surface CCLG_REWARD_TAXONOMY for Josh's confirmation via the
standing decision protocol, not to run a transform. The 88 needs_research → book-pipeline
routing is fine and unaffected.
---
Every fact verified. 79 files / 10 rows / all CH_02 ✔ (recomputed with csv.DictReader).
extract_spine_rows.py reject-at-emit verbatim ✔ including the three sys.exit branches
(illegal source_kind, illegal status, empty clue_id/player_text/src) ✔. CLUE_FIELDS
list matches FClueRow field-for-field ✔. ClueRow.h "DT_Clue is still unimported (TODO_CANON)"
✔. docs/spine/clues/README.md OR-together rule verbatim ✔ — **the author's self-correction was
right**, and publishing the wrong first draft alongside the correction is exactly the honesty the
program wants. Credit it.
REFUTED — that anything here is un-registered. docs/factory_contract.json already carries
both halves, and its FR-026 evidence field states the draft's headline fact verbatim:
"evidence": "CH_03-05 clues.csv are header-only; 10 clue rows exist across 79 nodes"
and FR-037 (status: PARTIAL) carries the authoring obligation with
tooth: "NONE(the clue surface has no registry home until rank 29 re-homes it into DT_Clue)".
The draft's surviving ask — "when rank 29 re-homes DT_Clue, arm FR-037 with a per-chapter
presence count" — is FR-037's own declared routing. And the README already declares chain =
"the read this clue makes legible", which the draft concedes, leaving the answers column with
almost nothing to add.
AMENDED VERDICT: DESIGNED-UNBUILT (class ✔) · HIGH → MEDIUM · **demote from a finding to a
PRIORITY ARGUMENT on an existing rider.** Its real contribution is the comparator claim that clue
density is *the minimum viable substrate* of a knowledge loop, not polish — which argues FR-037
should outrank ordinary authoring backlog. That is a legitimate lens contribution; a new gap it
is not. Drop the answers column ask (subsumed by chain).
---
Citations verified to the line. T3_Core_Characters §3.3 verbatim — "The game's first extended
mystery about a human character" and "The Ch 13 revelation retroactively contextualizes every
note" ✔. CH_03.md L160-161 systems: [journal:healers_child_unsigned_marks] /
ws.journal_status: +healers_child_unsigned_record_begun ✔ exact lines. CH_11 L201 + L283 ✔
exact; CH_12 L217 + L286 ✔ exact. RingCap = 16 ✔; FieldSenseLines = 5 ✔;
"NOT a journal (HL_0070/HL_0096)" ✔. grep clue Source/Humanity/Public/WorldState/*.h → 0 ✔
(my re-run: exit 1, no hits), control FieldSense over UI headers → 10 hits ✔ exactly as
claimed. VOL2 R3 owner "WS-C runtime clue-state + W10 (display)" ✔.
AMENDMENT 1 (weakens one clause). "The mystery is fully authored and it spans the whole
slice" overstates. I counted the arc across CH_04-CH_13: the token unsigned appears in **CH_03
(8), CH_11 (2), CH_12 (3), CH_13 (6) — and ZERO in CH_04 through CH_10**. The ws.journal_status
write exists in CH_03 only. So the arc is *declared* at its endpoints and carried in Ch 11/12
cast lists, but the seven middle chapters carry no unsigned-note artifact and no worldstate
write. The mystery is structurally asserted, not authored through. This does not weaken the
finding's conclusion — it strengthens it (there is even less evidence for Ch 13 to
recontextualise than the draft assumed) — but the sentence must be corrected, and the Ch 4-10
authoring gap is a real second-order catch the lens missed.
AMENDMENT 2 (technical, on rec-1). "The fired set, not the ring, is the natural evidence
store … a small change inside the existing subsystem." I read the .cpp: FiredClues is indeed
uncapped and — correctly — not reset by LoadCluesFromTable ✔. **But CluePlayerTextById
*is* Reset() at the top of every load and is chapter-filtered**, so the fired set retains
clue_ids whose player_text is no longer resident once the player leaves the chapter. Rendering
chain-bearing clues from the fired set therefore needs an unfiltered text map (or a second
persistent store) — a somewhat larger change than "small". State it honestly; the recommendation
is still right and still reuse-first.
VERDICT: SURVIVES · WEAKER · HIGH ✔ · slice ✔ · two amendments. No timidity issue.
---
Quotes verbatim ✔ — Ch 41 "Drakensberg /Xam rock art now at full adult-inscription-mastery
reading" ✔ (actual L68, draft cited L79 — quote right, line wrong); Ch 65 "…have grown clearer
since Ch 58" ✔ L89 exact; Tier 9 Magister Templi "Palimpsest mastery becomes available — every
palimpsest in every visited location becomes readable…" ✔ L261 exact. law-side zero: no
player-facing surfacing mechanic found ✔ — my own searches agree. Q3.7 covers decode-on-encounter,
not decode-what-you-passed ✔.
FACTUAL ERROR (truncated histogram → false "0 blanks"). The draft: "trade_9_tier_gate is
populated on all 98 rows — 0 blanks in the tier histogram above." Recomputed: 3 blanks
(FAIRY_REALM_PROLOGUE_BASELINE, INSC_77H_CH01_FRAGMENT, INSC_77H_CH02_FRAGMENT) and
eleven distinct values, not the six listed — the draft's six sum to 86 of 98, omitting
ZELATOR 4, NEOPHYTE 3, MAGISTER_TEMPLI 1, MAGUS 1, blank 3. The proposed flip rule
(player_trade9_tier >= trade_9_tier_gate) is therefore **undefined on 3 rows, two of which are
the Ch 1 and Ch 2 fragments — inside the slice.** Correct the histogram and handle the 3.
Also unstated: payoff_chapter is "0 blanks" only literally — **18 rows carry the string
N/A**, and the column has just 6 distinct values (76.0 ×73, N/A ×18, 15.0 ×2, 38.0 ×2, 8.0 ×2,
57.0 ×1). Not a defect (the 77 fragments converge at Ch 76 by design), but the draft's COVERED
bullet "payoff_chapter set" reads richer than the data.
STRUCK — the argument that carries the MISSING verdict. "The Magister Templi promise … is
unsatisfiable by return-travel across 79 nodes and therefore requires a remote surface that no
document names." Two refutations: (a) the same §7.3 sentence the draft quotes begins
"Quest-unlocked through prestige questline available only after Main Story Ch 77 completion" —
this is post-story endgame, where revisiting *is* the content (Epilogue = completionist/MMO
endgame); (b) the arc already ships the return vehicle structurally — **Ch 59-65 continental
revisits, Ch 40 Congo, Ch 41 South Africa Modern, Ch 65 Antarctica Return** — and the draft's own
per-site citations are *instances of that vehicle working*, not evidence of its absence. Remote
re-read is a convenience, not a necessity.
AMENDED VERDICT: MISSING → DESIGNED-UNBUILT, narrowed to the one sliver that genuinely has no
home: the player-facing NOTIFICATION that something previously illegible has become legible.
Registry rows exist (trade_9_tier_gate 95/98), the build item exists (Q3.7), the screen home
exists (plan item 26), and the world-side vehicle exists (revisit chapters) — the wave rule's own
test ("a spec/ruling/registry row exists but nothing is built") is met for everything except the
notification. Priority MEDIUM-HIGH → MEDIUM (the headline payoff is post-Ch-77). Rec is
otherwise sound; strike the "cap it honestly at a bounded 98" clause — see the timidity flag
below.
DEVIL'S-ADVOCATE FLAG (reverse direction — unflagged canon narrowing). The recommendation
proposes: "'every visited location' means every location with an inscription-spine row, which is a
bounded 98." That quietly re-reads a T1 promise downward to fit current data. If 98 rows
under-serve "every palimpsest in every visited location", the answer is *author more rows*, not
*narrow the promise in the spec*. An audit recommendation must not shrink ratified canon to match
a registry's current population. Flag to the director.
---
Verified. decipherment_status histogram exact to all 7 values ✔.
inscription_limit_zone = True on 10 of 84 ✔ exact. system_type,
inscription_application_class, decipherment_status, inscription_limit_zone,
layer_1/2/3_* all 0 blanks ✔. CVD Pillar 7 "puzzle engagement always available" verbatim ✔.
The divergence-check zero is CONFIRMED and is the audit's cleanest positive control: searching
auto-decode|auto_decode|automatic decoding|puzzle engagement repo-wide returns exactly **2 real
hits — CVD Pillar 7 and Q3.7** — every other hit is the draft quoting itself. ✔
FACTUAL ERROR (same truncation class). "mastery_tier_threshold is the character gate:
PRACTICUS 27, THEORICUS 12, ADEPTUS_MAJOR 12, ADEPTUS_MINOR 11, ZELATOR 6, PHILOSOPHUS 6,
ADEPTUS_EXEMPTUS 5." Those sum to 79 of 84; omitted are NEOPHYTE 3 and 2 blanks. This also
falsifies the COVERED bullet's "no blanks in the histograms I ran (… mastery_tier_threshold …)".
Correct both.
Reuse-first ✔ — player_gloss on the KPD-1 journal entry; validation at
fragment_index/fragment_assembly_role (I verified both columns exist; fragment_index blank
on 21, fragment_assembly_role N/A on 21 — the assembly unit is real but only ~77 rows carry
it, worth stating). Targeting the 10 inscription_limit_zone rows is a ready-made list ✔.
Timidity check — PASSES, and this is the audit's boldest and best-judged recommendation. A
never-validated player gloss at Meroitic/Harappan delivers §3.1's "cognitive dissonance" as a
mechanic instead of a stat roll. I checked it against the anti-decoder-ring rule ("No
invented-semantic-content … Cultural-sensitivity violation"): a *player's private notebook guess*
is not the *game asserting* a semantic content, so the rule is respected. No care inflation.
VERDICT: SURVIVES · WEAKER · MEDIUM ✔ · histogram corrections required.
---
Verified field-for-field against docs/factory_contract.json (not the .md view): FR-026
obligation string verbatim ✔, lane: canon-author ✔, scope: all ✔, status: SEED ✔,
ruling_src: docs/NATURAL_VOICE_DOCTRINE.md#3-clues-mysterious-is-allowed-unfun-is-not ✔,
data_home: path:build/spine_rows/CH_*/clues.csv ✔. Scorecard: "**Gate: PASS (0 FAIL, 7 WARN;
fixtures 73/73)**" ✔ and "34 SEED riders are ADVISORY by design: they surface in every checklist
and never fail this gate" ✔ verbatim; R2 FR-024 line ✔ verbatim; the R3 rule ✔ verbatim.
NATURAL_VOICE_DOCTRINE §3 solvability ruling ✔ verbatim.
REFRAME (the finding is better than the draft realised). The draft's rec — "when rank 29
re-homes DT_Clue, promote FR-026 from SEED to a real check" — reads as new, but the contract
already sets consumption_point: "plan:rank29". What is genuinely new is that the draft
contradicts FR-026's own stated tooth rationale, and is right to:
"tooth": "NONE(solvability is proven by the QA loop's attempt budget; no static assertion can prove it)"
The draft's counter — a presence assertion (≥1 active clue row whose chain matches each
puzzle/clue-routed beat) is not a solvability proof but *does* catch the actual failure mode (a
puzzle authored with no clue at all) — defeats that rationale. **That rebuttal, not the rank-29
sequencing, is the finding.** Retitle and lead with it.
VERDICT: SURVIVES · DESIGNED-UNBUILT ✔ · MEDIUM-HIGH ✔ (slice-relevant under THE JOSH GATE:
the QA loop is the only player). ENGINE-vs-CANON split ✔ per standing reuse order. No timidity
issue.
---
law_state · SURVIVES (best-supported finding in the audit)Every citation verbatim ✔ from docs/proposals/REALM_DESIGN_PROGRAM.md §2.3: the
PER-FEATURE/PER-WORLD rejection ✔; the METAPHYSICAL LAWS sub-row group with taught_at,
**`EXPLOIT, how a clever player turns the law into a tool rather than only suffering it, which is
what keeps the realms from reading as corridors of rules ✔ word-for-word**; reprise_of` ✔;
violation_consequence, never a progression stop ✔; the D-RR.5 bound ✔; "Proposal-tier concept,
not a mint" ✔; the V-ADEQUACY POSITIVE CONTROL as "a required tooth and not an optional one" ✔.
The gap is real and positive-controlled. law_state → 0 hits in the doc.
T0_Realm_Ruleset_Registry absent from registries/ ✔ (control: T0_Inscription_Spine present
✔). The taboo sub-row's layer (L1 action, L2 completionist, L3 connection) field exists ✔, so
the proposed exploit_tier genuinely reuses a ratified vocabulary rather than minting an enum.
Divergence guard correctly applied — routes the knowledge lock to the prize tier
NATURAL_VOICE_DOCTRINE §4 names, never the critical path. Not a re-litigation ✔.
Timing claim holds: proposal-tier + pre-mint = the cheapest possible moment. **VERDICT:
SURVIVES UNCHANGED. Land it before the Wave-2 schema mint.** Highest confidence in the set.
---
Verified exactly. Thread_Grid 666 rows, 22 threads, columns as listed ✔, and the
progression_stage histogram matches all nine values to the row (ANCHOR 443 / ESCALATION 106
/ NOT_PRESENT 49 / CONFRONTATION 45 / RESOLUTION_FINAL 15 / RESOLUTION_PARTIAL 4 / CONVERGENCE 2 /
CONFRONTATION_DIRECT 1 / CAPSTONE 1) ✔. The rec's "68 rows total" arithmetic checks
(45+15+4+2+1+1) ✔. Both reveal gates present in the 30-gate config ✔.
Note (not a defect): PRE_5090's Q3.8 says Thread_Grid(664); live is 666. The draft correctly
quoted the plan verbatim in KPD-2 and used the live 666 in KPD-10 — right call both times. **The
plan's 664 is stale by 2 and is worth a one-line correction in the landing commit.**
Reuse-first ✔ — the rule-not-a-column first move (checkable today from three existing tables,
zero schema change) is exactly the right order, and landing it on check_reveal_discipline.py as
the positive twin of the leak axis is the correct home. VERDICT: SURVIVES · WEAKER · MEDIUM ✔.
---
mastery_tier_threshold …)" is false (2 blanks); "trade_9_tier_gate populated across all
six tier values" is false (eleven values, 3 blank). Everything else — the Inscription Limit
praise, the Trade-9 paradox home base, the reveal-leak gates, the V-adequacy probe, the
reject-at-emit rule — I verified verbatim and endorse. The reject-at-emit praise is
particularly well-placed: I read all three sys.exit branches.
(locked 79-node spine; non-gating puzzles; auto-decode; markerless navigation already at
DESIGN_GAP_REGISTER L207). No re-litigation. ✔
the KPD-4 chain_min self-correction was published rather than buried. This section did real
work and saved me re-derivation. Keep the practice.
DESIGN_GAP_REGISTER marks CLAIMED-QUEUED (P1-C) for thislens ✔ — scope is honest.
---
1. Line numbers in this audit will drift; anchor by section/id. PRE_5090_BUILD_PLAN.md
moved 35 lines between the draft's authoring and my pass (Q3.7 was L1794, now L1829) — the
repo is being written by other lanes concurrently. The draft's numbers were right when written.
The Languages doc (unmodified since Jul 20) has one genuinely wrong number: Ch 41 is L68,
not L79. **Landing recommendation: convert every citation to doc §section form before this
goes into the register.**
2. New method rule earned this pass: never state "0 blanks" from a printed histogram. Three
errors here share one cause — the author printed a top-N histogram, then read absence of a
blank *row in the printout* as absence of blanks *in the data*. This is the repo's own
"a search that cannot match reports zero" failure in a new costume. Propose adding to the
program method file: blank counts are computed and stated separately from histograms.
3. The absence-search must include the ranked-30 and the factory contract. The wave rule says
check PRE_5090_BUILD_PLAN.md before minting MISSING; in practice the author checked the
*build-item tables* but not the ranked open-items list (items 26/29) or
factory_contract.json. Both KPD-1 and KPD-4 lost their novelty there. Worth making explicit
in the runbook for the remaining lenses.
4. One cardinal-rule near-miss. KPD-3 rec-2 would have run a 122-row mechanical-reward apply
on a rule whose disposition is await_josh_confirm. Do not land it. Route
CCLG_REWARD_TAXONOMY to Josh via the standing decision protocol instead.
---
GO-WITH-FIXES. This is a strong audit — the best-verified numbers I have checked in this
program, with genuine method contributions and an honest self-correction. Land it after these
mandatory edits:
1. KPD-3 rec-2 STRUCK and the finding split into 3a (16 rows, land the gate) / 3b (122 rows,
blocked on Josh). *Non-negotiable — cardinal-rule exposure.*
2. KPD-6 reclassed MISSING → DESIGNED-UNBUILT, narrowed to the notification surface; the
"unsatisfiable by return-travel" argument struck; the "bounded 98" canon-narrowing struck.
3. Three histogram corrections (trade_9_tier_gate 3 blanks / 11 values;
mastery_tier_threshold 2 blanks; payoff_chapter 18 × N/A) and the two COVERED bullets
that depend on them.
4. KPD-1 and KPD-4 re-cited and re-priced against Q3.6, plan items 26 + 29, U11.18/U11.20,
VOL2 §A.0, and FR-026/FR-037 — KPD-1 reframed as input to the open §A.0 re-derive, KPD-4
demoted from finding to priority argument on FR-037.
5. KPD-2 recommendation widened to include a non-gating cost option (timidity fix).
6. KPD-5 amended — "fully authored" corrected (Ch 4-10 carry no unsigned-note artifact and no
worldstate write), and rec-1's cost restated (the chapter-filtered CluePlayerTextById reset
makes it more than "a small change").
7. KPD-8 reframed to lead with its rebuttal of FR-026's tooth: NONE rationale.
8. All citations converted to doc §section anchors before entering the register.
Land unchanged: KPD-9 (highest confidence; land before the Wave-2 mint), KPD-10, KPD-7
(pending its histogram fix), KPD-3a, and the DIVERGENT + REFUTED-AND-DROPPED sections in full.
---
Killed: 2 · Survived: 5 · Amended: 5 · Contested: 2
await_josh_confirm error); KPD-6'sMISSING class and its "unsatisfiable by return-travel" supporting argument.
findings surviving with their verdict class intact (KPD-3a carried under Amended for the split).
to priority argument), KPD-5 (two corrections), KPD-6 (reclassed + narrowed). Plus the three
histogram corrections propagating into KPD-7 and COVERED.
under the wave rule's strict reading (I rule DESIGNED-UNBUILT; the director may disagree since
no artifact names the notification itself); and whether KPD-2's wrong-attempt design may carry
a non-gating COST — my timidity flag says the option must be on the table, but "never punish"
is arguably the safer read of Josh's non-gating ruling and is his call, not the loop's.