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

Notes for agents

Stop playback before playing song.js. Its section masks count from cycle 0.

The harmony moves every two bars on purpose. Each vocoded line is rendered on one chord, so it must start on the first bar of its chord (Em on bars 17, 25, 57; C, G, D two bars apart). The chorus lines exist twice each (lbcodeem/lbcodec, lbrestg/lbrestd) because each is sung on both chords of its pair. Changing the chord order or section lengths means re-rendering with vocode.

The riff is written in MIDI numbers so it can be transposed. note(riff).add(shift) moves it with the chord root (Em 0, C −4, G +3, D −2); note names would not add. The notes are checked against the Ultimate-Guitar tab named in SPEC.md — don't "fix" the B2→C3 at the end of its second bar or the held A#2 at the end of its fourth.

Every written mask is 64 steps. Adding a section means re-counting all of them; the !n counts must sum to 64. The two masks in drumsNow count 1000: they are played time (the transition runs outside the arrangement), where a 64-step mask would repeat the intro at cycle 64.

where is the one list of where each part plays. A new layer masks with a constant from its part's list (or adds one there); the text Jev is told comes from it.