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 skills add sudokar/openspec-plus --skill openspec-plus-tddgit clone --depth 1 https://github.com/sudokar/openspec-plusWrote 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/sudokar/openspec-plus/openspec-plus-tdd)<a href="https://agentmods.dev/skills/sudokar/openspec-plus/openspec-plus-tdd"><img src="https://agentmods.dev/badge/skills/sudokar/openspec-plus/openspec-plus-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/sudokar/openspec-plus/openspec-plus-tdd"><img src="https://agentmods.dev/badge/skills/sudokar/openspec-plus/openspec-plus-tdd.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector warn
SkillSpector: 1 finding, up to high
These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →
- high Anti-Refusal · line 269 Skill instructs the agent to omit warnings, disclaimers, or ethical commentary. Stripping safety caveats hides risk from the user and is a common jailbreak preamble.Fix: Remove instructions that suppress warnings, disclaimers, or ethical commentary. Let the agent surface safety-relevant caveats to the user.
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.00190 | $0.04306 |
| Opus 5.5 | $0.00076 | $0.01722 |
| Sonnet 5.5 | $0.00038 | $0.00861 |
| Haiku 4.5 | $0.00019 | $0.00431 |
Grade A, and why
openspec-plus-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 1mo 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 — 378 lines — stays where its author put it; the contents beside it link to each section on GitHub.
OpenSpec Plus TDD
Mission
Strict RED-GREEN-REFACTOR per test for OpenSpec change implementation. Every test — whether derived from a Gherkin scenario relevant to the slice in spec.md, written for a unit, edge case, helper, or error path — goes through its own atomic cycle before the next test begins. Production code exists only to make a previously-failing test pass. Surgical changes, simplicity first, no speculative abstractions, every changed line traces to a slice task.
Gherkin scenarios in spec.md are the canonical source for acceptance tests: every scenario relevant to the slice MUST become at least one test. The implementer is encouraged to add additional tests — unit tests for individual functions, edge-case tests, helper tests, error-path tests — when fast-feedback granularity is valuable. Every test follows the same cycle.
Loaded by openspec-plus-apply (subagent prompt + inline mode) before any code is written.
RIGID. NEVER write production code before a test fails for the right reason. NEVER write tests for multiple cases before the first one is GREEN. NEVER skip the REFACTOR assessment. NEVER mark a task
[x]while a relevant test is failing or skipped. NEVER add comments for non-complex logic. NEVER refactor code outside the slice. NEVER write any code (test or production) before reading the project's referenced coding/testing standards. NEVER ship without covering every Gherkin scenario in spec.md with at least one test. Letter and spirit are the same.
Red flags — STOP, you are about to violate this skill:
- "I'll write the test after, it's faster"
- "Too simple to need a test"
- "Manually verified, that's enough"
- "Gherkin scenario is vague, generic test is fine"
- "Skip this failing test, circle back later"
- "Mark
.skipto unblock the slice" - "While I'm here, clean up the adjacent code"
- "Add an interface in case we swap implementations"
- "Short comment explains the obvious"
- "Error handling for cases that can't happen"
- "Test passed first run, must be right"
- "Let me write tests for all the cases first, then implement"
- "Test 1 done — I have a clear picture, let me write all the rest at once"
- "I have a clear picture of all 5 cases — let me write them all"
- "Writing one test at a time is slower"
- "These cases are related, I'll batch them"
- "The code I'm about to write covers test 2 anyway, no need to write its test separately first"
- "Acceptance tests cover the happy path — skip the unit/edge tests"
- "Scenarios covered, no need to add granular tests even though the helper has edge cases"
- "Nothing to refactor, skip the assessment"
- "I know the project conventions, no need to re-read AGENTS.md"
- "AGENTS.md has many rules — I'll apply the ones that feel relevant"
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.
- 1mo ago Changed · +1 lines c9623d638943
- 1mo ago First seen · 377 lines · 190 tokens per session scan A 7eac3da809f1
openspec-plus-tdd is a skill published in the GitHub repository sudokar/openspec-plus (214 stars, last pushed 1mo ago), licensed MIT. It adds 190 tokens to every session and 4,306 once invoked, about $0.0008 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-08-30.
Other skills, from other repositories
bugfix-quick
Fast bug fixes with root cause investigation + TDD. Enforces 'no fix without root cause' discipline and verification protocol. Without this skill, fixes are applied at symptoms instead of sources, and bugs return.
test-driven-development
Use when implementing any feature or bugfix, before writing implementation code.
setup
Set up or update TDD Guard for the current project. Detects the test framework, installs or updates the matching reporter, and configures or migrates its configuration to match the current specification.
software-code-refactoring
Improve production code quality while preserving all existing test behavior. Commonly used for the Refactor phase of TDD red-green-refactor, but applicable to any codebase with tests. Use when production code works but needs cleanup — reducing duplication, improving naming, simplifying complexity, aligning with…
testing-principles
Language-agnostic testing principles for choosing which tests a change needs, test quality, and proof ownership, with frontend and browser E2E implementation references. Use when writing tests, deciding test scope, or reviewing test quality.
ring:running-dev-cycle
Running the backend dev cycle: implements every task in a rolling-wave plan.md (ring:writing-plans format) for a Go/TS service, driving specialist agents through Gate 0 implementation/TDD, Gate 8 parallel review, and Gate 9 validation per epic, elaborating later phases at each phase boundary. Use when starting or…