core/docs/research
Claude 6c67e88df1
feat(config,specs,tests): PR-5 — the flag register, profiles as units, and the daemon's missing fourth flag (R-3 + R-4)
Rank 3 on the docket. RuntimeConfig carries 32 boolean fields and nothing in
the repository stated that set, distinguished a capability flag from a posture
flag from a deployment knob, or recorded what evidence would flip any of them.
Two independent counts of the same set differed by eleven — the assessment said
"seventeen capability flags," N-7 measured 28 default-off plus 4 default-on —
and neither was wrong about what it looked at. They counted different things
because nothing declared what the set was.

R-3 (ruled A — incomplete flag set). accrue_realized_knowledge joins
CONTINUOUS_LIFE_CONFIG_FLAGS. Step D consolidates the realized facts Step B
writes, and the daemon forced the consumer without the producer: a continuous
life consolidating an empty set, which the mastery framework calls "garbage at
high speed." It shipped that way for six weeks.

The decisive evidence was in the code, not the documents. BOTH flags' comment
blocks in core/config.py already described the corrected profile —
accrue_realized_knowledge says "the production L10 process enables it alongside
persist_session_state", consolidate_determinations says "...alongside
accrue_realized_knowledge + persist_session_state". Three records (two
docstrings and the 07-25 verification doc) agreed with each other and disagreed
with four lines of code. Dormancy was a coherent ruling and would have cost
correcting three records that were RIGHT about the design; incompleteness cost
one line.

So the planned "N-6 docstring correction" deliverable DISSOLVED rather than
shipping: adding the flag made both docstrings true. Recorded explicitly,
because a PR that quietly ships less than it promised is the same divergence
class this arc exists to close.

R-4 (ruled A) — docs/specs/flag_register.md. All 32 booleans with class,
governing ADR or an honest "none", recorded rationale, and what evidence would
flip it. The classification is the load-bearing half and is stated as a
taxonomy rather than a label:
  CAPABILITY — what CORE can do; engineering may flip it on named evidence
  POSTURE    — what CORE serves or refuses AS TRUE; the wrong=0 boundary,
               ruling-only
  DEPLOYMENT — cost, lifecycle, process shape; per-deployment
estimation_enabled and composed_surface are both "= False" and are not the same
kind of thing. Nothing said so before.

