# CLAUDE.md - Agent Guidelines for HdM Slides This project builds presentation decks for Marp, supporting multiple courses. ## Courses - **223015b** - Dateiformate, Schnittstellen, Speichermedien (6 Kapitel) - **223015c** - Internettechnologien (3 Kapitel) ## Agent Restrictions - Agent NEVER runs commands outside this folder - Agent NEVER runs build/deploy commands without explicit user request - Agent NEVER runs deploy commands (make deploy, scp, etc.) without explicit user permission - Agent NEVER runs `git checkout --` or `git restore` on files with uncommitted work. To undo specific changes, use targeted Edit operations instead. ## Critical File Protection Slide files in `slides/*/*.md` are main content files: - ALLOWED: Adding slides, adjusting content, fixing typos, enhancing sections - FORBIDDEN (without permission): Deleting slides, removing sections, bulk deletions - Before ANY deletion: ALWAYS ask user for confirmation ## Project Structure ``` slides/ ├── 223015b/ # Dateiformate course └── 223015c/ # Internettechnik course scripts/ # Shared scripts themes/ # Custom Marp themes build/ # Generated output (gitignored) ``` ## Build Commands ```bash make dev-b # Dev server 223015b (port 1311) make dev-c # Dev server 223015c (port 1312) make build # Build all courses make build-b # Build 223015b only make build-c # Build 223015c only make html # HTML only make pdf # PDF only make klausur # Extract klausur slides → slides/*/klausur.md make deploy # Deploy all (ASK FIRST!) ``` ## Nix Flake Commands ```bash nix develop # Dev shell with all tools (node 22, npm, make) ``` ## Code Style Guidelines ### File Structure - Slides in `slides//` - Assets in `slides//assets/` - Always reference images as `./assets/filename.png` ### Naming Conventions - Slide files: `NN-topic.md` (e.g., `01-grundlagen.md`) - Images: `snake_case.jpg` or `kebab-case.jpg` ### Markdown Style - Use ATX-style headers (# ## ###) - Frontmatter for slide metadata - Never include a final `---` (creates empty slide) ### Git Workflow - Commit messages: ALWAYS lowercase - NEVER add co-authoring lines or generated footers