robbond
1273861f0c
exp(18): implement investigation state assessment layer
...
Implement the three-dimensional assessment (phase, progress, conversation
health) that sits between narrative and behaviour selection.
Key changes:
- lib/assessment/investigation-state-assessor.js: assessor module with
countObservations, assessPhase, assessProgress, assessConversationHealth,
assessInvestigationState — deterministic classifiers using known rules
- tests/investigation-state-assessor.test.js: 51 tests covering phase
classification (orienting→concluding), progress thresholds, health
conditions, confidence aggregation, edge cases, and observation counting
- lib/graph/orchestrator.js: integration calls passing correctly-shaped input
to assessInvestigationState() at three call sites (~552, ~904, ~1013)
Design decisions encoded in this iteration:
- countObservations counts nodes with known/resolved status + high-confidence
non-unknown non-state nodes (not just explicit observation-kind nodes)
- Phase uses seven values including cannot_determine for insufficient data
- Progress uses resolution ratio thresholds: accelerating (>0.6), steady
(0.2-0.6), stalled (<0.2 with ≥1 resolved)
- Overall confidence = minimum across all three dimensions (conservative)
Also adds investigation-state-assessment-contract.md and updates
design-evolution-log, investigation-state-assessment.md (status header),
and investigation-turn-cycle.md (implementation status table).
2026-08-05 17:52:18 +01:00
robbond
6eaf0fc246
experiment: improve semantic graph projection
...
Experiment 13 — Semantic Facilitator Translation
- Classify nodes by semantic role (observation, question, explanation,
scaffolding, relationship) rather than graph kind. Scaffolding suppressed
entirely before section routing.
- Three-tier filtering: scaffolding patterns > internal vocabulary > technical
summary patterns. Prevents structural noise from contaminating user-facing
sections.
- Deduplicate by normalised text — merge duplicate observations expressing the
same finding.
- Route resolved unknowns and assumptions to known section with epistemic
labels instead of treating them as unresolved questions.
- Prefer concrete observations (numbers, change language, temporal refs) over
abstract labels in ranking.
- Closed Experiment 12 as confirmed. Added Experiment 13 documentation.
- Updated UX guidelines with Semantic Projection principles.
- 37 tests: filtering, classification, deduplication, ranking, framing, mock
data integration, edge cases.
2026-08-05 15:26:29 +01:00
robbond
86d9bc3f48
refactor: clarify investigation map as ux placeholder
2026-08-05 10:20:28 +01:00
robbond
ce673b8eb4
feat: add investigation map workspace view
2026-08-05 10:10:16 +01:00
robbond
592962325d
feat: add mock-mode docs and additional e2e tests (long investigation, recovery states)
2026-08-05 08:38:44 +01:00
robbond
61210c1200
fix: localise update reasoning state
2026-08-05 08:36:18 +01:00
robbond
6d11c1d503
fix: unify reasoning mode across submissions
2026-08-05 08:27:22 +01:00
robbond
c87fd65e13
fix: stabilise happy path playwright journeys
2026-08-05 08:00:18 +01:00
robbond
74fc6d1457
fix: show update reasoning progress
2026-08-03 18:00:20 +01:00
robbond
7bc1c93486
feat: evolve investigation into guided conversation
2026-08-03 17:01:04 +01:00
robbond
0dd15345e4
fix: make active reasoning state visible
2026-08-03 16:09:04 +01:00
robbond
44aad69e12
fix: clarify reasoning progress and loading feedback
2026-08-03 15:44:34 +01:00
robbond
ed32d585bb
feat: add user-focused reasoning workspace
2026-08-03 15:18:35 +01:00
robbond
fe6a9925cb
fix: stabilise multi-turn question progression
2026-08-03 13:55:39 +01:00
robbond
34c25fcb43
fix: reselect after reasoning pattern filtering
2026-08-03 12:39:01 +01:00
robbond
c27320984c
feat: enforce reasoning pattern consistency
2026-08-03 12:10:57 +01:00
robbond
3e2edd2edc
fix: continue question selection after graph updates
2026-08-03 11:28:49 +01:00
robbond
b00928d6fb
feat: introduce reasoning pattern selection
2026-08-03 10:25:26 +01:00
robbond
42d4da3496
feat: decompose non-answerable unknowns
2026-08-03 09:53:28 +01:00
robbond
db994d7764
fix: make graph-backed questions authoritative
2026-08-03 09:13:52 +01:00
robbond
ef04b9e494
fix: normalise reported claim evidence kind
2026-08-03 08:50:37 +01:00
robbond
3c0f7f5a45
feat: enforce one-concept questions
2026-08-03 08:40:39 +01:00
robbond
5049435005
docs: add v0.6 release notes
2026-08-03 07:38:05 +01:00
robbond
b2ffc54964
feat: evaluate deterministic cross-branch corroboration
2026-08-03 07:19:20 +01:00
robbond
1d64144e01
feat: separate confidence from reasoning completeness
2026-08-03 07:05:20 +01:00
robbond
49765e95a0
feat: propagate child resolution through reasoning graph
2026-08-03 06:52:52 +01:00
robbond
d52690cf2b
feat: decompose composite unknowns before questioning
2026-08-03 06:32:12 +01:00
robbond
0723c2f49a
feat: decompose composite unknowns before questioning
2026-08-02 19:24:38 +01:00
robbond
b1c633ba5c
feat: back next questions with explicit graph unknowns
2026-08-02 19:03:07 +01:00
robbond
25a989450c
feat: advance reasoning after comparability is resolved
2026-08-02 17:06:34 +01:00
robbond
7d408701b5
fix: defer relationship classification until comparability is established
2026-08-02 16:48:10 +01:00
robbond
c97f5f7303
feat: classify observation relationships after comparability
2026-08-02 16:40:24 +01:00
robbond
0c7558d31f
feat: introduce comparability assessment before contradiction reasoning
2026-08-02 16:28:11 +01:00
robbond
b84989b96a
test: verify ambiguity handling across domains
2026-08-02 16:17:37 +01:00
robbond
51ce356218
fix: handle unjustified unknown selection ties
2026-08-02 16:09:00 +01:00
robbond
a1f6d0c2b9
test: inspect structural influence in unknown selection
2026-08-02 15:40:06 +01:00
robbond
586802950d
feat: explain deterministic unknown selection
2026-08-02 15:27:00 +01:00
robbond
5ef9710293
Implemented Investigation Strategy
2026-08-02 15:10:49 +01:00
robbond
781d6a462f
test: generalise question priority across decisions
2026-08-02 13:02:49 +01:00
robbond
48ce66dddb
feat: formulate follow-up questions from graph context
2026-08-02 12:47:34 +01:00
robbond
4affadab4b
fix: link emergent unknowns to answer-derived graph nodes
2026-08-02 12:17:49 +01:00
robbond
392564ed61
feat: prioritise follow-up questions by information value
2026-08-02 11:11:55 +01:00
robbond
72ef175971
feat: surface new unknowns after graph updates
2026-08-02 10:30:59 +01:00
robbond
a9bce79658
feat: add one-turn situation graph update UI
2026-08-02 09:43:42 +01:00
robbond
a948910ba8
feat: add situation graph update API route
2026-08-02 08:32:18 +01:00
robbond
cb77f955ed
feat: apply validated graph update proposals
2026-08-02 08:24:56 +01:00
robbond
f3cdfce0b0
feat: add graph update proposal orchestration
2026-08-02 08:15:54 +01:00
robbond
b38a6a9f2e
feat: define graph update proposal contract
2026-08-02 08:00:37 +01:00
robbond
02a6ecd0da
fix: normalise compatible live reconstruction responses
2026-08-02 07:50:02 +01:00
robbond
575b8fd971
feat: connect UI to situation graph start flow
2026-08-02 07:21:40 +01:00