Profiles are declared as the UNIT of decision (R-4's mechanism): one-shot/eval
and continuous-life. The absence of a SERVING profile is stated deliberately —
the four POSTURE serving flags each ride their own license, and grouping them
before the ledger is sealed would license by association, the outcome R-8
exists to prevent.

tests/test_flag_register.py, on the gate. BIDIRECTIONAL, because either
direction alone would have passed through both failures it exists to prevent:
a flag added to config.py and not registered fails; a register row outliving
its flag fails. The counts the register's prose states (32 / 4 ON) are pinned,
since a stale count is how this register came to be needed. Four sabotages
observed red — new unregistered flag, deleted row, orphaned row, and a flag
silently flipped ON, the last caught by two independent pins.

THREE FINDINGS THE ITEM DID NOT ANTICIPATE, all from measuring rather than
reading.

1. Accumulated permissiveness, not just hesitancy. Of the four default-ON
   flags, ONE has a governing ADR (deduction_serving_enabled / ADR-0256) and
   TWO have no recorded reason of any kind — allow_cross_language_recall and
   use_salience carry no comment block, no ADR, no criterion. In an
   architecture built on earned licenses, two permanently-on capability flags
   with no recorded decision is G-8's question inverted. Registered and
   deliberately NOT fixed: writing a rationale after the fact would invent a
   decision nobody made, which is worse than recording the absence.

2. A hollow gate inside the governance pin itself.
   test_default_on_flag_is_not_governed_by_a_proposed_adr is parameterized over
   (default-ON flag x cited ADR), so the three uncited ON flags contribute ZERO
   cases — it covered exactly one flag. Its non-vacuity guard asserted only
   that SOME flag cites an ADR, which default-off flags satisfy in abundance.
   One reformatted comment away from zero coverage with everything green: the
   failure state indistinguishable from the success state, inside the module
   written to prevent exactly that. Guard tightened to require a non-empty
   parametrization, and observed red by stripping ADR-0256's citation.

3. The daemon's own tests ran on no gate. R-3 changes what the always-on
   process does every beat, and tests/test_l10_always_on_daemon.py was in no
   curated suite — so this behaviour change would have shipped guarded solely
   by tests no gate invokes, which is the hollow-gate pattern landing on the
   exact file covering the change. Promoted to smoke WITH the change it guards.
   Measured +9.4s, +4.3% of smoke — paid deliberately, not estimated. Removed
   from full_only_baseline.txt in the same edit (both-directions ratchet; the
   baseline shrank 747 -> 746).

Red before green throughout: the assertion cfg.accrue_realized_knowledge is
True was added to the daemon test and OBSERVED FAILING before the flag existed.

H-8(c) closed by AMENDING the correction note rather than deleting it, and the
amendment is the more useful artifact. PR-1's note said the 07-25 document's
claim was false; R-3 then made that claim TRUE, so the correction note itself
went stale — in the direction nobody guards, a correction made wrong by its own
subject being fixed. Both notes now carry the commit window they apply to. A
dated correction survives its subject changing; an undated "this is false" does
not.

Also delivered, from the 2026-07-28 external-assessment triage: §5, the
declared-table index. Eight single-source-of-truth tables and the pin that makes
each true. A reader's aid, explicitly NOT a central contracts.toml — that would
add a fifth copy needing agreement with four generators and put four different
authorities in one merge surface.

Handed forward to PR-11: the 5000-beat soak recorded in
evals/l10_always_on/contract.md (2026-07-19) predates this change and therefore
describes a configuration that NO LONGER SHIPS. PR-11's re-run is the first soak
of the corrected profile, and Step B feeding Step D is exactly what a long
horizon stresses.

Closes G-6, G-8, H-6, H-8(c), H-8(d) — and H-8 in full. Wave 4's F-6 half-gate
is lifted; the Track C half is untouched.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Wcw2pnMBwyvmNyQg4uPEt4
2026-07-28 06:47:21 +00:00
..
0148-first-conversion-proof.md docs(reader-arc): recalibration ADR-0251 + preserved knowledge + overfit inventory 2026-07-19 13:42:47 -07:00
adr-0241-0242-adversarial-and-fidelity-findings.md
adr-0241-0242-blueprint-integration-plan.md
ADR-0242-deterministic-fibonacci-operators-and-evidence-gated-optimization.md
ADR-0243-wave-field-cognitive-lifecycle-comprehension-reasoning-and-resonant-learning.md docs(governance): weekly-audit rulings T1/T7/T8/T9 — INV-32/33/34 registration, ADR-0243 fold, residual escalation, path sweep, prune ledger 2026-07-22 19:18:59 -07:00
adr-status-governance-2026-07-25.md chore(governance): stamp nine merged ADRs Accepted + pin the invariant 2026-07-25 14:38:02 -07:00
architecture-assessment-verification-2026-07-25.md feat(config,specs,tests): PR-5 — the flag register, profiles as units, and the daemon's missing fourth flag (R-3 + R-4) 2026-07-28 06:47:21 +00:00
cga-hot-path-measurement-2026-07-25.md feat(provenance,teaching): close the lateral gaps the assessment actually found 2026-07-25 04:51:15 +00:00
compare-increment-funnel-2026-07-18.md revert(reader-arc): hold frame-anchoring out of increment 1 — defer to rate-frame increment (#77 ruling) 2026-07-18 20:03:38 -07:00
compare-multiplicative-increment-plan-2026-07-18.md docs(reader-arc): fold PR #76 amendments into compare increment plan; X=15 ratified 2026-07-18 16:07:41 -07:00
conditional-membership-fusion-band-2026-07-23.md feat(deduction-serve): Band v4-CM — conditional-membership fusion, decided (ADR-0259) 2026-07-24 10:14:00 -07:00
CORE-ASI-Super-Blueprint-Third-Door-Horizon.md
core_labs_core_technical_gap_audit.pdf
core_repository_systems_audit_and_gap_analysis.pdf
curriculum-grounded-serving-2026-07-24.md feat(generalization): curriculum-grounded serving — exams answered from ratified curriculum (ADR-0262) 2026-07-24 14:38:08 -07:00
curriculum-practice-producer-2026-07-26.md feat(curriculum): sealed-practice producer for curriculum serving (Phase C) 2026-07-26 09:52:54 -07:00
curriculum-premise-scope-2026-07-25.md docs(adr): ADR-0264 — negative curriculum, premise scope, and band ceilings 2026-07-25 15:44:25 -07:00
curriculum-volume-quantification-2026-07-24.md docs(generalization): Tier S evidence packet — ratification record + curriculum-volume quantification (S1, S6) 2026-07-24 16:44:41 -07:00
deduction-serve-arc-completion-and-scope-outs-2026-07-23.md feat(deduction-serve): Phase 5 — end-to-end REPL proof, telemetry checks, scope-out docs 2026-07-23 13:20:45 -07:00
deduction-serve-arc-phase0-baseline-2026-07-23.md docs(deduction-serve): Phase 0 baseline — organs verified wrong=0, serving path disconnected 2026-07-23 11:21:34 -07:00
deduction-serve-arc-phase1-turn-spine-2026-07-23.md feat(deduction-serve): Phase 1 — deduction turn spine (flag-gated, propositional Band v1) 2026-07-23 12:14:28 -07:00
deduction-serve-arc-phase2-eval-lane-2026-07-23.md feat(deduction-serve): Phase 2 — end-to-end eval lane, SHA-pinned wrong=0 gate 2026-07-23 12:36:59 -07:00
deduction-serve-arc-phase3-earned-license-2026-07-23.md feat(deduction-serve): Phase 3 — earned SERVE license via reliability gate (ADR-0256) 2026-07-23 12:59:50 -07:00
deduction-serve-arc-phase4-categorical-band-2026-07-23.md feat(deduction-serve): Phase 4 — Band v1b categorical/syllogism serving (ADR-0256) 2026-07-23 13:17:35 -07:00
deduction-serve-phase0-baseline.json docs(deduction-serve): Phase 0 baseline — organs verified wrong=0, serving path disconnected 2026-07-23 11:21:34 -07:00
dev2-frontier-measurement-spike-2026-07-18.md docs(reader-arc): fold PR #76 amendments into compare increment plan; X=15 ratified 2026-07-18 16:07:41 -07:00
distinct-evidence-audit-2026-07-25.md test(reliability): volume-honesty invariant + distinct-evidence audit 2026-07-25 16:03:10 -07:00
english-argument-band-2026-07-23.md feat(deduction-serve): Band v2-EN — natural-English argument serving, earned licenses (ADR-0257) 2026-07-23 14:37:50 -07:00
epistemic_state_math_audit_findings.md
existential-witness-band-2026-07-24.md feat(deduction-serve): Band v6-EX — existential witnesses, decided (ADR-0261) 2026-07-24 14:14:37 -07:00
field-reasoner-wedge-selection.md
hitl-proposal-queue-cli-2026-07-24.md feat(teaching): HITL proposal-queue CLI — list/review contemplation-idle sinks (S4) 2026-07-24 17:05:26 -07:00
increment-1-band-plan-2026-07-19.md docs(reader-arc): band-solve=0 outcome + minimal-convertible-band measurement 2026-07-18 21:37:16 -07:00
independent-comprehension-agreement-gate.md
intelligence-loop-homestretch-plan-2026-07-18.md
lane-drift-investigation-2026-07-24.md fix(ci): re-pin public_demo lane — real content drift, not the env flake (S2) 2026-07-24 16:58:05 -07:00
math-phase-4-2-case-first-traces-2026-07-25.md feat(provenance,teaching): close the lateral gaps the assessment actually found 2026-07-25 04:51:15 +00:00
math-reader-phase-4-1-status-2026-07-24.md docs(math-reader): Phase 4.1 measured status — seeding injection is built, converts 0 (null result) 2026-07-24 14:46:55 -07:00
member-chain-band-2026-07-23.md feat(deduction-serve): Band v3-MEM — member-chain band, Socrates syllogism decided (ADR-0258) 2026-07-23 19:21:41 -07:00
paradigm-deadcode-audit-2026-07-19.md docs(paradigm): dead-code audit — zero removals, all candidates traced and verified 2026-07-19 15:15:52 -07:00
public-demo-lane-drift-2026-07-24.md fix(ci): re-pin public_demo lane — real content drift, not the env flake (S2) 2026-07-24 16:58:05 -07:00
ratification-packet-2026-07-24.md docs(generalization): Tier S evidence packet — ratification record + curriculum-volume quantification (S1, S6) 2026-07-24 16:44:41 -07:00
reader-arc-overfit-inventory-2026-07-19.md docs(reader-arc): recalibration ADR-0251 + preserved knowledge + overfit inventory 2026-07-19 13:42:47 -07:00
reader-arc-recalibration-preserved-knowledge-2026-07-19.md docs(reader-arc): recalibration ADR-0251 + preserved knowledge + overfit inventory 2026-07-19 13:42:47 -07:00
reader-hamiltonian-compiler-spike-2026-07-18.md
register-matrix-truth-path-fix-2026-07-25.md docs(register-matrix): 801 passed, 0 failed — clears the DO NOT MERGE on bf17f42 2026-07-25 14:45:51 +00:00
robdd_proof_chain_design_note.md
rust-parity-measurement-2026-07-26.md fix(cli): core rust build was broken; report Rust parity as unfalsifiable 2026-07-26 11:50:32 -07:00
sme-experiment-preregistration-2026-07-28.md test(rnd): pre-register the ADR-0252 §5 criterion, before the run 2026-07-28 02:55:30 +00:00
sme-experiment-verdict-797ebad5.md docs(assessment): re-anchor the §5 provenance SHAs to the commits that landed 2026-07-28 03:00:46 +00:00
spark-audit-adjudication-2026-07-18.md
third-door-blueprint-fidelity.md
THIRD-DOOR-LANDING-PACKAGE-README.md
tier-s-housekeeping-2026-07-24.md chore(generalization): Tier S housekeeping — smoke promotion, capability-index entries, promotion sweep (S5) 2026-07-24 17:13:19 -07:00
tier2-multi-entity-arithmetic-spike-2026-07-18.md
trackb-inc2-generalization-2026-07-20.md fix(trackb): pure-S1 extract refuse multi-clause overmatch (0361 wrong=0) 2026-07-19 20:04:27 -07:00
trackb-s1-slice-2026-07-20.md fix(trackb): pure-S1 gate — refuse total supersets and extra contains 2026-07-19 19:10:05 -07:00
verb-predicate-band-2026-07-24.md feat(deduction-serve): Band v5-VP — verb-predicate arguments, decided (ADR-0260) 2026-07-24 12:51:36 -07:00
vocab-trigger-instrument-2026-07-24.md feat(generalization): vocab-trigger instrument — mechanism-vs-coverage refusal histogram (S3) 2026-07-24 16:54:13 -07:00