Claude-Code-Game-Studios/CCGS Skill Testing Framework/agents/specialists/engine-programmer.md
Donchitos a73ff759c9 Add v0.5.0: CCGS Skill Testing Framework, skill-improve, 4 new skills, director gate path fixes
- 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>
2026-04-06 17:42:32 +10:00

4.1 KiB

Agent Test Spec: engine-programmer

Agent Summary

Domain: Rendering pipeline, physics integration, memory management, resource loading, and core engine framework. Does NOT own: gameplay mechanics (gameplay-programmer), editor/debug tool UI (tools-programmer). Model tier: Sonnet (default). No gate IDs assigned.


Static Assertions (Structural)

  • description: field is present and domain-specific (references rendering / memory / engine core)
  • allowed-tools: list includes Read, Write, Edit, Bash, Glob, Grep
  • Model tier is Sonnet (default for specialists)
  • Agent definition does not claim authority over gameplay mechanics or tool UI

Test Cases

Case 1: In-domain request — appropriate output

Input: "Implement a custom object pool for projectiles to avoid per-frame allocation." Expected behavior:

  • Produces an engine-level object pool implementation with acquire/release interface
  • Pool is typed to the projectile object type, uses pre-allocated fixed-size storage
  • Provides thread-safety notes (or clearly marks as single-threaded-only with rationale)
  • Includes doc comments on the public API per coding standards
  • Output is compatible with the project's configured engine and language

Case 2: Out-of-domain request — redirects correctly

Input: "Add a pause menu screen with volume sliders and a 'back to main menu' button." Expected behavior:

  • Does NOT produce UI screen code
  • Explicitly states that menu screens belong to ui-programmer
  • Redirects the request to ui-programmer
  • May note it can provide engine-level audio volume API endpoints for the ui-programmer to call

Case 3: Memory leak diagnosis

Input: "Memory usage grows by ~50MB per level load and never releases. We suspect the resource loading system." Expected behavior:

  • Produces a systematic diagnosis approach: reference counting audit, resource handle lifecycle check, cache invalidation review
  • Identifies likely causes (orphaned resource handles, circular references, cache that never evicts)
  • Produces a concrete fix for the identified leak pattern
  • Provides a test to verify the fix (memory baseline before load, measure after unload, confirm return to baseline)

Case 4: Cross-domain coordination — shared system optimization

Input: "I need to optimize the physics broadphase, but the gameplay system is tightly coupled to the physics query API." Expected behavior:

  • Does NOT unilaterally change the physics query API surface (would break gameplay-programmer's code)
  • Coordinates with lead-programmer to plan the change safely
  • Proposes a migration path: new optimized API alongside old API, with a deprecation period
  • Documents the coordination requirement before proceeding

Case 5: Context pass — checks engine version reference

Input: Engine version reference (Godot 4.6) provided in context. Request: "Set up the default physics engine for the project." Expected behavior:

  • Reads the engine version reference and notes Godot 4.6 change: Jolt physics is now the default
  • Produces configuration guidance that accounts for the Jolt-as-default change (4.6 migration note)
  • Flags any API differences between GodotPhysics and Jolt that could affect existing code
  • Does NOT suggest deprecated or pre-4.6 physics setup steps without noting they apply to older versions

Protocol Compliance

  • Stays within declared domain (rendering, physics, memory, resource loading, core framework)
  • Redirects UI/menu requests to ui-programmer
  • Returns structured findings (implementation code, diagnosis steps, migration plans)
  • Coordinates with lead-programmer before changing shared API surfaces
  • Checks engine version reference before suggesting engine-specific APIs
  • Provides test evidence for fixes (memory before/after, performance measurements)

Coverage Notes

  • Object pool (Case 1) must include a unit test in tests/unit/engine/
  • Memory leak diagnosis (Case 3) should produce evidence artifacts in production/qa/evidence/
  • Engine version check (Case 5) confirms the agent treats VERSION.md as authoritative, not LLM training data