docs(confidence-engine): close v0.49 current understanding boundary

This commit is contained in:
2026-08-30 17:23:44 +01:00
parent 8c98ce94de
commit 93bed243a7
+257
View File
@@ -2541,3 +2541,260 @@ The v0.48 handoff explicitly identifies this as a remaining priority: the narrat
#### Exact first trace question
Which component/state owner first determines the contents of Current Understanding, and at what boundary does it stop being derived from globally eligible Findings + graph state and instead become directly bound to the latest focused result's findings?
---
## v0.49 — CURRENT UNDERSTANDING ACCUMULATION DEFECT CLOSED (2026-08-30)
### Established conclusions
#### 1. Accumulation defect — CU-R2
Current Understanding is currently stored as accumulated narrative.
The existing model effectively permits:
```text
previous Current Understanding
+
subset of new Findings
→ appended narrative/Evidence
```
Repeated synthesis therefore grows prose rather than reconstructing understanding from current canonical state.
Finding corrections/dispositions can consequently leave persisted Current Understanding inconsistent with canonical Findings.
**Classification: CU-R2 — CLOSED.**
Do not recommend deduplication or string-removal fixes.
---
#### 2. Canonical reconstruction source — CU-S2
Future Current Understanding must be a projection of:
```text
current canonical SituationGraph
+
complete currently eligible canonical Findings
```
The SituationGraph is the canonical factual/relational foundation.
Canonical Findings are the evidence layer.
Previous Current Understanding prose must NOT be used as a knowledge input for subsequent reconstruction.
`situationGraph.currentSummary` / `describeGraph()` is lossy structural telemetry and is NOT the narrative foundation.
**Classification: CU-S2 — CLOSED.**
---
#### 3. Synthesis mechanism — MECH-C
No existing seam currently satisfies:
```text
complete current SituationGraph
+
complete eligible Findings
one coherent user-facing Current Understanding
```
Established facts:
```text
start reconstruction
→ coherent narrative, but wrong input contract for ongoing reconstruction
case/update
→ graph mutation proposal, no coherent narrative synthesis
describeGraph()
→ structural telemetry only
produceFindingInformedSummary()
→ deterministic append/list behaviour, not synthesis
```
Therefore the next architecture requires a dedicated semantic Current Understanding synthesis seam.
Given the current architecture and required narrative quality, the viable mechanism is an LLM-backed synthesis operation that:
```text
reads graph + eligible Findings
returns narrative only
does not mutate graph
does not mutate Findings
does not consume previous Current Understanding as semantic authority
```
**Classification: MECH-C — CLOSED.**
---
#### 4. Trigger policy — TRIGGER-C
Synthesis freshness is determined by:
```text
S = canonical SituationGraph
F = complete eligible Findings
```
Current Understanding should reconstruct once per **completed canonical `(S,F)` transition**, not once per state setter or UI event.
**Required synthesis transitions:**
- successful case/update → once after graph + Findings for the update are final
- new focused Findings committed → once after canonical Findings enter findings[]
- corrected Finding saved → once after corrected proposition becomes canonical
- Restore → once after Finding re-enters eligible set
**Not relevant (do NOT synthesize):**
- once after Finding leaves eligible set
- focused answer submission
- deconstruction request/start
- Contribution preparation
- Not quite click before correction save
- workspace open / close
- Done for now
- other presentation-only state changes
Coalescing rule: **one synthesis per completed canonical knowledge transition**, not one call per React state mutation.
**Classification: TRIGGER-C — CLOSED.**
---
#### 5. Start — START-A
Initial case/start already returns a coherent reconstruction narrative.
Therefore: **START-A — CLOSED.**
Reuse that initial reconstruction summary.
Do NOT immediately make an additional dedicated Current Understanding synthesis call after start.
---
#### 6. Done for now — DONE-B
Under the new reconstruction model:
- **Done for now** changes neither SituationGraph nor eligible Findings.
- Therefore it is NOT a Current Understanding synthesis trigger.
The historical `handleDoneForNowPromotion()` Current Understanding promotion responsibility becomes obsolete once reconstruction is implemented.
Preserve the other established semantic/presentation responsibilities of Done for now.
Do NOT remove or modify the existing implementation in this task.
**Classification: DONE-B — CLOSED.**
---
#### 7. Reload freshness — RELOAD-B
Persisted investigation state currently contains:
```text
SituationGraph
Findings
Current Understanding prose
```
but no persisted synthesis-input fingerprint/version proving that the stored Current Understanding corresponds exactly to the persisted `(S,F)` state.
**Classification: RELOAD-B — CLOSED (unresolved boundary).**
Reload freshness remains a separate unresolved boundary.
Do NOT conclude that every reload requires an LLM synthesis call.
Do NOT design or implement a fingerprint in this task.
Record as unresolved work for v0.50.
---
### Closed v0.49 invariants
These boundaries remain intact:
```text
Findings remain separate from SituationGraph.
Findings do not directly mutate graph state.
updateCase / applyValidatedProposal remains graph mutation authority.
Finding eligibility semantics remain unchanged.
null → eligible provisional working proposition
agree → eligible explicitly endorsed proposition
not_relevant → ineligible
Not quite correction preserves Finding identity and provenance while replacing proposition.
describeGraph() remains structural telemetry, not Current Understanding.
Focused workspace progression/presentation boundary is closed.
Workspace controls boundary is closed.
Done for now closes the workspace after its semantic action.
Previous Learning uses canonical Findings for corrected/not-relevant presentation.
Storage v0.48 boundary remains closed unless concrete evidence reopens it.
```
### v0.49 closure statement
v0.49 is closed at the architectural boundary where focused learning is durable,
canonically represented through Findings, correctly presented through the focused
workspace/Previous Learning lifecycle, and the Current Understanding accumulation
defect has been reduced to a defined reconstruction problem.
Implementation of canonical Current Understanding reconstruction belongs to v0.50.
### v0.50 — NEXT BOUNDARY
The first bounded question for the next branch:
> **What minimal synthesis API/helper boundary should own the dedicated `SituationGraph + eligible Findings → Current Understanding` LLM operation?**
Do not answer that question in this task.
Subsequent v0.50 work will need to resolve:
1. synthesis API/helper ownership
2. deterministic input normalization / eligible-Finding selection
3. synthesis prompt/schema contract
4. completed-transition integration points
5. removal/replacement of append semantics
6. retirement of Done-for-now CU promotion
7. reload/cache freshness strategy
8. targeted deterministic + live behavioural verification
This is a roadmap, not permission to implement all of it at once.
v0.50 must continue using bounded increments.
---
### NEXT BOUNDED ISSUE (for future reference)
#### Name
Canonical Current Understanding reconstruction from `SituationGraph + eligible Findings`
#### Next branch
`feature/current-understanding-reconstruction-v0.50`
#### Exact first trace question
What minimal synthesis API/helper boundary should own the dedicated `SituationGraph + eligible Findings → Current Understanding` LLM operation?