study-eval
Skill0 starsChanged 43 days agoMITView on GitHub
Build, deliver and grade an evaluation for the current session of the user's active study plan (from study-new) — session quiz, re-evaluation after a failed one, checkpoint, full mock exam or integrative exercise — following the plan's protocol: questions anchored in the session's sources, "?" marks for guesses, score and pattern first, then errors corrected one at a time, concepts tracked until consolidated. Use whenever the user says "hazme la evaluación", "evalúame", "quiz me", "test me", asks for a mock exam / simulacro / practice test, or wants to check what they learned in a study session. Answer mode: `--clicks` (choose options in AskUserQuestion dialogs) or `--text` (all questions in one message, answers typed); by default clicks up to 12 questions and text above that (mocks, diagnostics), e.g. `/study-eval mock --clicks`. Also honour "con clics" / "en texto" said in words.
In this repository5 other files it gives its agents.
- study-closeSkill
- study-newSkill
- study-nextSkill
- study-sharedSkill
- study-statusSkill
The file
We split this skill into the rules it gives an agent
3 rules. About 0 are common, 0 are distinctive, and 3 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈0
Distinctive · estimate
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 34
Read $SHARED/references/protocol.md in full, every time: it is short and it is the contract.
- Very specific: line 35
Read thresholds and sizes from PLAN.md's frontmatter (threshold_*, eval_session_min/max, minutes_per_question, session_minutes).
- Very specific: line 50
Anchor every question in a source of the session: Never reuse a scenario already used for the same concept (check the result region and the …
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
/study-eval — evaluate the current session
An evaluation here is not a quiz for its own sake. Its job is to find what the user believes that
is wrong and fix it one idea at a time. Everything in the protocol (the ? marks, the pattern
before the list, one correction at a time, re-asking until consolidated) exists because that is
how a misconception actually gets replaced.
$ARGUMENTS may force a type (mock, checkpoint, integrative, diagnostic) and an answer
mode, in any order:
| Flag | Answer mode |
| (none) | auto: clicks for 12 questions or fewer, text above that |
--clicks | AskUserQuestion dialogs, whatever the size |
--text | one message with every question; the user types 1. A and ? for guesses |
The same choice said in words ("con clics", "en texto", "all at once") counts as the flag.
Step 0
SHARED="$HOME/.claude/skills/study-shared"; SS="$SHARED/scripts/study_state.py"
PLAN=$(python3 $SS registry resolve) || exit
TODAY=$(python3 $SS today)
python3 $SS next "$PLAN" # the current session is the first non-closed oneRead $SHARED/references/protocol.md in full, every time: it is short and it is the contract.
Read thresholds and sizes from PLAN.md's frontmatter (threshold_*, eval_session_min/max,
minutes_per_question, session_minutes).
Decline gracefully if the session is pending ("open it first with /study-next") or has
eval_type: none ("review sessions have no evaluation: /study-close when you are done").
Step 1 — build it
- Type: the session's
eval_type, unless$ARGUMENTSforces one. Astudiedsession witheval_passed: falsegets a re-evaluation: new questions only on itsweakitems, sized per protocol.md (2 per concept, min 4, max 10). If the review just happened, recommend doing it at the start of the next sitting; if the user wants it now, do it and note that in the result. - Size and review quota per protocol.md; fill the quota from PLAN.md's
conceptsregion. - Format follows
goal_type: mirror the real exam forexam; add explain-back, find-the-bug and write-the-command items otherwise. - Anchor every question in a source of the session. Never reuse a scenario already used for
the same concept (check the
resultregion and the log). - Draw the answer key before writing any option (
python3 $SS answer-key …, protocol.md, Answer positions). Correct options go exactly where the key says. This is not optional: the correct answer's position is never yours to choose. - Deliver in the answer mode resolved above (protocol.md, Delivery). Clicks: batches of up
to 3 questions plus the multi-select guess question, numbered globally; open items and
questions with more than 4 options go in plain text after the batches. Text: everything in one
message. Say the mode in one line when you start, and that the other one exists
("Choices to click;
--textgets them all in one message"). For amock, state the time limit (the real exam's) and ask them to time it.
Step 2 — grade
- Score, breakdown by area, and the pattern. Guessed-right answers count as correct for the score and threshold, and are reported separately (they count as errors for concepts).
- Void any question you now see was ambiguous or wrong; say so; drop it from the denominator.
- Errors one at a time, simplest first, waiting for the user between each: analogy if it
helps, the source, a practice check if the area's level allows. Practice commands must run
as-is: resolve identities first and never put
<placeholders>in a code block (protocol.md, Commands in corrections). Verify any fact that is not already in the sources. - Pass or fail against PLAN.md's threshold for this type.
Step 3 — write, all together
python3 $SS set "<session-file>" eval_score="6/6" eval_passed=true eval_date=$TODAY eval_attempts=+1 status=evaluated # status only on pass; "+1" increments
python3 $SS log "$PLAN" "| $TODAY | 07 | session re-eval | 6/6 | true | 0 | — |" # type: <eval_type>, plus " re-eval" when it is one
python3 $SS refresh "$PLAN"Then, with the Edit tool:
- the session's
resultregion: add a line for this attempt (never overwrite the earlier ones); - on a failed attempt, the
weakregion: one line per failed or guessed concept, with the correct idea in one sentence and the source link. This is what study-next reviews; - PLAN.md's
conceptsregion: new rows for new misses and for every?; status moves per the lifecycle, at most one step per evaluation.
Language: files in the plan's language, conversation in the user's (language.md). Questions
and options in the plan's language unless the user asks otherwise for this evaluation.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

