Implements the 4-phase documentation reorganization master plan. - Consolidation: Merged brief/, handoff/, planning/, and decisions/ into briefs/, handoffs/, plans/, and adr/ respectively (101 ADRs relocated) - Root Cleanup: Relocated HANDOFF-gpt55-*.md and key top-level docs (runtime_contracts.md, etc.) to canonical folders. Added superseded alerts. - Indices & Navigation: Created docs/README.md navigation document, docs/sessions/README.md index, docs/adr/README.md index - Note: Also includes prior commit adding ADR-0200+ corpus hygiene governance (ADR-0225, dependency map, backfilled cross-references)
13 KiB
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
- #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
ContractAssessmentdiagnostics. #831's merged evidence recordedcandidate contracts = 42/423,runnable contracts = 1/1, serving stilltrain 30/20/0,holdout 5/495/0, withwrong_ids=[]. - GPT-5.5 Thinking XHIGH rejected premature
percent_partitionmigration. The decision memo concluded that readiness was still obligation-loose: broadening extraction or migratingpercent_partitionwould preserve or amplify false readiness. The recommended next implementation is proportional-change contract closure: binddecrease_to_fraction, delta targets, and organ-specific blockers while correcting the false runnable holdout. - The constitutional program was refined, not adopted monolithically. The correct split is three layers: a small constitutional kernel (
ADR-0223later), a mutable critical-program roadmap, and versioned evidence profiles. The canonical spine must use semantic roles, not forcePropositionGraphinto a universal reasoning carrier; ADR-0144 distinguishes articulationPropositionGraph, epistemicEpistemicGraph, and math problem state. - 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 applesshould probe the substrate and surface acquisition / transaction / positive possession-delta affordances, then bind actor, quantity, item, prior state, optional cost, and target. - 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. - 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:
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:
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_partitionreadiness is too loose: candidates can arise from broadpartition/consumptionrecognition rather than full topology and target-direction proof.- The existing false runnable holdout is an inverse-reconstruction case outside the forward
percent_partitioncontract. fraction_decreasehas mature confusers and a clear train case (0005) that can prove a second genuine ProblemFrame-runnable contract without serving migration.
Expected diagnostic movement:
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:
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:
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
→ 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:
Dead giveaways are constructional affordances, not isolated trigger words.
A word such as buys does not merely mean add. It probes a semantic neighborhood:
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:
buys 3 more apples
That chunk should surface:
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:
decrease to 3/4 of 84 degrees
should surface:
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:
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:
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:
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:
surface keyword
→ local regex
→ one-off organ behavior
→ patch more confusers forever
The intended path:
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:
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
- Continue with the already-selected implementation PR:
feat(kernel): close proportional-decrease contracts and make readiness obligation-sound
branch: codex/problemframe-proportional-change-closure
- Record this session and ADR as docs-only work.
- Keep
percent_partitiondeferred until its topology, target direction, and heterogeneous positive evidence are sufficient for ProblemFrame-only migration. - 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 <fraction> of <state>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:
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.