Commit Graph
445 Commits
Author SHA1 Message Date
robbond 5d0ce0ddd3 experiment: compare model and deterministic investigation selection 2026-08-18 07:00:39 +01:00
robbond 600b07d820 test(harness): support gated live investigation continuation 2026-08-18 06:48:40 +01:00
robbond 7dd4a956fb experiment: validate live financial investigation progression 2026-08-18 06:32:40 +01:00
robbond a52f0345a1 experiment: validate live question-rejection ownership 2026-08-17 18:25:40 +01:00
robbond 7685a4f2af test(evidence): preserve live product-launch journey captures 2026-08-17 18:08:47 +01:00
robbond 8117f3d307 docs: record current reasoning checkpoint 2026-08-17 17:58:54 +01:00
robbond 772ae495c6 fix(reasoning): preserve investigation ownership across selection and question rejection 2026-08-17 17:58:45 +01:00
robbond d908f3746d test(e2e): preserve manually recorded investigation journey 2026-08-17 13:48:56 +01:00
robbond 6ca8381b99 fix(reasoning): correct insufficient-observation comparability state 2026-08-17 09:32:21 +01:00
robbond ade445e453 fix(reasoning): reconcile evidence and preserve deterministic continuation 2026-08-17 08:06:08 +01:00
robbond f2f495d5c7 fix(ui): preserve investigation workspace across no-question states 2026-08-17 08:06:01 +01:00
robbond 0cd68f40a5 docs: record playwright selector apparatus repair 2026-08-15 13:56:06 +01:00
robbond 2561b5d720 test(e2e): repair investigation textarea selectors 2026-08-15 13:55:59 +01:00
robbond a599922d9f experiment: confirm live explicit sufficiency closure 2026-08-15 12:43:56 +01:00
robbond abc01b181f experiment: confirm live confirmation-gated state b path 2026-08-15 12:27:08 +01:00
robbond 357be25de5 docs: record confirmation-gated closure enforcement 2026-08-15 11:35:02 +01:00
robbond b181c3ea75 fix(reasoning): enforce confirmation-gated decision closure
- reconcileDecisionClosureOwnership normaliser between reconciliation and validation (Boundary B)
- Strips terminal parent updates without explicit user confirmation; preserves all other proposal work
- Strips parent from resolvedUnknownNodeIds bookkeeping on no-confirmation strip
- Restores reconciler-forced resolved→unknown for synthetic updates too
- Prevents hybrid unknown+value states by nulling newValue in all stripping paths
- No-op update created when reconciler synthesized the entry to prevent downstream errors

Prompt:
- Rule #143 rewritten from evidence-sufficiency to explicit-confirmation gate
- Directs model to use possibleInference for directional conclusions when confirmation absent

Regression preservation:
- 60B.43 lifecycle invariant restored via explicit confirmation phrases in fixture answers
- 60B.49 reconciliation auto-add invariant restored under confirmed closure flow
- Test apparatus fixed: structuralActionRequired required with userSupportedMeaning (validator constraint)

