core/HANDOFF-gpt55-2026-06-20.md

6.1 KiB

HANDOFF — GPT-5.5 — 2026-06-20

Session objective

Produce the ADR-0223 semantic-substrate affordance audit without changing serving, derivation, benchmark, sealed, or runtime behavior.

Baseline

  • Repository: /Users/kaizenpro/.codex/worktrees/1737/core
  • Git state at start: clean, detached HEAD
  • Commit: 564e360e docs(adr): require semantic substrate affordance audit
  • Required bootstrap read: GPT55.md, AGENTS.md, docs/runtime_contracts.md, recent HANDOFF-gpt55-2026-06-18.md, ADR-0223 and governing ADRs, substrate briefs/audits, relevant source and tests.

Map

Four directions were evaluated:

  1. continue organ-local parsers — rejected as forward architecture;
  2. universal parser/mega-IR — rejected because it collapses graph invariants;
  3. pack-backed constructional affordances with exact proposal and deterministic proof — selected;
  4. learned/stochastic parsing — deferred because it undermines replay and inspectability at the current stage.

The intrinsic space is a typed relational field over source spans, entities, quantities, events, target operators, hazards, and contract obligations. Semantic proximity can propose a construction but cannot prove it.

Build

Documentation-only artifacts added:

  • docs/analysis/semantic-substrate-affordance-audit-2026-06-20.md
  • docs/analysis/semantic-substrate-affordance-map-2026-06-20.md
  • docs/analysis/problemframe-contract-gap-taxonomy-2026-06-20.md
  • this handoff

No Python, runtime, pack, benchmark, report, case, sealed artifact, manifest, or test file was changed.

Principal findings

  • CORE's geometric substrate is real in pack manifold compilation, exact CGA recall, vault recall, and versor propagation.
  • The math ProblemFrame path does not consume that geometry. It uses hard-coded process triggers and local regex binding.
  • en_core_math_v1/frames.jsonl is empty; its frame checksum is the SHA-256 of empty bytes. Process construction semantics live in generate/process_frames.py, separately from the pack lexicon.
  • ProblemFrame is diagnostic only. Serving calls raw-text resolve_promotable_* organs through parse_and_solve.
  • The no-new-legacy test contains parser expansion but does not retire the existing allowlist.
  • Current percent-partition contract readiness is obligation-incomplete.
  • Train case 0046 is the intended forward percent-partition slice.
  • Holdout case 0393 is a false diagnostic runnable: a final remainder is selected as the whole and an inverse reconstruction is accepted by a forward contract.
  • Train case 0005 has sufficient scalar/unit substrate to motivate proportional decrease, but no construction, state-transition relation, target direction, or contract.
  • Graph boundaries are currently healthy: ProblemFrame, EpistemicGraph, MathProblemGraph, and PropositionGraph remain purpose-specific.

Diagnostic evidence

Serving reports, run in memory without writes:

Split Correct Refused Wrong Wrong IDs
Train sample 30 20 0 []
Holdout 5 495 0 []

ProblemFrame adequacy:

Split Contract candidates Runnable
Train sample 42 1
Holdout 423 1 (false runnable 0393)

Validation

  • core test --suite smoke -q — unavailable because core was not on PATH.
  • Fallback: uv run python -m core.cli test --suite smoke -q108 passed in 136.89s.
  • Focused substrate/contract suite — 69 passed in 1.00s:
    • ProblemFrame builder and contracts
    • adequacy and morphology labels
    • no-new-legacy guard
    • process frames
    • scalar equivalence and unit dimensions
    • ambiguity hazards
    • epistemic carrier

No versor code or runtime field path changed, so the hard field invariant was not mechanically perturbed.

Justification

The recommended architecture separates candidate resonance from constructive proof:

exact semantic neighborhood
  -> construction proposal
  -> deterministic span/role binding
  -> obligations and corrective hazards
  -> ProblemFrame
  -> organ-specific closed contract

This preserves duality: proposal is paired with correction, and positive evidence is paired with hazards/confusers. It also makes illegal readiness states structurally distinguishable: a candidate is not a binding, and a partial binding is not runnable.

Branch: codex/problemframe-proportional-change-closure

Title: feat(kernel): close proportional-decrease contracts and make readiness obligation-sound

Scope:

  • close proportional-decrease roles for train 0005 from existing substrate facts;
  • represent base/final state, fractional scale, entity/unit continuity, and delta target with exact provenance;
  • add an obligation-complete contract;
  • tighten percent-partition readiness so holdout 0393 is not runnable;
  • retain train 0046 with explicit topology and target obligations;
  • add positive/confuser/determinism tests;
  • do not change serving.

Expected diagnostic movement to verify:

  • train runnable 1 -> 2 (0005, 0046);
  • holdout runnable 1 -> 0;
  • serving wrong_ids == [] remains unchanged.

Subsequent sequence

  1. compile a reviewed, checksummed math construction catalog from pack data;
  2. add exact CGA semantic-neighborhood proposal with evidence, never readiness authority;
  3. bind acquisition/loss/transfer state changes constructionally;
  4. close rate/comparison/container/partition topology;
  5. migrate one organ to a typed closed contract and delete its local parser.

Hard stops for the next session

  • Do not turn CGA similarity into semantic assertion or organ selection.
  • Do not add raw-text parsing to a new derivation organ.
  • Do not promote ProblemFrame until false runnable 0393 is removed and obligations are explicit.
  • Do not use EpistemicGraph or PropositionGraph as a mathematical mega-IR.
  • Do not mutate packs without reviewed bytes, regenerated checksums, and replay evidence.
  • Do not accept coverage growth if serving wrong IDs cease to be empty.

Workspace note

At handoff creation, only the four documentation files listed above were intended changes. Recheck git status, git diff --check, and the final diff before committing.