From 017bdfc2fdf603a0dcb74a440dd66d2a8203a680 Mon Sep 17 00:00:00 2001 From: Nero Frame 13 Date: Tue, 27 Oct 2026 11:15:02 +0100 Subject: [PATCH] Added dev test tools and CLAUDE.md dev/: test asset files, a fake Libreflow IPC server and an end-to-end Scene Manager test (excluded from the extension build). CLAUDE.md: notes for working on the add-on (conventions, testing, design findings, open points). Co-Authored-By: Claude Opus 5.5 --- CLAUDE.md | 78 ++++++++++++++ dev/fake_libreflow.py | 162 ++++++++++++++++++++++++++++ dev/make_test_assets.py | 53 +++++++++ dev/test_scene_manager.py | 220 ++++++++++++++++++++++++++++++++++++++ 4 files changed, 513 insertions(+) create mode 100644 CLAUDE.md create mode 100644 dev/fake_libreflow.py create mode 100644 dev/make_test_assets.py create mode 100644 dev/test_scene_manager.py diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..41f86e8 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,78 @@ +# Melvile Tools: notes for Claude + +Blender add-on (Blender 5.2) for the Melvile pipeline at Walking The Dog: Sanity Check, +Rename, Shot Viewer and Scene Manager panels in the 3D View sidebar (WTD tab). `README.md` +is the user guide: keep it up to date with every user-visible change. + +## Layout and conventions + +- `config.py`: every production value (prefixes, formats, patterns, modes). Values are + read at run time (`config.X`, never copied at import) because a studio JSON file can + override them (add-on preferences "Config Override", or `WTD_SANITY_CONFIG`). + New tunable values go here, with a comment, and in the README's Configuration table. +- `ui/panel.py`: all panels. Operators live with their tool (`rename.py`, + `shot_viewer.py`, `scene_manager/`, `ui/operators.py` for the Sanity Check). +- `checks/`: sanity checks, auto-registered (see README > For developers). +- `__init__.py` deletes cached submodules on reload, so Reload Scripts picks up every file. +- Versions: `blender_manifest.toml` and `bl_info` in `__init__.py` (keep both in sync). +- Style: match the surrounding code; short docstrings, few comments, no heavy abstractions. + +## Working with the user + +- Commits: when asked, create a branch from `master`, commit there (end with the + Co-Authored-By line), and give the user the merge / push / branch-delete commands: + they run them themselves. Only commit straight on `master` when told to. +- Real Blender API facts beat memory: probe in headless Blender before relying on an API. + +## Testing + +Blender binary: macOS `/Applications/Blender.app/Contents/MacOS/Blender`, Windows +`blender.exe` from the install folder. Import the add-on in tests by putting the folder +that contains this repo on `sys.path` and importing the repo folder name (see +`dev/test_scene_manager.py`). + +- Headless: `blender -b --factory-startup --python-exit-code 1 --python