[Feature] Optional sprite and audio checks for /asset-audit from a free offline CLI (ludo toolbox)
## Summary `/asset-audit` and `asset-scan.sh` measure names, sizes, power-of-two dimensions and sample rates. They can't see inside an asset: whether a walk cycle loops cleanly, where a character's feet and pivot are, whether its sheets share one pixels-per-unit, or how loud a sound effect is. I'd like to propose an optional step that adds those as extra observation rows when a free local tool is installed, and skips cleanly when it isn't. Disclosure up front: I work at Ludo.ai and the tool is ours. The part I'm proposing is free, offline and MIT-licensed, and needs no account, key or credits. If a vendor tool doesn't fit CCGS at all, that's a fine answer and I'll close this. ## Type - [x] Improvement to existing component (`/asset-audit`, possibly `asset-scan.sh`) - [ ] New skill (slash command) ## Problem / Motivation On a 2D project, most broken assets that reach a sprint review are fine by the checks we have today and wrong once they're in the engine: - an animation with a visible hitch where the last frame returns to the first - frames whose feet drift, so the character bobs or slides - idle, walk and jump drawn at different scales, so the character changes size between states - a collision box picked by eye - SFX at very different loudness levels None of these show up in a file-size or naming scan, and they're slow to check by hand. ## Proposed Solution `ludo toolbox` (in `@ludoai/cli`, https://github.com/Ludo-AI/ludo-cli) runs on any spritesheet or sound, not only Ludo-made ones. Its report commands only measure and never change a file, which matches the "observations, not verdicts" rule for `.claude/scripts/`: | Check | Command | Reports | |---|---|---| | Loop seam | `ludo toolbox sprite loop walk.png` | 0 to 1 score for the last-to-first frame seam | | Ground line and pivot | `ludo toolbox sprite metrics walk.png` | bounds, ground line, feet pivot per frame | | Colliders | `ludo toolbox sprite collide walk.png --ppu 32` | box and capsule for Godot, Unity, Phaser | | Scale consistency | `ludo toolbox sprite compare knight_*.png` | one PPU across sheets, flags the odd one out | | Audio | `ludo toolbox audio info zap.wav` | length, LUFS loudness, true peak, silence, loop seam | | 3D | `ludo toolbox model info hero.glb` | triangles, textures, skeleton, clips that don't return to their first pose | Commands print JSON when piped and use a dedicated exit code (12) when a file can't be read or a detection is uncertain, so a skill can show "not assessed" instead of guessing. How I picture it in CCGS: 1. `/asset-audit` checks `command -v ludo`. If it's missing, it adds one `check` row ("sprite/audio checks not run: ludo not installed") and carries on as today. Nothing becomes a hard dependency. 2. If it's present, the skill asks before running ("Run loop, pivot and loudness checks on N sprites and M sounds?"), then adds the results as observation rows. The skill keeps the verdict words. 3. Nothing is written into the project. The toolbox saves outputs under `./ludo-output` or `--out`, never overwrites a file, and the report commands write nothing. Paid generation stays out of this proposal. If you ever want `/asset-spec` to go further, the same CLI has `--dry-run` (prints the cost, runs nothing) and `--max-credits`, which fits the existing "always prompts before a billable request" guard. I'd treat that as a separate conversation. ## Alternatives Considered - **Bash/awk checks in `asset-scan.sh`.** Loop seams, pivots and LUFS need pixel and sample decoding, which awk can't do. That would mean Python plus Pillow and numpy, which CCGS avoids in hooks and most scripts. - **A vendor `tools/` folder** (like #23 / #115). That adds code for CCGS to maintain. This approach only adds a few lines to an existing skill, and they detect and call a tool the user installs separately. ## Additional Context - Install: `npm install -g @ludoai/cli` (Node 20+). Reading WAV, MP3 and PNG needs nothing else. OGG and video need ffmpeg. - I can test it end to end on Windows Git Bash, macOS and Linux before opening anything. - If this direction works for you, I'm happy to send a small PR touching only `/asset-audit` and `skills-reference.md`, or you can take the idea and build it your way.