explain refinements: no opt-out row, one committed field (owner 2026-09-27)
Two follow-up rulings on the explain tool:
1. No 'I don't know' row — not needed in free recall. If he doesn't
know, he says so in his own words; his text is the only answer
channel. Dock: text mode is rowless again (the composer IS the
surface); doctrine and the shared prompt chunk updated; the format
branch and card revert to quiz-only dontKnow.
2. explanation + correctAnswer collapse into ONE field — the separate
explanation was quiz remnant (MC needs the why outside its options;
a free-text commitment carries its own reasoning). Schema is now
{question, correctAnswer, details?}; the reveal shows the single
committed answer; no explanation snapshots anywhere on the explain
path.
1047/1047 tests, typecheck/lint/build green.
This commit is contained in:
@@ -317,8 +317,7 @@ describe("prepareQuestionArguments (the string-encoded options wobble)", () => {
|
||||
describe("teachExplainToolFor: the explain variant validates nodeId like the quiz", () => {
|
||||
const validExplain = {
|
||||
question: "Explain why the null result matters.",
|
||||
explanation: "A stationary aether predicts a fringe shift.",
|
||||
correctAnswer: "It ruled out the aether.",
|
||||
correctAnswer: "It ruled out the aether — a stationary aether predicts a fringe shift, and none was seen.",
|
||||
nodeId: "arith",
|
||||
};
|
||||
|
||||
@@ -374,13 +373,11 @@ describe("the prober's explain: no nodeId field at all", () => {
|
||||
assert.ok(!("nodeId" in probeExplainTool.parameters.properties));
|
||||
const res = await boundaryParse(probeExplainTool, {
|
||||
question: "Explain what a derivative measures.",
|
||||
explanation: "It is instantaneous rate of change.",
|
||||
correctAnswer: "The instantaneous rate of change.",
|
||||
correctAnswer: "The instantaneous rate of change at a point — the limit the slopes converge to.",
|
||||
});
|
||||
assert.equal(res.success, true);
|
||||
const empty = await boundaryParse(probeExplainTool, {
|
||||
question: "q",
|
||||
explanation: "e",
|
||||
correctAnswer: " ",
|
||||
});
|
||||
assert.equal(empty.success, false);
|
||||
|
||||
Reference in New Issue
Block a user