Skip to content

Study 019: freeze — authorship across representations (12 review rounds; freezable as written) - #69

Merged
kikashy merged 55 commits into
mainfrom
study-019-scaffold
Aug 20, 2026
Merged

Study 019: freeze — authorship across representations (12 review rounds; freezable as written)#69
kikashy merged 55 commits into
mainfrom
study-019-scaffold

Conversation

@kikashy

@kikashy kikashy commented Aug 15, 2026

Copy link
Copy Markdown
Contributor

The freeze PR for Study 019. Its squash-merge commit onto main is the freeze commit the
preregistration names by reference — the anchor of every pin chain in
studies/019-authorship-across-representations/harness/PINS.json.

What this freezes

The preregistration (thirteenth major revision), the contest policy and its frozen copy,
the 117-row gold suite (cite-order corrected under V7's mechanical derivation — the
no-total-order proof and the correction it forced are §4 of the artifact), both reference
implementations and their records, the mutant corpora (183 + 185 payloads with per-file
hashes, regeneration byte-identical, adequacy fully dispositioned), the off-gold
equivalence certificate (PASS over 236,196 cells; reissued at this PR's merge commit per
the runbook), the sealed reviewer mutant set (authored round 2, repaired round 3, never
executed), the three ceremony documents (correction targets, V7 completeness, V8 asymmetry
ledger — 31 rows re-derived against the bytes), the arm prompts (byte-identical to the
calibration pilot's), and the harness whose suite of record is 1021 passed / 0 failed,
archive-verified from this branch's HEAD.

The review record

Twelve cross-vendor rounds under RFC 0009 (codex-cli 0.145.0 / gpt-5.6-sol, ultra,
read-only), every prompt and review verbatim under reviews/, every finding carrying a
written maintainer disposition: rounds 1–3 and 5–10 DO NOT FREEZE, rounds 4 and 11
freezable after listed fixes, round 12 freezable as written with zero findings. The
verdict trajectory, the descope of the English-parsing guard layer (upheld on its merits by
the reviewer in round 8), the two-tier threat model (§4b), and the parallel-ceremony merge
adjudication are all in PREREG-REVIEW.md.

After the merge

  1. Reissue the off-gold certificate at the freeze commit (runbook step F7).
  2. The primary attempt: the registered governing invocation, run once —
    150 authoring runs, three arms, over the registered multi-day batch window.

Nothing citable has run. Every execution to date is a labelled PILOT.

🤖 Generated with Claude Code

kikashy and others added 30 commits August 14, 2026 20:26
…ief, and index rows

Responds to an external advisory note proposing a JPS-vs-OPA/Rego authorship
comparison. The note is adopted in substance and corrected against source in
three places (output-side expressiveness; boundary probes carry no expectations
and never gate; oracle/facts asymmetries across engines). The design brief went
through a three-lens adversarial panel before this scaffold; the brief (v3) and
the verbatim panel findings land under design/ as provenance. Decided at design
time: N=50/arm, arm C carries the full judgment convention, the fourth
(prevalence-control) arm is deferred to a registered follow-up.

Nothing is preregistered, frozen, or run; the preregistration is a draft with
explicit TODO(prereg) markers, and the RFC 0009 review regime has not begun.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…fragment against spec drift

The expressiveness census now distinguishes deliberate Core refusals from
maintainer roadmap items — numeric outputs are the latter (stated 2026-08-14).
Registered design rule: a spec change landing before the freeze does not expand
the contest fragment; widening it re-opens the design and its review, and the
enriched output side belongs to a follow-up against the version that ships it.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…7.0, authoring stack verified

Every value resolved and verified empirically, nothing from memory: OPA v1.19.0
static asset checksum-verified (no reproducible-build claim — build timestamp
embedded; the static build does ship WebAssembly, correcting a design
assumption), capabilities gate shown to have power via the time.now_ns canary,
opa exec confirmed NOT to accept --capabilities, the undefined-query and
opa-test exit-code behavior pinned down; jpack v0.17.0 archive verified against
checksums.txt with the binary digest recorded; codex-cli 0.145.0 byte-identical
to Study 012's pin, so baseline continuity holds. Enforced pins land in
harness/PINS.json later and stay null until the freeze.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…sibilities repaired

The v0 stimulus went through a three-lens panel (completeness/ambiguity, JPS
expressibility against a built runtime, Rego fairness against the pinned OPA
1.19.0). Verified discoveries that reshaped it: the unreported-insurance→review
branch is inexpressible in Core's monotone three-valued logic (now unresolved);
an escalation firing beside the missing-evidence gate retains both reasons, so
O3 now carries an explicit evidence conjunct; the v0 dependency language for
unreadable inputs named nothing the engine computes (now an operational
counterfactual rule with worked examples). Hardening added per panel: a prior-
enforcement reject clause creating genuine cross-outcome exclusion, a fourth
outcome (enhanced review), and one numeral used in both inclusive and exclusive
senses. The scored surface is pinned to kind+outcomeId+reasons (handoff
excluded entirely); reason tokens and tri-state encodings go to the shared
naming appendix. v0 and the verbatim findings are retained as provenance.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…d, X1 registered, policy at v0.2

Two independently built reference implementations of the contest policy — a
JPS pack on the pinned jpack 0.17.0 and a Rego v1 policy on the pinned OPA
1.19.0 — now agree cell-for-cell over the 2,540-cell design grid with zero
engine errors on either side. V6 is settled by exhaustive enumeration: the D8
catch-all carries onUnknown escalate and every other rule ignore, with the
panel's split explained (the value is entailed by D8's structure). The build
surfaced one prose collision (O2's stands-even-where-unreadable sentence vs an
indeterminate O3), adjudicated in v0.2: U1's counterfactual governs uniformly,
with a fourth worked example. One narrow arm-A inexpressibility class (X1: the
O1-suspended region under an unreadable numeric) is registered as a gold-grid
exclusion and a census row — no onUnknown assignment can express the prose
there, shown over all 2,048 assignments. The 11MB per-cell input tree is
regenerable and not committed; digests in reference/AGREEMENT.md.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…both engines

