# Notes for Claude Code ## Language All repository content (docs, READMEs, code comments, drawing labels, commit messages) is in **English**. ## Structure - `projects//` : source files for each project (laser, 3d, drawings, electronics, teaching, tests, generators) - `docs/` : MkDocs Material site. Project pages live in `docs/projects//`. - `hooks/copy_assets.py` : before each build, copies drawings to `docs/projects//img/`, laser SVGs and SCAD files to `files/` (downloads) and `kit-list.md` into the docs. All of these copies are git-ignored; edit the sources under `projects/`. - `.github/workflows/pages.yml` : publishes the site to GitHub Pages on every push to `main`. ## Rules - Never edit generated SVGs by hand. Change the parameter in `projects/welcome-space/generators/*.py`, then run: `python projects/welcome-space/generators/build.py` - Hand-edited SVGs go in projects//custom/ and are never overwritten. Real design changes go in the generators. Run `python scripts/svg_tool.py check ` before any file is cut. - Files in projects/*/exports/ are generated by scripts/export_formats.py. Never edit them by hand; run build.py, model_b.py, svg_tool.py prepare, then export_formats.py in this order. - Laser SVGs: red (#FF0000) hairline = cut, black = engrave. Units are mm. - OpenSCAD files are parametric; parameters are at the top of each file. - Key parameters: `SLOT_W` (slot width), `SLOT_L` (panel slot), `WSLOT_L` (wing slot), `slotW` (nose cone), `pocketD` (diffuser pocket). - SLOT_W is defined in two places: generators/base_diffuser_comb.py (Model A) and generators/model_b.py (Model B). After the comb test, change both and rebuild. Also keep slotW (nose cone A), pocket width pW (nose cone B) and pocketD (diffuser) consistent. - Print STLs are generated with scripts/export_stl.sh from the .scad files and committed in 3d/stl/. Never edit them by hand. Re-export after every .scad change. - For every parameter change, update `CHANGELOG.md` and link the related test issue. - Never add student names, photos or any personal data to the repository. - After changes, verify the site with `mkdocs build --strict`.