robbond
32184694c5
experiment: test qualified-answer reasoning
2026-08-12 13:35:40 +01:00
robbond
a78f3edb10
experiment: choose declaration recovery boundary
2026-08-12 13:27:02 +01:00
robbond
a40a3e343e
experiment: diagnose null semantic mutation path
2026-08-12 13:19:37 +01:00
robbond
eaf3194752
experiment: observe direct meaning/action fields on anchored update
2026-08-12 12:09:32 +01:00
robbond
6a04d62800
docs: record accepted answer-meaning capture
2026-08-12 12:01:16 +01:00
robbond
c4431997b1
tooling: capture accepted answer meaning directly
2026-08-12 12:00:18 +01:00
robbond
d2891730af
experiment: rerun incremental meaning on anchored uncertainty
2026-08-12 11:19:47 +01:00
robbond
f23e2b2de0
docs: record update-only previous-question fix
2026-08-12 10:41:31 +01:00
robbond
8526aa4b69
tooling: supply anchored previous question in update-only mode
2026-08-12 10:41:02 +01:00
robbond
70db093cb1
experiment: test incremental meaning on existing uncertainty
2026-08-12 10:34:53 +01:00
robbond
ce01e70010
tooling: add pre-anchored update-only mode to canonical harness
...
Add FIXTURE_MODE=updateOnly support that bypasses Start and sends the
committed fixture (tests/fixtures/pre-anchored-update-savings-realism.json)
directly as an Update request body through production HTTP route.
scripts/reproduce-multi-turn-investigation.mjs:
- Added ESM imports for deterministic fixture loading (fs, fileURLToPath, path)
- Added FIXTURE_PATH constant pointing to committed fixture
- Added fixtureMode env-var selector and runUpdateOnlyMode() function
- Validates ANSWER_2 before any live call (zero calls if missing)
- Verifies single savings-realism anchor invariant on load
- Preserves all hardened capture fields in pre-anchored mode
- Normal-mode Start→Update chain preserved under guard clause
tests/reproduce-multi-turn-investigation.harness.test.js:
- Added 7 new harness tests for pre-anchored scenarios (46 total, all pass)
- Updated runPreAnchoredSimulation to persist rejectedProposalSnapshot on rejection
- Added runPreAnchoredSimulationWithBlock() helper
docs/:
- New docs/experiment-57j78.md with full apparatus description
- Updated docs/current-handoff.md with 57J.78 section
2026-08-12 10:19:09 +01:00
robbond
9b7721c610
experiment: audit pre-anchored live apparatus
2026-08-12 09:56:11 +01:00
robbond
85fb2b4256
experiment: validate controlled structural no-op live
2026-08-12 09:35:05 +01:00
robbond
8184e050c8
docs: record pre-anchored update apparatus
2026-08-12 09:13:40 +01:00
robbond
d77a1ff04d
tooling: add pre-anchored update fixture
2026-08-12 09:11:20 +01:00
robbond
f78061c1db
experiment: validate intentional structural no-op live
2026-08-12 08:49:40 +01:00
robbond
67699ecd03
docs: record structural action capture hardening
2026-08-12 08:33:06 +01:00
robbond
beef434a6f
tooling: capture structural action declaration in live harness
2026-08-12 08:32:21 +01:00
robbond
fc06ff02e4
experiment: rerun structural action contract live
2026-08-12 08:26:58 +01:00
robbond
4de871092f
docs: record structural action guard cleanup
2026-08-12 08:17:28 +01:00
robbond
bd3c7d59ae
fix(graph): make structural action contract authoritative
2026-08-12 08:15:41 +01:00
robbond
c899ad620c
experiment: validate structural action contract live
2026-08-12 08:04:41 +01:00
robbond
1b3bbd59aa
docs: record structural action contract implementation
2026-08-12 07:29:28 +01:00
robbond
6aef806845
feat(graph): add structuralActionRequired contract (57J.67)
...
- Add structuralActionRequired field to graphUpdateSchema (optional boolean nullable)
- Validate declaration consistency in validateGraphUpdate():
- true requires meaningful mutation (addedNodes/updatedNodes/addedEdges)
- false permits intentional no-op when userSupportedMeaning populated
- null/absent with meaning → reject
- true/false mismatch on output shape → reject
- preserve legacy no-op guard for non-contract paths
- Update prompt-builder: add field to required list, insert contract section between rules and Additional Guidance with two mandatory sentences
- 50 new tests: schema validation (4), prompt builder content checks (10), utils contract matrix (10), plus 26 existing suite migrations
All 197 graph tests pass.
2026-08-12 07:26:26 +01:00
robbond
5f9e8ebe33
experiment: finalize semantic action contract semantics
2026-08-12 06:30:40 +01:00
robbond
51da4b973f
experiment: define semantic action contract placement
2026-08-12 06:23:21 +01:00
robbond
9425e7b2d6
experiment: define semantic action contract
2026-08-12 06:13:15 +01:00
robbond
d7cb343838
experiment: diagnose semantic-to-mutation action ownership
2026-08-12 05:53:58 +01:00
robbond
f022d6f4ad
experiment: rerun equivalent uncertainty identity with hardened capture
2026-08-12 05:48:18 +01:00
robbond
47509d307b
docs: record accepted-update capture hardening
2026-08-11 19:43:11 +01:00
robbond
bf959bb9a0
tooling: retain accepted update experiment evidence
2026-08-11 19:42:43 +01:00
robbond
929486c354
experiment: validate equivalent uncertainty identity live
2026-08-11 19:30:08 +01:00
robbond
2927509ca5
experiment: validate selected-question contract live
2026-08-11 19:15:51 +01:00
robbond
3baa77eb72
docs: record selected-question contract alignment
2026-08-11 18:51:51 +01:00
robbond
bf1f219256
prompt: require candidate question for new unknowns
2026-08-11 18:51:22 +01:00
robbond
a8732288eb
docs: record selected-question ownership diagnosis
2026-08-11 18:49:51 +01:00
robbond
f0e0fd54de
experiment: diagnose selected-question ownership
2026-08-11 18:45:00 +01:00
robbond
f25b1f550e
experiment: validate equivalent uncertainty reuse live
2026-08-11 18:29:02 +01:00
robbond
eb524d08e1
experiment: validate uncertainty identity live
2026-08-11 18:02:11 +01:00
robbond
a476431048
docs: record uncertainty identity clarification
2026-08-11 17:47:45 +01:00
robbond
b8e6745c15
prompt: distinguish uncertainty identity from topical overlap
2026-08-11 17:47:12 +01:00
robbond
f0cf85d2b6
experiment: diagnose uncertainty identity vs relatedness
2026-08-11 17:41:23 +01:00
robbond
19c00f3bf3
experiment: test structured-fidelity multi-turn progress
2026-08-11 17:34:54 +01:00
robbond
5947ccb642
experiment: validate structured semantic fidelity live
2026-08-11 17:18:59 +01:00
robbond
f156bf5ef8
docs: record structured semantic fidelity implementation
2026-08-11 16:46:30 +01:00
robbond
7d06cd3c47
reasoning: use structured semantic fidelity contract
2026-08-11 16:45:00 +01:00
robbond
b6a232ff6f
experiment: choose structured fidelity migration
2026-08-11 16:17:55 +01:00
robbond
f330421294
experiment: assess structured semantic fidelity boundary
...
- Experiment 57J.49: read-only architecture diagnosis showing EXISTING STRUCTURE IS PARTIAL
- All classification enums (supportCategory) and resolution enums (resolutionGuidance) already exist in production schema
- Gap is population (prompt says leave null if unsure) + enforcement (no enum constraint on Zod fields)
- Corrected 57J.48 overstatement of SUFFICIENT → PARTIAL sufficiency in handoff
2026-08-11 15:04:47 +01:00
robbond
a2c790ee80
experiment: diagnose uncertainty fidelity false positive
2026-08-11 14:56:15 +01:00
robbond
174e581c23
experiment: convergence-test uncertainty action selection
2026-08-11 14:35:50 +01:00
robbond
94ca1b92f7
docs: experiment 57J.46 record and handoff update
2026-08-11 14:15:50 +01:00
robbond
a5dd9d3f1a
prompt: add existing-first uncertainty fallback
...
Add one explicit action-order rule in Additional Guidance for when
rule #6 applies to explicitly unresolved uncertainty:
1. First check whether an existing unresolved node already represents
the same uncertainty.
2. If so, update/refine that existing structure rather than creating
a duplicate.
3. If no such node exists, add a new unknown that directly represents
the unresolved uncertainty.
4. Do not use an edge alone to represent a previously unrepresented
uncertainty.
14 focused prompt tests verify: existing-first ordering, reuse path,
fallback-to-add, related-node-insufficient, edge-only-prohibited,
possibleInference separation, resolution path preserved, duplicate
contract preserved, scope uncertainty-only, fidelity/traceability
preserved, noop validator untouched, no semantic classifier added.
2026-08-11 14:12:42 +01:00
robbond
96b855b8e7
experiment: choose structural action-selection rule
2026-08-11 14:01:42 +01:00
robbond
acd1928ebb
experiment: validate conflict-free mutation prompt live
2026-08-11 13:36:03 +01:00
robbond
45d7b96827
docs: experiment 57J.43 record and handoff update
2026-08-11 13:23:14 +01:00
robbond
359ccc4ba9
prompt: remove semantic-only mutation conflict
2026-08-11 13:22:29 +01:00
robbond
0c477adea9
experiment: diagnose structural-mutation prompt compliance
2026-08-11 13:15:27 +01:00
robbond
6aea0bd90c
experiment: isolate semantic-to-mutation contract live
2026-08-11 13:09:51 +01:00
robbond
39217b6b65
experiment: validate semantic-to-mutation contract live
2026-08-11 13:01:54 +01:00
robbond
712c0c4998
docs: experiment 57J.39 record and handoff update
2026-08-11 12:32:39 +01:00
robbond
6adcd817e1
reasoning: require structural progress for supported meaning
2026-08-11 12:32:03 +01:00
robbond
3b868b266e
experiment: choose semantic-to-mutation contract fix
2026-08-11 12:03:16 +01:00
robbond
77f5ea26d4
experiment: locate semantic-to-mutation contract gap
2026-08-11 11:56:36 +01:00
robbond
b341c9cf2f
experiment: rerun guarded multi-turn progress cleanly
2026-08-11 11:41:51 +01:00
robbond
4998de54d2
tooling: enforce no-retry live experiment harness
2026-08-11 11:32:19 +01:00
robbond
06f67da1b4
experiment: observe guarded multi-turn progress
2026-08-11 10:50:05 +01:00
robbond
bda3abf893
experiment: classify captured answer-meaning strengthening
2026-08-11 10:19:19 +01:00
robbond
a00f7b170d
experiment: inspect rejected proposal live variance
2026-08-11 10:03:35 +01:00
robbond
48e9bcf3eb
docs: add Experiment 57J.31 entry to handoff
2026-08-11 08:34:51 +01:00
robbond
0348921542
experiment: add rejected proposal diagnostics to failure path
...
Adds rejectedProposalSnapshot to orchestrator diagnostics for
proposal_compatibility rejections — exposing answerMeaning (userSupportedMeaning,
possibleInference), addedNodes structural fields, addedEdges structural fields,
updatedNodes summaries, and resolvedUnknownNodeIds. Diagnostic evidence only;
does not alter validation, mutation, or error messages. Stage-gated to
proposal_compatibility only.
2026-08-11 08:33:36 +01:00
robbond
79377670e2
experiment: capture proposal-boundary live variance
2026-08-11 08:19:21 +01:00
robbond
1c15b2b123
experiment: measure live semantic representation stability
2026-08-11 07:36:21 +01:00
robbond
25f56d75e2
experiment: capture live node-support semantic inputs
2026-08-11 07:12:30 +01:00
robbond
d5db3c3cd6
experiment: observe post-admission investigation progress
2026-08-11 06:56:35 +01:00
robbond
fbbd271596
experiment: validate user-supported unknown admission live
2026-08-11 06:38:30 +01:00
robbond
2e20d30890
correction: delegate hasNodeLevelUserSupport to rawAnswerSupportsUnclassifiedMeaning
...
v0.15 duplicated the overlap helper logic in hasNodeLevelUserSupport with
reversed argument orientation (unknownText as source, userSupportedMeaning
as candidate) compared to rawAnswerSupportsUnclassifiedMeaning (USM as
source, unknownText as candidate). This produced different accept/reject
outcomes when the two texts have very different token counts.
The fix replaces the independent reconstruction with a single call to the
canonical helper, ensuring node-level and answer-meaning alignment use
identical semantics. Four boundary regression tests verify:
- Boundary A: overlap ratio < 0.4 but >= 3 shared tokens → accept (token rule)
- Boundary B: short candidate / long source accepted via structural linkage
- Boundary B control: unrelated unknown rejected with no structural edge
- Boundary C: ratio exactly at 0.4 threshold accepts via ratio rule
2026-08-10 20:09:39 +01:00
robbond
9e869cbcb8
reasoning: admit verified user-supported unknowns without provenance edges
2026-08-10 19:27:54 +01:00
robbond
1fe3cec4bd
experiment: observe live unknown dimensionality representation
2026-08-10 15:41:49 +01:00
robbond
15f2433151
docs: record rejected answerability corroboration candidate
2026-08-10 15:08:23 +01:00
robbond
0d15dd1f42
Revert "reasoning: require corroboration for conjunction compoundness"
...
This reverts commit 60048a5636 .
2026-08-10 15:07:30 +01:00
robbond
60048a5636
reasoning: require corroboration for conjunction compoundness
2026-08-10 14:53:57 +01:00
robbond
dcefb36f4d
experiment: capture minimal clarification answerability
2026-08-10 14:26:07 +01:00
robbond
90e662397f
experiment: validate relationship fallback live
2026-08-10 13:10:21 +01:00
robbond
4c5666dfb3
reasoning: suppress explanation question without relationship structure
2026-08-10 10:17:35 +01:00
robbond
1a31949a48
experiment: validate semantic compatibility live
2026-08-10 08:46:31 +01:00
robbond
69efc5d1b9
reasoning: ground unclassified answers without category expansion
2026-08-10 08:20:00 +01:00
robbond
4ea664d0d8
experiment: validate decomposition relevance live
2026-08-10 08:04:59 +01:00
robbond
7e4c506614
reasoning: prevent unsupported comparison decomposition
2026-08-10 07:44:40 +01:00
robbond
513c483501
experiment: locate irrelevant decomposition question boundary
2026-08-10 07:19:52 +01:00
robbond
62593eea14
docs: record canonical live multi-turn product-observation route
2026-08-10 06:49:03 +01:00
robbond
7533e471d4
test: establish minimal live multi-turn investigation route
2026-08-10 06:48:51 +01:00
robbond
46503b4507
reasoning: normalise graph relationship contract at proposal boundary
2026-08-10 06:16:47 +01:00
robbond
cf6c5cb57f
docs: record stopped experiment 57c contract failure
2026-08-10 06:04:46 +01:00
robbond
371ab0f52f
merge(feature/reasoning-guard-generality-v0.9): integrate reasoning-guard generality v0.9 into main
2026-08-09 20:07:05 +01:00
robbond
19a42ca7f7
experiment: validate grounded unclassified answer live
2026-08-09 20:03:30 +01:00
robbond
4e4d0fa732
reasoning: stop answer fidelity guard blocking valid unclassified answers
2026-08-09 19:55:35 +01:00
robbond
7d94c6f73a
docs: record contaminated experiment 57a observation
2026-08-09 19:40:49 +01:00
robbond
14d68f1ab7
merge: integrate reasoning-fidelity v0.8 first pass into main
2026-08-09 17:36:58 +01:00
robbond
e498bbcc63
docs: close reasoning fidelity v0.8 first pass
2026-08-09 17:25:19 +01:00
robbond
ec398dcec9
experiment: validate evidence versus clarification routing
2026-08-09 16:33:14 +01:00