Hand-authored from the v0.2 prose with per-row clause citations under the
earliest-clause tie-break: every clause cited, every numeric literal witnessed
at and adjacent to the boundary, the X1 exclusion asserted, and both pinned
engines reproducing all 76 expectations exactly on the first run. The
clean-room second oracle is the independence check and comes next; its
divergences get written dispositions, never silent edits.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…the grid; policy at v0.3

The process-isolated implementer, working from the policy prose alone, returned
an oracle that agrees with the hand-authored gold suite completely and with both
reference implementations on every design-grid cell — zero divergences to
dispose. Its six numbered decisions are dispositioned in writing: three closed
by clarifying sentences in prose v0.3 (U1's outcome-level test, O2 displacing
D6b's limbs, the sweep holding non-numeric inputs fixed), the rest recorded as
text-determined or implementation technique. The ambiguity stratum is empty at
this stage. All checks re-run green after the prose edits; no cell's verdict
changed. Ceiling recorded: this build shares the gold author's model lineage,
and the registered clean-room build re-runs against the frozen prose.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…he self-tested pilot driver

Prompt materials for the three arms, built to the fairness panel's registered
rules: arm A receives the complete spec + schema verbatim (the prose spec alone
was shown insufficient — it omits two JSON member names); arms B and C receive
the same twelve official OPA doc pages in full at the pinned tag (fetched bytes
retained under prompts/upstream/ with per-source digests; one recorded
deviation — docs/content/ does not exist at v1.19.0, the pages live under
docs/docs/). Arm C's convention embeds the result schema with the registered
no-match default; arm B's informal contract is generated from that same schema
by the committed de-formalization script, so B and C differ in formality only.
Two curated-excerpt material sets from the parallel builders are retained as
provenance alongside the adopted full-verbatim set. The pilot driver's
self-test scores both reference implementations perfect through the full
extract-admit-evaluate path, with negative controls (no-marker, unparseable,
invalid, mutated-operator, denied-builtin) all landing on their codes.
Assembled prompt sizes: A 84 KB, B 204 KB, C 207 KB — the byte asymmetry is
the registered cost of full-page parity and is published, not hidden.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…iance lives on the test surface

15/15 completed authoring calls (5 per arm after re-running the timed-out
slots at a 2700s ceiling) produced artifacts in perfect agreement with all 76
gold rows: the current stimulus cannot discriminate correctness in any arm.
What does differ: authoring latency (arm A 26-40 min/call vs 10-18 for Rego)
and the elicited test surface (35-49 authored matrix rows touching nearly
every boundary literal in arm A vs 1-4 test rules in B/C). Also recorded: the
timeout mis-filing defect for the registered harness, and that the one-UTC-day
batch rule cannot hold at these call durations. Non-citable pilot; raw slots,
prompts, and scores retained verbatim.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…cision stamped in the draft

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…BLE)

e4_score.py implements the registered E4 rules -- witness-set pairing, the
per-suite identity control against each arm's own reference, and the kill
scoring over own-language mutants -- and E4-PILOT.json is its output over the
2026-08-15 calibration pilot. Every number is a labelled pilot rate; none is
citable. Two full runs produce byte-identical output.

The pilot's finding is about the identity control, not the arms: all five
arm-A suites fail it, so arm A has no kill rate at all, while arms B and C
pass 5/5. The diagnostic section isolates why -- on three input points (a new
vendor with one unreadable numeric) refA answers unresolved/unknown where refB,
the clean-room oracle, and every arm-A matrix answer review. refA is wrong
there, and the identity control excluded five suites for being right.

The mutant sets the script reads are committed separately.
…ontrol met X1, and E4 discriminates

145 JPS and 184 valid Rego single-edit mutants with gold witness sets, both
generators deterministic and re-run byte-identical. The scorer's headline: all
five arm-A suites failed the registered identity control on exactly the three
input points where refA and refB diverge off-gold — triangulated against the
clean-room oracle, every one is the registered X1 inexpressibility class,
probed by author-written cases the gold grid deliberately avoids. The authors
were right; the fragment cannot be. Amendment recorded for the prereg: X1-class
cases are excluded from identity and kill evaluation with published counts, and
reference equivalence is checked off-gold before freeze. Under that rule the
pilot's E4 read exists and has room: arm A mean kill 0.92 (range 0.84-1.00),
arms B/C 0.98 - the table-driven Rego suites out-kill arm A's row matrices in
this pilot, reversing the surface impression from authored-row counts.
Adequacy work list recorded: 47+60 empty-witness mutants, 35 JPS mutants
killed only by engine conflict detection, flagged for with/without reporting.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… phase disclosed as provenance

