This project contains comprehensive training materials for teaching Claude Code to professional software developers. The course emphasizes practical, hands-on learning with real-world scenarios.
Claude Code does not natively read AGENTS.md (the convention used by Codex and other tools). To pick up shared cross-tool conventions in this repo, this file imports it explicitly:
@AGENTS.md
This is the recommended bridge pattern when a project needs to expose the same guidance to both Claude Code and AGENTS.md-aware tools without duplicating content.
slides.md: Main Slidev presentation with progressive learning pathlab_handout.md: Six progressive hands-on labs (Lab 0-6) for studentsinstructor-guide.md: Detailed instructor guidance with specific demo scenariosexercises/: Collection of real-world sample projects across multiple languages
- Python Projects:
weather-app: Clean Flask application for feature addition exercisesflask-api: Intentionally poorly-written API for refactoring demonstrations
- JavaScript/TypeScript:
lyrics-trainer: Interactive web app with TypeScript and comprehensive test suite
- Java Projects:
certificate-service: Modern Spring Boot application with PDF generationshopping-service: Legacy Grails/Groovy application for modernization exercises
custom-commands.md: Skills-first walkthrough with a backwards-compat callout for.claude/commands/skills/: Ready-to-copy skill directories migrated from the older command form. Each demonstrates a different frontmatter capability (paths, allowed-tools, context: fork, disable-model-invocation, $ARGUMENTS).commands/: One legacy.claude/commands/example (docs.md) preserved so students can compare old and new forms.skills-and-plugins/: Larger teaching-library skills used during Lab 6 (api-documentation-skill, spring-boot-skill, security-review-skill, plus a plugin example).- Skills cover Java modernization, Spring scaffolding, security reviews, documentation generation, and onboarding automation.
- Run development server:
pnpm dev - Build for production:
pnpm build - Export to PDF locally:
pnpm export(producesslides-export.pdf, gitignored) - Export to PowerPoint:
pnpm export --format pptx --output slides-export.pptx
Note: For local exporting, you may need to install Playwright's Chromium first:
pnpm exec playwright install chromiumThe published PDF is not committed to the repo. .github/workflows/build-slides-pdf.yml auto-builds on every push to main that touches slides.md (or package.json / pnpm-lock.yaml / the workflow itself) and attaches slides-export.pdf to a rolling slides-latest release. Stable URL:
https://github.com/kousen/claude-code-training/releases/latest/download/slides-export.pdf
- Manual trigger: Actions → "Build & publish slides PDF" → "Run workflow", or
gh workflow run build-slides-pdf.yml - Do not commit
slides-export.pdf— it's gitignored on purpose - Snapshot for a specific training: after a build,
gh release create slides-YYYY-MM-DD slides-export.pdf --notes "<event>"makes a sibling release without disrupting the rolling tag
- Branch-First Approach: All exercises emphasize creating branches before changes
- Progressive Complexity: Labs build from simple to advanced workflows
- Real-World Focus: Use actual project scenarios, not contrived examples
- Multi-Language Support: Ensure examples work across Python, JavaScript, and Java
- Lab 0: Project creation from scratch (lyrics display app - origins of lyrics-trainer)
- Labs 1-3: Foundation skills (exploration, testing, documentation)
- Labs 4-6: Advanced workflows (refactoring, Plan Mode, custom commands)
- Demonstration: Showcase skills during Lab 6 advanced workflows; show legacy
commands/docs.mdfor contrast - Hands-on Practice: Students copy a skill from
skills-and-plugins/and write their own with deliberate frontmatter (paths, allowed-tools, etc.) - Real-world Application: Use Java skills with certificate-service, security skills with vulnerable examples
- Team Sharing: Demonstrate how teams standardize workflows through shared skills (project scope) or plugins
- Practical First: Get students productive immediately
- Safety Through Branching: Always demonstrate branch-first workflow
- Real Scenarios: Use diverse, realistic codebases (modern to legacy)
- Professional Workflows: Emphasize enterprise development practices
- Claude Code creates complete projects from scratch
- AI assistance accelerates understanding of unfamiliar codebases
- Branch-first workflow enables fearless experimentation
- Tool adapts to any language/framework combination
- Start each significant change with: "Create a new branch for this exercise"
- Use specific project names and concrete examples
- Include realistic time estimates (Lab 0: 20min, others: 15-60min)
- Provide both instructor demos and student hands-on activities
- Always include complete, copy-pasteable prompts in code blocks
- Demonstrate iterative refinement techniques
- Show context-aware instructions that reference specific files/frameworks
- Include error recovery and troubleshooting scenarios
- Node.js and pnpm for presentation
- Python 3.x for Flask applications
- Java 17+ for Spring Boot/Grails projects
- TypeScript for modern web development
- Claude Code installed and configured
- Git workflow familiarity
- Multi-language development environment setup
- Basic understanding of web development concepts