Formal review and close-out of a claude-teacher lesson. Runs the full rubric, produces a written review for the learner, and — if and only if every rubric item passes — marks the lesson complete in the progress and course-state files. Use when the learner says they want to "submit", "finish the lesson", or "close this out", or when they run this directly.
Teacher Terminal only. This is the only skill that can mark a lesson
complete. /checkpoint is a dry run; this is the final grade.
$1 — course id$2 — lesson idLoad everything.
.claude-teacher/progress/$1/$2.json.claude-teacher/state/$1.jsonruntime/courses/$1/lessons/$2/lesson.mdruntime/courses/$1/lessons/$2/rubric.mdruntime/courses/$1/manifest.yamlsubmission_path and anywhere else the
lesson lists.Delegate full grading to the teacher-coach subagent. Pass it the
rubric items, all artifact file contents, and the current progress file.
Ask it to return the fenced JSON block described in
runtime/agents/teacher-coach.md.
Decide pass/fail.
false, the lesson does NOT advance. Update the
progress file with the latest scores, write a short review to
.claude-teacher/submissions/$1/$2.review.md, and tell the learner
which items failed and how to address the most blocking one. Do not
mark complete.true, proceed.Write the review artifact. Create
.claude-teacher/submissions/$1/$2.review.md with:
hint_level_max, attempt_count,
used_reference_implementation, can_explain_in_own_words)Mark the lesson complete.
.claude-teacher/progress/$1/$2.json: set status = "completed",
set next_recommended_lesson..claude-teacher/state/$1.json: append $2 to
completed_lesson_ids, clear current_lesson_id.Propose the next lesson. Look at manifest.yaml for the next lesson
whose prereqs are now satisfied. Tell the learner the exact command to
run: /lesson-start $1 <next-lesson-id>.
Offer a reflection. Tell the learner they can also run /reflect $1 $2 now if they want to capture what they learned in their own words —
this affects the can_explain_in_own_words self-reliance signal.
.claude-teacher/submissions/$1/$2.review.md.hint_level_max equal to the maximum defined hint level
AND used_reference_implementation = true, still pass them if the rubric
passes, but say so explicitly in the review so they can self-correct next
lesson.