You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The mentor agent can read learning state on every harness but records nothing: no MCP teach-back writer exists (CLI only), the persona's only concrete "record progress" line points at a different tool, and no harness has a trigger table telling the mentor when to write. Measured result: zero writer calls in 143,973 historical messages. So the "single recommended next action" the README promises is fed by flashcard/quiz reviews and CLI writes — never by what happened in a mentor session. Owner verdict 2026-09-23: this is the failure that matters most in a stranger's hands.
Council-validated plan: docs/architecture/learning-tier/plan-2026-09-19.md (§3, item 1). Arbitration: docs/architecture/learning-tier/council/arbitration-plan-2026-09-19.md. Owner decisions 1–5 recorded in plan §7 (#34, PR #36).
Branch
feat/learning-tier-fed, cut from main when S1-0 starts (decision 1). Item 2 (the Jev measurement) is not on this branch and its branch is not cut until 0.5.x closes.
Stages (plan §3 — each has its own finish)
S1-0 Capability lock (½ day). Receipt docs/architecture/learning-tier/receipts/s1-0-capability-lock.md with file:line per harness: the grant grammar as it is; W_auto = log_topic, log_struggle, record_teachback (new), record_plan_learning — named in every definition, prompt-per-call everywhere, no new pre-approval (decision 2); W_srs stays prompt-per-call; OpenCode's wildcard recorded as known and out of scope.
S1-RED (1 day). Failing tests per the plan's §5 table: test_mcp_teachback.py (tool absent), test_adapter_parity.py (names absent; no new grants), test_docs_harness_tier_contract.py (trigger table absent; persona still routes "record progress" to tutor-checkpoint), test_writer_isolation.py (guard, not RED if it already passes), no-trigger/duplicate replay.
S1-GREEN (1–2 days). The record_teachback MCP tool validating exactly as cli/_teachback.py does; agents/shared/recording-protocol.md with the fenced YAML trigger table, projected byte-identically to all six harness definitions with manifest hashes; every definition names each W_auto tool (Claude's socratic-mentor.mdtools: line names none today); persona's record-progress line repointed.
S1-SIM (1 day + harness logins — owner-gated). Scripted learner drives each installed harness through a teach-back episode; evidence bundle per harness; PR body lists which harnesses passed and names the skip reasons for the rest. Claim is exactly "pipe open on {passed}; plumbing proven for all six definitions; noticing observed once".
Noticing episode (observation, not gate — owner). By rule (decision 3): the first real study session after S1-GREEN reaches main, ten minutes, no logging asked for; date and adjudicated outcomes written into the S1-SIM receipt.
Definition of done (= plan §3 S1-SIM finish)
CI green (parity, contract, projection, isolation, replay); evidence bundles for the harnesses that ran; the claim stated as above; council implementation review (3 seats) before merge; full unit suite green; just lint; just typecheck. Closing this issue closes item 1 only; item 2 has its own issue on 0.6.0.
Why this is the MVP blocker
The mentor agent can read learning state on every harness but records nothing: no MCP teach-back writer exists (CLI only), the persona's only concrete "record progress" line points at a different tool, and no harness has a trigger table telling the mentor when to write. Measured result: zero writer calls in 143,973 historical messages. So the "single recommended next action" the README promises is fed by flashcard/quiz reviews and CLI writes — never by what happened in a mentor session. Owner verdict 2026-09-23: this is the failure that matters most in a stranger's hands.
Council-validated plan:
docs/architecture/learning-tier/plan-2026-09-19.md(§3, item 1). Arbitration:docs/architecture/learning-tier/council/arbitration-plan-2026-09-19.md. Owner decisions 1–5 recorded in plan §7 (#34, PR #36).Branch
feat/learning-tier-fed, cut frommainwhen S1-0 starts (decision 1). Item 2 (the Jev measurement) is not on this branch and its branch is not cut until 0.5.x closes.Stages (plan §3 — each has its own finish)
docs/architecture/learning-tier/receipts/s1-0-capability-lock.mdwith file:line per harness: the grant grammar as it is;W_auto=log_topic,log_struggle,record_teachback(new),record_plan_learning— named in every definition, prompt-per-call everywhere, no new pre-approval (decision 2);W_srsstays prompt-per-call; OpenCode's wildcard recorded as known and out of scope.test_mcp_teachback.py(tool absent),test_adapter_parity.py(names absent; no new grants),test_docs_harness_tier_contract.py(trigger table absent; persona still routes "record progress" totutor-checkpoint),test_writer_isolation.py(guard, not RED if it already passes), no-trigger/duplicate replay.record_teachbackMCP tool validating exactly ascli/_teachback.pydoes;agents/shared/recording-protocol.mdwith the fenced YAML trigger table, projected byte-identically to all six harness definitions with manifest hashes; every definition names eachW_autotool (Claude'ssocratic-mentor.mdtools:line names none today); persona's record-progress line repointed.main, ten minutes, no logging asked for; date and adjudicated outcomes written into the S1-SIM receipt.Definition of done (= plan §3 S1-SIM finish)
CI green (parity, contract, projection, isolation, replay); evidence bundles for the harnesses that ran; the claim stated as above; council implementation review (3 seats) before merge; full unit suite green;
just lint;just typecheck. Closing this issue closes item 1 only; item 2 has its own issue on 0.6.0.