For agents, on top of README.md, which they read first.
Notes for agents
- Change the art here, never in Kotlin.
android/.../art/GreyScenes.ktis generated (gitignored) bytools/build-core.sh. Only the evaluator (Motion.kt,Flatten.kt) is hand-written Kotlin, and it must give the numbersmotion.rsandflatten.rsgive. - A new
Motionvariant needs its Kotlin twin inart/Motion.ktwith the same name (the generator writesMotion.<Debug name>), or the app does not compile. - After a deliberate change to the art or a motion: bless the fixture
(
WHISKERS_ART_BLESS=1 cargo test -p whiskers-art --test frames), run the app's unit tests, re-record the screenshots and look at them. - Instants in the fixture sit away from every step boundary on purpose; a test checks it. Keep any new stepping motion off them.
- Moods are the core's (
whiskers_pet::Mood).scene::MOODShas a test with an exhaustive match: a mood added to the core does not compile here until it is drawn. - The crate has one dependency,
whiskers-pet, and compiles to wasm. No I/O, no clock.