tutor

A spaced-repetition quiz tool for lessons saved in HABITS.md. Spaced repetition means reviewing information at increasing intervals to improve recall.

In plain words
What is it for?
Use it to answer new-situation questions, receive anti-sycophancy grading, rate recall from 1 to 4, and schedule future reviews.
Why use it?
It checks whether lessons were actually remembered and applied, rather than merely written down.

Skill for Claude CodeCodex

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add skills/choiyounggi/groundwork/tutor
Any agent
npx skills add choiyounggi/groundwork --skill tutor
Clone the repo
git clone --depth 1 https://github.com/choiyounggi/groundwork

Made for: Claude Code, Codex.

Per session 91 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 939 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00091 $0.00939
Opus 5 $0.00046 $0.00469
Sonnet 5 $0.00018 $0.00188
Haiku 4.5 $0.00009 $0.00094

Measured 2d ago against content hash 1656d735cae3, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

tutor scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.

The scan reads SKILL.md. This mod also ships 1 executable file (scripts/tutor-schedule.sh), listed below but not scanned — reading those needs a real analyzer, not pattern matching.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

plugins/memory-loop/skills/tutor/SKILL.md · 77 lines

How it starts

The opening of the file, as written. The whole thing — 77 lines — stays where its author put it; the contents beside it link to each section on GitHub.

memory-loop: tutor

habit distills lessons into HABITS.md; nothing before this tested whether the user actually internalized them. This closes that loop: spaced, diagnostic self-quizzing, driven by the merged tutor-schedule.sh scheduler.

Never hand-edit state

State lives in ~/.claude/groundwork/memory-loop/tutor/{items.json,reviews.jsonl}, owned by ${CLAUDE_PLUGIN_ROOT}/skills/tutor/scripts/tutor-schedule.sh. Every state change goes through the script's subcommands — due [--count], record <id> <rating>, add <id> <concept> <model_answer> <source_ref>, list. Never edit items.json or reviews.jsonl directly, even to fix a typo.

1. Sync items

Run list to see items already tracked (each carries a source_ref). Read HABITS.md and diff its 🟢/🛑 entries against those source_refs. For every entry with no covered item, propose a candidate — a one-line concept and a model_answer (the rubric: what a correct answer must cover) — and show it to the user before creating anything. They can veto or edit it. Only after their go-ahead, call add <id> <concept> <model_answer> <source_ref> with a short readable id (e.g. a slug of the concept) not already in list — item curation stays human-anchored, never bulk-generated from raw memory.

2. Select due items

Run due (already capped at tutorSessionCap, default 3 — don't ask for more this session). If it prints nothing, tell the user nothing is due and stop; don't invent a quiz just to have one.

3. Quiz loop — one item at a time

For each due id, in order:

  1. Ask a transfer question. From the item's concept, invent ONE novel scenario the user hasn't seen — never restate or re-ask about the original incident behind the lesson. Ask it, then wait for the answer before doing anything else.
  2. Grade against model_answer, held privately the whole time:
    • Diagnose the misconception (what's missing or wrong) before the verdict — never lead with "correct!"/"incorrect!".
    • Never praise a wrong or partial answer, even gently.
    • If the answer is genuinely ambiguous, say so and ask for more instead of forcing a verdict either way.
  3. Follow up. Ask one "왜?" or "이게 바뀌면 어떻게 돼?" (why / what-if) question — even when the answer was fully correct — before moving on.
  4. Rate together. Show this table and let the user confirm the rating — don't record a number they haven't seen:

Read the full file on GitHub · 77 lines

Files

What ships with it

1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 2d ago First seen · 77 lines · 91 tokens per session scan A 1656d735cae3

Subscribe to this mod's changes

tutor is a skill published in the GitHub repository choiyounggi/groundwork (3 stars, last pushed 2d ago), licensed MIT. It adds 91 tokens to every session and 939 once invoked, about $0.0005 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

Other skills, from other repositories

meta-synthesis

Reads /context/skill-sessions.md (the session log every execution skill writes to) to detect patterns that repeat across 2+ sessions, proposes new guardrails for /context/meta-patterns.md, and proposes brain updates for confirmed learnings. Run on-demand or roughly weekly — not a scheduled background job. Trigger on…

stefanoskarakasis/Product-Marketing-Skills · 106 tokens

meta-learn

Deliberate deep-dive capture for a completed skill session that deserves more than the automatic one-line row every T1/T2 skill already logs at its own close — asks three extraction questions (what surprised you, what was wrong, what was missing), turns real answers into specific, falsifiable pattern statements, and…

stefanoskarakasis/Product-Marketing-Skills · 132 tokens

quiz-me

Quiz the user on root cause and intended fix BEFORE writing any non-trivial code, then verify comprehension of every change after. Use when the user asks for a bug fix, refactor, or feature and wants to stay technically sharp instead of vibe-coding. Also use when the user says "quiz me", "don't let me vibe code", or…

emanzurv/quiz-me-skill · 82 tokens

new-course

Build a whole course on a subject, from scratch, on disk. A light survey of the domain, then the placement-quiz decision, then a deep multi-agent research pass that becomes an ordered taxonomy, a table of contents grouped into books and chapters, and a course folder that teaches itself. Use when the user asks for a…

smk-labs/claude-plugins · 152 tokens

self-assess

Placement quiz that finds someone's real level in a subject and writes it to PROFILE.md. Scenario questions in small batches, never definitions, with neutral options that cannot be eliminated by tone, plus self-report checks that separate knowing a word from being able to act on it. Use when the user asks to measure…

smk-labs/claude-plugins · 158 tokens

learn

The way into learnable and the way back. If a course already exists here it continues from exactly where the learner stopped, next lesson, next chapter, no re-planning. If nothing exists yet it asks whether to measure their level first or go straight to building a course. Use when the user says they want to learn…

smk-labs/claude-plugins · 136 tokens