4.6 KiB
Agent Test Spec: godot-specialist
Agent Summary
Domain: Godot-specific patterns, node/scene architecture, signals, resources, and GDScript vs C# vs GDExtension decisions. Does NOT own: actual code authoring in a specific language (delegates to language sub-specialists). Model tier: Sonnet (default). No gate IDs assigned.
Static Assertions (Structural)
description:field is present and domain-specific (references Godot architecture / node patterns / engine decisions)allowed-tools:list includes Read, Write, Edit, Bash, Glob, Grep- Model tier is Sonnet (default for specialists)
- Agent definition references
docs/engine-reference/godot/VERSION.mdas the authoritative API source
Test Cases
Case 1: In-domain request — appropriate output
Input: "When should I use signals vs. direct method calls in Godot?" Expected behavior:
- Produces a pattern decision guide with rationale:
- Signals: decoupled communication, parent-to-child ignorance, event-driven UI updates, one-to-many notification
- Direct calls: tightly-coupled systems where the caller needs a return value, or performance-critical hot paths
- Provides concrete examples of each pattern in the project's context
- Does NOT produce raw code for both patterns — refers to gdscript-specialist or csharp-specialist for implementation
- Notes the "no upward signals" convention (child does not call parent methods directly — uses signals instead)
Case 2: Wrong-engine redirect
Input: "Write a MonoBehaviour that runs on Start() and subscribes to a UnityEvent." Expected behavior:
- Does NOT produce Unity MonoBehaviour code
- Clearly identifies that this is a Unity pattern, not a Godot pattern
- Provides the Godot equivalent: a Node script using
_ready()instead ofStart(), and Godot signals instead of UnityEvent - Confirms the project is Godot-based and redirects the conceptual mapping
Case 3: Post-cutoff API risk
Input: "Use the new Godot 4.5 @abstract annotation to define an abstract base class." Expected behavior:
- Identifies that
@abstractis a post-cutoff feature (introduced in Godot 4.5, after LLM knowledge cutoff) - Flags the version risk: LLM knowledge of this annotation may be incomplete or incorrect
- Directs the user to verify against
docs/engine-reference/godot/VERSION.mdand the official 4.5 migration guide - Provides best-effort guidance based on the migration notes in the version reference while clearly marking it as unverified
Case 4: Language selection for a hot path
Input: "The physics query loop runs every frame for 500 objects. Should we use GDScript or C# for this?" Expected behavior:
- Provides a balanced analysis:
- GDScript: simpler, team familiar, but slower for tight loops
- C#: faster for CPU-intensive loops, requires .NET runtime, team needs C# knowledge
- Does NOT make the final decision unilaterally
- Defers the decision to
lead-programmerwith the analysis as input - Notes that GDExtension (C++) is a third option for extreme performance cases and recommends escalating if C# is insufficient
Case 5: Context pass — engine version 4.6
Input: Engine version context provided: Godot 4.6, Jolt as default physics. Request: "Set up a RigidBody3D for the player character." Expected behavior:
- Reads the 4.6 context and applies the Jolt-default knowledge (from VERSION.md migration notes)
- Recommends RigidBody3D configuration choices that are Jolt-compatible (e.g., notes any GodotPhysics-specific settings that behave differently under Jolt)
- References the 4.6 migration note about Jolt becoming default rather than relying on LLM training data alone
- Flags any RigidBody3D properties that changed behavior between GodotPhysics and Jolt
Protocol Compliance
- Stays within declared domain (Godot architecture decisions, node/scene patterns, language selection)
- Redirects language-specific implementation to godot-gdscript-specialist or godot-csharp-specialist
- Returns structured findings (decision trees, pattern recommendations with rationale)
- Treats
docs/engine-reference/godot/VERSION.mdas authoritative over LLM training data - Flags post-cutoff API usage (4.4, 4.5, 4.6) with verification requirements
- Defers language-selection decisions to lead-programmer when trade-offs exist
Coverage Notes
- Signal vs. direct call guide (Case 1) should be written to
docs/architecture/as a reusable pattern doc - Post-cutoff flag (Case 3) confirms the agent does not confidently use APIs it cannot verify
- Engine version case (Case 5) verifies the agent applies migration notes from the version reference, not assumptions