80 lines
4.2 KiB
Markdown
80 lines
4.2 KiB
Markdown
# Agent Test Spec: technical-artist
|
||
|
||
## Agent Summary
|
||
Domain: Shaders, VFX, rendering optimization, art pipeline tools, and visual performance.
|
||
Does NOT own: art style decisions or color palette (art-director), gameplay code (gameplay-programmer).
|
||
Model tier: Sonnet (default).
|
||
No gate IDs assigned.
|
||
|
||
---
|
||
|
||
## Static Assertions (Structural)
|
||
|
||
- [ ] `description:` field is present and domain-specific (references shaders / VFX / rendering)
|
||
- [ ] `allowed-tools:` list includes Read, Write, Edit, Bash, Glob, Grep
|
||
- [ ] Model tier is Sonnet (default for specialists)
|
||
- [ ] Agent definition does not claim authority over art style direction or gameplay logic
|
||
|
||
---
|
||
|
||
## Test Cases
|
||
|
||
### Case 1: In-domain request — appropriate output
|
||
**Input:** "Create a dissolve effect shader for enemy death sequences."
|
||
**Expected behavior:**
|
||
- Produces shader code or a Shader Graph node spec appropriate to the configured engine (Godot shading language / Unity Shader Graph / Unreal Material Blueprint)
|
||
- Defines a `dissolve_amount` uniform (0.0–1.0) as the animation driver
|
||
- Uses a noise texture sample to determine the dissolve threshold
|
||
- Notes edge-lighting technique as an optional enhancement
|
||
- Output is engine-version-aware (checks version reference if post-cutoff APIs are needed)
|
||
|
||
### Case 2: Out-of-domain request — redirects correctly
|
||
**Input:** "Define the art bible color palette: primary, secondary, and accent colors for the UI."
|
||
**Expected behavior:**
|
||
- Does NOT produce color palette decisions or art direction documents
|
||
- Explicitly states that art style decisions belong to `art-director`
|
||
- Redirects the request to `art-director`
|
||
- May note it can later implement a color-grading or palette LUT shader once the palette is decided
|
||
|
||
### Case 3: Performance warning — GPU particle count
|
||
**Input:** "The VFX system is triggering a GPU particle count warning at 50,000 particles in the explosion pool."
|
||
**Expected behavior:**
|
||
- Produces an optimization spec addressing the specific warning
|
||
- Proposes concrete strategies: particle budget caps per emitter, LOD-based particle reduction, GPU instancing, or switching to mesh-based VFX for distant effects
|
||
- Provides before/after GPU cost estimates where calculable
|
||
- Does NOT change gameplay behavior of the explosion (delegates any gameplay impact to gameplay-programmer)
|
||
|
||
### Case 4: Engine version compatibility
|
||
**Input:** "Use the new texture sampler API for the water shader."
|
||
**Expected behavior:**
|
||
- Checks the engine version reference (e.g., `docs/engine-reference/godot/VERSION.md`) before suggesting any API
|
||
- Flags if the requested API is post-cutoff (e.g., Godot 4.4+ texture type changes)
|
||
- Provides the correct syntax for the project's pinned engine version
|
||
- If uncertain about post-cutoff behavior, explicitly states the uncertainty and directs to verified docs
|
||
|
||
### Case 5: Context pass — uses performance budget
|
||
**Input:** Performance budget from `technical-preferences.md` provided in context: 2ms GPU frame budget, max 200 draw calls. Request: "Optimize the forest rendering system."
|
||
**Expected behavior:**
|
||
- References the specific 2ms GPU budget and 200 draw call limit from the provided context
|
||
- Proposes optimizations calibrated to those exact targets (e.g., "batching reduces draw calls from 340 to ~180, within the 200 limit")
|
||
- Does NOT propose optimizations that would exceed the stated budgets in other dimensions
|
||
- Produces a ranked list of optimizations by expected impact vs. implementation cost
|
||
|
||
---
|
||
|
||
## Protocol Compliance
|
||
|
||
- [ ] Stays within declared domain (shaders, VFX, rendering optimization, art pipeline)
|
||
- [ ] Redirects art style decisions to art-director
|
||
- [ ] Returns structured findings (shader code, optimization specs with metrics, node graphs)
|
||
- [ ] Does not modify gameplay code files without explicit delegation
|
||
- [ ] Checks engine version reference before suggesting post-cutoff APIs
|
||
- [ ] Quantifies performance changes against stated budgets
|
||
|
||
---
|
||
|
||
## Coverage Notes
|
||
- Dissolve shader (Case 1) should include a visual test reference in `production/qa/evidence/`
|
||
- Engine version check (Case 4) confirms the agent treats VERSION.md as authoritative
|
||
- Performance budget case (Case 5) verifies the agent reads and applies provided context numbers
|