8.9 KiB
Experiment 59A.3 — Known vs Uncertain Consequence Structure
Branch: feature/question-formulation-v0.24
Date: 2026-08-12
Status: Complete
Following: 59A.2 which showed partial decomposition (delivery impact structured but engineer loss left only in text, no epistemic separation).
Objective
When the user states one consequence as known ("two senior engineers will leave") and a downstream consequence as uncertain ("whether losing them would delay delivery"), does the proposal represent them as separate structural objects with different epistemic states?
This isolates that distinction without the extra £2m-resolution step from 59A.1/59A.2.
Context route
Read only:
docs/current-handoff.md(sections 59A.1, 59A.2)- Fixture:
tests/fixtures/pre-anchored-update-savings-realism.json - Harness:
scripts/reproduce-multi-turn-investigation.mjs
Do not load older experiment history.
Fixed starting graph
Fixture: tests/fixtures/pre-anchored-update-savings-realism.json
Existing unresolved question:
n_savings_realism — Are the projected office savings from relocation realistic? — status = unknown
Fixed answer
We know that relocating would cause two senior engineers to leave. What I don't know is whether losing them would delay delivery, or by how many months.
The answer contains two semantically different assertions:
- Known consequence: two senior engineers will leave (epistemic state = known)
- Uncertain consequence: whether/when that loss delays delivery (epistemic state = unknown)
Note: this version omits the £2m savings confirmation present in 59A.2, isolating only the known-vs-unknown distinction.
Execution
Host/model: qwen-claude:latest at http://192.168.1.111:11434 Calls: startCalls=0, updateCalls=1, totalCalls=1 Retries: 0
Results
UPDATE output
HTTP status: 422
Stage: proposal_compatibility
Error: "selectedQuestion must be a single non-compound question"
Rejected proposal snapshot (from diagnostics.rejectedProposalSnapshot)
answerMeaning
userSupportedMeaning: "Relocating will cause two senior engineers to depart; it is currently unknown whether this loss will delay project delivery or determine the magnitude of such delays."possibleInference: "The financial savings from relocation may be negated by productivity losses and delivery delays caused by losing key technical staff."
Proposal mutations
{
"updatedNodes": [],
"resolvedUnknownNodeIds": [],
"addedNodes": [
{
"id": "n_talent_departure",
"kind": "observation",
"label": "Senior engineer turnover from relocation",
"description": "Relocating would cause two senior engineers to leave.",
"parentId": null,
"dependsOn": ["n_relocation_state"],
"affects": ["n_delivery_delay_impact"],
"childIds": []
},
{
"id": "n_delivery_delay_impact",
"kind": "unknown",
"label": "Delivery delay impact from lost engineers",
"description": "Whether losing the two senior engineers will delay project delivery and by how many months; matters because it determines if productivity loss outweighs office savings.",
"parentId": null,
"dependsOn": ["n_talent_departure"],
"affects": ["n_relocation_state"],
"childIds": []
}
],
"addedEdges": [
{
"fromNodeId": "n_delivery_delay_impact",
"toNodeId": "n_talent_departure",
"relationship": "depends_on"
}
]
}
selectedQuestion
null (no selected question produced — caused the rejection at proposal_compatibility)
Reasoning Assessment
Known engineer loss
- Created dedicated node
n_talent_departure:- kind = observation (not unknown, not provisional)
- label: "Senior engineer turnover from relocation"
- description: "Relocating would cause two senior engineers to leave."
- depends_on: n_relocation_state
- affects: [n_delivery_delay_impact]
affectsfield carries a typed structural link to the downstream uncertainty node.
Classification: SEPARATE KNOWN STRUCTURE
The engineer departure is not embedded in text or left uncertain — it is its own observation node with status derived from kind=observation (a factual assertion, not an unresolved question). This is a correct epistemic state for a known consequence.
Delivery impact
- Created dedicated node
n_delivery_delay_impact:- kind = unknown
- status = unknown
- label: "Delivery delay impact from lost engineers"
- description: "Whether losing the two senior engineers will delay project delivery and by how many months..."
- depends_on: [n_talent_departure]
- The
dependsOnfield is populated with the known-consequence node — a typed structural link.
Classification: SEPARATE UNRESOLVED STRUCTURE
Delivery uncertainty is its own unknown node with proper kind=status=unknown and structural linkage back to the known consequence via depends_on.
Epistemic separation
n_talent_departure(kind=observation) = known factual consequencen_delivery_delay_impact(kind=unknown, status=unknown) = unresolved uncertain consequence- They are two distinct nodes with a typed
affects/depends_onrelationship between them.
Classification: CLEARLY SEPARATED
The epistemic distinction is preserved at the structural level — two different kinds, two different statuses, connected by typed edges.
Relationship between engineer loss and delivery delay
n_talent_departure.affects = ["n_delivery_delay_impact"]n_delivery_delay_impact.dependsOn = ["n_talent_departure"]- Edge: n_delivery_delay_impact → n_talent_departure with relationship=depends_on
Classification: TYPED / STRUCTURAL LINK
The causal chain is represented by both a forward field (affects) and a reverse edge (depends_on), not just embedded in prose.
Next question
No selectedQuestion was produced (null). The rejection was caused by the validator requiring "a single non-compound question."
Note: the savings-realism node (n_savings_realism) remains unresolved because this answer version does not address it — that is expected and correct for this variant of the experiment.
Classification: NONE
Classification: A — CORRECT EPISTEMIC DECOMPOSITION
Why:
This is a clean positive result. The model created two separate structural objects with distinct epistemic states:
- n_talent_departure (observation) — captures the known consequence that engineers will leave. Not uncertain, not pending resolution. Its kind=observation signals "established fact to be taken into account."
- n_delivery_delay_impact (unknown) — captures the unresolved downstream uncertainty about delivery impact magnitude, depending on the known departure.
The causal chain between them is represented via typed fields (affects/depends_on) and a typed edge (depends_on), not just text embedding.
The key distinction from 59A.2: in that experiment both consequences were compressed into one unknown node ("Impact of losing two senior engineers on delivery timelines"). Here they are separate nodes with different kinds — the known-vs-unknown boundary is structurally preserved.
Important caveat: The update was rejected at proposal_compatibility because no selectedQuestion was produced. This is a validator-side issue, not a semantic reasoning failure. The rejected snapshot demonstrates correct structural decomposition even though the update was not applied to the persistent graph.
Did "two senior engineers will leave" become its own known structure: YES
Did delivery delay remain explicitly unresolved: YES
Did the graph/proposal preserve the distinction: YES
What this establishes:
- The model CAN represent a known consequence as an observation node and an uncertain downstream effect as an unknown node — keeping them structurally separate with distinct epistemic states.
- A typed causal chain (affects + depends_on edge) can be produced between these two kinds of nodes in a single proposal.
- Removing the £2m savings confirmation from the answer did not degrade the known-vs-unknown separation; it actually focused the model's attention on exactly what was being tested.
What this does NOT prove:
- Persistence — the proposal was rejected before any graph mutation; we do not know whether the accepted path would have preserved the structure.
- Next-question generation — the selectedQuestion failure (null) was not resolved by this experiment. The model may struggle to formulate a single non-compound question when two structural consequences are introduced.
- Stability — one run only; cold-start variance has been a factor across Experiments 59A series.
- Cross-domain generalisation — single domain case only.