claude-study-mode
Health Uyari
- License — License: MIT
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Low visibility — Only 5 GitHub stars
Code Basarisiz
- rm -rf — Recursive force deletion command in install.sh
- fs module — File system access in src/hooks/study-activate.js
- fs.rmSync — Destructive file system operation in src/lib/state.js
- os.homedir — User home directory access in src/lib/state.js
- process.env — Environment variable access in src/lib/state.js
- fs module — File system access in src/lib/state.js
- child_process — Shell command execution capability in test/guard.test.js
- fs.rmSync — Destructive file system operation in test/guard.test.js
- process.env — Environment variable access in test/guard.test.js
- fs module — File system access in test/guard.test.js
Permissions Gecti
- Permissions — No dangerous permissions requested
Bu listing icin henuz AI raporu yok.
Strict-tutor mode for Claude Code — teaches one concept at a time, quizzes you, reviews your code, and hard-blocks Claude from writing code for you.
Study Mode
A Claude Code plugin that turns Claude into a strict tutor instead of a chatbot — and enforces it.
When you ask Claude to help you learn something — finetune a LoRA, pick up Go, run an
experiment to understand it — normal Claude just does it. It writes all the code, runs ahead in
auto mode, and hands you output you don't understand. You end up with a working repo and zero
new skill.
Study Mode flips that. Claude becomes a demanding teacher: it paces one concept at a time,
verifies you actually understand before moving on, gathers real resources, reviews your
code — and refuses to write code for you, even when you ask.
That refusal isn't a polite suggestion in a system prompt you can argue with. It's aPreToolUse hook that denies Claude's file-writing tools while the mode is on. You can't
talk it into doing the work for you. That's the whole point.
Why not just the built-in "Learning" output style?
Claude Code ships a soft Learning style that asks you to fill in some code. It's a persona —
insist hard enough and Claude writes the code anyway. Study Mode adds the two things that make
it actually work:
- Hard enforcement — a hook blocks
Write/Edit/NotebookEdit, not just a prompt. - Checkpoint pacing — a session state file tracks where you are so Claude can't run
ahead; it must verify understanding (/quiz) before advancing.
Install
/plugin marketplace add codeprakhar25/claude-study-mode
/plugin install study-mode@study-mode # choose "user" scope to use it everywhere
Restart Claude Code, then type study on. Requires node on your PATH (the hooks run on node).
git clone https://github.com/codeprakhar25/claude-study-mode
cd claude-study-mode
bash install.sh --statusline # symlinks into ~/.claude/plugins, wires the status badge (needs jq)
Usage
study on # activate study mode (strict level)
study lite # activate, allow ≤3-line pseudocode hints
study off # back to normal Claude
/study learn Go # start a learning session — builds a concept path, gathers resources
/quiz # prove you understand the current concept before moving on
/progress # on-demand diagram: current concept map + lifetime summary
Levels
| Level | Claude may… |
|---|---|
| strict (default) | give concepts, direction, and review only — no code, no pseudocode |
| lite | also sketch ≤3 lines of pseudocode/skeleton as a hint — never a working file |
In both levels, you write all the code; Claude reads and critiques it but never writes it.
How it works
| Component | Role |
|---|---|
SessionStart hook (study-activate.js) |
Injects the strict-tutor persona when the mode is active, so it survives restarts. |
UserPromptSubmit hook (study-tracker.js) |
Parses study on/off/strict/lite; re-injects the tutor reminder each turn so it never drifts. |
PreToolUse hook (study-guard.js) |
The enforcement core — denies Write/Edit/NotebookEdit while active (except inside the central ~/.claude/study/ dir). |
/study skill |
Assesses your level, builds an ordered concept path, gathers real resources, teaches concept 0, sets a checkpoint. |
/quiz skill |
Grills you on the current checkpoint; advances only on a genuine pass. On a pass it records the concept to the lifetime ledger; on the final pass, emits a visual end-of-session report. |
/progress skill |
On-demand diagram (read-only): the current topic's concept map plus a lifetime summary of every concept you've passed across all projects. |
Read / Grep / Glob / WebSearch are never blocked — so Claude can review your code and
pull up canonical docs.
State
All study state lives centrally under $CLAUDE_CONFIG_DIR — nothing is written into your
repos, so there's no .study/ dir to gitignore.
- Global toggle:
$CLAUDE_CONFIG_DIR/.study-state.json({active, level}) plus a hardened.study-activesidecar the statusline reads. - Per-project session:
$CLAUDE_CONFIG_DIR/study/sessions/<slug>.json—{topic, plan, checkpoint, passed, cwd}, keyed by project path. - Lifetime ledger:
$CLAUDE_CONFIG_DIR/study/history.jsonl— append-only, one line per
concept you pass, across every project. This is what/progresssummarizes. Honest record
only — concepts, topics, dates; no streaks or XP.
While the mode is on, the central study/ dir is the only place Claude may write (a legacy./.study/ is still accepted so older sessions keep resuming). Everything else is denied.
License
MIT — see LICENSE.
Yorumlar (0)
Yorum birakmak icin giris yap.
Yorum birakSonuc bulunamadi