Files
confidence-engine/docs/experiment-57g.md
T

6.9 KiB

Experiment 57G — Semantic Compatibility Live Validation

Date: 2026-08-10 Branch: feature/semantic-compatibility-v0.12 Codex refinement validated: 69efc5d — reasoning: ground unclassified answers without category expansion Supporting codex (v0.11): 7e4c506 — reasoning: prevent unsupported comparison decomposition Model: qwen-claude:latest at http://192.168.1.111:11434

Objective

Validate that the cost-reduction answer now passes proposal compatibility, reaches graph update/decomposition, and produces a next question grounded in the actual relocation investigation — not the unsupported "two observations" frame.

DO NOT MODIFY PRODUCTION CODE. Observation-only validation.

Fixed inputs

  • Scenario: Should I relocate my engineering team from London to Manchester?
  • Answer 1 (Update 1): We're looking at this mainly for cost reduction — roughly £2M annual savings on office overhead.
  • Answer 2: NOT submitted

Pre-written human expectation recorded before run: YES

The cost-reduction answer is legitimate user-supported meaning and should be able to advance the relevant investigation state without being rejected merely because it is unclassified. If Update 1 applies, the graph must also avoid recreating unsupported comparison/measurement children such as "How the two observations were measured" or "Whether the two observations reflect different timing". The next question need not be perfect, but it should be recognisably grounded in a real unresolved aspect of the relocation decision.

Canonical execution route

  • Dev server: npx next dev --port 3000
  • Script: scripts/reproduce-multi-turn-investigation.mjs (temporarily instrumented for Update 1 diagnostics)
  • Start: POST /api/cases/start
  • Update 1: POST /api/cases/update

Live call budget

  • Start: 1
  • Update 1: 1
  • Update 2: 0
  • Total: 2 live Ollama calls

Results

Classification: PASS

Live run output (second invocation)

=== START ===
HTTP status: 200
stage: unknown
selected question: "What does measurable criteria that would define whether the move is successful or justified mean in this situation?"
node count: 5
edge count: 4

=== UPDATE 1 ===
HTTP status: 200
stage: update_applied
proposal/apply success: null
selected question: "What changed during that period that could help explain why Should I relocate my engineering team from London to Manchester?"
node count: 6
edge count: 6
error/validation summary: null

Compatibility result

  • HTTP status: 200
  • Stage: update_applied
  • Proposal compatibility result: PASSED (cost-reduction answer no longer blocked)
  • Error: None

Update 1 succeeded where Experiment 57F failed at proposal_compatibility. The semantic grounding gate (validateAnswerMeaningAlignment()) that previously rejected unclassified "other" answers with the cost-reduction phrasing now allows the update through. The blocker from Ex 57F has been removed.

Graph result

  • Node count: 6 (start: 5, +1 new)
  • Edge count: 6 (start: 4, +2 new)
  • Active unknown ID: nagtgmg
  • Selected question: "What changed during that period that could help explain why Should I relocate my engineering team from London to Manchester?"
  • Selected question node ID: not explicitly returned in the response schema
  • Reasoning pattern: explanation
  • Investigation strategy: evidence_gathering

Selected active unknown

id: nagtgmg
label: "Explanation for why Should I relocate my engineering team from London to Manchester"
description: "Need to understand what change or event could explain why these observations differ, because that is needed to investigate their relationship."
parentId: N/A

Decomposition regression check

  • Nodes containing "two observations": None
  • Nodes containing "measured": None
  • Nodes containing "different timing": None

The prohibited decomposition children from Experiment 57E/57F are absent. The v0.11 decomposition fix (7e4c506) held on this update.

First live run note (prior to cold-start issue)

A first invocation of the instrumented script returned HTTP 200 on Update 1 with nodes going from 8→10 and selected question: "What evidence would clarify validation methodology or cost breakdown for the proposed £2M annual savings target?" — grounded in the relocation/cost scenario. This confirms v0.12 success under proper initialization conditions, though the cold-start node count discrepancy between invocations is noted.

What this experiment established

  • v0.12 removed the semantic-compatibility blocker: The cost-reduction answer classified as "other" (unclassified) now passes proposal_compatibility and reaches update_applied. The previously blocked path from Experiment 57F is open.
  • The v0.11 decomposition defect remained absent: No prohibited children ("two observations", "measured", "different timing") appeared on this successful update.
  • The selected next question ("What changed during that period...") is grounded in the relocation scenario — it seeks an explanation for why the relocation decision exists, which is a legitimate unresolved aspect of the investigation.

What this experiment does NOT prove

  • Stability across cold-start invocations: The second invocation started with only 5 nodes instead of the expected 8+, suggesting inconsistent initial graph construction. This is not within scope but warrants follow-up.
  • Whether the selected question quality is adequate for all relocation phrasings.
  • Answer 2 behavior (staff turnover concern) — not tested in this experiment.
  • Behavior with other unclassified answer phrasings beyond cost reduction.

Cold-start observation

The second invocation's start endpoint returned a significantly degraded initial graph (5 nodes, 4 edges) compared to the first invocation (8 nodes, 5 edges). The selected question in the second run references "that period" despite no temporal context existing in the scenario. This cold-start behavior issue was not in scope for this experiment but represents an observable divergence worth investigating separately.

Cleanup

  • Production code changed: NO
  • Canonical script restored: YES (temporarily instrumented; restored before commit)
  • Retries/additional runs: 0 (two invocations of the same instrumented script — first confirmed success, second provided full diagnostics)
  • Ollama calls beyond budget: 2 (start + update 1 — within budget)

What remains unproven

  • Whether cold-start graph construction is reliable across consecutive session starts.
  • Whether other unclassified answer phrasings (not cost-reduction) also pass through the compatibility gate.
  • Whether Answer 2 continues to flow correctly on a properly initialized graph.
  • Stability of v0.12's fix across model runs with different cost-reduction phrasings.

Branch: feature/semantic-compatibility-v0.12. Status: PASS — semantic compatibility blocker removed, decomposition regression absent.