One-pool multispine builder: assemble-first build path with the agreement gate terminal (#578 increment 2) - #583
Merged
Merged
Conversation
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The acs_transfer port added imputed_recipient_rows to AcsImputedInput; this pre-existing whole-dict assertion needed the new key (default 0 for the synthetic fixture). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Contributor
Author
|
Adversarial round 1: HOLD, four blockers. The one that matters architecturally: the tool consumed |
Sol round-14: [*mapping.items()] wrappers bypassed the unification —
the starred branch spliced only list/tuple operands, collapsing partial
{**BASE, k: dynamic} merges to one opaque sentinel before any probe
could see the retained entries. The starred branch now falls through to
_static_iteration_value, the same path bare views take, so retained
entries catch by name, dynamic siblings dual-report, fully static views
catch cleanly, and fragment-free views stay silent. All four forms are
committed fixtures.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…y partial Sol round-15's two sites: (1) dict(iterable) operands now fall through to the shared iteration resolver exactly like bare and starred views, so semantically identical view/merge/wrapper compositions classify identically at any nesting; (2) partial scalar enumerations return a _PartialStringChoices marker instead of silently dropping opaque siblings — consumers bind the known choices but the loop records the incompleteness, restoring the required dual report. Fragment-free partials stay clean. All three forms are committed fixtures. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sol round-16's two comprehension-path sites: the nested-comprehension evaluator now falls through to the shared iteration resolver (identity comprehensions over dict views classify exactly like the bare views), and comprehension binding checks the _PartialStringChoices marker so dropped opacity dual-reports through the layer. Fixtures committed with a fragment-free identity control. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sol round-17: (1) structural identity comprehensions ([(e, s) for e, s in SOURCE]) resolve to their source rows inside the shared iteration resolver itself, so tuple-row identity layers classify exactly like the bare iterable at any depth; (2) starred set splices resolve through the literal -> structure -> iteration fall-through, keeping their members; (3) partial sets preserve known strings beside opaque sentinels, restoring the dual report. Fixtures committed with a fragment-free structural control. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…shortcut
Sol round-18 audit: (1) the round-17 identity shortcut returned
structural rows from the STRING-list resolver, so partial rows reached
a string-membership assumption and raised TypeError through identity
layers — that resolver now returns only all-string tuples and defers
structural rows to the iteration resolver, restoring the dual report;
(2) identity dict comprehensions ({k: v for k, v in SOURCE}) now
resolve through the identity resolver, and dict VIEWS over them route
the same way, so .items()/.values() on an identity comprehension
classify exactly like the bare source. Fixtures committed with
fragment-free controls for both.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Extend single-hop bindings through the shared iteration resolver, retain identity dict comprehensions as mapping entries, and derive keys for direct dict iteration. Pin bound/inline classification equivalence, partial dual reporting, mapping views, reviewer reproductions, and fragment-free controls; qualify literal coverage to executable dataflow.
This was referenced Jul 31, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Increment 2 (code) of #578: the #581 assembly seam wired into a real pool build
path, spine-blind end to end, with the spine-agreement gate as the terminal
stage. Rebased onto merged main (
6c14a0a). The final local tree passes thefull
populace-buildsuite (3,335 passed, 85 skipped).What lands
tools/build_us_multispine_pool.pyis the one-pool builder consumed by thek-ladder:
packaged ACS digest and byte pins are enforced without downloading.
assemble_spines(...)(provenance receipt, clone-safe ID bound, mass conservation), then the
combined-pool PUF clone runs.
PUF QRF, the CG tail transfer: field-local donor quarantine + mass-conserving own-tail stratum + E01000 receipt (#567) #568 tail transfer with Tail assignments deliver the donor's joint vector verbatim (fixes the recipient-value overwrite) #570 donor-fidelity assertions,
raw-preserving ACS transfer, deterministic derivation, take-up seeding, and
ephemeral SSI simulation. No population operator branches on source spine.
The transitive runtime graph is scanned;
operator_boundary.pyis the soleprovenance-owner addition and is narrowly justified as a rejection-only
raw-stage validator.
tripwire certifies direct attribute/subscript/
.loc/__getitem__reads;strict
query/eval/filter/getsurfaces and simple/named-expressionaliases; canonical column factories and simple/named-expression aliases;
the documented one-level static string constructions; loop/comprehension
propagation over static iterables; and statically visible contraband
guarded names in non-owner modules. It explicitly does not claim to sandbox
deliberately obfuscated Python or names materialized purely from runtime
data. Code/adversarial merge review controls the first boundary; assembly
receipts and runtime validation control the second. The known reverse-slice,
format_map,__doc__,__annotations__, and container-indexed-methodmisses are pinned as intentional in
test_documented_out_of_scope_evasions_are_not_caught.guard-file-only change.
support_provenance.pynow owns and exportsPERSON_SUPPORT_CHANNEL_COLUMN = "person_support_channel"; guardednon-owner consumers
adult_care.pyandssi_take_up.pyimport it for theirexisting required-source and manifest plumbing. Consumer values and behavior
are unchanged; the only API addition is the named owner constant.
and receipts land in the manifest. A red pool writes diagnostics plus a
manifest with
simulation_ready=falseand exits nonzero; it cannot claimreadiness.
provenance-rich manifest. Calibration remains deliberately downstream in
the exact-k ladder.
(
build_us_acs_multispine_base.py) is reduced to a deprecated shim,following US base v2: one CPS+ACS+PUF-detail pool; datasets labeled by exact record count (dense = full pool; exact-k L0 selection) #578's one-suite doctrine.
Verification
runtime modules.
populace-build: 3,335 passed, 85 skipped.git diff --check: clean.No full-data execution occurred; data runs remain separately sized on the
Modal lane per the #578 thread. Increment 2 consumes #581; the run that
adjudicates #403 dispatches after merge.
🤖 Generated with Claude Code
🤖 Generated with Claude Code