kookaburra-background-authoringlisted
Install: claude install-skill michael-palmes/kookaburra-cut
# kookaburra-background-authoring
Ship a new animated background: one GLSL3 effect, nine AA-safe presets, committed preview
thumbnails, all deterministic. Colour rules live in `docs/backgrounds.md`; templates for every
file live in this skill's `REFERENCE.md`.
## When to use
- Adding a new shader background (vendored port or original GLSL)
- Adding or re-tuning a shader's colour presets
- Editing anything under `src/toolkit/stage/shaders/`
## The contract (why these rules exist)
- **Determinism.** Backgrounds render on the export path, so every fragment op must be
bit-reproducible across runs. Driver-defined float tricks (`fract(sin())` hashes) break
byte-identical export; the house PCG integer hash does not.
- **Foreground first.** Every preset colour stop must hold WCAG AA alone against the preset's
text colour (black for light, white for dark), because the fill animates under the text.
Bands, counts and naming voice: `docs/backgrounds.md`.
## Instructions
1. **Create the def** at `src/toolkit/stage/shaders/<name>.ts` exporting a
`ShaderBackgroundDef` (skeleton in REFERENCE.md). The fragment is a GLSL3 body: no
`#version` or `precision` lines (three prepends them), but it MUST declare and write its own
`out vec4 fragColor;`. This three version does not alias `gl_FragColor` for GLSL3 custom
shaders; forgetting the declaration renders black, not an error.
2. **Patch out float-hash randomness.** Replace any `fract(sin(dot(...)))` style hash with the