anthropics/study-plan
> Build or update a long-term bar prep (or exam prep) study plan — phases, subjects weighted by weakness, daily session schedule, adaptive to session history in study-plan.yaml. Use when the user says "build a study plan", "plan my bar prep", "schedule my studying", or "how should I study for [X]".
npx skills add https://github.com/anthropics/claude-for-legal --skill study-plan
~/.claude/plugins/config/claude-for-legal/law-student/CLAUDE.md → bar jurisdiction, exam format, bar date, weak subjects, target study hours/day, prep course.~/.claude/plugins/config/claude-for-legal/law-student/study-plan.yaml if it exists.--build (default if no plan exists): walk the inputs gate (exam, subjects, hours/week, days off, methods). Build the phase structure + daily schedule for the first two weeks. Write study-plan.yaml.--update (default if plan exists): re-read session_history, adjust subject priorities and weekly_hours, fill in the next stretch of daily schedule.--status: what's scheduled today / this week, score trend, subjects slipping, next scheduled session per subject.--cram: force cram mode — 80/20 high-yield prioritization, daily MBE volume, taper last 2-3 days.Sitting down to study and not knowing what to study is how weeks disappear. This skill builds a plan — weeks to exam, sessions per day, subjects per week, session types — and then adapts as the student actually does the sessions. It is a living plan, not a calendar export.
It also gives downstream skills (bar-prep, flashcards, drill, irac) a shared schedule to honor, so the student isn't asked "what do you want to study today" every time they open a session.
A plan is opinion, not doctrine. The skill states clearly what's an estimate:
[UNCERTAIN — past frequency is not a prediction].~/.claude/plugins/config/claude-for-legal/law-student/CLAUDE.md:
~/.claude/plugins/config/claude-for-legal/law-student/study-plan.yaml if it exists — extend, don't overwrite.
> What are we building a plan for?
>
> 1. Bar exam (you have a bar date in mind)
> 2. A specific law school exam or set of finals
> 3. General semester study cadence (outlining, reading, drilling across all classes)
For (1) bar: read bar date from practice profile, confirm. If no bar date captured, ask.
For (2) law school exam: ask which class, what date, what format.
For (3) semester: ask for the term-end date as the anchor.
Ask and wait. Do not bulk all questions into one prompt and move on.
> You said [N] hours per week. Before I build this, tell me what else is in your week — job (hours/week), family (kids, caregiving), commute, workout, therapy, clinic, anything meaningful. The plan should fit your life, not the other way around. A plan you can't follow is worse than a lighter plan you can.
Wait for the answer. Then sanity-check the stated hours against their reported load:
> That's ~[X] hours/day across [N] study days, on top of [job + family + commute + other]. In my experience that's [realistic / tight / unsustainable]. Want to adjust the hours/week target before I build, or keep them and see how week 1 goes?
Do not skip this step even if the practice profile's target hours number was already captured at cold-start. The profile captures what the student said; the life-context check captures whether it's sustainable. If the check produces a lower number, use the lower number for the plan and note the adjustment in the confidence_flags block.
If the student declines to share life context ("just build it"), respect that — but add a confidence_flags entry: "Life-context check declined; plan assumes [N] hours/week is sustainable. Revisit at end of week 2 if adherence is below [X]%."
If ~/.claude/plugins/config/claude-for-legal/law-student/CLAUDE.md → Prep course names a structured commercial prep course (i.e., is NOT self or N/A), the student already has a prep-course calendar. This skill's plan must choose one of two roles — it cannot run a full parallel curriculum alongside the prep course without burning the student out.
Ask, one question, wait:
> Your profile says you're on [prep course name]. They publish a day-by-day calendar with every subject and task scheduled. Two ways this plan can work — pick one:
>
> 1. Supplement. The prep course is your primary curriculum. This plan fills gaps: extra MBE drilling on your weak subjects, targeted essay practice, flashcard loops on the topics you're missing. I won't rebuild the prep-course calendar; I'll layer on top of it.
> 2. Replace. You're not following the prep-course calendar (maybe because its pacing doesn't work for your life). I'll build the whole plan — subjects, hours, phases, schedule — and you drop the prep-course calendar.
>
> Don't pick both. Running two full curricula against each other is how students blow up in week 4.
Wait for the answer. Record it in the yaml as prep_course_mode: supplement | replace.
If supplement: the plan's daily schedule is lighter — it only adds weak-subject drilling and targeted practice, does not duplicate prep-course coverage. Flag in confidence_flags: "Supplement mode — this plan assumes you're on track with [prep course] for primary coverage. If you fall behind on the prep course, tell me and we'll re-plan."
If replace: build the full plan as specified below.
If the student's prep course is self or N/A, skip this step — there's nothing to supplement.
Calculate weeks-to-exam from today's date. Then:
Normal mode (4+ weeks out):
Cram mode (< 4 weeks out):
Write to ~/.claude/plugins/config/claude-for-legal/law-student/study-plan.yaml:
plan_type: bar # or law-school-exam or semester
exam_date: 2026-07-28
jurisdiction: CA
exam_format: state-specific # or NextGen / UBE
created: 2026-05-08
last_updated: 2026-05-08
weeks_to_exam: 12
hours_per_week: 25
days_per_week: 6
mode: normal # or cram
phases:
- name: learning
start: 2026-05-08
end: 2026-06-20
focus: outlining, flashcards, introductory MBE
- name: drilling
start: 2026-06-21
end: 2026-07-18
focus: MBE volume, essay practice, simulated conditions
- name: review
start: 2026-07-19
end: 2026-07-27
focus: weak-subtopic review, full practice exams
subjects:
evidence:
priority: high # weak
weekly_hours: 5
methods: [mbe, flashcards, essay]
con-law:
priority: medium
weekly_hours: 3
methods: [mbe, outline-review]
# etc.
schedule:
- date: 2026-05-08
day: Thursday
sessions:
- subject: Evidence
method: outline-review
duration_min: 90
- subject: Evidence
method: mbe
duration_min: 60
n_questions: 25
- date: 2026-05-09
day: Friday
sessions:
- subject: Contracts
method: flashcards
duration_min: 45
- subject: Contracts
method: essay
duration_min: 60
# etc.
session_history: [] # appended by bar-prep, flashcards, drill, irac as sessions complete
Header — required on every in-chat presentation and on any separate prose-format plan document written alongside the YAML. The first line of the summary (and the first line of any study-plan.md companion file) must be the verbatim header from plugin config ## Outputs:
STUDY NOTES — NOT LEGAL ADVICE
The header does not go inside the YAML itself (it's a data file), but it belongs on the prose summary you show the student and on any human-readable plan document you save next to the YAML. This is not a disclaimer afterthought — it is the output's identity. Do not omit, rephrase, or relocate it.
Summarize the plan in prose (not raw YAML) before saving, with the header on top:
> STUDY NOTES — NOT LEGAL ADVICE
>
> Here's what I built. [X] weeks to the [exam]. [Y] hours/week across [Z] days. Weak subjects (Evidence, Contracts) get 2x the hours. Three phases: learning through [date], drilling through [date], review the last [N] days. I've scheduled the first two weeks day-by-day. Beyond that it's allocated by week — I'll fill in the daily schedule as you complete sessions, so the plan adapts to where you actually are.
>
> Does this feel right? Too ambitious? Too light? Missing a subject?
Adjust based on the answer. Then write.
After each session (via bar-prep-questions, flashcards, drill, irac), the corresponding skill appends to session_history:
session_history:
- date: 2026-05-08
subject: Evidence
type: bar-prep-mbe
n_questions: 10
score: 6
weak_subtopics: [hearsay-exceptions, character-evidence]
On the next /law-student:study-plan --update run (or when any skill detects the plan is stale):
priority and weekly_hours.--build (default) — fresh plan
--update — re-read session_history and adjust weightings, fill in upcoming daily schedule
--status — what's on deck today / this week, what's the score trend, what's slipping
--cram — force cram mode even if more than 4 weeks out (user override)
/law-student:session <subject> <n> writes results to this plan's session_history./law-student:bar-prep-questions reads the plan to know which subject is scheduled for today./law-student:flashcards can --session <n> and results land in the plan./law-student:socratic-drill and /law-student:irac-practice session completions also append.Take anthropics/study-plan from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.