Files
music-video-gen/flow-state/AGENTS.md
T
Dejvino a99a7cbe49 Continuity rule: discrete params hold per cue; add DESIGN.md + AGENTS.md
Actors and objects change only at camera cuts. int/bool/discrete
params skip drift, lookahead and reactivity; discrete slowAxis steps
on the section-held journey. Venues fade instead of toggling on
interpolated popMul; roadside density is arrangement-only.

DESIGN.md collects the project's design decisions; AGENTS.md points
agents at it and the build-visualizer loop.
2026-09-20 16:42:44 +02:00

1.5 KiB
Raw Blame History

AGENTS.md — flow-state

Design decisions

All load-bearing decisions live in DESIGN.md. Read it before changing behaviour. Changing a decision means updating DESIGN.md and the gate that enforces it. PLAN.md is the full design; EPIC-*.md are the epic designs.

Adding / fixing a scene

Follow the build-visualizer skill (.claude/skills/build-visualizer/). Short version:

npm run new:scene -- "Name" --family=<flow|organic|minimal|structural|geometric|glitch> --traits=...
# ... write the scene() body ...
npm run lint:scenes
# open http://localhost:5180/checks.html?scene=Name

Verify in order: lint:scenes (~1s) → per-scene gate in checks.html → checks.html?slow=1 once before committing. Each rung is ~10× the cost of the previous.

Rules that have bitten before (all in DESIGN.md §3–4)

  • Anything multiplying u_time must be rate: true — and rate params are never modulated (drift/reactive/lookahead skip them).
  • Discrete params (int/bool/discrete: true) hold per cue and are never reactive: actors and objects change only at camera cuts.
  • No contract-uniform reuse, no hardcoded colours (use pal()), base image under every prev(), honour every declared trait, feed sigCamera into the image.
  • No Math.random / wall-clock in render-path code; motion is analytic f(t, seed) so seek === playback and preview === export.

Checks

npm test             # audio pipeline + venue/model headless tests
npm run lint:scenes  # determinism grep + schema/shader agreement