Owner design round 2026-10-01: every multiple-choice quiz answer now carries the learner's stated probability that his selected answer is correct — calibration data for the prober and teacher, the flow itself unchanged. Definition (owner ruling, after weighing chance-normalization): RAW probability. Sub-chance reports are diagnostic gold, not dead space — 'picked an option, believes it wrong' is a real state. The agents get the sophistication: new shared/25-confidence.md composes for both agents (chance level, sub-chance = distrusts the pick, correct+low = fragile, wrong+high = committed misconception, IDK = genuine gap). - question-core: AnswerRequest/QuestionAnswerData.confidence (quiz only, optional — old records valid), buildAnswer clamps and drops it on dontKnow, formatAnswerMessage states the line, CONFIDENCE_STOPS + DEFAULT_CONFIDENCE_INDEX exported. - question-dock: snapped slider below 'I don't know', above 'Your thinking' — native range over the stop INDEX so ←/→ step the uneven grid cleanly, Tab chain rows → slider → thinking, Enter submits from the slider too. Rests at 50 and always sends (owner: 50 must mean a real coin flip, never 'untouched'). 'I don't know' GRAYS it out — layout holds, no value sent. Deliberately untouched: explain free-recall card (quiz-only scope), answered-card rendering of confidence, ask flow.
Prompt fragments
System prompts are composed at agent construction (src/agent/teacher-agent.ts), one composition per agent — the probe/teach split (docs/probe-teach-split.md):
src/agent/system-prompt.md— the SHARED base: the agent intro, the voice, the philosophy (why the system exists), and the accuracy rule. The teaching method (Principle i / Principle ii, the click, the arc, the hedge) lives inteacher/05-method.md— teacher-only since the prober never teaches.- Every numeric-prefix
*.mdfragment in the agent's directory (prober/orteacher/), in sorted filename order, joined with---separators. The agent's own job and method LEAD the composition (the 2026-09-27 reorder). The loader enforces the numeric prefix (\d*-*.md) — other files (like this README) never enter the model's prompt. - The
shared/fragments, as a trailing appendix (tool/file/format mechanics).
Rules for adding a fragment:
- Name it with a numeric order prefix, inside the right agent directory.
shared/fragments compose into BOTH agents (after the base and their own fragments — a trailing appendix): cross-agent doctrine only, phase-neutral by construction:20-question-tools.md(tool MECHANICS only; what to ask is each phase's own doctrine),30-learner-files.md,40-formatting.md. The voice lives in the base (moved out of shared/ 2026-09-27). The "never reference the other agent's tools" rule below still applies, so shared fragments may only cover tools both agents actually hold.- One fragment per workstream — your brief tells you which filename you own.
- Document YOUR agent's tools/behaviors exactly; reference tool input field names verbatim (they must match the zod schemas).
- Keep it tight: fragments are always in context. No restating the base prompt.
- The two agents share one transcript but never one toolset — never reference the other agent's tools as if you had them.