85 lines
4.2 KiB
Markdown
85 lines
4.2 KiB
Markdown
# Agent Test Spec: sound-designer
|
|
|
|
## Agent Summary
|
|
Domain: SFX specs, audio events, mixing parameters, and sound category definitions.
|
|
Does NOT own: music composition direction (audio-director), code implementation of audio systems.
|
|
Model tier: Sonnet (default).
|
|
No gate IDs assigned.
|
|
|
|
---
|
|
|
|
## Static Assertions (Structural)
|
|
|
|
- [ ] `description:` field is present and domain-specific (references SFX / audio events / mixing)
|
|
- [ ] `allowed-tools:` list includes Read, Write, Edit, Glob, Grep — does NOT include engine code execution tools
|
|
- [ ] Model tier is Sonnet (default for specialists)
|
|
- [ ] Agent definition does not claim authority over music direction or audio code implementation
|
|
|
|
---
|
|
|
|
## Test Cases
|
|
|
|
### Case 1: In-domain request — appropriate output
|
|
**Input:** "Create an SFX spec for a sword swing attack."
|
|
**Expected behavior:**
|
|
- Produces a complete audio event spec including:
|
|
- Event name (e.g., `sfx_combat_sword_swing`)
|
|
- Variation count (minimum 3 to avoid repetition fatigue)
|
|
- Pitch range (e.g., ±8% randomization)
|
|
- Volume range and normalization target (e.g., -12 dBFS)
|
|
- Sound category (e.g., `combat_sfx`)
|
|
- Suggested layering notes (whoosh layer + impact transient)
|
|
- Output follows the project audio naming convention if one is established
|
|
|
|
### Case 2: Out-of-domain request — redirects correctly
|
|
**Input:** "Compose a looping ambient music track for the forest level."
|
|
**Expected behavior:**
|
|
- Does NOT produce music composition direction or a music brief
|
|
- Explicitly states that music direction belongs to `audio-director`
|
|
- Redirects the request to `audio-director`
|
|
- May note it can provide an SFX ambience layer spec (wind, wildlife) to complement the music once the music direction is set
|
|
|
|
### Case 3: Dynamic parameter — falloff curve spec
|
|
**Input:** "The sword swing SFX needs distance falloff so it sounds different across the arena."
|
|
**Expected behavior:**
|
|
- Produces a spec for the dynamic parameter including:
|
|
- Parameter name (e.g., `distance` or `listener_distance`)
|
|
- Falloff curve type (e.g., logarithmic, linear, custom)
|
|
- Near/far distance thresholds with corresponding volume and high-frequency attenuation values
|
|
- Occlusion override behavior if applicable
|
|
- Does NOT write the audio engine integration code (defers to the appropriate programmer)
|
|
|
|
### Case 4: Naming convention conflict
|
|
**Input:** "Add a new SFX event called `SWORD_HIT_1` for the melee system."
|
|
**Expected behavior:**
|
|
- Identifies that `SWORD_HIT_1` conflicts with the established event naming convention (snake_case with category prefix, e.g., `sfx_combat_sword_hit`)
|
|
- Does NOT silently register the non-conforming name
|
|
- Flags the conflict to `audio-director` with the proposed compliant alternative
|
|
- Will proceed with the corrected name once confirmed by audio-director
|
|
|
|
### Case 5: Context pass — uses audio style guide
|
|
**Input:** Audio style guide provided in context specifying: "gritty, grounded, no reverb tails over 1.5s, reference: The Witcher 3 combat audio." Request: "Create SFX specs for the full melee combat suite."
|
|
**Expected behavior:**
|
|
- References the "gritty, grounded" tone descriptor in the spec rationale
|
|
- Caps all reverb tail specifications at 1.5 seconds as stated
|
|
- Notes the reference material (The Witcher 3) as a benchmark for mix levels and transient design
|
|
- Does NOT produce specs that contradict the style guide (e.g., no ethereal or heavily reverb-processed specs)
|
|
|
|
---
|
|
|
|
## Protocol Compliance
|
|
|
|
- [ ] Stays within declared domain (SFX specs, event definitions, mixing parameters)
|
|
- [ ] Redirects music direction requests to audio-director
|
|
- [ ] Returns structured audio event specs (event name, variations, pitch, volume, category)
|
|
- [ ] Does not produce code for audio system implementation
|
|
- [ ] Flags naming convention violations rather than silently accepting non-conforming names
|
|
- [ ] References provided style guides and constraints in all spec output
|
|
|
|
---
|
|
|
|
## Coverage Notes
|
|
- SFX spec format (Case 1) should match whatever event schema the audio middleware (Wwise/FMOD/built-in) requires
|
|
- Falloff curve (Case 3) verifies the agent produces implementation-ready parameter specs
|
|
- Style guide compliance (Case 5) confirms the agent reads provided context and constrains output accordingly
|