- Add CCGS Skill Testing Framework: self-contained QA layer with 72 skill specs, 49 agent specs, catalog.yaml, quality-rubric.md, templates, README, CLAUDE.md - Add /skill-improve: test-fix-retest loop covering static + category checks - Add 4 missing skills: /art-bible, /asset-spec, /day-one-patch, /security-audit - Add /skill-test category mode (Phase 2D) with quality rubric evaluation - Extend /skill-test audit to cover agent specs alongside skill specs - Update all skill-test and skill-improve path refs to CCGS Skill Testing Framework/ - Remove stale tests/skills/ directory (superseded by CCGS Skill Testing Framework) - Add director gate intensity modes (full/lean/solo) to gate-check and related skills Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
4.2 KiB
Agent Test Spec: unity-ui-specialist
Agent Summary
Domain: Unity UI Toolkit (UXML/USS), UGUI (Canvas), data binding, runtime UI performance, and UI input event handling. Does NOT own: UX flow design (ux-designer), visual art style (art-director). Model tier: Sonnet (default). No gate IDs assigned.
Static Assertions (Structural)
description:field is present and domain-specific (references UI Toolkit / UGUI / Canvas / data binding)allowed-tools:list includes Read, Write, Edit, Bash, Glob, Grep- Model tier is Sonnet (default for specialists)
- Agent definition does not claim authority over UX flow design or visual art direction
Test Cases
Case 1: In-domain request — appropriate output
Input: "Implement an inventory UI screen using Unity UI Toolkit." Expected behavior:
- Produces a UXML document defining the inventory panel structure (ListView, item templates, detail panel)
- Produces USS styles for the inventory layout and item states (default, hover, selected)
- Provides C# code binding the inventory data model to the UI via
INotifyValueChangedorIBindable - Uses
ListViewwithmakeItem/bindItemcallbacks for the scrollable item list - Does NOT produce the UX flow design — implements from a provided spec
Case 2: Out-of-domain redirect
Input: "Design the UX flow for the inventory — what happens when the player equips vs. drops an item." Expected behavior:
- Does NOT produce UX flow design
- Explicitly states that interaction flow design belongs to
ux-designer - Redirects the request to
ux-designer - Notes it will implement whatever flow the ux-designer specifies
Case 3: UI Toolkit data binding for dynamic list
Input: "The inventory list needs to update in real time as items are added or removed from the player's bag." Expected behavior:
- Produces the
ListViewpattern with a boundObservableList<T>or event-driven refresh approach - Uses
ListView.Rebuild()orListView.RefreshItems()on the backing collection change event - Notes the performance considerations for large lists (virtualization via
makeItem/bindItempattern) - Does NOT use
QuerySelectorloops to update individual elements as a list refresh strategy — flags that as a performance antipattern
Case 4: Canvas performance — overdraw
Input: "The main menu canvas is causing GPU overdraw warnings; there are many overlapping panels." Expected behavior:
- Identifies overdraw causes: multiple stacked canvases, full-screen overlay panels not culled when inactive
- Recommends:
- Separate canvases for world-space, screen-space-overlay, and screen-space-camera layers
- Disable/deactivate panels instead of setting alpha to 0 (invisible alpha-0 panels still draw)
- Canvas Group + alpha for fade effects, not individual Image alpha
- Notes UI Toolkit alternative if the project is in a migration position
Case 5: Context pass — Unity version
Input: Project context: Unity 2022.3 LTS. Request: "Implement the settings panel with data binding." Expected behavior:
- Uses UI Toolkit with the 2022.3 LTS version of the runtime binding system
- Notes that Unity 2022.3 introduced runtime data binding (as opposed to editor-only binding in earlier versions)
- Does NOT use the Unity 6 enhanced binding API features if they are not available in 2022.3
- Produces code compatible with the stated Unity version, with version-specific API notes
Protocol Compliance
- Stays within declared domain (UI Toolkit, UGUI, data binding, UI performance)
- Redirects UX flow design to ux-designer
- Returns structured output (UXML, USS, C# binding code)
- Uses the correct Unity UI framework version for the project's Unity version
- Flags Canvas overdraw as a performance antipattern and provides specific remediation
- Does not use alpha-0 as a hide/show pattern — uses SetActive() or VisualElement.style.display
Coverage Notes
- Inventory UI (Case 1) should have a manual walkthrough doc in
production/qa/evidence/ - Dynamic list binding (Case 3) should have an integration test or automated interaction test
- Canvas overdraw (Case 4) verifies the agent knows the correct Unity UI performance patterns