feat: enforce reasoning pattern consistency

This commit is contained in:
2026-08-03 12:10:57 +01:00
parent 3e2edd2edc
commit c27320984c
6 changed files with 931 additions and 17 deletions
@@ -2,6 +2,8 @@
After every successful graph update, the full deterministic question-selection pipeline must run again whenever eligible unresolved unknowns remain.
The active reasoning pattern constrains which graph nodes may participate in reasoning.
That means the update path must not stop at graph mutation, child resolution, emergent unknown creation, decomposition, or upward propagation. It must continue through:
```text
@@ -23,6 +25,22 @@ updated graph
Returning no question is only valid when no eligible unresolved candidate remains, the case is complete, ambiguity cannot be safely resolved, or question formulation fails validation with an explicit deterministic reason.
## Graph validity vs reasoning-pattern validity
These are separate requirements.
- **Graph validity** means references, IDs, node shapes, and update semantics are structurally correct.
- **Reasoning-pattern validity** means selectable investigation nodes are compatible with the current reasoning mode.
A graph can be structurally valid while still being reasoning-invalid.
Example: a decision investigation may still contain an unresolved comparison-style node such as `How the two observations were measured`. That node is structurally well-formed, but it is not allowed to participate as an active investigation target unless the reasoning pattern has actually shifted into comparison, contradiction, or explanation work.
The engine therefore needs both invariants:
1. the graph must be structurally valid
2. every selectable unknown must be compatible with the active reasoning pattern
# v0.7 Question Simplicity Experiment
## Observed failure