The complete registered structure, rewritten around what the design phase
measured: R1 is a two-sided A−C (then A−B) difference claim on high-kill run
rates (τ=0.95, δ=0.20, both disclosed as pilot-informed), E1 demoted to a
ceiling control with a floor gate, the X1 case-exclusion and off-gold
reference-equivalence gates registered, timeouts made apparatus outcomes with
a capped rate, the batch window registered as three UTC days, and the
non-claims section carrying the prevalence confound, the fragment scope, the
engine-freebie kills, and the joint-reading prohibition. Pre-freeze gates
named in place: harness port, adequacy work list, OC table, frozen-prose
clean room, off-gold equivalence certificate. Review rounds have not begun.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…PASS, OC table published, harness core green

Adequacy: all 107 empty-witness mutants disposed (56 killed by 29 new
prose-derived gold rows — gold now 105, both engines and the clean-room oracle
reproducing every new expectation first-run — and 51 registered drops with
mechanisms); zero empty witness sets remain; one live review flag (A1, the
risk-40 spend cliff) routed to the review rounds rather than resolved. Off-gold
equivalence: full 236,196-cell run, 72/72 divergences inside X1, zero
elsewhere — with the sanctions-absent supplementary stratum showing three
implementations giving three answers on inputs no clause governs, now closed by
registered input-domain closure rather than luck. OC table: interval
construction pinned to the exact unconditional FM-score form at two-sided 0.05,
float-free decision arithmetic, power published (0.49-0.82 at a positional
0.20 gap, 1.00 at the pilot anchor A 1/5 vs C 5/5); the prereg's decision rule
is repaired to Reading 1 (decided iff interval excludes zero; delta is
interpretive), alpha registered, gatekeeping named, and the no-marker
denominator pinned. Harness: 012 machinery ported under the two-sided PORTS
discipline with 34 tests green, three-arm schedule derived with its balance
floor asserted, timeout wired as apparatus exit 12, PINS null-means-PILOT
enforced; SCAFFOLD.md carries the honest remainder (score.py assembly,
golden-context port, driver half).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… M1 closed, S11 promoted to blocking

score.py lands as the single publisher over an eight-module e4lib (195 scorer
tests, ten against the real pinned engines: all 105 gold rows reproduce in both
languages through the harness's own evaluation path, the canary refused, a real
Rego mutant killed). The driver's calling half, golden-context capture,
isolation negative control, and the leak-token derivation land with 120 tests.
The verifier closed the M1 manifest/pins chain in registered order and drove a
12-slot stand-in batch through the whole machine - and found three structural
defects in the scorer's population wiring (declared-prefix population, slot
classification reduced to the driver's readers, E2 over run records), promoted
to blocking in SCAFFOLD.md with exact fixes rather than patched silently.
Named refusing stubs S6-S10 remain, each raising by name, none silent.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… smoke proves its own fixes

S11's three population-wiring parts land exactly as the verifier specified, and
the re-run smoke shows each fix in its numbers: the population is the declared
prefix (registered/absent/attempted published beside every denominator), the
scorer's slot reader is the driver's own (a tampered sealed slot now takes the
attempt to pipeline-invalid; the timeout cap gate fails over a batch containing
a timeout instead of holding vacuously), and E2 reads the run records that
carry authoring codes. S6 registers the census over the gold-row inputs; S7/S8
land the unequal-N FM inversion and the exact-integer delta-sweep whose equal-N
slice reproduces the OC table's constants as the same rationals; S9 makes
engine-supplied kills a machine-readable manifest member with the Rego class
registered as explicitly empty; S10 runs the floor gate for real and proves it
has power against a mutant stand-in; the leak-token screen becomes one derived
list with a power check. PORTS -> manifest -> pins re-anchored in the
registered order. Suite: 387 passed, 0 skipped with pins; 375+12 named skips
without (the registered CI shape). Rescoring byte-identical. The two new sweep
constants are named in the preregistration text.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…viewer reads a byte

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…rs, 1 minor, committed verbatim

The cross-vendor reviewer executed code against the pinned binaries and the
findings are real: the tau cut is derived from the JPS paired count but applied
to the Rego arms, making the primary endpoint impossible for B/C as scored
(R1-1); the X1 predicate is overbroad by 1,386 cells and its inexpressibility
claim unproven over the fragment (R1-2); the X1/domain filter is asymmetric
across arms and measurably moves E4 (R1-3); the code partition is not
fail-closed (R1-4); transcript binding never runs on scored slots (R1-5);
author-controlled malformed matrices crash the attempt instead of counting
zero (R1-6); SHORTFALL is fail-open (R1-7); engine failures count as kills and
the OPA exit taxonomy in the prereg is reversed (R1-8); the attempt is not
bound to the bytes it executes (R1-9); the reviewer set is unwired (R1-10);
direction at unequal N compares counts not rates (R1-13); and the B-vs-C
formality-only claim is false as written (R1-17). The reviewer also verified
and recorded what PASSES: the PORTS chain, the FM constants, and the headline
counts. It stands ready to author the sealed mutant set. Dispositions open in
PREREG-REVIEW.md, explicitly pending — none written yet.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…xed, suite 575 green, smoke re-run shows the fixes

