AI Dev Workshop · Wallbox 2026

Claude Code Workshop

Before we start

Prerequisites

$ git clone https://github.com/nikeyes/ai-dev-workshop.git $ cd ai-dev-workshop $ docker compose build $ docker compose run --rm app uv run pytest
Block 1 · Step 1

Verify the environment

$ cd workshop-project $ claude --version $ claude "hello, just say 'ready'"
Rule

We do not continue until everyone has Claude Code working.

Block 1 · Step 1

Check Claude Code status

> /doctor
Doctor

Checks connectivity, credentials and CLI version.

> /status
Status

Shows the active model, accumulated cost and context used in the current session.

Tips

Did Claude Code close in the middle of a task?

$ claude --continue # Resume the last session $ claude --resume # Pick a previous session
Remember

Sessions are per folder.
Make sure you are in workshop-project before resuming.

Before, it took you 2 hours to write bad code.
Now it takes 2 seconds.
Block 1 · Step 2

Models and cost

Block 1 · Step 3 · Demo

Demo: CLAUDE.md in action

Block 1 · Step 3

Agent memory

Without CLAUDE.md

The agent starts every session from zero.
It is like hiring someone new every day.

With CLAUDE.md

The agent has persistent context: project conventions, how to validate changes, what to avoid.
You never have to repeat it again.

With Rules

Specific rules the agent always applies, organized by module or task type.

Block 1 · Step 3 · Best practices

What to put in CLAUDE.md?

Block 1 · Step 3 · Hierarchy

Where is the CLAUDE.md

Location Scope
~/.claude/CLAUDE.md All your projects — personal conventions
<root>/CLAUDE.md The full project (versioned, shared with the team)
<root>/CLAUDE.local.md The project, only your local copy (gitignored)
<subdirectory>/CLAUDE.md Only that module — useful in monorepos
.claude/rules/ Optional rules organized by file
Priority

The closer to the code, the more specific.
Subdirectory overrides project, project overrides global.

Block 1 · Step 3 · @imports

CLAUDE.md can import other files

# CLAUDE.md See @README.md for the project summary and @package.json for the available commands. # Additional instructions - Git workflow: @docs/git-instructions.md - Local overrides: @~/.claude/my-project-instructions.md
What is it for?

Keep the main CLAUDE.md short and import specific files depending on the context.
Local overrides (@~/.claude/...) are loaded only on your machine — they are never versioned.

Block 1 · Step 4

Context

> /context
/context

Shows how much context you have used in the current session.
You can enable it permanently in the status bar.

> /compact
⚠️ /compact — use with care

Claude runs it automatically when there is no space left.
It can lose critical context that you have not saved.
You can run it manually.

Block 1 · Step 4

Add context from another module

> /add-dir ../another-service
When to use it

When you need the agent to understand code from another module without opening a new session.
Useful in monorepos or when a change crosses services.

Alternative

If the other module has its own CLAUDE.md, Claude will read it automatically when you add the directory.

Block 1 · Step 5 · Demo

Allow & Deny

Block 1 · Step 5

Permissions

File Scope
~/.claude/settings.json Global — all your projects
.claude/settings.json Project — committed with the repo
.claude/settings.local.json Only you — not committed (add to .gitignore)
Priority

Local overrides project, project overrides global.

Block 1 · Step 6

Rewind — undo without fear

Block 1 · Step 7

Hooks — automatic guardrails

What they are

Commands that run automatically in response to agent actions.
The agent does not ask for them — they just happen.

Event Fires when... Good for
PostToolUse + Edit After every file edit Linter / formatter — runs while the file is in focus
Stop When the agent finishes its turn Build / tests — waits until all changes are done
Block 1 · Step 7 · Demo

Set up a hook with the agent

Block 1 · Step 8

Agents & Skills

The problem

Every person on your team reinvents the same prompts.
Skills are the way to share knowledge between sessions and between people.

What is a Skill

A file with instructions that the agent loads when it needs it.
It lives in .claude/skills/ and is activated with /name.

Agents

Claude can delegate subtasks to specialized sub-agents.
Each agent has its own context, tools and CLAUDE.md.

Block 1 · Step 8

Prompts, Skills, Subagents & MCP

Prompts Skills Subagents MCP
What it adds Step-by-step instructions Reusable procedures between sessions Task delegation with isolated context Connectivity with external tools
Persistence One conversation Between conversations Between sessions Continuous connection
Contains Natural language Instructions + code + assets Complete agent logic Tool definitions
Loaded Every turn Dynamically, when relevant When invoked Always available
Includes code No Yes Yes Yes
Good for Quick one-off requests Specialized reusable knowledge Specialized tasks with their own permissions Access to external data and systems
Block 1 · Step 8 · Demo

Skills in action

Block 1 · Step 8 · Useful skills

Skill examples

Skill What it does
/story-splitting Detects if a story is actually several stories in disguise
/hamburger-method Cuts into layers, generates options, picks the one that gives feedback fastest
/small-safe-steps Small increments, each one deployable on its own
If you repeat the same prompt more than 2 times

Turn it into a Skill.
That way the whole team shares it with no effort.

Anthropic Skill Creator

Generates skills automatically from a description.
anthropics/skills → skill-creator

Block 1 · Step 8 · Plugins

Plugins to group skills, agents, MCPs

Useful resources

Resources for AI-Driven Development

Block 2 — 1h

Your ticket, your repo

Block 2 · 1h

Your ticket, your repo

Block 2 · Guide

While you work

Working groups

Join an existing group

If you want to join an existing working group, you can contact:

Block 3 — 20 min

Retro

Block 3 · 20 min

Retro

Librecounter Analytics