Borrowing it
Nothing to install: this file belongs to vchelaru/FlatRedBall2. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/vchelaru/FlatRedBall2/main/.claude/skills/engine-tdd/SKILL.mdgit clone --depth 1 https://github.com/vchelaru/FlatRedBall2Wrote 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/vchelaru/flatredball2/engine-tdd)<a href="https://agentmods.dev/skills/vchelaru/flatredball2/engine-tdd"><img src="https://agentmods.dev/badge/skills/vchelaru/flatredball2/engine-tdd/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/vchelaru/flatredball2/engine-tdd"><img src="https://agentmods.dev/badge/skills/vchelaru/flatredball2/engine-tdd.svg" alt="Reviewed on agentmods" width="80" 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.1 | $0.00050 | $0.00385 |
| Opus 5.5 | $0.00020 | $0.00154 |
| Sonnet 5.5 | $0.00010 | $0.00077 |
| Haiku 4.5 | $0.00005 | $0.00038 |
Grade A, and why
engine-tdd 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 12d 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.
What it actually says
Engine Changes Require a Failing Test First
Behavior changes in src/ require a failing test in tests/FlatRedBall2.Tests/ before the source edit. Write it, run it, watch it fail, then fix.
No "the cause is obvious, I'll skip the test" exception — that reasoning is how silent regressions ship. If you're about to edit src/ without a failing test open, stop.
Exceptions: XML docs, style-only edits, pure renames, dead-code removal.
Shaders, Graphics, Color Values — Manual Test Is Never Skippable
Any change touching a shader, blend state, render target, or pixel color math requires either a pixel-verification test or the user manually checking rendered output — never "manual test: not needed." Passing unit tests on surrounding math (offset clamping, parameter selection) does not cover this.
For render-affecting src/ changes, add a golden scene test and regenerate its PNG with the golden-images-regenerate.yml workflow (CI output only, never a local render). How: tests/FlatRedBall2.GoldenImage.Tests/README.md.
API Design — Flag Before Implementing
Before adding any new public or virtual member to an engine base class (Screen, Entity, FlatRedBallService, etc.), stop and flag it as an API design decision. Ask before writing code. New public/virtual surface is a footgun risk — it implies intent to users, shows up in IntelliSense, and is hard to remove once shipped.
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.
- 12d ago Changed · +2 lines 403dff705d62
- 1mo ago First seen · 21 lines · 50 tokens per session scan A c120e2d6afd1
engine-tdd is a skill published in the GitHub repository vchelaru/FlatRedBall2 (15 stars, last pushed today), licensed MIT. It adds 50 tokens to every session and 385 once invoked, about $0.0002 per session on Opus 5.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-09-04.
Other skills, from other repositories
revenantworks-gamedev-slicesmith
Runs the test-first build loop (spec, plan, thin slices, failing test first, verify, commit) for a Godot 4 game in GDScript or C# first; in a TypeScript, Python or other repo when test-first, slices or a reproduce-first fix is asked for. Trigger to build or add a game feature, mechanic, stat, system or milestone, even…
team-combat
A coordinated workflow for designing, building, and testing a game's combat features with specialists in gameplay, enemy AI, visual effects, sound, and quality assurance.
unity-tdd
This skill should be used when the user asks to write tests first, do TDD, implement a feature or bugfix using test-driven development, add unit tests before coding, write EditMode or PlayMode tests, or set up Unity Test Runner. Also applies when a user says 'red green refactor', 'write a failing test', or…
unity-testing
Unity 6 testing guide. Use when writing unit tests, integration tests, or doing TDD with Unity Test Framework. Covers Edit Mode and Play Mode tests, NUnit attributes ([Test], [UnityTest], [SetUp], [TearDown]), testing MonoBehaviours and coroutines, and CI/CD integration. Based on Unity 6.3 LTS documentation.
unity-testrunner
Unity Test Framework CLI automation and test writing patterns. Masters batchmode execution, NUnit assertions, EditMode/PlayMode testing, and TDD workflows. Use PROACTIVELY for test automation, CI/CD pipelines, or test-driven development in Unity.
roblox-tdd
Use to drive Roblox / Luau implementation via red-green-refactor cycles with TestEZ or Jest-Roblox. Use when the user says "TDD", "test-driven", "write the test first", "test it properly", before implementing any non-trivial Luau module, or any time disciplined coverage is needed before code lands.