For agents, on top of README.md, which they read first.

Notes for agents

  • A transition is a rule. Do not add an if on what she did to Chooser or to the shell: add or change a rule in domain.rs, then redraw (cargo run -p whiskers-chooser --example draw) and commit the picture. The test fails until you do.
  • Order is priority and the rules after an effect (a character says hi, saved, close) follow the fact that effect teaches; an effect whose fact is already known has been done, which is what stops a loop.
  • No other character's voice, ever. A character's voice comes from VoiceToUse (its own, or the base voice). A change of character shows the voice saved for the new character, never the one being previewed.
  • Never log what she hears. The trace and the log lines carry rule names, fact names, counts and ids; an Utterance's Debug prints lengths. Keep it so: the text holds the child's name.
  • The words are whiskers_core::hi_line and voice_intro_line, fixed lines, so the speech cache may keep them. Do not build a line here from anything but the profile and a voice's name.
  • Depends on rete through the submodule third-party/rustcrates (path dependency); never copy the engine.