6.2 KiB
Experiment 57E — Irrelevant Decomposition Question Boundary
Date: 2026-08-10
Branch: feature/relationship-contract-v0.10
Model: qwen-claude:latest at http://192.168.1.111:11434
Live calls: 1 start + 1 update = 2 (within budget)
Objective
Identify the exact graph node that triggered the decomposition producing "How the two observations were measured", and determine whether the parent was genuinely about comparison/measurement/timing before decomposition.
Fixed inputs
- Scenario: Should I relocate my engineering team from London to Manchester?
- Answer 1: We're looking at this mainly for cost reduction — roughly £2M annual savings on office overhead.
Canonical execution route
- Dev server:
npx next dev→http://localhost:3000 - Start:
POST /api/cases/start - Update 1:
POST /api/cases/update - Script:
scripts/reproduce-multi-turn-investigation.mjs(temporarily instrumented, then restored)
Results
Selected question
- Exact text: "What evidence would clarify how the two observations were measured?"
- Node ID: np6zcaw
- Reasoning pattern: comparison
- Investigation strategy: evidence_gathering
Selected active unknown node (np6zcaw)
- id: np6zcaw
- label: How the two observations were measured
- description: Need evidence about the measure used for each observation, because that could help explain Should I relocate my engineering team from London to Manchester.
- kind: unknown
- status: unknown
- parentId: nagtgmg
- childIds: ["nagtgmg"]
Parent node (nagtmgmg)
- 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.
- kind: unknown
- status: unknown
- parentId: null (top-level)
- childIds: [none populated — children added via graph edges]
Sibling/decomposition children of parent nagtgmg
- id: nlymgp2, label: Whether the two observations reflect different timing, description: Need to know whether the two observations reflect different timing, because that could help explain Should I relocate my engineering team from London to Manchester., kind: unknown, status: unknown
- id: np6zcaw, label: How the two observations were measured, description: Need evidence about the measure used for each observation, because that could help explain Should I relocate my engineering team from London to Manchester., kind: unknown, status: unknown
- id: ndya37c, label: Possible change mainly affecting engineering team is currently operational in london, description: Need to know whether a possible change mainly affected engineering team is currently operational in london, because that could help explain Should I relocate my engineering team from London to Manchester., kind: unknown, status: unknown
- id: nmak7da, label: Possible change mainly affecting relocation to manchester is actively being evaluated by the decision-maker, description: Need to know whether a possible change mainly affected relocation to manchester is actively being evaluated by the decision-maker, because that could help explain Should I relocate my engineering team from London to Manchester., kind: unknown, status: unknown
- id: nqajgbf, label: Possible one-off event during the period, description: Need to know whether a possible one-off event happened during the period, because that could help explain Should I relocate my engineering team from London to Manchester., kind: unknown, status: unknown
Decomposition diagnostic fields retained by API
None — the production API does not expose decomposition parent/child diagnostics in its response.
Pre-written decision rule (recorded before run)
- Outcome A — decomposition trigger defect: parent is NOT genuinely about comparing observations/measurement/timing, yet decomposition generates those children
- Outcome B — decomposition template defect: parent IS comparison-related but child template is over-specific
- Outcome C — both
- Outcome D — insufficient evidence
Classification: A — decomposition trigger defect
Rationale
The parent node nagtmgmg has NO semantics of comparison, measurement validity, or timing. Its description only references "these observations differ" in a generic explanatory sense (what change/event explains the difference between initial state and current state). It does not establish that there are two measured observations to compare. Yet decomposition produced five children including hardcoded "two observations" templates.
The parent itself is a generic "explanation for difference" unknown — structurally similar to any post-hoc explanation query — and does NOT contain comparison/measurement semantics. The "two observations" language in decomposition children originates from buildDecompositionTemplates() default template (line 1484–1510 of lib/graph/apply-proposal.js) which unconditionally injects these children for any unknown parent that doesn't match special-case regex patterns.
What this experiment established
- The "two observations" decomposition children are template-injected regardless of parent meaning
- They appear whenever
buildDecompositionTemplates()runs for a generic unknown node that doesn't match special-case regex patterns - The selected question was assigned reasoning pattern "comparison" despite the parent having no comparison semantics
- This is a decomposition trigger defect, not merely an over-specific template
What this experiment does NOT prove
- That every decomposition is irrelevant (some parents genuinely concern comparison/measurement)
- That fixing the trigger won't break valid decompositions elsewhere
- Whether other template children (change affecting X/Y, one-off event) share the same defect pattern or have independent justification issues
Cleanup
- Production code changed: NO
- Canonical script restored after temporary instrumentation: YES
- Retries/additional runs: 0
- Ollama calls beyond budget: 0