Set up a repository end to end
Everything in this course, applied to the link shortener from lesson 0, in the order you would actually do it.
Lesson 0 promised a repository where Claude Code works the way you want. This is that repository, and every piece of it is something you built alone earlier.
The files
link-shortener/
CLAUDE.md the rules of this project lesson 10
.claude/
settings.json permissions and the hook lessons 16, 18
commands/bug-hunt.md the prompt you keep reusing lesson 12
skills/release-notes/SKILL.md a procedure, loaded when needed lesson 13
agents/bug-hunter.md search that stays out of your context lesson 20
hooks/hook.py the rule that cannot be argued with lesson 19
.github/workflows/claude.yml a reader for unattended work lesson 24
.mcp.json tools the whole team gets lesson 25
Eight files. Six of them are under fifteen lines. None of it is framework: it is the conventions you would otherwise repeat, written down where the tool reads them.
The order that works
| Step | Why it comes here |
|---|---|
1. /init, then cut it down | You need a CLAUDE.md before anything else benefits from one |
| 2. Deny rules | The cheapest safety in the course, and it takes two lines |
| 3. Work normally for a week | The next four files should come from real friction, not from a checklist |
| 4. A command for the prompt you retyped | Because you now know which one that is |
| 5. A skill for the procedure you explained twice | Same reason |
| 6. A hook for the rule you cannot afford to lose | Once you know which rule that is |
| 7. Review in CI | When work starts happening that you did not watch |
Doing this in one afternoon produces a configuration that describes a project you imagined. Doing it over a fortnight produces one that describes the project you have.
The bug, one more time
Lesson 23 fixed the collision in four turns with nobody watching, which is the fastest way to do it and not the way you would learn anything. Undo that fix and do it again by hand: plan it in plan mode, read the plan and push back on it, let it edit under accept edits, watch the hook refuse to touch store.py, then open a pull request and read what the review says. Every part of this course shows up in that one small change.
What this course left out
Named so you know it exists, from the same documentation this course was built against.
| Left out | What it is |
|---|---|
| The Agent SDK | Claude Code as a library, in Python or TypeScript. Thirty one pages of its own, and a different job from using the tool |
| Enterprise deployment | Managed settings, LLM gateways, self-hosted environments, Bedrock, Vertex and Foundry |
| IDE and platform variants | VS Code, JetBrains, the desktop app, Slack, the web, mobile. The loop is identical; the interface is not |
| Agent teams in depth | Experimental, and off unless you set an environment variable |
| Cross-session messaging and channels | Sessions that pass findings to each other |
| Output styles in depth | Changing how it writes back to you |
| Sandbox environments | Dev containers and virtual machines, a harder boundary than the Bash sandbox |
| Monitoring and analytics | OpenTelemetry, usage dashboards, spend limits |
You are done
You can explain what happens between your prompt and a file changing on disk. You can steer a session, undo it, and keep it from forgetting. You can write down what your project expects so it does not have to be said again, package a procedure, and enforce the one rule that must not be broken. And you can send work off to run without you and know what is standing between it and a mistake.
- Fix the collision bug in the shipped project, using plan mode and a hook.
- Do step 1 and 2 of the order above in a repository you actually work in, today.
Every expert started right here.