The X1 lane repaired the arm-A reference by region scoping (the reviewer's
probe construction is provably impossible — monotonicity — but two width-
scoped review rules plus paired suppressions realize the prose), reissued the
off-gold certificate at 0/236,196 divergences, retired the exclusion class to
an empty registry that fails on any unclassified divergence, grew gold to 109
rows (first-run clean on both engines and the oracle, with an adjacency
falsifier pinning the repair's narrowness), rebuilt engineSuppliedKill by dense
census (41 -> 27, the reviewer's worked example engine-confirmed among 20
reclassifications), and landed a regeneration command whose byte-check caught
and fixed an absolute-path reproducibility defect. The driver and scorer lanes
closed the fail-closed partition, per-slot transcript binding, SHORTFALL
validation both sides, per-language cuts, symmetric case-domain handling,
kill-vs-engine-failure separation with the exit taxonomy re-verified,
integrity-before-imports, reviewer-set wiring, direction-from-rates, and
decision-gated publication. The prose lane's prereg revision registers the
bundled A-C estimand, discloses the pilot identity-control episode and the
rescored anchor (A 0.888 / B 0.902 / C 0.855; no expected direction; tau
unanchored), and refreshes every count. Verified inline after two 529-killed
verify attempts: 575/575 with pins, smoke re-run green with R1-7/R1-14 visible
in its terminal row, rescore byte-identical, no absolute paths. Dispositions
next; they cite these tests.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…forcing test

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…aled reviewer set

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… the sealed reviewer set lands with two recorded defects

The disposition-verification round did its work: R1-4, R1-13, R1-15 and R1-20
hold against their cited tests; sixteen dispositions spawned R2-1..R2-14
(7 blockers, 7 majors), in the predicted shape — fixes hold where round 1
pointed, generalizations do not. The manifest was stale on the very tree the
round read, staled by the maintainer's own post-verification commits: the
defect class R1-9 exists to catch, caught by the reviewer instead, which is
the argument for extending currency enforcement to the manifest itself. The
reviewer authored the sealed mutant set (six single-edit mutants, both
languages, predictions registered in its prose); it is committed byte-for-byte
with attribution, including its own two defects — one payload that neither
hashes to its attestation nor validates (evidently a pre-final draft pasted in
place of the version the reviewer hashed), one digest attestation error over a
valid payload. Nothing in the set was edited: round 3 asks the reviewer to
re-issue its own payload and re-attest its own digests.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… green, dispositions written

Every R2 finding fixed at the cause with the reviewer's construction as a named
test: the kill-path fault adjudication (whose closure left the pilot numbers
provably unchanged — the leak was real, unexercised), per-term case enumeration
killing the decoy-certification path, transcript verdicts consumed by
population scoring (surfacing and fixing a second defect: protocol violations
mis-filed as apparatus and deleted from the denominators they exist to police),
fail-closed reviewer-set loading proven against the really-committed defective
set, verification ordered first, empty-prefix round-trip, strict
engineSuppliedKill, gate-blocked intervals, the regeneration record green
across both arms, the OC generator unable to resurrect withdrawn claims, and
the reader-facing corpus swept and put under test. One nondeterminism defect
found and fixed beyond the review (opa test result ordering). Manifest and
ownPorts reconciled last, in order; 669/669 with the pinned engines.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…wer's set repair, and the frozen-reader audit

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… repairs its sealed set; the manifest class bites a third time

Three blockers with teeth: the round-2 record's suite-of-record claim is false
for the committed tree because the dispositions edit itself re-staled the
manifest — the third bite of one structural cause, PREREG-REVIEW.md being
appendable by design yet manifest-covered, which is ADR 0004's class and gets
its root fix in the response; the reference repair quietly regenerated the
mutant corpora and left 71 new empty-witness mutants undispositioned, so the
adequacy gate the round-2 disposition called closed is genuinely re-open; and
mixed OPA failure lists stop adjudicating at the first genuine assertion
failure, an early stop the existing test explicitly blessed. The reviewer
repaired its own sealed set exactly as the record required: the re-issued
payload hashes to its original round-2 attestation — proving the digest was
right and the paste was a draft — validates clean, and preserves the
registered probe intent; all six attestations now verify.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…the adequacy cascade re-run, and the pilot now measures the domain closure's bite

PREREG-REVIEW.md leaves the manifest's covered set by named constant (ADR 0004),
ending the class that bit three straight rounds; the reconciliation regenerated
the manifest last and the suite stands at 708/708 with manifest_problems empty
re-checked after it. The adequacy cascade re-closed over the repaired corpus:
gold 109 -> 117 (every new row citing its deriving sentence; engines and oracle
117/117 first run), 11 kills, 60 registered drops including the new
subsumed-region-lemma class recorded as the X1 repair's measured price, zero
undispositioned, and the regeneration check green at 375/375 for the first
time in its history - the adequacy stamp now lives inside the chain it used to
survive. Pilot v4, issued through the harness's own domain path, publishes the
new fact: four of five arm-C pilot runs authored out-of-domain cases (all
omitting the screening result), so arm C stands at identity 1/5 - the domain
closure's bite on real suites is measured before the batch, not discovered in
it. Mixed-fault adjudication runs both orders with the blessing test reversed;
supersession is a walked chain; the OC reads its denominator off the pilot;
the import-order sentence tells the truth and is derived from the imports.
All ten R3 dispositions written.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…rose flags, and the convergence question

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…onvergent verdict, with the complete freeze-distance list

Zero blockers for the first time in the regime: four majors and two minors,
mostly description defects in the maintainer's own record (a mischaracterized
lemma measurement, a class-size attribution that counts three pre-existing
unkillables as the repair's price, front doors still calling round 3 open, an
admitted-vs-identity-passing confusion, an inconsistent OC header, and the
promised CI job never added). Seven round-3 dispositions hold, two partial,
one fails. The reviewer answers the prose flags — no amendment needed — and,
asked the convergence question directly, produces a finite freeze-distance
list in dependency order and states that A5/A6 add nothing to it. The list is
adopted verbatim as the response plan.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
kikashy and others added 5 commits August 19, 2026 07:21
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… mechanical, the freeze gate complete

