From 802eb1cc16d0868db1243007910ca7e2895c8281 Mon Sep 17 00:00:00 2001 From: robbond Date: Thu, 13 Aug 2026 17:45:28 +0100 Subject: [PATCH] docs: record proposition question formulation fix --- docs/current-handoff.md | 10 ++++ docs/experiment-60b26.md | 123 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 133 insertions(+) create mode 100644 docs/experiment-60b26.md diff --git a/docs/current-handoff.md b/docs/current-handoff.md index 650c112..b699fd5 100644 --- a/docs/current-handoff.md +++ b/docs/current-handoff.md @@ -164,6 +164,16 @@ Experiment 54N tested whether an interpretation disagreement can be judged for m - `npx vitest run tests/graph/question-formulator.test.js tests/graph/question-formulation-v0.24.test.js` → PASS (45/45) - **Still unproven live:** the exact 60B.21 product-launch regression in the full end-to-end path. +### 60B.26 proposition question formulation fix + +- 60B.25 diagnosed two deterministic causes of awkward proposition questions: whole-description extraction (including rationale) and treating `whether...` propositions as finished direct questions. +- `extractMeaning()` now performs bounded proposition extraction for nominal/status-like unknowns whose descriptions begin with `whether...`, stopping at clear rationale boundaries such as `;`, `, so that`, `, because`, and `matters because`. +- `whether...` is no longer treated as a direct interrogative for question framing; it now uses the existing deterministic evidence phrasing (`What evidence would clarify whether X?`). +- Direct interrogatives and wh-questions remain preserved unchanged. +- Focused verification passed: + - `npx vitest run tests/graph/question-formulator.test.js` → PASS (29/29) +- **Still unproven live:** the exact 60B.24 regression through the full end-to-end runtime path. + ### When This Knowledge-Management Phase Is Complete Provisional criteria for review (all confirmed met by Experiment 38 cold-start test): diff --git a/docs/experiment-60b26.md b/docs/experiment-60b26.md new file mode 100644 index 0000000..591854d --- /dev/null +++ b/docs/experiment-60b26.md @@ -0,0 +1,123 @@ +# Experiment 60B.26 — Proposition Question Formulation Fix + +**Branch:** `feature/proposition-question-shape-v0.30` +**Date:** 2026-08-13 +**Status:** COMPLETE + +## Objective + +Implement the smallest deterministic fix so `whether...` propositions are turned into concise evidence questions without carrying explanatory rationale, while preserving direct interrogatives and wh-questions. + +## 60B.25 Diagnosis Applied + +60B.25 isolated two deterministic causes: + +1. `extractMeaning(...)` returned the full description, including explanatory rationale. +2. `isInterrogativeMeaning(...)` treated `whether...` propositions as if they were already finished direct questions. + +The intended correction was: + +> clean unresolved proposition + existing evidence framing + +not grammatical rewriting into `Will/Does/Is...`. + +## Exact Proposition-Extraction Rule + +The bounded extraction change stays inside `lib/graph/question-formulator.js`. + +For the existing narrow path where: + +- the label is nominal / status-like (`status|likelihood|probability|chance|risk|uncertainty`) +- and the description begins with `whether...` + +the formulator now extracts only the proposition portion. + +Implemented rule: + +- match `whether ...` +- stop at the first clear rationale boundary: + - `;` + - `, so that ...` + - `, because ...` + - `matters because ...` + +This is bounded to explicit `whether...` proposition extraction only. It is **not** a global semicolon truncation rule. + +## Exact Whether / Evidence-Framing Rule + +The formulator now distinguishes: + +- **direct interrogatives** + - `Will our largest client leave if we relocate?` + - `What would change the preferred option?` +- **indirect unresolved propositions** + - `whether the supplier will renew the contract` + +`whether...` is no longer treated as a direct interrogative. + +Instead, it is routed through the existing deterministic evidence phrasing: + +```text +What evidence would clarify whether X? +``` + +No subject/auxiliary inversion was added. + +## Preserved Direct Interrogatives + +Direct question labels remain preserved as question-ready: + +- yes/no direct interrogatives still pass through unchanged +- wh-questions still pass through unchanged + +This also preserves 60B.20-style behaviour. + +## Focused Test Result + +Command run: + +```bash +npx vitest run tests/graph/question-formulator.test.js +``` + +Result: + +```text +PASS (29/29) +``` + +Covered regressions: + +1. Exact 60B.24 rationale stripping regression +2. Clean `whether...` proposition without rationale +3. Direct interrogative preserved +4. Wh-question preserved +5. Source node description unchanged +6. Non-`whether` semicolon content not globally truncated + +## What Remains Unproven Until Live 60B.24 Rerun + +This experiment proves the deterministic question-formulation layer behaves correctly for the fixed regression shape and focused test coverage. + +Still unproven live: + +- the exact end-to-end 60B.24 continuation through the full runtime path +- whether any upstream live-model variation changes the selected unknown or surrounding graph state before formulation + +## Production Boundary Confirmed + +Changed: + +- `lib/graph/question-formulator.js` +- `tests/graph/question-formulator.test.js` + +Not changed: + +- prompt builder +- schema +- apply-proposal +- question-target selection +- materiality +- reasoning-context compatibility +- provider integration +- harness