docs: record closure reconciliation consolidation
This commit is contained in:
@@ -250,6 +250,14 @@ Experiment 54N tested whether an interpretation disagreement can be judged for m
|
||||
- Focused validation passed via `npx vitest run tests/reproduce-multi-turn-investigation.harness.test.js` (`67/67`).
|
||||
- The exact 60B.44 live closure case can now be rerun once with direct evidence for active-target clearing and final-question clearing.
|
||||
|
||||
### 60B.55 closure-normalization consolidation
|
||||
|
||||
- Consolidated the proven closure-normalization fix: reverse resolution reconciliation, same-turn stale `selectedQuestion` clearing before strict validation, prompt clarification that `selectedQuestion` must remain unresolved after applying the proposal, and repaired deterministic 60B.47 regression structure.
|
||||
- Focused verification passed via `npx vitest run tests/graph/apply-proposal.test.js tests/graph/prompt-builder.test.js -t "60B.49|60B.52|60B.54|60B.43|60B.11|replaces downstream pricing|selectedQuestion|resolution"` (`38 passed | 151 skipped`).
|
||||
- Verified exact negative closure state deterministically: customer resolved, decision resolved, both resolved IDs present, `activeUnknownNodeId = null`, `selectedQuestion = null`.
|
||||
- Existing forward reconciliation, fallback-to-real-unresolved target, 60B.43, 60B.11, pricing prerequisite-first, and prompt-builder selectedQuestion rule all remained green.
|
||||
- Repository is now ready for one bounded live rerun of the exact 60B.47 negative-outcome closure.
|
||||
|
||||
### When This Knowledge-Management Phase Is Complete
|
||||
|
||||
Provisional criteria for review (all confirmed met by Experiment 38 cold-start test):
|
||||
|
||||
@@ -0,0 +1,91 @@
|
||||
# Experiment 60B.55 — Closure-normalization consolidation
|
||||
|
||||
**Date:** 2026-08-14
|
||||
**Branch:** `feature/closure-selection-reconciliation-v0.41`
|
||||
|
||||
## Purpose
|
||||
|
||||
Consolidate and commit the already-proven closure-normalization fix after focused regression verification.
|
||||
|
||||
## Implementation state consolidated
|
||||
|
||||
The committed fix consists of four bounded changes only:
|
||||
|
||||
1. reverse resolution reconciliation
|
||||
- `updatedNodes.newStatus = "resolved"`
|
||||
- `-> resolvedUnknownNodeIds` automatically includes that existing unknown node
|
||||
|
||||
2. stale same-turn selectedQuestion clearing
|
||||
- if `selectedQuestion.nodeId` is resolved by the same proposal
|
||||
- `-> selectedQuestion = null` before strict validation
|
||||
|
||||
3. prompt clarification
|
||||
- `selectedQuestion` must remain unresolved after applying the proposal
|
||||
- if all consequential unknowns resolve, `selectedQuestion` must be null
|
||||
|
||||
4. repaired deterministic 60B.47 negative-closure regression structure
|
||||
|
||||
## Focused verification result
|
||||
|
||||
Command run:
|
||||
|
||||
```bash
|
||||
npx vitest run \
|
||||
tests/graph/apply-proposal.test.js \
|
||||
tests/graph/prompt-builder.test.js \
|
||||
-t "60B.49|60B.52|60B.54|60B.43|60B.11|replaces downstream pricing|selectedQuestion|resolution"
|
||||
```
|
||||
|
||||
Result:
|
||||
|
||||
- PASS — `38 passed | 151 skipped`
|
||||
|
||||
## Verified behaviours
|
||||
|
||||
### Exact negative closure regression
|
||||
|
||||
The exact 60B.47-shaped deterministic regression now passes through `applyValidatedProposal(...)` with:
|
||||
|
||||
- customer factor resolved
|
||||
- decision resolved
|
||||
- `resolvedUnknownNodeIds` / resulting `resolvedNodeIds` containing both IDs
|
||||
- `activeUnknownNodeId = null`
|
||||
- `selectedQuestion = null`
|
||||
|
||||
### Reconciliation invariants
|
||||
|
||||
Verified preserved:
|
||||
|
||||
- forward reconciliation
|
||||
- already-consistent proposal unchanged
|
||||
- no duplicate resolved IDs
|
||||
- non-unknown nodes are not auto-added
|
||||
- non-resolved statuses are not auto-added
|
||||
|
||||
### Fallback preservation
|
||||
|
||||
Verified preserved:
|
||||
|
||||
- stale same-turn resolved selectedQuestion clears cleanly
|
||||
- another genuine unresolved candidate still becomes the fallback target
|
||||
|
||||
### Existing behavioural regressions preserved
|
||||
|
||||
Verified preserved:
|
||||
|
||||
- 60B.43 terminal post-mutation closure regression
|
||||
- 60B.11 preferred-target behaviour
|
||||
- pricing prerequisite-first regression
|
||||
- prompt-builder selectedQuestion rule regression
|
||||
|
||||
## What is now guaranteed
|
||||
|
||||
The deterministic engine now normalizes same-turn closure structure coherently before strict validation:
|
||||
|
||||
- resolved existing unknowns are represented in both status and `resolvedUnknownNodeIds`
|
||||
- a same-turn resolved `selectedQuestion` cannot survive as stale structure
|
||||
- strict validator semantics remain intact
|
||||
|
||||
## What remains unproven
|
||||
|
||||
The exact live negative-outcome closure still needs one bounded rerun after this deterministic fix to confirm the same end state through the live model-driven path.
|
||||
Reference in New Issue
Block a user