The English-semantics guard layer is deleted, not defeated again: round state,
verdicts and counts live in one machine-readable block that a committed
renderer turns into the single status sentence on each front door, verbatim-
required and never parsed; the structural cross-checks bind the block to the
review directories, the verbatim reviews and the disposition tables, and
refuse duplicate round identities including the listdir-ordering case. The CI
guard refuses what it cannot parse; payload manifests accept exactly the
scorer's shapes; the freeze gate names the reviewer-set pin and the three
registered documents not yet authored, counting fifteen pending obligations.
Round 7 dispositioned at close under the new ceremony. Suite 757/757 in the
working tree and 757/757 from the archive reconstruction.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…mplete, the grid gate wired, 780 tests both ways

The descope's replacement is finished: the freeze path exercises the sealed
set's own loader, the block machinery refuses everything readable two ways,
disposition and heading reading share one fence-aware liveness helper, the
marker span has a single reading for checker and writer, and the brief's
long-promised freeze-time grid gate exists — domain, fixed scale, and
byte-equal round trip over every grid, holding on the real 117 rows and
refusing seeded violations. Thirteen mutation checks; one deliberate
redundancy honestly recorded as non-discriminable by single-point mutation.
R8-1 accepted as the regime's own arithmetic. Suite 780/780 in the working
tree and in the archive reconstruction whose tree hash matches the index.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@kikashy

kikashy commented Aug 19, 2026

Copy link
Copy Markdown
Contributor Author

Coordination note for the freeze line: origin/study-019-salvage (one commit, currently rebased onto the round-9 head, suite 900/900 bytecode-free) carries the E1-line salvage — most relevantly the OPA capabilities artifact that opa.capabilitiesSha256 needs: the filter derived from the pinned binary (206→187 builtins), the denylist registered in PINS.json, and the canary's unfiltered arm. The scaffold still has that pin null and nothing on it generates the file, so a REGISTERED label cannot be reached without this branch or equivalent work. Merge order if round 9 converges: salvage first, then freeze. The branch also carries the golden-derivation privacy fix (G10: operator paths digested out of the committed capture) and ~200 tests; its review notes are appended in PREREG-REVIEW.md under "Salvage audit".

kikashy and others added 5 commits August 19, 2026 11:49
…ered-surface fixes, four advisories, round 10 asks the scoped question

The freeze-authorizing verdict reading is byte-exact; the freeze refuses while
any attempt root exists; the sealed set's id registration binds exactly (the
finding's own suggested pattern was too wide in Python, verified by
construction). The two-tier threat model is registered in §4b on five rounds
of evidence, the advisory register exists appendable and manifest-excluded,
and the round-9 record carries both attempts including the provider's
282k-token false-positive refusal. Round 10 is asked for its verdict on the
registered surface under the declared threat model.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ains its occupancy gates, 829 tests both ways

The substitute-registry attack dies at three layers: argument surface, load
surface, and the scoring comparison against the attempt's own registry digest,
ordered before the golden comparison because the golden pin lives in the
registry under dispute. The freeze refuses prior attempts and prior authoring
state, derived from the driver's constants with a test that moves them. An
unreadable index refuses by name everywhere. Fifteen mutations killed; one
test rewritten when the response caught it unable to discriminate; one
instruction of the maintainer's corrected against reality and recorded.
Round 11 asks the scoped question of a tree with no open registered-surface
findings.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…alone; round 12 asks for the exact words

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…concludes at twelve rounds

Zero findings; R11-1's verification stated and verified; the exact words on
the review's final line, byte-checked by the reader that round 9 made exact.
The close taught the machinery one last thing: it had never seen a clean
round and could not represent one — the block schema, the tree derivation,
and the mutation fixtures all assumed findings exist. The zero-finding round
is now a registered shape (severities all zero, range null, table as empty as
the review), and the R8-1 tripwire retired exactly as designed: by firing,
and being replaced with the positive attestation that the freeze verdict on
this record was returned by a complete round with zero findings and by
nothing else. Suite 831/831 under the registered shape. What separates this
tree from the freeze is the enumerated ceremony alone.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Rebased onto the round-12 head (89a39c0, FREEZABLE AS WRITTEN). Carries: the
OPA capabilities filter derived from the pinned binary (206 -> 187 builtins),
the nine-family denylist registered in PINS.json, the both-directions canary,
the golden-derivation privacy fix (operator paths digested out of the committed
capture), the census C3.1 replication tests, and ~200 tests. The opaCapabilities
freeze pin cannot fill without this branch or a duplicate of it; merge order is
salvage first, then freeze. Conflict recipe and audit notes in PREREG-REVIEW.md
("Salvage audit" sections).

Signed-off-by: kikashy <kikashy@hotmail.com>
@kikashy

kikashy commented Aug 20, 2026

Copy link
Copy Markdown
Contributor Author

Coordination update (maintainer, second session): the salvage branch has been merged into study-019-scaffold as a fast-forward (7cb251d), on top of the round-12 FREEZABLE AS WRITTEN head.

What this changes for the freeze: the OPA capabilities artifact, its generator, the registered denylist and the both-directions canary are now on the canonical branch, so the opa.capabilitiesSha256 freeze pin can fill. Suite on the registered interpreter (CPython 3.12.11, pinned engines): 1014 passed, 0 failed, 25 skipped. One test (test_score_attempt.py::test_the_attempt_hands_its_own_registry_digest_to_every_slot_read) fails under 3.8 only — verified failing on the bare round-12 head too, so it is environmental, not introduced here; noted in case the freeze record wants the interpreter named.

