fix(reasoning): preserve ready material question target
This commit is contained in:
@@ -108,9 +108,8 @@ describe("buildGraphUpdatePrompt", () => {
|
||||
expect(prompt).toContain(
|
||||
"selectedQuestion.question must be one narrow non-compound question",
|
||||
);
|
||||
expect(prompt).toContain(
|
||||
"engine retains deterministic final-priority selection",
|
||||
);
|
||||
expect(prompt).toContain("deterministic prerequisite ordering");
|
||||
expect(prompt).toContain("formulation authority");
|
||||
});
|
||||
|
||||
it("instructs the model to preserve user-supported meaning separately from inference", () => {
|
||||
@@ -587,10 +586,10 @@ describe("buildGraphUpdatePrompt — 57J.59 selected-question contract alignment
|
||||
expect(getRule(prompt, 16)).toContain("does not need to be the highest-scoring unknown");
|
||||
});
|
||||
|
||||
// Test 4 — engine retains deterministic final-priority ownership
|
||||
it("test 4: rule #16 states engine retains deterministic final-priority selection", () => {
|
||||
// Test 4 — engine retains deterministic prerequisite-aware selection
|
||||
it("test 4: rule #16 states engine retains deterministic prerequisite-aware selection", () => {
|
||||
const prompt = buildGraphUpdatePrompt(makeContext());
|
||||
expect(getRule(prompt, 16)).toContain("engine validates your candidate and retains deterministic final-priority selection");
|
||||
expect(getRule(prompt, 16)).toContain("engine validates your candidate and retains deterministic prerequisite ordering");
|
||||
});
|
||||
|
||||
// Test 5 — null remains permitted when the triggering condition does not apply (rule #20)
|
||||
@@ -863,3 +862,51 @@ describe("60B.4 decision materiality rule", () => {
|
||||
expect(sufficiencySection).toContain("should not remain open merely because some uncertainty still exists");
|
||||
});
|
||||
});
|
||||
|
||||
// ============================================
|
||||
// 60B.11 — prompt prerequisite-aware targeting clarity
|
||||
// ============================================
|
||||
|
||||
describe("60B.11 — prompt prerequisite-aware targeting", () => {
|
||||
let prompt;
|
||||
beforeAll(() => {
|
||||
const testNode = makeNode({
|
||||
id: "n-test-decision",
|
||||
label: "Test Decision",
|
||||
kind: "state",
|
||||
status: "supported",
|
||||
});
|
||||
prompt = buildGraphUpdatePrompt({
|
||||
situationGraph: {
|
||||
nodes: [testNode],
|
||||
edges: [],
|
||||
},
|
||||
});
|
||||
});
|
||||
|
||||
it("clarifies material continuation factor → selectedQuestion.nodeId", () => {
|
||||
expect(prompt).toContain("selectedQuestion.nodeId");
|
||||
});
|
||||
|
||||
it("mentions prerequisite ordering for model selection guidance", () => {
|
||||
expect(prompt).toContain("prerequisite ordering");
|
||||
});
|
||||
|
||||
it("does NOT give the model unconditional final authority", () => {
|
||||
expect(prompt).not.toContain("unconditional");
|
||||
expect(prompt).not.toContain("final-priority");
|
||||
});
|
||||
|
||||
it("states deterministic validation and formulation authority", () => {
|
||||
expect(prompt).toContain("formulation authority");
|
||||
});
|
||||
|
||||
it("mentions prefers model-selected node when no unresolved depends_on prerequisites", () => {
|
||||
expect(prompt).toContain("depends_on");
|
||||
});
|
||||
|
||||
it("does NOT duplicate the materiality scoring rule", () => {
|
||||
// The prompt should clarify targeting but not redefine materiality
|
||||
expect(prompt).not.toContain("materiality score");
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user