Deckard

Agent contract

Surfaces agents should edit; invariants.

This is the editing contract for LLM agents working on Deckard (same intent as repo AGENTS.md).

Prefer these surfaces

  1. Project shapedocs/schema/project-v2.json (generatorId + generatorParams)
  2. Load / modelsrc/model/Project.tish, ProjectLoad.tish (loadProjectFromTpl), default song projects/default.deckard.deck
  3. Generatorssrc/generators/ (docs)
  4. Safe mutatorssrc/model/Edits.tish
  5. deck languagegrammar, agent subset, src/deckfile/

Co-DJ

  • Agents emit only their lane (track ids prefixed with actorId, e.g. ai-a_hat)
  • Master-scope lines (bpm, version header, master_mix, auto, …) need master_mixer — see skills
  • Prompt composition: roles & skills + agent grammar

Invariants

  • Project version: use 2 for generator-based projects
  • Times: startBeat / durBeats are quarter-note beats
  • Preserve channel id strings
  • Do not put sequencing rules in JSX-only UI files — keep logic in model/, schedule, audio/
  • UI is a deck client: edits go through emit/apply, not silent project mutation

Audio / Tish JS

Use new AudioContext() and new Uint8Array(n) on the JS target (see docs/TISH_JS_BUILTINS.md in the repo).