The study-019-salvage branch is now redundant and will not be pushed to again.

SCAFFOLD section F, executed in its own order against the round-12 FREEZABLE AS
WRITTEN head. Nothing here is the freeze: five pins remain null, the label is
PILOT, and --freeze still refuses on CORRECTION-TARGETS.md.

F2 - the registered documents and payload sets landed. policy/POLICY.md is the
verbatim frozen copy of design/POLICY-DRAFT.md v0.3 (the draft banner never
reaches a prompt: the assembler's stimulus slice starts at the policy heading).
gold/GOLD.json, mutants/MANIFEST-jps.json + 183 jps payloads,
MANIFEST-rego.json + 185 rego payloads, reference/refA/pack.json,
refB/policy.rego, REFERENCE-A.md, REFERENCE-B.md - all verbatim from design/.

F2b - the three obligations other documents declare. The off-gold equivalence
gate was RE-RUN against the frozen artifacts rather than promoted from its
design-time record: PASS, 236,196 cells, zero divergences, 75.8s
(controls/off-gold-equivalence.json). verification/V7-COMPLETENESS.md records
check_gold.py against the frozen gold under both pinned engines - 117 rows, 0
failures, 0 exclusion classes, the former X1 region covered by 5 named rows.
verification/V8-ASYMMETRY-LEDGER.md re-states the ledger's four rows from the
mechanical artifacts, the subsumption row verbatim from
adequacy_region_lemma_price.json (gross 9 / marginal 6 / pre-existing 3).
CORRECTION-TARGETS.md is NOT here: its content is the maintainer's published
claims, verbatim with venues and retrieval dates, and inventing it would be
exactly what it exists to prevent.

F3 - the three arm prompts assembled deterministically (84,289 / 204,333 /
206,686 bytes), digests filled as matrixA/B/C with promptBytes.

F5/F5b - thirteen pins filled, each from its PIN_SOURCES artifact. The jpack
reproducible-build attestation is EARNED, not asserted: a local build from the
v0.17.0 tag (go1.26.5, CGO_ENABLED=0, -trimpath, goreleaser ldflags) reproduced
the pinned binary digest byte-identically. The sealed reviewer set was loaded
by the non-executing loader before its manifest digest was pinned. The
mutantManifests combined digest is over the concatenation of the two manifests
in the order the pin source names them, and the registry says so.

F5c/F5d/F5e - the freeze gates hold: the sealed set loads, the canonical-grid
round-trip assertion holds over both grids, no attempt root, no authoring tree.

Six lifecycle tests flipped from their pre-ceremony forms (all pins null) to
phase-independent forms (null-or-exact-shape, label from unfilled_pins, a
terminal record that refuses BY NAME in every phase). The REGISTERED branches
of the flipped tests are unexercised until F8 fills the last pin - stated here
rather than discovered.

Suite: 1014 passed, 0 failed, 25 skipped on the registered CPython 3.12.11
with the pinned engines.

Remaining before the freeze PR: CORRECTION-TARGETS.md (maintainer content),
G1 golden capture (fills probePrompt + goldenContext), G2 isolation negative
control under recorded operator assent (fills isolationAssent), then F7
make_manifest --freeze (studyManifest), F8 preregistration digest last, F9 the
freeze PR to main.

Signed-off-by: kikashy <kikashy@hotmail.com>
…1 tests

The freeze-fill's operational tail, on top of the mechanical phase:

CORRECTION-TARGETS.md - one binding target, the design-phase pilot's
directional read in design/mutants/E4-NOTES.md, verbatim and commit-pinned in
Study 012's CLAIM.md pattern, with the recorded decision that no external venue
carries a claim this study binds and the standing offer that a freeze-PR
reviewer who knows one adds it before the squash-merge.

G1, the golden-context capture. Two live probes through the pinned CLI from a
token-free scratch; the derivation initially REFUSED, which is leak_tokens
residual 2 surfacing exactly as predicted: the CLI's own fixed boilerplate says
"commands will be rejected" and "intentionally absent from the functions.exec
namespace". The adjudication, recorded in transcript_check.py and tested both
ways: the prior-context screen now matches on WORD BOUNDARIES - which removed
every clause-id hit (all were substrings inside hex identifiers; none fired on
a boundary) with no exemption and full power kept for real mentions - and
exactly the two literal boilerplate words, "rejected" and "absent", are exempt
from this screen and from no other seat. check_golden's exact-reproduction
allowlist remains the instrument that guards the pre-prompt context against
every word, exempt or not. The capture then derived: 4 entries from 2 agreeing
captures, pinned as golden.sha256. The probe prompt is byte-identical to Study
012's registered digest.

G2, the isolation negative control. assent = "granted" (the registered literal;
the operator's authorization of this named step is recorded beside it as
assentProvenance and in this commit). The control ran against the real home and
REFUSED the pre-prompt context against the locked golden capture - the gate has
demonstrated power against home leakage in this environment, which is the
registered expectation. VERDICT.json retained under controls/isolation-negative.

F6/F7/F8 in the registry's anchor order after each edit: PORTS.md rebound,
make_manifest --freeze (435 entries, 0 pending), studyManifest then
preregistration pinned last. integrity.study_label() returns REGISTERED and
unfilled_pins() is empty.

Lifecycle tests flipped to phase-independent forms as the phases they froze in
ended: the reviewer-set rule now pinned two-sided (refused-by-name while any
pin is null; required once none is), the R10-1 seam exercised under a
PILOT-shaped copy of the real registry because on the real tree the flag gate
now fires first and WITH the flag the sealed set would execute - which happens
exactly once, at the primary attempt, and never in a test. The terminal-record
invariant restated: a refusal is NAMED, in problem or problems, whichever the
refusal class writes.

Suite: 1021 passed, 0 failed, 25 skipped on the registered CPython 3.12.11
with the pinned engines. What remains is F9 alone: the freeze PR to main,
whose squash-merge commit IS the freeze.

Signed-off-by: kikashy <kikashy@hotmail.com>
@kikashy kikashy changed the title Study 019: design scaffold — authorship across representations (JPS vs OPA/Rego) Study 019 freeze: authorship across representations (E4) Aug 20, 2026
@kikashy
kikashy marked this pull request as ready for review August 20, 2026 02:45
Signed-off-by: kikashy <kikashy@hotmail.com>
@kikashy

kikashy commented Aug 20, 2026

Copy link
Copy Markdown
Contributor Author

Maintenance note (second session): the branch is up to date with main (merge commit, suite still 1021/0) — one decision blocks the merge: DCO.

46 commits from the review-sprint sessions carry no Signed-off-by. The DCO bot offers only a git rebase HEAD~49 --signoff + force-push, which would rewrite the hashes the review records cite (PREREG-REVIEW.md and reviews/ reference round heads by commit id) — a real integrity cost for a study whose anchors are citations. The alternatives, both maintainer-only:

  1. Admin override — the DCO check offers "Set DCO to pass" to repo admins. History untouched, citations intact. Recommended.
  2. Rebase with sign-off — satisfies the bot mechanically; every cited round-head hash then names a commit that no longer exists on the branch. If chosen, the review record should gain one note stating the rewrite and the mapping.

No force-push will happen from this side either way.

kikashy and others added 3 commits August 19, 2026 22:58
…ument landed, and V7 forced one last correction

The frozen copies land (policy, gold, both mutant manifests with their 183+185
payload trees, both executable references, both reference records, the
certificate, the three arm prompts — byte-identical to the calibration
pilot's, proving the stimulus never drifted through twelve rounds). The three
authored obligations land: the correction targets in the 012 discipline; the
V8 asymmetry ledger, 31 rows re-derived against the reference bytes, which
caught an off-by-one in ADEQUACY's C1 count and a stale rung list in the refB
report, both corrected at source with marks; and the V7 completeness artifact,
whose mechanical derivation FAILED first — 13 cite lists led with a modifier
or the U1 meta-clause, and no total order reproduced them — forcing a
registered cite-order correction (outcomes byte-untouched, 117/117 reproduce
before and after; the failing first derivation is §4 of the artifact, not
hidden). The gold digest moved; every binding re-stamped through the
regeneration chain (pass:true, byte-identical) and the two frozen manifest
copies refreshed. Two attempt-shape tests updated for the tree's third
registered pre-attempt state. One pending obligation remains: the reviewer-set
pin, which fills at the pin step with golden capture and assent.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…urvives, the assent is explicit

Two ceremonies ran in parallel: this line's artifact half, whose V7 mechanical
derivation proved no total order reproduces the old cite lists and forced the
13-row correction (gold digest moved, cascade re-stamped, C1 and the refB rung
list corrected at source), and the remote line's completed mechanical fill —
all eighteen pins, golden capture, F2-F6, a phase-independent terminal-record
test, and a correction target this line's table lacked. The maintainer
adjudicated the fork explicitly: the fill is the base, the corrections govern
where the lines touched the same artifacts (gold, both mutant manifests, both
reference records, V7, V8, the certificate with its supplementary stratum),
CORRECTION-TARGETS is the union of both lines' work, and the digest-dependent
pins are re-filled over the corrected bytes with the manifest re-pinned in the
registered anchor order. The isolation-negative assent is re-recorded as an
explicit grant, given in answer to a question naming exactly what the control
does, superseding the parallel line's reading of a generic go. Suite: 1021
passed, 0 failed on the merged tree.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The parallel line pinned its own preregistration; the merge produced new
bytes, and the pin now names them. (An intermediate sweep briefly corrupted
the pinnedFrom lineage record and was corrected against the chain's own stated
authority before anything was committed.)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@kikashy kikashy changed the title Study 019 freeze: authorship across representations (E4) Study 019: freeze — authorship across representations (12 review rounds; freezable as written) Aug 20, 2026
The branch's commit hashes are load-bearing (the review record names them as
clean HEADs), so history is not rewritten; sign-off is added retroactively per
the DCO app's remediation convention.

I, kikashy <kikashy@hotmail.com>, hereby add my Signed-off-by to this commit: 88ba872
I, kikashy <kikashy@hotmail.com>, hereby add my Signed-off-by to this commit: 7079d5e
I, kikashy <kikashy@hotmail.com>, hereby add my Signed-off-by to this commit: b73308e
I, kikashy <kikashy@hotmail.com>, hereby add my Signed-off-by to this commit: 89a39c0
I, kikashy <kikashy@hotmail.com>, hereby add my Signed-off-by to this commit: 282bb28
I, kikashy <kikashy@hotmail.com>, hereby add my Signed-off-by to this commit: 7ab10a2
I, kikashy <kikashy@hotmail.com>, hereby add my Signed-off-by to this commit: e66c8a8
I, kikashy <kikashy@hotmail.com>, hereby add my Signed-off-by to this commit: b7e755a
I, kikashy <kikashy@hotmail.com>, hereby add my Signed-off-by to this commit: c196276
I, kikashy <kikashy@hotmail.com>, hereby add my Signed-off-by to this commit: b5cb5ca
I, kikashy <kikashy@hotmail.com>, hereby add my Signed-off-by to this commit: f5132fd
I, kikashy <kikashy@hotmail.com>, hereby add my Signed-off-by to this commit: a910266
I, kikashy <kikashy@hotmail.com>, hereby add my Signed-off-by to this commit: 21c9545
I, kikashy <kikashy@hotmail.com>, hereby add my Signed-off-by to this commit: 10b0f66
I, kikashy <kikashy@hotmail.com>, hereby add my Signed-off-by to this commit: 625c0cd
I, kikashy <kikashy@hotmail.com>, hereby add my Signed-off-by to this commit: 33a3eed
I, kikashy <kikashy@hotmail.com>, hereby add my Signed-off-by to this commit: aab836f
I, kikashy <kikashy@hotmail.com>, hereby add my Signed-off-by to this commit: 563ea8c
I, kikashy <kikashy@hotmail.com>, hereby add my Signed-off-by to this commit: fabe9a0
I, kikashy <kikashy@hotmail.com>, hereby add my Signed-off-by to this commit: cb1d1e8
I, kikashy <kikashy@hotmail.com>, hereby add my Signed-off-by to this commit: 80e54c8
I, kikashy <kikashy@hotmail.com>, hereby add my Signed-off-by to this commit: c7ce326
I, kikashy <kikashy@hotmail.com>, hereby add my Signed-off-by to this commit: cf251c5
I, kikashy <kikashy@hotmail.com>, hereby add my Signed-off-by to this commit: cfd8eda
I, kikashy <kikashy@hotmail.com>, hereby add my Signed-off-by to this commit: 7ce22ad
I, kikashy <kikashy@hotmail.com>, hereby add my Signed-off-by to this commit: e80ccea
I, kikashy <kikashy@hotmail.com>, hereby add my Signed-off-by to this commit: 2c5f706
I, kikashy <kikashy@hotmail.com>, hereby add my Signed-off-by to this commit: 5844037
I, kikashy <kikashy@hotmail.com>, hereby add my Signed-off-by to this commit: f00d097
I, kikashy <kikashy@hotmail.com>, hereby add my Signed-off-by to this commit: 5527fe0
I, kikashy <kikashy@hotmail.com>, hereby add my Signed-off-by to this commit: bf96915
I, kikashy <kikashy@hotmail.com>, hereby add my Signed-off-by to this commit: 4168af8
I, kikashy <kikashy@hotmail.com>, hereby add my Signed-off-by to this commit: 7d551cf
I, kikashy <kikashy@hotmail.com>, hereby add my Signed-off-by to this commit: d66e748
I, kikashy <kikashy@hotmail.com>, hereby add my Signed-off-by to this commit: e2279d6
I, kikashy <kikashy@hotmail.com>, hereby add my Signed-off-by to this commit: 019c95b
I, kikashy <kikashy@hotmail.com>, hereby add my Signed-off-by to this commit: 793cbe9
I, kikashy <kikashy@hotmail.com>, hereby add my Signed-off-by to this commit: 2bddf58
I, kikashy <kikashy@hotmail.com>, hereby add my Signed-off-by to this commit: 6ce5507
I, kikashy <kikashy@hotmail.com>, hereby add my Signed-off-by to this commit: 3f382ef
I, kikashy <kikashy@hotmail.com>, hereby add my Signed-off-by to this commit: bfaf149
I, kikashy <kikashy@hotmail.com>, hereby add my Signed-off-by to this commit: 3f73226
I, kikashy <kikashy@hotmail.com>, hereby add my Signed-off-by to this commit: 04bd5f0
I, kikashy <kikashy@hotmail.com>, hereby add my Signed-off-by to this commit: a5bb49f
I, kikashy <kikashy@hotmail.com>, hereby add my Signed-off-by to this commit: 873127e
I, kikashy <kikashy@hotmail.com>, hereby add my Signed-off-by to this commit: 8fc1076
I, kikashy <kikashy@hotmail.com>, hereby add my Signed-off-by to this commit: a1458e5
I, kikashy <kikashy@hotmail.com>, hereby add my Signed-off-by to this commit: 29cf3f1
I, kikashy <kikashy@hotmail.com>, hereby add my Signed-off-by to this commit: 1b337f8

Signed-off-by: kikashy <kikashy@hotmail.com>
Signed-off-by: Brian Jin <35789537+kikashy@users.noreply.github.com>
@kikashy
kikashy merged commit 51cae02 into main Aug 20, 2026
19 checks passed
@github-actions

Copy link
Copy Markdown

🎉 Thank you for your contribution to Judgment Pack!

If you’d like another task, choose a path that interests you:

kikashy added a commit that referenced this pull request Aug 20, 2026
freeze.commit records 51cae02, the squash-merge commit of the freeze PR (#69),
completing the registry's linear anchor exactly as its anchorOrder sentence and
SCAFFOLD section F step 9 registered: the manifest covers the tree, the
registry pins the manifest, and the freeze commit anchors the registry.

harness/SCAFFOLD.md is deleted by its own final step: it was the build's
work-list, every item is LANDED or superseded by the record, and a scaffold
that outlives its building reads as instructions someone might follow twice.

Nothing else changes. The governing invocation is now live:

    <pinned CPython> harness/score.py --attempt-root results/primary-attempt-001 --include-reviewer-set

The first invocation of that command is the primary attempt, crash and all.

Signed-off-by: kikashy <kikashy@hotmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant