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
An agent can make teaching artifacts over MCP but can't run a classroom: creation ships (#76's build_pathway, show_widget), in-chat delivery works for the conversational student, but roster assignment and results analysis exist only as app UI. The teacher context-switches out of the conversation for exactly the legs where an agent is most useful.
The three pieces
get_pathway_results(sessionId) — wrap the existing sessionReport aggregation (per-student rows, evidence strips, per-step outcomes — the data layer lands with design: warm-minimal tokens, and the evidence fixes underneath #77) and return structured rows plus a prose summary written for a model reader ("3 of 12 students are stuck on step 2 — all three missed the same misconception"). Privacy posture: default to anonymous ids crossing the host boundary, roster names opt-in — consistent with the identity stance (educator context may reach the edge; keep the default conservative).
assign_pathway(sessionId, students) — wrap /api/assign's child-session logic; return per-student links. Use ownerId (returned by build_pathway since feat: build_pathway over MCP, and a richer widget-to-agent channel #76) as the capability check so only the pathway's creator can assign it.
teacherNote on build_pathway — one-line: runPathway already accepts it; the tool just doesn't surface it.
Why this is the demo
Together these make the full journey conversational — build → assign → monitor → remediate ("give those three a re-teach activity" is get_pathway_results + show_widget). It's the Raina-shaped story: the teacher's copilot running on the same tool surface any tutor uses.
Sequencing
After the current stack (#75–#78) merges — depends on #76's tool and #77's aggregation. Coordinate with #92 (SDK transport migration): all of this touches api/mcp/route.ts, so ideally the new tools land on the migrated shared tool-definition module rather than growing the hand-rolled dispatch further.
An agent can make teaching artifacts over MCP but can't run a classroom: creation ships (#76's
build_pathway,show_widget), in-chat delivery works for the conversational student, but roster assignment and results analysis exist only as app UI. The teacher context-switches out of the conversation for exactly the legs where an agent is most useful.The three pieces
get_pathway_results(sessionId)— wrap the existingsessionReportaggregation (per-student rows, evidence strips, per-step outcomes — the data layer lands with design: warm-minimal tokens, and the evidence fixes underneath #77) and return structured rows plus a prose summary written for a model reader ("3 of 12 students are stuck on step 2 — all three missed the same misconception"). Privacy posture: default to anonymous ids crossing the host boundary, roster names opt-in — consistent with the identity stance (educator context may reach the edge; keep the default conservative).assign_pathway(sessionId, students)— wrap/api/assign's child-session logic; return per-student links. UseownerId(returned bybuild_pathwaysince feat: build_pathway over MCP, and a richer widget-to-agent channel #76) as the capability check so only the pathway's creator can assign it.teacherNoteonbuild_pathway— one-line:runPathwayalready accepts it; the tool just doesn't surface it.Why this is the demo
Together these make the full journey conversational — build → assign → monitor → remediate ("give those three a re-teach activity" is
get_pathway_results+show_widget). It's the Raina-shaped story: the teacher's copilot running on the same tool surface any tutor uses.Sequencing
After the current stack (#75–#78) merges — depends on #76's tool and #77's aggregation. Coordinate with #92 (SDK transport migration): all of this touches
api/mcp/route.ts, so ideally the new tools land on the migrated shared tool-definition module rather than growing the hand-rolled dispatch further.🤖 Generated with Claude Code