docs(confidence-engine): close v0.60 multi-investigation work

This commit is contained in:
2026-09-04 12:19:20 +01:00
parent cc3a5dabd4
commit e6f2249413
2 changed files with 96 additions and 13 deletions
+12 -11
View File
@@ -24,11 +24,11 @@ The product direction is a **facilitated investigation** presented across three
```
/ → Portfolio (investigator notebook index)
/investigations/case-1 → Investigation (working case / pages)
/investigations/case-1/report → Investigation Report (readable derived summary)
/investigations/{id} → Investigation (working case / pages)
/investigations/{id}/report → Investigation Report (readable derived summary)
```
**Portfolio:** Shows the single canonical persisted investigation card. Actions: *View report*, *Continue investigation*, *Restart investigation*. Below the card: *+ Create new investigation*. Restart is confirmation-gated and destructive.
**Portfolio:** Shows the persisted investigation collection. Actions on each card: *View report*, *Continue investigation*, *Restart investigation*. Below the cards: *+ Create new investigation* (allocates durable ID via `crypto.randomUUID()` + navigates to `/investigations/{id}`). Restart is confirmation-gated and preserves container while clearing reasoning/Report state.
**Investigation:** Contains `ScenarioForm` + `ReasoningWorkspace`. Handles graph reasoning, focused investigation turns, Done/Re-open semantics, Current Understanding synthesis. Report presentation is NOT part of this route — owned by the dedicated Report page.
@@ -61,16 +61,17 @@ Three distinct routes, each with clear ownership:
| Route | Owner | Presentation |
|---|---|---|
| `Portfolio` (`/`) | Portfolio page + storage | Card with actions; no Report presentation |
| `Investigation` (`/investigations/case-1`) | `ScenarioForm` + `ReasoningWorkspace` | Focused investigation turn cycle |
| `Report` (`/investigations/case-1/report`) | Report page (standalone) | Persisted derived artefact; on-demand generation |
| `Portfolio` (`/`) | Portfolio page + storage | List of Investigation summaries; no Report presentation |
| `Investigation` (`/investigations/{id}`) | `ScenarioForm` + `ReasoningWorkspace` | Focused investigation turn cycle |
| `Report` (`/investigations/{id}/report`) | Report page (standalone) | Persisted derived artefact; on-demand generation |
**Key invariants:** ReasoningWorkspace no longer owns Report presentation. The Report is a distinct route/page, not an internal state of the Investigation.
### Persistence and report lifecycle
- Single canonical persisted investigation via localStorage (`confidence-engine-investigation` key).
- Multi-Investigation collection via localStorage (key prefix `confidence-engine-investigation:<durable-id>`). Legacy singleton path retained for backward compatibility (unused by current product).
- `saveInvestigation()` / `loadInvestigation()` are the canonical storage seams.
- `listInvestigations()` returns lightweight summaries for Portfolio rendering.
- Report generation: first visit → one synthesis call + persist; subsequent visits → zero calls, renders persisted snapshot.
- Restart is destructive and confirmation-gated (dialog → explicit second confirmation → `clearInvestigation()`).
@@ -108,11 +109,11 @@ The following were built during Experiments 1825B. They are isolated diagnost
### Not yet implemented (product capabilities)
- Multi-investigation portfolio (search/tag/archive/group behaviour)
- Durable investigation identities beyond `case-1`
- Report freshness / versioning after investigation changes
Multi-investigation storage and portfolio are structurally complete in v0.60. Deferred feature work beyond MVP scope:
- Search, tag, archive, group behaviour within Portfolio
- Export/copy of Reports to Jira or external document
- Portfolio expansion beyond one canonical investigation
Multi-investigation identity is durable (`uuidv4`). Legacy singleton compatibility remains internally (unused by current product). Report freshness / versioning after investigation changes uses `generatedFromRevision` vs `investigationRevision`.
### Methodological unresolved