diff --git a/docs/sessions/SESSION-2026-06-19-semantic-substrate-affordance-foundation.md b/docs/sessions/SESSION-2026-06-19-semantic-substrate-affordance-foundation.md new file mode 100644 index 00000000..fbd604c7 --- /dev/null +++ b/docs/sessions/SESSION-2026-06-19-semantic-substrate-affordance-foundation.md @@ -0,0 +1,334 @@ +# Session 2026-06-19 — Semantic substrate affordances, contract readiness, and the foundation audit pivot + +**Status:** recorded for continuation. **Headline:** After #829–#831 made `ProblemFrame` operational and measurable, the session clarified that the next foundation problem is not another local parser or premature organ migration. The core design target is a **semantic-substrate affordance loop**: words and chunks probe the substrate, surface nearby constructional meanings and relation families, bind roles to exact evidence spans, and only then allow `ContractAssessment` / organs to determine or refuse. + +`Docs-only record. No runtime, serving, eval report, pack, corpus, policy, identity, or sealed artifact changes are made by this session note.` + +--- + +## TL;DR + +1. **#831 changed the truth metric.** The project moved from surface/schema recognition to measurable contract readiness: typed mentions, bindings, bound relations, bound question targets, and pure `ContractAssessment` diagnostics. #831's merged evidence recorded `candidate contracts = 42/423`, `runnable contracts = 1/1`, serving still `train 30/20/0`, `holdout 5/495/0`, with `wrong_ids=[]`. +2. **GPT-5.5 Thinking XHIGH rejected premature `percent_partition` migration.** The decision memo concluded that readiness was still obligation-loose: broadening extraction or migrating `percent_partition` would preserve or amplify false readiness. The recommended next implementation is proportional-change contract closure: bind `decrease_to_fraction`, delta targets, and organ-specific blockers while correcting the false runnable holdout. +3. **The constitutional program was refined, not adopted monolithically.** The correct split is three layers: a small constitutional kernel (`ADR-0223` later), a mutable critical-program roadmap, and versioned evidence profiles. The canonical spine must use semantic roles, not force `PropositionGraph` into a universal reasoning carrier; ADR-0144 distinguishes articulation `PropositionGraph`, epistemic `EpistemicGraph`, and math problem state. +4. **The operator's design correction became the key doctrine.** Dead giveaways are not isolated trigger words. They are **constructional affordances**. A chunk such as `buys 3 more apples` should probe the substrate and surface acquisition / transaction / positive possession-delta affordances, then bind actor, quantity, item, prior state, optional cost, and target. +5. **CGA semantic nearness remains essential but not sufficient.** Substrate proximity should propose candidate nodes and relation families (`buy ≈ purchase ≈ acquire ≈ gain`), while exact span bindings and contracts determine whether anything can be asserted. The governing rule: **closeness proposes; bindings ground; contracts determine.** +6. **A foundation audit is required before broad substrate work.** The current risk is accumulating local recognizers and false contract candidates instead of building the intended semantic substrate. A new ADR is required to mandate a deep, repository-wide substrate-alignment audit before agents make broad foundational changes. + +--- + +## Context entering the session + +The active stack after the latest merged work: + +| PR | Meaning | +|---|---| +| #829 | Kernel Substrate Tranche 1: scalar equivalence, unit dimensions, ambiguity hazards, process-frame schemas, `ProblemFrame` skeleton, morphology foundations. | +| #830 | `ProblemFrame` operationalization and legacy-deprecation guardrails. | +| #831 | Span-grounded mentions/bindings/relations, bound question targets, `ContractAssessment`, adequacy reporting, and contract-gap morphology recommendations. | + +#831's evidence established that readiness must be measured by **runnable contracts**, not by recognized schema presence. The merged PR body recorded: + +```text +Train 50: + entity mention present: 50 + quantity binding present: 46 + bound process relation present: 16 + bound question target present: 42 + candidate contracts: 42 + runnable contracts: 1 + +Holdout 500: + entity mention present: 494 + quantity binding present: 452 + bound process relation present: 124 + bound question target present: 402 + candidate contracts: 423 + runnable contracts: 1 +``` + +This means CORE now has a measurable bridge from text into typed readiness, but the bridge is thin. It proves the method, not broad serving readiness. + +--- + +## The XHIGH decision memo + +The next-decision prompt asked GPT-5.5 Thinking XHIGH to choose the highest-leverage PR after #829–#831. The decision memo recommended: + +```text +feat(kernel): close proportional-decrease contracts and make readiness obligation-sound +branch: codex/problemframe-proportional-change-closure +``` + +The reasons: + +- Current readiness blockers are not yet sufficiently precise. +- `percent_partition` readiness is too loose: candidates can arise from broad `partition`/`consumption` recognition rather than full topology and target-direction proof. +- The existing false runnable holdout is an inverse-reconstruction case outside the forward `percent_partition` contract. +- `fraction_decrease` has mature confusers and a clear train case (`0005`) that can prove a second genuine ProblemFrame-runnable contract without serving migration. + +Expected diagnostic movement: + +```text +Train runnable contracts: 1 → 2 + - 0005: fraction_decrease + - 0046: percent_partition + +Holdout runnable contracts: 1 → 0 + - remove the false positive; this is a truthfulness improvement, not a regression. +``` + +Hard boundary: no serving integration, no derivation-organ migration, no `math_candidate_graph.py` change, no `report.json`, no sealed mutation, and no raw-text fallback behind a `ProblemFrame` call. + +--- + +## The constitutional-program correction + +A broader AGI-capable constitutional plan was discussed. The useful direction was kept, but two important corrections were made: + +### 1. Split constitution, roadmap, and evidence profiles + +The correct structure is: + +```text +1. Small constitutional ADR kernel. +2. Mutable critical-program roadmap. +3. Versioned evidence profiles with frozen benchmarks/thresholds. +``` + +This keeps benchmark churn and implementation sequencing from rewriting the constitution. A future claim such as `agi-capable-v1` should be reproducible against a frozen evidence profile, not embedded forever in the constitutional core. + +### 2. Do not make `PropositionGraph` universal + +The first constitutional spine over-named `PropositionGraph`. ADR-0144 already separates: + +- `generate.graph_planner.PropositionGraph` — articulation planner. +- `recognition.carrier.EpistemicGraph` — epistemic/provenance carrier. +- `MathProblemGraph` / math state — mathematical reasoning state. + +The corrected constitutional spine uses semantic roles: + +```text +observation +→ grounded evidence +→ domain frame +→ admissible domain model +→ verified derivation/proof +→ epistemic standing +→ articulation plan or authorized action +``` + +For the current math path, the realization is narrower: + +```text +text +→ KernelFacts +→ ProblemFrame +→ ContractAssessment +→ contract-backed derivation organ +→ independently verified resolution +→ existing admission and articulation path +``` + +This preserves ADR-0207's anti-universal-IR posture: use typed adapters between domain structures; do not introduce another universal reader/graph by accident. + +--- + +## The operator's substrate doctrine correction + +The operator challenged a simplified explanation that treated `buys` as a generic cue for addition. The corrected doctrine is: + +```text +Dead giveaways are constructional affordances, not isolated trigger words. +``` + +A word such as `buys` does not merely mean `add`. It probes a semantic neighborhood: + +```text +buy / bought / purchase / acquire / get / gain / receive +→ acquisition +→ transaction +→ possession change +→ positive object delta +→ optional money/cost delta +``` + +But the meaningful unit is often the chunk: + +```text +buys 3 more apples +``` + +That chunk should surface: + +```text +surface chunk: "buys 3 more apples" +semantic neighborhood: buy, purchase, acquire, gain possession, transaction +construction: actor buys quantity more entity +roles: + buyer + acquired_quantity = 3 + acquired_entity = apples + same_entity_continuation = true + object_delta = positive +optional roles: + price + seller + money_delta +operator candidates: + add_to_inventory + compute_cost + compute_remaining_money, if money target is present +hazards: + entity mismatch + target mismatch + negation + comparison rather than acquisition +``` + +The same principle applies to proportional change: + +```text +decrease to 3/4 of 84 degrees +``` + +should surface: + +```text +semantic affordance: proportional state change +construction: state decreases to fraction of base +roles: + base quantity = 84 degrees + target scale = 3/4 + relation = decrease_to_fraction +question target: + delta decrease, if asked "how much did it decrease by" +blocked cases: + final-value question + affine-more-than fraction + multiple fractions + ambiguous base +``` + +--- + +## Working model: substrate-mediated cognition loop + +The intended loop is: + +```text +chunk enters the field +→ nearby semantic / constructional affordances resonate +→ candidate nodes and relation families surface +→ roles bind to exact evidence spans +→ organ-specific contracts assess obligations +→ determination, refusal, articulation, or action follows +``` + +Or shorter: + +```text +chunk +→ semantic neighborhood +→ constructional affordance +→ role obligations +→ bound relation candidate +→ contract assessment +``` + +This is the bridge between the CGA substrate and the typed problem-solving stack. + +The CGA inner product / substrate should provide **semantic gravity**: related meanings and constructions become easy to retrieve. But closeness does not license truth. Truth promotion requires grounded bindings and contracts. + +Canonical rule: + +```text +closeness proposes; +bindings ground; +contracts determine. +``` + +--- + +## Foundation risk identified + +The operator's warning was accepted: if the project builds a pile of local recognizers, it will become harder each sprint. Every later capability will fight earlier shortcuts. + +The dangerous path: + +```text +surface keyword +→ local regex +→ one-off organ behavior +→ patch more confusers forever +``` + +The intended path: + +```text +surface chunk +→ substrate affordance retrieval +→ constructional role binding +→ ProblemFrame relation +→ ContractAssessment obligations +→ verified derivation or refusal +``` + +Therefore, before broad foundation changes, CORE needs a deep audit of how the current codebase aligns or misaligns with the intended substrate-mediated cognition loop. + +--- + +## New ADR required + +This session produced the requirement for a new ADR: + +```text +ADR-0223: Semantic Substrate Affordance Audit and Foundation Alignment +``` + +The ADR must require a deep-dive research pass over small and large details that may be blocking the intended design, including but not limited to: + +- lexical vs constructional affordances; +- local regex recognizers vs substrate-backed constructional retrieval; +- ProblemFrame binding quality; +- false runnable contracts; +- relation topology and question-target direction; +- graph/carrier boundaries (`ProblemFrame`, `EpistemicGraph`, `PropositionGraph`, math state); +- legacy parser bypasses; +- substrate pack coverage; +- morphology/planner recommendation evidence; +- proof/admission boundaries; +- exact recall / CGA-neighborhood usage; +- places where the code's foundation makes later correctness harder. + +The ADR should authorize research and recommendations, not immediate destructive edits. Any proposed removal, replacement, or consolidation must return as evidence-backed proposals and separate implementation PRs. + +--- + +## Immediate plan of record + +1. Continue with the already-selected implementation PR: + +```text +feat(kernel): close proportional-decrease contracts and make readiness obligation-sound +branch: codex/problemframe-proportional-change-closure +``` + +2. Record this session and ADR as docs-only work. +3. Keep `percent_partition` deferred until its topology, target direction, and heterogeneous positive evidence are sufficient for ProblemFrame-only migration. +4. Use the new ADR to guide a high-skill research/audit effort, not to authorize unreviewed rewrites. + +--- + +## Open / next + +- Run or commission the substrate-affordance audit required by ADR-0223. +- Ensure the proportional-decrease PR interprets `decrease to of ` as a constructional affordance, not as keyword matching. +- Update future constitutional documents to use semantic roles rather than concrete universal graph classes. +- Consider adding the doctrine below to architecture docs after ADR-0223 is ratified: + +```text +Words and chunks are probes into the semantic substrate. +They surface candidate affordances and relation families. +Only grounded bindings and contracts can promote those affordances into determinations. +```