New coverage:
- 10 tests for all 60B.79/80 coverage requirements
- 5 prompt alignment tests for Rule #143
2026-08-15 11:34:39 +01:00
robbond 4988159986 experiment: define closure enforcement boundary 2026-08-15 06:40:24 +01:00
robbond 0e5292c46d experiment: define decision closure ownership policy 2026-08-15 06:21:20 +01:00
robbond d49e3e8e83 experiment: diagnose decision closure ownership 2026-08-15 06:11:13 +01:00
robbond 887a9710c8 experiment: confirm live sufficiency decision detection 2026-08-15 05:59:35 +01:00
robbond 47f42b24cc docs: record sufficiency decision detection fix 2026-08-14 19:04:20 +01:00
robbond 912680b967 fix(reasoning): recognise decision in sufficiency question 2026-08-14 19:04:17 +01:00
robbond 391667777e experiment: confirm live sufficiency confirmation question 2026-08-14 18:24:36 +01:00
robbond 7cfeee140b docs: record sufficiency confirmation question 2026-08-14 18:01:29 +01:00
robbond 8311a176a5 fix(reasoning): ask for missing sufficiency confirmation 2026-08-14 18:01:27 +01:00
robbond c335bf0a9a experiment: define missing sufficiency confirmation question 2026-08-14 17:23:12 +01:00
robbond f70d3d0de9 experiment: test live no-confirmation closure guard 2026-08-14 16:38:11 +01:00
robbond a5b71ad89a experiment: map remaining apply proposal boundaries 2026-08-14 16:27:55 +01:00
robbond 6cb91099c2 experiment: confirm deterministic post-refactor closure path 2026-08-14 16:06:22 +01:00
robbond 1ca5026352 experiment: confirm post-refactor live equivalence 2026-08-14 15:50:59 +01:00
robbond 36b4f47097 refactor(reasoning): extract decision sufficiency 2026-08-14 15:37:24 +01:00
robbond c43decf5d4 experiment: establish live decision closure baseline 2026-08-14 15:12:17 +01:00
robbond 983ebcc836 experiment: define decision sufficiency module boundary 2026-08-14 15:00:48 +01:00
robbond bce05f779b feat(reasoning): integrate explicit decision-sufficiency closure (60B.64)
Add two new capabilities:

1. isUserConfirmationOfNoRemainingUncertainty(answer) — bounded,
   deterministic raw-answer confirmation that no other material uncertainty
   remains after a decision factor has been resolved. Matches an explicit
   phrase family (e.g. 'no remaining material uncertainty', 'no other
   material uncertainties remain') plus two bounded regex patterns, while
   rejecting contradictory wording ('still another material uncertainty',
   'I am not saying...').

2. Decision-sufficiency closure integration point in applyValidatedProposal,
   positioned after post-mutation/post-propagation and before final
   active-target selection. When all represented material factors are
   resolved AND the raw user answer confirms sufficiency, resolves the
   existing parent decision in place (status → 'resolved') and clears
   the active unknown target.

Uses a virtual 'resolved this turn' set because node statuses have not
yet been reconciled at the integration point. Tests cover: exact fixture
wording from 60B.56, bounded paraphrases, absence-of-confirmation
(non-closure), remaining-factors (blockage), contradictory wording
(rejection), negated phrases (rejection), and vague completion language
(exclusion).
2026-08-14 14:21:33 +01:00
robbond 02b7c292a5 experiment: define closure confirmation signal 2026-08-14 13:55:41 +01:00
robbond 7ee9b197ab experiment: define decision closure integration boundary 2026-08-14 13:43:43 +01:00
robbond 100dfa2be5 docs: record decision factor detection 2026-08-14 13:31:30 +01:00
robbond 5ef2b5a3c7 feat(reasoning): detect remaining decision factors 2026-08-14 13:31:28 +01:00
robbond 909edd1019 experiment: define option factor representation contract 2026-08-14 12:30:01 +01:00
robbond 3d7f2cc3dd experiment: define decision factor relationship family 2026-08-14 12:21:28 +01:00
robbond 014c6b72dc experiment: define decision sufficiency evidence 2026-08-14 12:10:25 +01:00
robbond 2394ad4c0c experiment: confirm negative closure live 2026-08-14 11:16:58 +01:00
robbond 54e2e2186b fix(reasoning): reconcile closure selection state 2026-08-14 11:02:00 +01:00
robbond a00112e157 docs: record closure reconciliation consolidation 2026-08-14 11:02:00 +01:00
robbond 998ff2fcb7 experiment: diagnose resolution contract mismatch 2026-08-14 09:51:12 +01:00
robbond 59ededfe06 experiment: test opposite-outcome decision closure 2026-08-14 09:43:51 +01:00
robbond 2b44eea8d8 experiment: confirm clean closure with direct metadata 2026-08-14 09:36:39 +01:00
robbond 831e395511 tooling: expose closure metadata in live harness 2026-08-14 09:30:55 +01:00
robbond fa821a53dd docs: record closure metadata capture 2026-08-14 09:30:55 +01:00