Skip to content
/

claude-code-playbook (toy-crane)

claude-code-playbook-toy-crane · toy-crane/claude-code-playbook · ★ 3 · last commit 2026-05-26

Primitive shape 8 total
Skills 2 Subagents 3 Hooks 3
00

Summary

claude-code-playbook (toy-crane) — Summary

claude-code-playbook by toy-crane is a Korean-language Claude Code lecture site built with Next.js/Fumadocs (MDX) that doubles as a Claude Code plugin providing QA and migration skills for students. The project is primarily an educational content site (content/docs/ MDX) rather than a framework for general use; the plugin is a lightweight learning aid shipped alongside the docs site. It ships three specialized .claude/agents/: fact-check-reviewer (Opus model), style-reviewer (Sonnet), and korean-reviewer (Sonnet), each reading CLAUDE.md rules and returning table-formatted reports without making any edits. The CLAUDE.md enforces TDD for logic changes and portless proxy-based branch URLs for live preview; three worktree-lifecycle hooks (WorktreeCreate, WorktreeRemove, PreToolUse:Edit|Write) guard branch isolation. Two skills are published via a .claude-plugin/ manifest: /qna (lecture Q&A) and /migrate-to-copilot (bulk migration of Claude Code primitives to Copilot CLI format).

Differs from seeds: Closest to agent-os (Archetype 4 — markdown-scaffold + small command surface), but toy-crane adds a live web deployment, a publishing plugin manifest, and subagents with role-differentiated model selection (Opus for fact-checking, Sonnet for style/language). Unlike superpowers, which is a general-purpose skills framework, toy-crane's plugin exists purely to support students of a specific Korean lecture series and is tightly coupled to the site's MDX content structure.

01

Overview

claude-code-playbook (toy-crane) — Overview

Origin

A Korean-language Claude Code lecture course by toy-crane (GitHub: alwaysfun2183@gmail.com), hosted at https://docs.claude-hunt.com. The site serves students who are already comfortable with Cursor/Copilot and want to master Claude Code. Students share projects at https://claude-hunt.com.

Target audience

Developers with 2+ years of experience who have already used Cursor or GitHub Copilot; content is in Korean (한국어).

Philosophy

The project treats the repo as both a lecture-delivery platform (Fumadocs-based MDX site) and a Claude Code plugin. The plugin ships only the learning aids necessary to support the lecture content; no general-purpose agent framework is included. The CLAUDE.md makes this explicit:

"콘텐츠 작성 시 .claude/rules/ 의 규칙을 따릅니다." "새 레슨 작성·기존 레슨 수정 후에는 style-reviewer · korean-reviewer 에이전트로 일관성을 점검합니다." "로직 변경은 TDD로 진행 합니다 — 실패 테스트 → 최소 구현 → 리팩터 순서"

Distinguishing design choices

  1. Reviewer-only agents: All three agents explicitly refuse to make edits (직접 수정하지 않는다); they return table reports only. This reduces the risk of agents silently corrupting MDX lecture content.
  2. Model differentiation by role: fact-check-reviewer uses Opus for higher accuracy on API fact claims; style-reviewer and korean-reviewer use Sonnet.
  3. Worktree isolation hooks: Hooks enforce that edits only happen on the correct worktree branch, preventing cross-branch contamination when multiple lectures are in flight simultaneously.
  4. Plugin manifest for portability: The .claude-plugin/plugin.json + skill files let students install the Q&A assistant into their own projects without cloning the full lecture site.
02

Architecture

claude-code-playbook (toy-crane) — Architecture

