Files
confidence-engine/docs/experiment-60b46.md
T

137 lines
4.6 KiB
Markdown

# Experiment 60B.46 — Direct closure metadata evidence in live harness
**Date:** 2026-08-14
**Branch:** `feature/closure-metadata-capture-v0.39`
## Purpose
Confirm that when the final material customer-signing uncertainty is resolved, the production runtime directly returns:
- `finalActiveUnknownNodeId = null`
- `finalSelectedQuestion = null`
using the explicit harness fields added in 60B.45/46 rather than inferring from field omission.
## Hypothesis
A successful result should show:
```text
n_enterprise_customer_signing: resolved
n_product_launch_decision: known or resolved
addedNodes: []
addedEdges: []
finalActiveUnknownNodeId: null
finalSelectedQuestion: null
both existing options preserved (no duplication)
```
No directional recommendation is required.
## Method
One bounded live update using the 60B.44 pre-anchored fixture:
- **Fixture:** `tests/fixtures/pre-anchored-product-launch-customer-signing.json`
- **Mode:** `updateOnly` (single Update, no Start)
- **Answer:** "Yes. The enterprise customer has now confirmed in writing that they will sign if we launch this year, so the £700,000 of expected annual revenue from them is confirmed. There are no other material uncertainties between launching this year and waiting twelve months."
- **Model:** `qwen-claude:latest` via Ollama (`http://192.168.1.111:11434`)
## Call accounting
```
startCalls: 0
updateCalls: 1
totalCalls: 1
retries: 0
```
## Results
### HTTP
- **Stage:** accepted (no rejection path)
### Structural mutation
| Field | Value |
|-------|-------|
| `updatedNodes` | 2 nodes: `n_enterprise_customer_signing` (unknown→resolved), `n_product_launch_decision` (unknown→resolved) |
| `resolvedUnknownNodeIds` | `["n_enterprise_customer_signing", "n_product_launch_decision"]` |
| `addedNodes` | `[]` |
| `addedEdges` | `[]` |
### Node final states
| Node ID | Kind | Status |
|---------|------|--------|
| `n_product_launch_state` | state | provisional |
| `opt_launch_this_year` | option | known |
| `opt_wait_twelve_months` | option | known |
| `n_product_launch_decision` | unknown | **resolved** |
| `n_enterprise_customer_signing` | unknown | **resolved** |
### Direct closure metadata (60B.46 harness fields)
```
finalActiveUnknownNodeId: null
finalSelectedQuestion: null
```
### Identity preservation
- **Decision node (`n_product_launch_decision`):** PRESERVED — status changed to resolved, id unchanged
- **Launch option (`opt_launch_this_year`):** PRESERVED — status known, id unchanged
- **Wait option (`opt_wait_twelve_months`):** PRESERVED — status known, id unchanged
## Assessment
| Criterion | Result |
|-----------|--------|
| Customer factor | RESOLVED IN PLACE |
| Decision state | RESOLVED |
| Decision identity | PRESERVED |
| Launch option | PRESERVED |
| Wait option | PRESERVED |
| Active lifecycle | **NULL — CLEARED** |
| Final question | **NULL — DECISION COMPLETE** |
| New uncertainty discipline | NONE |
## 60B.44 comparison
| Field | 60B.44 (inferred) | 60B.46 (direct) |
|-------|--------------------|------------------|
| activeUnknownNodeId | inferred from omission | **null — directly exposed** |
| selectedQuestion | inferred from omission | **null — directly exposed** |
The important difference is measurement:
- **60B.44:** active/final question inferred from omission
- **60B.46:** active/final question directly exposed as raw values
## Classification: A — LIVE CLEAN CLOSURE DIRECTLY CONFIRMED
All criteria directly observed:
- ✅ customer factor resolves in place
- ✅ decision closes in place
- ✅ both options preserved
- ✅ no added unknowns
-`finalActiveUnknownNodeId = null` (direct)
-`finalSelectedQuestion = null` (direct)
## What this proves
The production confidence engine correctly performs a **clean graph-level closure** when the final material uncertainty is resolved:
1. Both the customer-signing unknown and the central decision unknown are resolved in place (no duplication, no loss).
2. The harness-observed `activeUnknownNodeId` is explicitly cleared to `null`, confirming the engine's internal active-target pointer is zeroed.
3. The harness-observed `selectedQuestion` is explicitly `null`, confirming no follow-up question remains pending.
4. No new uncertainties are introduced (zero addedNodes/edges).
## What remains weak or unproven
- Closure under contradictory/unexpected inputs (this test used a clean, expected-resolution path).
- Multiple simultaneous uncertainty resolution in a single update.
- Full-suite regression coverage for the closure metadata harness layer itself (60B.45 added focused unit tests: 67/67 pass).
- Live closure verification on production hosts beyond localhost.