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:
@@ -273,8 +273,7 @@ describe("display-math newline rule (Option A, owner ruling 2026-09-27)", () =>
|
||||
describe("parseExplainInput: the dock's display seam for explain calls", () => {
|
||||
const good = {
|
||||
question: "Explain why Mercury is hard to observe.",
|
||||
explanation: "It never strays far from the Sun in our sky.",
|
||||
correctAnswer: "Its small angular separation from the Sun.",
|
||||
correctAnswer: "Its small angular separation from the Sun — it never strays far from the Sun in our sky.",
|
||||
nodeId: "planet-order", // the teacher's field — STRIPPED by Clean, like quiz
|
||||
details: "Think about where it appears at dusk.",
|
||||
};
|
||||
@@ -282,7 +281,7 @@ describe("parseExplainInput: the dock's display seam for explain calls", () => {
|
||||
it("parses a valid call and strips the teacher-only nodeId", () => {
|
||||
const parsed = parseExplainInput(good)!;
|
||||
assert.equal(parsed.question, "Explain why Mercury is hard to observe.");
|
||||
assert.equal(parsed.correctAnswer, "Its small angular separation from the Sun.");
|
||||
assert.equal(parsed.correctAnswer, "Its small angular separation from the Sun — it never strays far from the Sun in our sky.");
|
||||
assert.equal(parsed.details, "Think about where it appears at dusk.");
|
||||
assert.ok(!("nodeId" in parsed), "the teacher-only key is cleaned away");
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user