docs(confidence-engine): consolidate current context and provenance
This commit is contained in:
@@ -10252,3 +10252,71 @@ Map how reasoning requirements R1–R8 are actually supported (or unsupported) b
|
||||
### Conclusion
|
||||
|
||||
Source-inspection-only exercise completed. The production path does not carry semantic meaning — it carries structural graph changes that represent the LLM's interpretation of the answer. Every R1–R8 requirement depends on mechanisms absent from the current code path. A complete cross-reference with specific line-location gap targets is in `docs/reasoning-production-path-map.md`. No live inference was performed. No production code, prompts, schemas, graph files, Behaviour Selection rules, or UI code were modified. Branch: `feature/user-workspace-ux-v0.7`. First file to inspect when resuming: docs/reasoning-production-path-map.md for the full gap analysis and specific line-location targets. Status pending Rob's review.
|
||||
|
||||
---
|
||||
|
||||
### v0.51–v0.58 Progress — Product Provenance and Architectural Decisions
|
||||
|
||||
#### v0.51 — Zero Open Questions milestone
|
||||
|
||||
Established the zero-Open-Questions milestone as a genuine product feature: when all unknowns are resolved, the invitation "You've now worked through all of the questions we surfaced" appears in place of Open Questions. The eligibility uses canonical graph state (resolved nodes), not local `doneForNowIds`. This is a milestone invitation, not a readiness/completion judgement.
|
||||
|
||||
#### v0.52 — Focused investigation presentation ownership
|
||||
|
||||
Established that focused-presentation content must be scoped per-question. Previously, fresh unanswered Question B displayed stale content from Question A across every surface (previously answered, what this tells us, still unclear, questions raised, assumptions, connections). Fixed by thread-local filtering in `FocusedQuestionBody`. Previously answered contributions remain globally preserved in history; only presentation derivation is narrowed.
|
||||
|
||||
#### v0.53 — Empty Done + Re-open semantics
|
||||
|
||||
Established that empty Done (parked without providing an answer) is valid product behaviour: it parks the question locally, does NOT invoke episode processing, and does NOT produce a `no_episodic_content` 400 error. It produces the same resolved state shape as populated Done. Re-open returns the question to Open Questions and removes from `doneForNowIds`. Older stale development localStorage states (pre-v0.53 shape) may be discarded during dev phase; no migration required.
|
||||
|
||||
#### v0.54 — Investigation-level synthesis seam
|
||||
|
||||
Established a distinct investigation-level synthesis apparatus (`synthesizeInvestigationOverview()`) separate from Current Understanding. Important semantic lesson: Current Understanding and Investigation Report overview are NOT the same product artefact. Plausible interpretations in the Report remain explicitly interpretive rather than evidence. The epistemic boundary (evidence never promoted to interpretation; interpretations never promoted to understanding) is schema-enforced via Zod-safeParse.
|
||||
|
||||
#### v0.55 — Portfolio / Investigation / Report route architecture
|
||||
|
||||
Established three distinct product concepts:
|
||||
```
|
||||
/ → Portfolio (notebook index)
|
||||
/investigations/case-1 → Investigation (working case)
|
||||
/investigations/case-1/report → Investigation Report (derived summary)
|
||||
```
|
||||
|
||||
ReasoningWorkspace no longer owns Report presentation. The Report is a distinct route/page, not an internal state of the Investigation. Portfolio currently supports one canonical persisted investigation only. Temporary development identity remains `case-1`. True multi-investigation persistence/identity remains future work.
|
||||
|
||||
**Product analogy:** Portfolio = investigator notebook index, Investigation = working case/pages, Report = readable derived summary page. Users can eventually flick directly to the page they need.
|
||||
|
||||
#### v0.56 — Portfolio action semantics
|
||||
|
||||
Clarified that actions on an existing investigation card are distinct from creation of a new investigation. Actions on the card: View report, Continue investigation, Restart investigation. Creation is portfolio-level only: + Create new investigation below the card. No duplicate creation control inside the card.
|
||||
|
||||
#### v0.57 — Destructive Restart confirmation
|
||||
|
||||
Established that Restart investigation is explicitly destructive: first confirmation via dialog ("Restart this investigation?" with warning about lost data), then a second explicit "Restart investigation" button call. `clearInvestigation()` remains the canonical persisted-storage clear seam. No direct storage-key manipulation was introduced.
|
||||
|
||||
#### v0.58 — First Report generation lifecycle
|
||||
|
||||
Established that:
|
||||
- A genuine no-report investigation generates exactly one persisted Investigation Report
|
||||
- Report generation ownership belongs to the Report page, NOT ReasoningWorkspace or Investigation page
|
||||
- First Report visit = exactly 1 `/api/cases/overview` synthesis call
|
||||
- Subsequent Report visits = zero synthesis calls (renders persisted snapshot)
|
||||
- The Report is a derived artefact, not canonical reasoning evidence
|
||||
|
||||
**Live verification used genuine product-created investigations.** Six Open Questions surfaced in a fresh scenario — this was legitimate product output. An earlier experimental `≤5` processing bound was an apparatus constraint, NOT a product requirement. Do not document "Open Questions must be ≤5."
|
||||
|
||||
### Product Reasoning Lessons from v0.51–v0.58
|
||||
|
||||
**Investigator's notebook model.** The Portfolio / Investigation / Report triad maps to: notebook index → working case → readable outcome. This is an architectural decision about user navigation, not just technical separation.
|
||||
|
||||
**Report as durable derived artefact.** The Report should support future portfolio revisit, copy/export, Jira/document use, investigation portfolio — without becoming canonical reasoning evidence. It is a summary of what was understood at a point in time.
|
||||
|
||||
**User ownership / non-steering.** The engine facilitates investigation. It does not steer or prioritise which question must be answered next. User controls: which question to investigate, when to say Done for now, whether Current Understanding is sufficient, whether to reopen work, when to review the Report.
|
||||
|
||||
**Evidence lessons captured at provenance level:**
|
||||
- Tests can fail because apparatus cannot observe the intended contract — not because the product is broken.
|
||||
- Playwright snapshot refs are transient — never use them as action targets.
|
||||
- Client hydration must be treated as real product behaviour — pre-hydration empty ≠ absence of data.
|
||||
- Experimental execution bounds (e.g., ≤5 Open Questions) must not be mistaken for product requirements.
|
||||
- Manual product verification can validly establish prerequisite state when automation itself is not the subject of the experiment.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user