Distribution

  • Type: Claude Code plugin (.claude-plugin/) + Next.js/Fumadocs site
  • Install: Via /plugin UI in Claude Code session → Marketplaces tab, or by adding to .claude/settings.json:
    { "enabledPlugins": ["playbook-essentials@claude-code-playbook"] }
    
  • Site dev: bun install && bun run dev (portless proxy → https://playbook.localhost)

Runtime requirements

  • Node.js / Bun (for the site)
  • Claude Code (for the plugin)
  • portless proxy for branch-based preview URLs

Directory tree

.
├── .claude/
│   ├── agents/
│   │   ├── fact-check-reviewer.md   (Opus, WebFetch/WebSearch tools)
│   │   ├── style-reviewer.md        (Sonnet, Read/Grep/Glob)
│   │   ├── korean-reviewer.md       (Sonnet, Read/Grep/Glob)
│   │   └── dev.md                   (dev server skill)
│   ├── commands/
│   │   ├── worktree-create.sh
│   │   ├── worktree-guard.sh
│   │   └── worktree-remove.sh
│   ├── hooks/
│   ├── rules/
│   │   ├── course-content.md
│   │   ├── writing-principles.md
│   │   ├── writing-checklist.md
│   │   ├── writing-korean.md
│   │   └── lesson-frame.md
│   └── settings.json
├── .claude-plugin/
│   ├── plugin.json
│   ├── marketplace.json
│   └── skills/
│       ├── qna/
│       └── migrate-to-copilot/
├── content/docs/               (MDX lecture content)
├── skills/                     (legacy location for qna, migrate-to-copilot)
├── src/                        (Next.js app)
└── supabase/                   (DB for student project sharing)

Target AI tools

  • Claude Code (primary, plugin-first)
  • Portless for branch-based preview isolation
03

Components

claude-code-playbook (toy-crane) — Components

Agents (3 in .claude/agents/, 1 additional)

Name Model Purpose
fact-check-reviewer opus Verify Claude Code CLI flags, model names, API references in MDX. Returns table of fact violations only; never edits.
style-reviewer sonnet Check writing-checklist.md compliance (tone, headers, frontmatter, bold). Returns table only; never edits.
korean-reviewer sonnet Detect English-translation-style awkward Korean in MDX. Returns suggestion table only; never edits.
dev unknown Dev server startup skill

Skills / Plugin skills (2, in .claude-plugin/skills/)

Name Purpose
/qna Korean lecture Q&A helper; reads lecture page content first, falls back to general Claude Code knowledge
/migrate-to-copilot Bulk conversion: .claude/commands/.claude/skills/, .claude/agents/.github/agents/, settings.json hooks → hooks.json

Hooks (3, in .claude/settings.json)

Event Matcher Script Purpose
WorktreeCreate (all) worktree-create.sh Set up dev environment when new worktree is created
WorktreeRemove (all) worktree-remove.sh Tear down dev environment on removal
PreToolUse `Edit Write` worktree-guard.sh

Rules (5 markdown files in .claude/rules/)

File Purpose
course-content.md Visual materials, callout, and fact-verification routing
writing-principles.md Lecture tone, sentence specificity, 6 information structure principles, bold self-check
writing-checklist.md Notation, headers, punctuation, frontmatter, bold assertion check
writing-korean.md Catalog of English-translation-style Korean expressions to avoid
lesson-frame.md Main lesson common skeleton slot specification

Scripts (3 bash scripts in .claude/hooks/)

Script Trigger
worktree-create.sh WorktreeCreate hook
worktree-guard.sh PreToolUse:Edit
worktree-remove.sh WorktreeRemove hook
05

Prompts

claude-code-playbook (toy-crane) — Prompts

Prompt 1: fact-check-reviewer agent (excerpt)

Source: .claude/agents/fact-check-reviewer.md

Technique: Role-bounded reporting + conservative false-positive bias

---
name: fact-check-reviewer
description: 강의 본문(MDX)에서 Claude Code CLI·플래그·설정, Claude API / Agent SDK, 주변 도구·환경에 관한 사실 주장을 공식 문서 기준으로 보수적으로 검증해 표로 리포트합니다. 직접 수정하지 않고 표만 돌려주므로 수정 권한은 호출자에게 남습니다.
tools: Read, Grep, Glob, WebFetch, WebSearch
model: opus
---

본 에이전트의 톤은 **보수적**이다. 확인 가능한 1차 출처로 100% 일치하지 않거나 검증 불가한 claim 은 모두 후보로 올린다. false positive 를 감수하더라도 누락하지 않는 것을 우선한다.

Key design choices:

  • Tool whitelist explicitly includes WebFetch and WebSearch — the only agent allowed to reach the web.
  • Model is opus — the most capable model for precise fact verification.
  • 직접 수정하지 않는다 (never edits directly) — edit authority stays with the human.

Prompt 2: korean-reviewer agent (excerpt)

Source: .claude/agents/korean-reviewer.md

Technique: Structured output contract + single table format enforcement

---
name: korean-reviewer
description: 한국어 강의 본문(MDX)에서 영어 번역체·어색한 표현을 찾아 자연스러운 한국어로 다듬을 후보를 제안합니다. 직접 수정하지 않고 표 형식 리포트만 돌려주므로, 수정 권한은 호출자(사람)에게 남습니다.
tools: Read, Grep, Glob
model: sonnet
---

## 출력 형식

다음 표 형식만 사용한다. 다른 산문이나 요약은 추가하지 않는다.

| 파일:라인 | 카테고리 | Before | 제안 After | 이유 |
|---|---|---|---|---|

- **카테고리**: A\~I 중 하나 (한 줄에 여러 패턴이 걸리면 가장 강한 것 하나만)
- 후보가 0개면 "어색한 표현 후보 없음" 한 줄만 출력한다.

Key design choices:

  • No WebFetch/WebSearch — language checking is purely lexical, no web lookup needed.
  • Explicit output contract: only the table, no prose, no summaries.
  • Pattern taxonomy (A–I) is defined in a separate rules file (.claude/rules/writing-korean.md) loaded at runtime.
09

Uniqueness

claude-code-playbook (toy-crane) — Uniqueness

Differs from seeds

Closest seed is agent-os (Archetype 4 — markdown scaffold, minimal primitives), but toy-crane diverges in three important ways: (1) it ships a live web product (Fumadocs site + Supabase) alongside the CLAUDE.md conventions, making it a real product with agentic authoring assistance rather than a pure template; (2) it uses explicit model-role differentiation (Opus for fact-checking, Sonnet for style/language), which only taskmaster-ai among the seeds does for different task types; (3) its subagents are deliberately read-only reporters, which is a stronger safety constraint than any seed framework enforces. It does not overlap with superpowers (no skills-only behavioral framework) or openspec (no spec/command mirror pattern).

Positioning

A niche project: a Korean Claude Code lecture site that also functions as a deployable Claude Code plugin for its students. Not designed for general-purpose developer adoption; the plugin's value is specifically tied to the lecture content at docs.claude-hunt.com.

Observable failure modes

  1. Single-author dependency: The repo is clearly a solo project; plugin quality depends on one maintainer's lecture updates.
  2. Korean-only content: Non-Korean speakers cannot use the lecture content; the plugin's /qna skill references Korean-language source material.
  3. Worktree guard is Claude Code-specific: The WorktreeCreate/WorktreeRemove hook events are Claude Code-specific; the /migrate-to-copilot skill exists precisely because students need to escape this lock-in.
  4. No structured test coverage for MDX content: The fact-checker is an LLM agent, not a deterministic validator; it can miss errors or produce false positives at any time.
04

Workflow

claude-code-playbook (toy-crane) — Workflow

Primary workflow: Content authoring

The framework's workflow is documentation-authoring, not feature-development.

Phase Actor Artifact
Draft lesson Author content/docs/**/*.mdx
Fact-check fact-check-reviewer agent (invoked manually) Table of fact violations
Style check style-reviewer agent (invoked manually) Table of style violations
Language check korean-reviewer agent (invoked manually) Table of awkward expressions
Fix issues Author Updated MDX
Preview bun run dev + portless proxy https://<branch>.playbook.localhost/learn/<slug>
Merge Git PR Published lesson

Approval gates

  • No automated approval gates beyond the worktree guard hook.
  • The three reviewer agents produce reports for human review; the author decides which issues to fix.
  • CLAUDE.md instructs: after modifying MDX, provide review URLs at the end of each response.

TDD scope

  • TDD is enforced for logic changes (component behavior, utility functions, route handlers).
  • MDX content, style/layout adjustments, and config file edits are explicitly excluded from TDD.
  • Workflow: failing test → minimum implementation → refactor.

Student workflow (plugin users)

  1. Install playbook-essentials@claude-code-playbook plugin.
  2. Use /qna for lecture Q&A in any session.
  3. Use /migrate-to-copilot to batch-convert project from Claude Code to Copilot CLI format.
06

Memory Context

claude-code-playbook (toy-crane) — Memory & Context

State storage

  • CLAUDE.md (project-level) — persistent instructions for all sessions; contains dev server URL, TDD rules, worktree conventions.
  • .claude/rules/*.md — 5 rule files loaded by agents at runtime via Read tool (loaded on demand, not injected globally).
  • No external memory store — no SQLite, Neo4j, vector DB, or JSON state files.

Context handoff mechanism

  • Worktree branching creates per-branch session contexts; the worktree guard hook prevents cross-branch context pollution.
  • Each reviewer agent is stateless: it reads the target MDX file fresh each time.

Compaction handling

  • No explicit compaction strategy documented.
  • The site content (content/docs/) is not loaded into context globally; agents fetch only the files they need.

Session persistence

  • Claude Code session history is stored in the standard ~/.claude/projects/ path.
  • No project-specific session management or journal files.

Student plugin context

  • The /qna skill references lecture pages by URL; students provide context by mentioning the lecture page.
  • No persistent memory of student progress.
07

Orchestration

claude-code-playbook (toy-crane) — Orchestration

Multi-agent pattern

  • Yes, but sequential and human-gated: the three reviewer agents are invoked one by one after content authoring, not in parallel. There is no orchestrator that fans them out automatically.
  • Each agent is read-only (reporting only); no agent spawns another agent.

Orchestration pattern

sequential — each reviewer is called independently by the author in sequence.

Isolation mechanism

git-worktree — portless proxy assigns per-branch URLs; the PreToolUse:Edit|Write worktree-guard hook enforces that file edits target the correct worktree.

Multi-model routing

Yes: fact-check-reviewer uses Opus; style-reviewer and korean-reviewer use Sonnet. This is explicit in each agent's YAML frontmatter (model: opus / model: sonnet). No config file routing — the model assignment is baked into the agent definition.

Execution mode

interactive-loop — author triggers reviewers manually during content creation.

Subagent definition format

persona-md — each agent is a markdown file with YAML frontmatter (name, description, tools, model).

Consensus

None — each reviewer is independent; no aggregation layer.

Max concurrent agents

1 at a time (human-triggered sequentially).

08

Ui Cli Surface

claude-code-playbook (toy-crane) — UI & CLI Surface

Dedicated CLI binary

None. No package.json#bin entry, no dedicated CLI tool.

Local web dashboard

Yes — the primary artifact of this repo is a Next.js/Fumadocs documentation site.

IDE integration

Claude Code plugin (playbook-essentials@claude-code-playbook) installable via Claude Code /plugin UI or enabledPlugins config.

Development tooling

Command Purpose
bun run dev Dev server via portless proxy
bun run build Production build
bun run types:check fumadocs-mdx + next typegen + tsc
bun run lint ESLint
bun run lint:links MDX internal link validation (pre-push hook)
bunx playwright test E2E screenshot tests

Observability

  • No audit log or agent activity log.
  • CLAUDE.md instructs the agent to print preview URLs after every MDX edit, but this is not a structured log.
  • Pre-push git hook runs bun run lint:links for MDX link integrity.

Related frameworks

same archetype · same primary tool · same memory type

Claude-Flow / Ruflo ★ 55k

Eliminates single-agent context limits and sequential bottlenecks by orchestrating fault-tolerant swarms of specialized AI agents…

Hermes Agent (NousResearch) ★ 168k

Self-improving personal AI agent with closed learning loop, 7 terminal backends, and messaging gateway — not tied to any AI…

OpenCode ★ 165k

Terminal-first AI coding agent with multi-model routing, native desktop app, and a typed .opencode/ configuration system for…

OpenHands ★ 75k

Open-source AI software development platform (open-source Devin alternative) with Docker sandbox isolation, 77.6% SWE-bench…

DeerFlow ★ 70k

Long-horizon superagent that researches, codes, and creates by orchestrating parallel sub-agents with isolated contexts in Docker…

oh-my-openagent (omo) ★ 60k

Multi-provider AI agent orchestration for OpenCode: escape vendor lock-in by routing Sisyphus (Claude/Kimi/GLM) and Hephaestus…