# CLAUDE.md - Agent Guidelines for Uni Slides (DHBW + HdM) This project builds presentation decks for Marp, supporting multiple courses. ## Courses - **223015b** - Dateiformate, Schnittstellen, Speichermedien (HdM, 6 Kapitel) - **223015c** - Internettechnologien (HdM, 3 Kapitel) - **dhbw** - Technik I – Grundlagen IT (DHBW, 4 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/ # HdM: Dateiformate ├── 223015c/ # HdM: Internettechnik └── dhbw/ # DHBW: Technik I scripts/ # Shared scripts themes/ # Custom Marp themes build/ # Generated output (gitignored) ``` ## Build Commands ```bash make hdm-dev # HdM live server all (port 1312) make hdm-dev-b # HdM 223015b only (port 1313) make hdm-dev-c # HdM 223015c only (port 1314) make dhbw-dev # DHBW live server (port 1315) make hdm-build # Build all HdM courses make dhbw-build # Build DHBW course make hdm-html # HTML only (HdM) make hdm-pdf # PDF only (HdM) make hdm-klausur # Extract klausur slides → slides/*/klausurfolien.md make hdm-deploy # Deploy HdM (ASK FIRST!) make dhbw-deploy # Deploy DHBW (ASK FIRST!) 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