docs(confidence-engine): checkpoint report learning semantics

This commit is contained in:
2026-10-02 17:20:29 +01:00
parent b8c2909b5f
commit 97c7482177
+54
View File
@@ -390,6 +390,60 @@ Fixed live investigation (`eae84f2d-acd8-4a92-bd43-347628b536a7`):
**Next step:** product-level review of the Investigation Report experience — do not automatically change implementation.
### Iterated Five — Report Learning Semantics (2026-10-02)
**Resolved question:** Should "What the investigation surfaced" represent learning produced by investigation history, or only learning attached to questions that are currently closed-for-now?
**Answer:** Only learning attached to questions that are currently closed-for-now.
```
What the investigation surfaced
=
eligible provenance-linked learning associated with
questions that are currently closed-for-now
```
**Qualification:** `closed-for-now != final`, `!= settled`, `!= conclusively answered`.
**Re-open semantics:**
```
Done for now → question may contribute to What the investigation surfaced
Re-open:
→ question removed from resolvedNodeIds
→ surfaced-learning entry disappears
→ Contributions remain
→ Findings remain
→ provenance remains
→ question becomes independently representable in What remains unresolved
```
Re-open does NOT erase investigation history. It changes current closure state.
**Provenance/currentness boundary:**
Canonical provenance survives Re-open (`Question → Contribution.targetNodeId → Contribution.id → Finding.contributionId`). However:
```
Finding eligibility ≠ epistemic currentness
```
Canonical Findings contain no explicit marker (`current`/`historical`/`superseded`/`replaced`/`authoritative`/`episode/version`). Re-investigation can append newer Contributions/Findings while older eligible Findings remain. Retained Findings can prove what surfaced historically, but must not be treated as deterministic evidence that an older proposition remains the latest/current truth.
**Persistence diagnosis:** No resolvedNodeIds persistence defect was found. The fixed investigation's `resolvedNodeIds=[]` was explained by the deliberate historical Re-open of node nrx08i0. Done-for-now produced the closure marker; ScenarioForm preserved it; canonical save/load preserved it; Re-open intentionally removed it.
**Deterministic protection:**
```
tests/graph/investigation-learning-projection.test.js 7/7 PASS
tests/ui/v060h-report-identity.test.jsx 18/18 PASS
```
Tests establish: (1) eligible closed-for-now question included; (2) reopened question omitted even while Contributions/Findings remain; (3) canonical provenance retained; (4) unresolved representation remains independent.
**Production state:** No production or test change required. Current resolvedNodeIds admission gate is semantically correct. This checkpoint records a currently closed-for-now boundary decision, not a completed/finalized/settled outcome.
## Current product architecture
Three distinct routes: