Skip to content

About

Mastering Claude Code — a guided workshop from first prompt to black belt, on one real codebase (nextacademy.io)

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

nextacademy.io

Mastering Claude Code

Learn What's Next. Today.

Adam Furmanczuk · nextacademy.io
From first prompt to black belt, on one real codebase.

Slides: mastering-claude-code.vercel.app


Repository

What this is

A guided workshop on Claude Code. You start with no experience. You end with the skills of an expert: context engineering, reasoning and effort, planning boundaries, measurable verification, skills, subagents, agent teams, dynamic workflows, hooks, MCP, bounded /goal runs, worktrees, /batch, headless runs in CI, the Agent SDK, output styles, loops, background sessions, routines, and your own MCP server.

The trainer explains and shows. Then you do it on your own machine. Every task has a reset branch, so nobody gets stuck.

The app you build

CLASH is a small social app for Berlin. Clashes happen at a place and a time on a map. People join, hosts accept or reject, everyone gets notified.

In the first half you build CLASH yourself with Claude Code, from an empty repo and a spec. In the second half you work on the finished reference CLASH and learn to control and orchestrate Claude Code on it.

Who this is for

Developers who want to use Claude Code well. No Claude Code experience needed. You should be able to read TypeScript and use git.

Setup

Do this before the workshop: docs/SETUP.md.

git clone https://github.com/pawsaw/clash
cd clash
git checkout 01-start
claude --version

The road

Part Belt Tasks
I — Foundations White 01
II — Build CLASH Blue 02 · 03 · 04 · 05
III — Control the context Brown 06 · 07 · 08 · 09 · 10
IV — Orchestrate and let go Black 11 · 12 · 13 · 14 · 15 · 16 · 17 · 18 · 19

Main line, deep dives and excursions

The main line is Claude Code itself. Some blocks are optional and sit in an appendix at the end of the deck:

  • A deep dive goes deeper into a Claude Code mechanic: the effort lab, the sandbox, automate (task 18).
  • An excursion covers a method or framework outside Claude Code: Next.js, Example Mapping (task 09), coordination patterns, TDD (task 11), building an MCP server (task 19), Spec Kit and BMAD.

On the slides, a chip in the top-right corner jumps into a block ("Deep dive →" or "Excursion →"), and the block's last slide has a chip back to the main line. Skip a block, and the next task's reset branch lets you go on.

Tasks

# Task Part Reset branch
01 Setup and first conversation I 01-start
02 Foundation II 02-start
03 Auth and clashes II 03-start
04 Venues, map, people II 04-start
05 Finish and ship II 05-start
06 Context and CLAUDE.md III 06-start
07 The clash-feature skill III 07-start
08 Subagent audit III 08-start
09 Example Mapping and the discover skill · excursion III 09-start
10 Path-scoped rules III 10-start
11 The TDD inner loop · excursion IV 11-start
12 Team and workflow audit IV 12-start
13 Hooks IV 13-start
14 The browser closes the loop IV 14-start
15 Letting go IV 15-start
16 Agent SDK IV 16-start
17 Capstone IV 17-start
18 Automate · deep dive IV 18-start
19 Build your own MCP · excursion IV CLASH's 19-start

Standalone index: tasks/README.md. What each branch contains: docs/BRANCHES.md.

Reset branches

NN-start in your CLASH clone is the state at the start of task NN. If you fall behind, do not debug. Reset and continue:

git stash -u          # keep your own work, including new files, if you want it
git checkout 04-start

CLASH's 01-start is an empty CLASH repository with the spec. CLASH's 06-start is the finished reference CLASH. clash-conference has one reset branch of its own, 19-start.

What you will have built

  • CLASH, built by you with Claude Code, and compared against the reference.
  • A CLAUDE.md grounded in real invariants, a reusable clash-feature skill, a hook set.
  • An authorization audit run three ways: subagent, agent team, dynamic workflow. With the fix merged.
  • A browser test suite and a measured performance fix.
  • The audit running headless in CI, a worktree flow, and a small Agent SDK program.
  • One feature of your choice, shipped with everything above.
  • Claude Code working with nobody at the keyboard: an output style, a goal, a loop, a background session, a routine in the cloud.
  • Your own MCP server on CLASH, and a second app, clash-conference, that publishes its talks as clashes through it.

Slides

Live deck: mastering-claude-code.vercel.app. It is redeployed automatically whenever the slides change (a Claude Code Stop hook in the workshop repository's .claude/settings.json runs .claude/hooks/deploy-slides.sh).

cd slides
npm install
npm run dev        # opens the deck
npm run build      # also exports dist/mastering-claude-code.pdf

For trainers

FACILITATOR.md holds the talking points, demo scripts and pitfalls per part. Answer keys live in workshop-artifacts/.

Create a new task from the shared template, or check that task structure and theory links still match:

npm run task:new -- 15 My new task
npm run task:new -- My new task    # picks the next task number
npm run task:check

The slide base URL defaults to the deployed workshop. Override it when testing new aliases locally or if the deployment moves:

SLIDES_BASE_URL=http://localhost:3030 npm run task:check
SLIDES_BASE_URL=http://localhost:3030 npm run task:new -- 15 My new task

With a localhost override, the linter accepts both existing deployed links and local links. CI still uses the deployed URL by default, so a localhost link cannot be committed unnoticed.

The speaker notes come in English and German. They live in slides/notes/en/ and slides/notes/de/. The slides are the same in both languages. Only the notes change. Pick the language when you start the deck:

cd slides
npm run dev                  # English notes (default)
npm run dev -- --lang=de     # German notes
npm run build -- --lang=de   # German build, also exports dist/mastering-claude-code.de.pdf
npm run export -- --lang=de  # German PDF only
npm run check:notes          # both languages still match: note keys, [click] markers, commands

Resources

License

© nextacademy.io, a project of SunsetPicnic UG (haftungsbeschränkt). All rights reserved. See LICENSE.

About

Mastering Claude Code — a guided workshop from first prompt to black belt, on one real codebase (nextacademy.io)

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages