docs(confidence-engine): close v0.60 multi-investigation work
This commit is contained in:
+84
-2
@@ -711,12 +711,94 @@ v0.60h: Migrate Report route to use route `[id]` for all identity operations (in
|
|||||||
- No localStorage used, no provider imported, no module-cache manipulation
|
- No localStorage used, no provider imported, no module-cache manipulation
|
||||||
- All mocks at application-facing boundary only
|
- All mocks at application-facing boundary only
|
||||||
|
|
||||||
### Live verification pending
|
### Live verification (accepted)
|
||||||
|
|
||||||
---
|
- same Portfolio card remained
|
||||||
|
- same durable ID remained
|
||||||
|
- same scenario remained
|
||||||
|
- second Investigation unaffected
|
||||||
|
- old reasoning state absent
|
||||||
|
- clean Analyse state visible
|
||||||
|
- no model call caused by Restart
|
||||||
|
|
||||||
|
## v0.60 is structurally complete
|
||||||
|
|
||||||
|
No remaining current production identity migration is known. v0.60 is structurally complete.
|
||||||
|
|
||||||
|
The established multi-Investigation architecture:
|
||||||
|
|
||||||
|
```
|
||||||
|
Portfolio
|
||||||
|
→ durable-ID Investigation collection
|
||||||
|
|
||||||
|
Create New
|
||||||
|
→ allocate crypto.randomUUID()
|
||||||
|
→ navigate to /investigations/{id}
|
||||||
|
→ no empty Investigation persisted
|
||||||
|
|
||||||
|
Investigation route
|
||||||
|
→ route [id] owns Investigation identity
|
||||||
|
|
||||||
|
ScenarioForm
|
||||||
|
→ hydrates by durable ID
|
||||||
|
→ saves identified snapshots
|
||||||
|
|
||||||
|
Report route
|
||||||
|
→ loads/saves by route [id]
|
||||||
|
|
||||||
|
Restart
|
||||||
|
→ preserves Investigation container/id/scenario
|
||||||
|
→ clears reasoning/Report state
|
||||||
|
→ leaves other Investigations untouched
|
||||||
|
```
|
||||||
|
|
||||||
|
v0.60 result: **STRUCTURALLY COMPLETE**.
|
||||||
|
|
||||||
|
### Acceptance evidence
|
||||||
|
|
||||||
|
- case-1 production dependencies: 0
|
||||||
|
- current production unscoped load dependencies: 0
|
||||||
|
- current production unidentified save dependencies: 0
|
||||||
|
- current user-facing clear/delete Restart callers: 0
|
||||||
|
- Portfolio navigation: durable-ID owned
|
||||||
|
- Report navigation/persistence: durable-ID owned
|
||||||
|
- legacy singleton compatibility: still present internally, unused by current product, non-blocking deferred cleanup
|
||||||
|
|
||||||
|
### Investigation culmination semantics
|
||||||
|
|
||||||
|
Report is the point-in-time culmination of an Investigation.
|
||||||
|
|
||||||
|
The flow:
|
||||||
|
|
||||||
|
```
|
||||||
|
Open Questions investigated
|
||||||
|
→ user chooses Done for now
|
||||||
|
→ question parked
|
||||||
|
→ graph reconsidered
|
||||||
|
→ Current Understanding regenerated
|
||||||
|
→ user chooses what to investigate next
|
||||||
|
→ eventually zero Open Questions
|
||||||
|
→ milestone invitation
|
||||||
|
→ "Review current understanding"
|
||||||
|
→ /investigations/{id}/report
|
||||||
|
```
|
||||||
|
|
||||||
|
There is NO active intermediate overview/review surface between "Review current understanding" and Report. The control performs direct route navigation.
|
||||||
|
|
||||||
|
Report represents: Situation, What we understand, What remains plausible when applicable. It does NOT represent a decision recommendation, confidence score, readiness judgement, or proof that the user should act.
|
||||||
|
|
||||||
|
The user retains ownership of whether the understanding is sufficient, whether to act, whether to return to the Investigation, whether to re-open and investigate further.
|
||||||
|
|
||||||
|
Report provenance remains: `generatedFromRevision` against `investigationRevision`, so a Report can later become "Update available" without ceasing to be the valid point-in-time Report generated from its earlier Investigation revision.
|
||||||
|
|
||||||
|
Zero Open Questions ("You've now worked through all of the questions we surfaced") means: the currently surfaced Open Questions have been worked through. It does NOT mean: the user's decision is complete, sufficient confidence, or ready to act. The Engine facilitates the culmination. The user owns what that culmination means for their decision/action.
|
||||||
|
|
||||||
|
Report is the established Investigation culmination. No further product boundary is selected.
|
||||||
|
|
||||||
## Next restart point
|
## Next restart point
|
||||||
|
|
||||||
|
> v0.60 is complete. Report is established as the culmination of an Investigation. No next product boundary is currently selected. Begin the next session by choosing the next unresolved user/product reasoning boundary from current product behaviour and founding principles, rather than continuing storage migration or assuming an old backlog item is next.
|
||||||
|
|
||||||
Consult `docs/design-evolution/README.md` for progressive loading of product reasoning and provenance chronology; load the relevant chapter only when a specific historical question requires it.
|
Consult `docs/design-evolution/README.md` for progressive loading of product reasoning and provenance chronology; load the relevant chapter only when a specific historical question requires it.
|
||||||
|
|
||||||
The current handoff captures all operational facts needed to resume today. For historical decisions, experiment evidence, or methodology evolution — consult the design evolution archive index or task-context packs as appropriate.
|
The current handoff captures all operational facts needed to resume today. For historical decisions, experiment evidence, or methodology evolution — consult the design evolution archive index or task-context packs as appropriate.
|
||||||
|
|||||||
@@ -24,11 +24,11 @@ The product direction is a **facilitated investigation** presented across three
|
|||||||
|
|
||||||
```
|
```
|
||||||
/ → Portfolio (investigator notebook index)
|
/ → Portfolio (investigator notebook index)
|
||||||
/investigations/case-1 → Investigation (working case / pages)
|
/investigations/{id} → Investigation (working case / pages)
|
||||||
/investigations/case-1/report → Investigation Report (readable derived summary)
|
/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.
|
**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 |
|
| Route | Owner | Presentation |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
| `Portfolio` (`/`) | Portfolio page + storage | Card with actions; no Report presentation |
|
| `Portfolio` (`/`) | Portfolio page + storage | List of Investigation summaries; no Report presentation |
|
||||||
| `Investigation` (`/investigations/case-1`) | `ScenarioForm` + `ReasoningWorkspace` | Focused investigation turn cycle |
|
| `Investigation` (`/investigations/{id}`) | `ScenarioForm` + `ReasoningWorkspace` | Focused investigation turn cycle |
|
||||||
| `Report` (`/investigations/case-1/report`) | Report page (standalone) | Persisted derived artefact; on-demand generation |
|
| `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.
|
**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
|
### 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.
|
- `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.
|
- 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()`).
|
- Restart is destructive and confirmation-gated (dialog → explicit second confirmation → `clearInvestigation()`).
|
||||||
|
|
||||||
@@ -108,11 +109,11 @@ The following were built during Experiments 18–25B. They are isolated diagnost
|
|||||||
|
|
||||||
### Not yet implemented (product capabilities)
|
### Not yet implemented (product capabilities)
|
||||||
|
|
||||||
- Multi-investigation portfolio (search/tag/archive/group behaviour)
|
Multi-investigation storage and portfolio are structurally complete in v0.60. Deferred feature work beyond MVP scope:
|
||||||
- Durable investigation identities beyond `case-1`
|
- Search, tag, archive, group behaviour within Portfolio
|
||||||
- Report freshness / versioning after investigation changes
|
|
||||||
- Export/copy of Reports to Jira or external document
|
- 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
|
### Methodological unresolved
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user