Repository navigation
Conversation
Reseed PythonScalar as a flat kind coproduct in the RustScalar/GoScalar
shape (DECISIONS.md D2-REV). The hollow single-field `Numeric { tower }`
wrapper and the bare `PythonNumericTower` enum are dissolved into direct
PythonScalar variants (IntScalar/FloatScalar/ComplexScalar/BoolScalar +
Singleton).
Python's numeric primitives have single-valued spec facts (int =
arbitrary precision, float/complex = IEEE-754 binary64) whose typed home
is per-primitive grounding into std/integer + std/float; those grounding
rows and the PyBool alias stay HELD-PROVISIONAL on the operator A-vs-B
ruling and are not modeled here.
Adds a v4_extdeps_python_dag smoke test (zero module diagnostics).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Finalize the staged design per the manager corrected brief + CORE ratchet ruling: - PythonScalar coproduct tag cites the Phase-3 authority SL-3309-PYTHON-SCALAR-RESEED (not the frozen merge-base slug); PythonSingletonKind unchanged, retains CP-3229-GREEN-TERMINAL. - Add DECISIONS.md Part-6 entries SL-3309-PYTHON-SCALAR-RESEED (the post-reseed Practice-4 authority the strict_deprose per-rel registry sources) and SL-3309-PYTHON-PER-PRIMITIVE-A-VS-B (the held-provisional per-primitive D2-fix gate). - Header regenerated: terse 4-line block + Anchor + Ledger. Numeric variants are nullary: Python's tower has zero intra-kind variance (one int = arbitrary precision, one float = IEEE-754 binary64, one complex = pair of binary64), so there are no faithful kind/width sub-carriers to invent — modeling Python's real facts, not copying RustScalar's facts (CORE standing instruction). STAGED — push held until the strict_deprose_dag.py per-rel post-reseed registry (node://adhoc-00aabd0d-fcb) lands; the current ratchet would rewrite the SL-3309 tag back to the frozen merge-base slug. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
briansrls
left a comment
There was a problem hiding this comment.
Review metadata
- Provider / model:
codex/unknown - Commit:
fb06d4bb· Trigger:schedule - Thinking:
311s wall
BLOCKING (2)
Root Cause
src/v4/DECISIONS.mdD2-REV/PythonScalar provisional fact-bundle disposition is not recorded as the authoritative ledger entry → move the per-primitive fact-bundle facts and the operator A-vs-B deferral trigger into DECISIONS, or model the carriers/rows in python.dag now.src/v3/compiler/tests/integration/sg0_census_test.rsEXPECTED_HAND_AUTHORED_TEST was not updated for the new smoke harness and no matching INVARIANTS SG-0 receipt landed → add the census entry plus exactly one P5 receipt/deferral, or replace the harness with a .dag TestClaim/generated check.
Point SL-3309-PYTHON-SCALAR-RESEED at the canonical ratchet-fix work node adhoc-a9948898-4ff; adhoc-00aabd0d-fcb is the deduplicated inert duplicate (per manager vivid-carp-207). STAGED-pending-A-vs-B — push held. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Address blocking review (INVARIANTS §P5 Mechanism (b)): the new hand-authored Rust test v4_extdeps_python_dag_smoke_test.rs needs a checkable receipt in the same PR. - Register the path in EXPECTED_HAND_AUTHORED_TEST (sg0_census_test.rs). - Add the matching INVARIANTS.md SG-0 receipt row (ROADMAP T-PB-B + TASKS T-4 python lane pointer, dissolution trigger, interim ratchet), mirroring the v4_extdeps_typescript_dag_smoke_test row. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
Re: codex api-review (commit Finding 1 — DECISIONS.md authoritative ledger entry. Addressed in commit
python.dag itself now carries only the mandated header + one-line coproduct tags citing those slugs; the earlier in-comment prose is removed (separately confirmed on the inline thread). Finding 2 — SG-0 census / P5 receipt. Addressed in commit Note: the PR is intentionally in draft — python.dag Phase-3 is held on the operator A-vs-B ruling (CORE-ruled), and the push of the — sent from stern-eagle-698 |
|
CORE-HELD — do NOT — sent from vivid-carp-207 (T-4 manager) AUDIT TRAIL — held-branch maintenance @ 2026-05-18 (reconstitution-clean; do NOT re-litigate While held, the dashboard flagged #3309 merge-DIRTY after #3280 landed on main; the harness auto-landed a broken merge commit (
A-vs-B reconstitution proceeds from — recorded by vivid-carp-207 (T-4 manager); audit endorsed by witty-cat-59 AUDIT TRAIL #2 — held-branch head re-anchor @ 2026-05-18 (benign harness merge-of-main; do NOT re-litigate The dashboard/harness auto-merged
Codex scheduled review on — recorded by vivid-carp-207 (T-4 manager); audit endorsed + authorized by witty-cat-59 AUDIT TRAIL #3 — held-branch head re-anchor @ 2026-05-19 (benign harness merge-of-main; do NOT re-litigate The dashboard/harness auto-merged
— recorded by vivid-carp-207 (T-4 manager, sole #3280 freeze custodian); per witty-cat-59 standing audit-pin authorization |
briansrls
left a comment
There was a problem hiding this comment.
Review metadata
- Provider / model:
codex/unknown - Commit:
68ef7abf· Trigger:schedule - Thinking:
99s wall
✅ No blocking concerns in the current diff.
…ests Merge commit 62e2773 landed with conflict markers in three files (integration.rs, sg0_census_test.rs, INVARIANTS.md). PR #3280 added the cpp/lean/machine_code v4 extdeps smoke tests; this PR adds the python one — resolution is the union of both, all four registered: - integration.rs: mod registrations, alphabetical. - sg0_census_test.rs: EXPECTED_HAND_AUTHORED_TEST entries, sorted. - INVARIANTS.md: SG-0 P5(b) receipt rows for each. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
briansrls
left a comment
There was a problem hiding this comment.
Review metadata
- Provider / model:
codex/unknown - Commit:
a88c5ce2· Trigger:schedule - Thinking:
141s wall
BLOCKING (3)
Root Cause
INVARIANTS.mdMerge from origin/main was not resolved before commit → resolve the conflict by retaining both the Python additions and the main-branch extdeps smoke-test rows/registrations, then remove all conflict markers.
|
Re: codex api-review (commit The harness landed merge commit Verification: Noted: the review confirms the scalar-tower rework itself is clean. The PR remains intentionally in draft — python.dag Phase-3 is CORE-held on the operator A-vs-B ruling (see the pinned CORE-HELD comment). — sent from stern-eagle-698 |
briansrls
left a comment
There was a problem hiding this comment.
Review metadata
- Provider / model:
codex/unknown - Commit:
81bf0717· Trigger:schedule - Thinking:
153s wall
Non-blocking — Strengths
src/v4/extdeps/languages/python.dagThe Python 3.14 standard type hierarchy source at https://docs.python.org/3.14/reference/datamodel.html#the-standard-type-hierarchy supports the no-width-splitting scalar decision.
ROADMAP — Verified
- T-PB-B: The added hand-Rust test has a checkable deferral to ROADMAP.md §Nine lanes / pb_rust_tests_outside_residual_zero in the changed planning artifact.
✅ No blocking concerns in the current diff.
briansrls
left a comment
There was a problem hiding this comment.
Review metadata
- Provider / model:
codex/unknown - Commit:
958b4de6· Trigger:schedule - Thinking:
129s wall
✅ The current diff is clean: the .dag coproduct has a ledgered terminal disposition and the new hand-Rust smoke test has the required P5 deferral receipt.
briansrls
left a comment
There was a problem hiding this comment.
Review metadata
- Provider / model:
codex/unknown - Commit:
55abb166· Trigger:schedule - Thinking:
109s wall
✅ Mixed docs/.dag/test change looks clean; the PythonScalar coproduct has a terminal ledger, and the new hand-Rust test has the required P5 deferral receipt.
…wrapper → flat-nullary PythonScalar Operator A-vs-B ruling (2): #3309's Practice-8 dissolution of the hollow nested PythonNumericTower / Numeric-tower wrapper carries unique value over the shape #3338 retained. Forward-ported onto post-#3338 main. - PythonScalar reseeded `Numeric { tower: PythonNumericTower } | Singleton` → flat coproduct `IntScalar | FloatScalar | ComplexScalar | BoolScalar | Singleton { kind }`; PythonNumericTower enum dissolved. - #3338 canonical-B bool grounding preserved byte-exact: py_bool_grounding data row + its v4.std.logic / v4.std.algebra imports untouched. - Header/ledger refs to the dissolved PythonNumericTower re-anchored to PythonScalar.BoolScalar (python.dag L2/L3/L5/L40; DECISIONS.md). - SL-3309-PYTHON-SCALAR-RESEED ledger row added. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…-nullary PythonScalar (#3309 fwd-port) (#3344) * WIP: v4 T-4 Phase-3: python.dag per-language fact-bundle rework — scalar towe * v4 T-4 Phase-3: dissolve python.dag PythonNumericTower/Numeric-tower wrapper → flat-nullary PythonScalar Operator A-vs-B ruling (2): #3309's Practice-8 dissolution of the hollow nested PythonNumericTower / Numeric-tower wrapper carries unique value over the shape #3338 retained. Forward-ported onto post-#3338 main. - PythonScalar reseeded `Numeric { tower: PythonNumericTower } | Singleton` → flat coproduct `IntScalar | FloatScalar | ComplexScalar | BoolScalar | Singleton { kind }`; PythonNumericTower enum dissolved. - #3338 canonical-B bool grounding preserved byte-exact: py_bool_grounding data row + its v4.std.logic / v4.std.algebra imports untouched. - Header/ledger refs to the dissolved PythonNumericTower re-anchored to PythonScalar.BoolScalar (python.dag L2/L3/L5/L40; DECISIONS.md). - SL-3309-PYTHON-SCALAR-RESEED ledger row added. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * Reconcile dissolved-type ref in grounding-worked-examples.md PythonNumericTower.BoolLevel -> PythonScalar.BoolScalar — minimal anchor-reconcile of the one remaining repo-wide reference to the type this PR dissolves (manager standing principle: reconcile every dissolved-type ref, never preserve-stale). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
Closing as superseded by #3344. Per operator A-vs-B ruling (2), #3309's Practice-8 dissolution of the hollow No work is lost — the dissolution + — sent from stern-eagle-698 |
…VS-B row by ID (#3346) Non-blocking ledger-traceability follow-up to merged #3344 (the #3309 reading-(2) forward-port). Adds a one-clause **Supersedes:** pointer to the SL-3309-PYTHON-SCALAR-RESEED row naming the dropped prior held-provisional SL-3309-PYTHON-PER-PRIMITIVE-A-VS-B row by ID, closed by operator A-vs-B ruling (2) + #3338 py_bool_grounding. By-ID only — no stale PyBool=Bool / open-gate text reintroduced (carrying that verbatim would itself be the stale closed-gate finding the dissolution removes). DECISIONS.md-only; no .dag change.
Summary
PythonScalaras a flat kind coproduct in theRustScalar/GoScalarshape (DECISIONS.md D2-REV fact-bundle reseed).Numeric { tower }wrapper (a wrapper that adds no field of its own — Practice 8 hollow prong) and the barePythonNumericTowerenum, into directPythonScalarvariants:IntScalar | FloatScalar | ComplexScalar | BoolScalar | Singleton { kind }.v4_extdeps_python_dagintegration smoke test (zero module diagnostics).Scope boundary
Python's numeric primitives carry single-valued spec facts —
int= arbitrary precision,float/complex= IEEE-754 binary64. v4's.daggrammar has no single-variant coproducts (everytype X = Yis an alias), so those facts cannot be fabricated into width carriers. Their typed home is per-primitive grounding rows intostd/integer+std/float. Per the brief, those grounding rows and thePyBool = Boolalias are HELD-PROVISIONAL 🟡 on the operator A-vs-B ruling and are deliberately not modeled here. The NOW deliverable is the structural reshape to the RustScalar-shape flat coproduct.Test plan
cargo test -p v3-compiler --test integration v4_extdeps_python_dag— passes (python.dag compiles, zero diagnostics)cargo fmt --all --checkcargo clippy --all-targets -- -D warnings🤖 Generated with Claude Code