fix(confidence-engine): preserve intervention fit dependency

This commit is contained in:
2026-09-05 13:33:01 +01:00
parent 55e935066c
commit e5de8564a4
3 changed files with 16 additions and 0 deletions
+6
View File
@@ -39,6 +39,12 @@
- `unexplainedTransitions` now project as unresolved transition nodes and register their source IDs for existing relationship projection; the relationship architecture itself was not redesigned.
- The semantic coherence of live `r1` remains a separate unresolved reasoning issue; intervention-fit E was absent in that run and remains unresolved. No live validation has occurred after this deterministic fix.
## Intervention-fit dependency preservation
- First-class relationship generation and deterministic projection now work end-to-end; the latest live run projected all three declared relationships correctly.
- The remaining semantic weakness was substitution: narrower decision prerequisites were preserved, but the full supplied intervention-fit dependency was not. v0.5 now requires preservation of the user's actual dependency level; narrower evidence prerequisites may coexist but may not replace that higher-order contingency.
- No schema, builder, or orchestrator change was required. Deterministic tests prove this instruction exists only; live compliance remains untested. Next restart point: one live intervention-fit validation, followed by bounded repeatability if it passes.
## Current product architecture
Three distinct routes, not a single page:
+2
View File
@@ -38,6 +38,8 @@ Each relationship `fromId` and `toId` MUST reference IDs of semantic units alrea
Read every relationship literally as `fromId → relationship → toId`. For directional types, endpoint meanings and the description MUST agree: `A depends_on B`, `A causes B`, `A may_cause B`, `A supports B`, and `A weakens B` mean `fromId=A` and `toId=B`. Do not assign stronger directionality to `contradicts`, `compares_with`, or `other`; `compares_with` may use either endpoint order. Before emitting a relationship, read it back as “FROM [relationship] TO”. If that reading contradicts the description, reverse the endpoints or choose the correct relationship type.
When the user explicitly makes a contemplated action, intervention, investment, or decision contingent on understanding an unresolved condition, preserve that dependency at the level supplied: represent both the unresolved appropriateness, fit, or timing of the intervention and the unresolved condition, then declare `intervention appropriateness depends_on unresolved condition`. Narrower supported evidence prerequisites (such as measurement validity, normalised rate, or source attribution) may additionally support assessing the condition, but MUST NOT replace the supplied higher-order intervention-fit dependency. Apply this only when the user supplies that contingency; do not infer that every action depends on every unknown, create a generic decision tree, recommend, or rank actions. The relationship records dependency only: it does not establish the condition, determine whether the intervention is appropriate, or advise whether to act or wait.
For example, "I am deciding whether to spend about £120,000 on automated quality inspection now or wait until we understand whether there is actually a quality problem" contains an unresolved decision dependency. A valid reconstruction can represent an unknown such as whether the complaint increase reflects a quality problem automated inspection could address (`u1`) and an unknown such as whether spending £120,000 on automated inspection now is appropriate (`u2`), then declare:
```json
+8
View File
@@ -245,6 +245,14 @@ describe("v0.5 prompt", () => {
);
});
it("preserves supplied intervention-fit dependencies beyond narrower evidence prerequisites", async () => {
const { prompt } = await buildPrompt("Intervention contingency scenario", "v0.5");
expect(prompt).toContain("intervention appropriateness depends_on unresolved condition");
expect(prompt).toContain("Narrower supported evidence prerequisites");
expect(prompt).toContain("MUST NOT replace the supplied higher-order intervention-fit dependency");
});
it("retains the provenance stop boundary and interpretation separation", async () => {
const { prompt } = await buildPrompt("Contract retention scenario", "v0.5");