docs: record bounded structural context admission

This commit is contained in:
2026-08-13 12:49:42 +01:00
parent d871a8c5c4
commit a7ca8d712d
2 changed files with 146 additions and 1 deletions
+13 -1
View File
@@ -140,6 +140,18 @@ Experiment 54N tested whether an interpretation disagreement can be judged for m
- `npx vitest run tests/graph/apply-proposal.test.js tests/graph/prompt-builder.test.js` → PASS (174/174)
- **Still unproven live:** the exact 60B.6 continuation case where the model selects the newly exposed client-retention factor and the final target preserves that same ready material unknown in a live run.
### 60B.19 bounded structural context admission
- The blocked 60B.16 implementation was removed from the **global compatibility path** after 60B.17 showed it caused 8 `apply-proposal` regressions.
- The structural fallback now runs only for **newly-added unresolved unknowns** at the **pre-mutation proposal boundary** inside `applyValidatedProposal()`.
- The context identity for that admission is the **pre-update `activeUnknownNodeId`**, not the post-update selected node.
- Route A = ancestor chain to the original active decision; Route B = `may_cause` / `causes` / `affects` to an option `contained_in` that original active decision.
- A local in-memory admitted-node set now preserves that same-turn admission through later compatibility checks without changing generic compatibility semantics for unrelated nodes.
- Bounded verification passed:
- `npx vitest run tests/graph/reasoning-context-compatibility.test.js` → PASS (14/14)
- `npx vitest run tests/graph/apply-proposal.test.js tests/graph/reasoning-context-compatibility.test.js` → PASS (96/96)
- **Still unproven live:** the exact 60B.12 client-retention continuation case under live model output.
### When This Knowledge-Management Phase Is Complete
Provisional criteria for review (all confirmed met by Experiment 38 cold-start test):
@@ -2824,7 +2836,7 @@ Experiment 60B.13 performed read-only architectural diagnosis of the 60B.12 kind
---
Experiment 60B.14 performed read-only design analysis on whether a newly-created unresolved factor inside an active decision should inherit the decision's reasoning pattern rather than being classified mainly from its wording. **Classification: D — COMPATIBILITY FALLBACK.** The current architecture separates *active pattern determination* (which DOES use parent-chain traversal via `determineActiveReasoningPattern` and correctly yields "decision" for the 60B.12 node) from *node-intrinsic pattern inference* (which does NOT use that context — it runs standalone text analysis on the node's label/description only). This separation is the root cause: the active pattern correctly walks up to find "decision" in the decision unknown, but the compatibility check re-runs standalone inference on the new node and gets "diagnosis" from its diagnostic-style wording ("will our largest client leave"). The smallest correct fix preserves intrinsic text analysis as primary signal but adds a normalization fallback: when inferred node pattern is incompatible with active pattern AND the node's graph position (parentId, edges) places it structurally within that active context, reinterpret using the active pattern rather than rejecting. This requires no new schema, no new keywords, and preserves genuine pattern transitions (the intrinsic inference still returns diagnosis; only the compatibility decision changes).
Experiment 60B.14 performed read-only design analysis on whether a newly-created unresolved factor inside an active decision should inherit the decision's reasoning pattern rather than being classified mainly from its wording. **Classification: D — COMPATIBILITY FALLBACK.** The current architecture separates _active pattern determination_ (which DOES use parent-chain traversal via `determineActiveReasoningPattern` and correctly yields "decision" for the 60B.12 node) from _node-intrinsic pattern inference_ (which does NOT use that context — it runs standalone text analysis on the node's label/description only). This separation is the root cause: the active pattern correctly walks up to find "decision" in the decision unknown, but the compatibility check re-runs standalone inference on the new node and gets "diagnosis" from its diagnostic-style wording ("will our largest client leave"). The smallest correct fix preserves intrinsic text analysis as primary signal but adds a normalization fallback: when inferred node pattern is incompatible with active pattern AND the node's graph position (parentId, edges) places it structurally within that active context, reinterpret using the active pattern rather than rejecting. This requires no new schema, no new keywords, and preserves genuine pattern transitions (the intrinsic inference still returns diagnosis; only the compatibility decision changes).
---