Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/devdavv/unity-ai-workflow/uw-unity-test-runnernpx skills add devdavv/unity-ai-workflow --skill uw-unity-test-runnergit clone --depth 1 https://github.com/devdavv/unity-ai-workflowWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/devdavv/unity-ai-workflow/uw-unity-test-runner)<a href="https://agentmods.dev/skills/devdavv/unity-ai-workflow/uw-unity-test-runner"><img src="https://agentmods.dev/badge/skills/devdavv/unity-ai-workflow/uw-unity-test-runner.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00136 | $0.02595 |
| Opus 5 | $0.00068 | $0.01298 |
| Sonnet 5 | $0.00027 | $0.00519 |
| Haiku 4.5 | $0.00014 | $0.00260 |
Grade A, and why
uw-unity-test-runner scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 3d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 344 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Unity Test Runner
Generate NUnit tests mapped from GDD Gherkin scenarios.
Before You Start
- Read
docs/GDD.mdfor Gherkin scenarios (Given/When/Then) to convert into tests. - Ensure a
Tests.asmdefexists for the feature — create withuw-unity-feature-scaffoldif needed. - Read
docs/CODING_STANDARDS.mdfor async patterns (Awaitable+CancellationToken) used in PlayMode tests. - Read
docs/NAMING_CONVENTIONS.mdfor test class and file naming. - Check
docs/ProjectConfig.yaml -> mcp.unity_mcp— iftrue, userun_tests/get_test_jobto execute tests. Otherwise, instruct the user to run via Unity Editor (Window -> General -> Test Runner).
Test Types
| Type | Location | When to Use | Runner |
|---|---|---|---|
| EditMode | Tests/EditMode/ |
Pure logic — no MonoBehaviour lifecycle, no scene required | [Test] with NUnit |
| PlayMode | Tests/PlayMode/ |
Needs Awake/Start/Update, scene loading, physics, or coroutines |
[UnityTest] + IEnumerator |
Default to EditMode whenever possible — they're faster, more reliable, and easier to debug. Only use PlayMode when the code under test depends on Unity's runtime lifecycle.
Gherkin to Test Mapping
Each Gherkin scenario from the GDD becomes one test method. The Given/When/Then structure maps directly to Arrange/Act/Assert:
Scenario: Player takes damage
Given a player with 100 health
When the player takes 30 damage
Then the player health should be 70
using NUnit.Framework;
namespace {RootNamespace}.{FeatureName}.Tests
{
[TestFixture]
public class HealthSystemTests
{
[Test]
public void TakeDamage_WithFullHealth_ReducesHealthByDamageAmount()
{
// Given
var health = new HealthSystem(maxHealth: 100);
// When
health.TakeDamage(30);
// Then
Assert.AreEqual(70, health.CurrentHealth);
}
}
}
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 3d ago First seen · 344 lines · 136 tokens per session scan A 17e895062b49
uw-unity-test-runner is a skill published in the GitHub repository devdavv/unity-ai-workflow (41 stars, last pushed 5mo ago), licensed MIT. It adds 136 tokens to every session and 2,595 once invoked, about $0.0007 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
game-ui-workflow
Orchestrates an end-to-end game UI workflow from game design (GDD), PRD, and UI interaction logic through design specification, screen-system extension, page image generation, component breakdown, sprite-sheet splitting, PNG ZIP packaging, atlas packing, engine JSON handoff, asset registration, and validation. Use…
game-ui-product-design
Writes and maintains game design docs (GDD), product requirements (PRD), and UI interaction logic before any page image generation. Use when users ask for 游戏策划方案、PRD、产品需求、UI交互逻辑、交互流程、状态机, or say to finish planning before generating UI visuals / 生图前先做策划.
game-ui-sprite-sheet-splitter
Splits a generated game UI sprite sheet or component board into individual transparent PNG elements, writes crop metadata, validates dimensions and alpha channels, and packages all PNG files into a ZIP archive. Use after component breakdown when users ask to cut a combined sprite sheet, isolate every…
game-ui-component-breakdown
Breaks an approved game UI page or visual style into reusable, individually generated component assets with clean edges, transparent backgrounds where appropriate, stable naming, states, dimensions, prompts, and traceable manifest records. Use for UI slicing, transparent buttons, icons, cards, modals, navigation…
game-ui-page-generator
Designs and generates one complete game UI page at a time using an approved style and screen contract, producing a page brief, reproducible image prompt, negative constraints, an actual visual asset when image generation is available, and a manifest entry. Use for home, task, ranking, shop, inventory, character…
game-ui-asset-pipeline
Packs semantically named transparent game UI PNG files into an atlas, preserves component states and reviewed 9-slice metadata, and exports deterministic JSON handoff manifests for Godot, Unity, Cocos, or generic consumers. Use after sprite-sheet splitting when users ask for atlas packing, nine-patch metadata, engine…