From 827dc82eeb8097a4d8c45976df234e7a0c2dce61 Mon Sep 17 00:00:00 2001 From: robbond Date: Fri, 14 Aug 2026 06:31:33 +0100 Subject: [PATCH] docs: record uncertainty-over proposition coverage --- docs/current-handoff.md | 9 +++ docs/experiment-60b30.md | 136 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 145 insertions(+) create mode 100644 docs/experiment-60b30.md diff --git a/docs/current-handoff.md b/docs/current-handoff.md index de9f598..8947303 100644 --- a/docs/current-handoff.md +++ b/docs/current-handoff.md @@ -191,6 +191,15 @@ Experiment 54N tested whether an interpretation disagreement can be judged for m - Final question regressed to generic wording (`What outcome would demonstrate enough value to justify launching?`) despite `selectedQuestion.nodeId` remaining the customer-signing node; full proposition preservation therefore remains unproven live. - Rationale contamination remained absent. +### 60B.30 `uncertainty over whether` proposition coverage + +- 60B.29 exposed one more bounded synonym gap: `Uncertainty over whether...` was not entering the established `whether ...` proposition path. +- `extractMeaning()` now extends the same description-start normalization to also strip `uncertainty over` before the existing `^whether` proposition extraction check. +- As a result, `Whether...`, `Unknown whether...`, `Uncertain whether...`, `Uncertainty about whether...`, `Uncertainty regarding whether...`, and `Uncertainty over whether...` now all expose `whether X` before rationale stripping and evidence framing run. +- Focused deterministic verification passed: + - `npx vitest run tests/graph/question-formulator.test.js` → PASS (39/39) +- **Still unproven live:** the exact 60B.29 `Uncertainty over whether...` customer-signing case through the full end-to-end runtime path on this branch. + ### 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-60b30.md b/docs/experiment-60b30.md new file mode 100644 index 0000000..84cc94a --- /dev/null +++ b/docs/experiment-60b30.md @@ -0,0 +1,136 @@ +# Experiment 60B.30 — `Uncertainty over whether...` Proposition Coverage + +**Branch:** `feature/proposition-prefix-over-v0.32` +**Starting HEAD:** `35a5efa80480eb00e69b1004f33e20330fe2434e` +**Date:** 2026-08-14 +**Status:** COMPLETE + +## Objective + +Close the narrow live coverage gap exposed by 60B.29 by extending the existing bounded proposition-prefix normalization so: + +```text +Uncertainty over whether X... +``` + +enters the same `whether ...` proposition-extraction path already used for: + +```text +Whether X... +Unknown whether X... +Uncertain whether X... +Uncertainty about whether X... +Uncertainty regarding whether X... +``` + +## 60B.29 Live Gap + +60B.29 preserved the full reasoning chain live but surfaced a new bounded synonym form in the node description: + +```text +Uncertainty over whether the prospective enterprise customer will sign if we launch this year, because their contract accounts for approximately £700,000 of the expected first-year revenue and could materially flip the net-value comparison. +``` + +Because `uncertainty over` was not part of the existing normalization boundary, deterministic formulation did not expose: + +```text +whether the prospective enterprise customer will sign if we launch this year +``` + +to the established evidence-framed proposition path. + +## Exact Normalization Added + +Production change was limited to `lib/graph/question-formulator.js`. + +Inside `extractMeaning()`, the description-start normalization used before the existing `^whether` proposition check now also strips: + +```text +uncertainty over +``` + +case-insensitively. + +This means the following bounded forms are now equivalent for proposition extraction: + +```text +Whether X... +Unknown whether X... +Uncertain whether X... +Uncertainty about whether X... +Uncertainty regarding whether X... +Uncertainty over whether X... +``` + +Each now exposes: + +```text +whether X +``` + +before the existing rationale stripping and evidence framing run. + +## Exact 60B.29 Deterministic Regression + +For: + +```text +label: +Prospective enterprise customer signing status + +description: +Uncertainty over whether the prospective enterprise customer will sign if we launch this year, because their contract accounts for approximately £700,000 of the expected first-year revenue and could materially flip the net-value comparison. +``` + +the deterministic final question is now: + +```text +What evidence would clarify whether the prospective enterprise customer will sign if we launch this year? +``` + +The final question excludes: + +- `£700,000` +- `expected first-year revenue` +- `materially flip` +- `because their contract` + +and the source description remains unchanged. + +## Focused Verification + +Run exactly as bounded: + +```bash +npx vitest run tests/graph/question-formulator.test.js +``` + +Result: + +```text +PASS — 39/39 tests +``` + +Focused coverage confirms: + +- exact 60B.29 regression passes +- `Uncertainty over whether...` without rationale uses evidence framing +- previously-supported prefixes remain unchanged +- direct interrogatives remain unchanged +- nominal non-`whether` behaviour remains unchanged +- source description remains intact + +## Preserved Existing Paths + +This change did **not**: + +- redesign question formulation +- broaden parsing beyond one explicit uncertainty synonym +- add domain-specific wording +- change decision-family routing +- change question-target selection +- change graph structure, materiality, schema, provider, or harness behaviour + +## What Remains Unproven + +Deterministic coverage for `Uncertainty over whether...` is now proven, but the exact full live 60B.29 rerun on this branch remains to be executed.