Borrowing it
Nothing to install: this file belongs to dogganidhal/noddde. 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/dogganidhal/noddde/main/.claude/skills/generate-tests/SKILL.mdgit clone --depth 1 https://github.com/dogganidhal/nodddeWrote 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/dogganidhal/noddde/generate-tests)<a href="https://agentmods.dev/skills/dogganidhal/noddde/generate-tests"><img src="https://agentmods.dev/badge/skills/dogganidhal/noddde/generate-tests.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.1 | $0.00041 | $0.01154 |
| Opus 5 | $0.00020 | $0.00577 |
| Sonnet 5 | $0.00008 | $0.00231 |
| Haiku 4.5 | $0.00004 | $0.00115 |
Grade A, and why
generate-tests 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 6d 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 — 118 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Step 2: Generate Tests (RED Phase)
Create or update a vitest test file from a spec's ## Test Scenarios section.
Pipeline step 2 of 6. Called by the /spec orchestrator after step 1 (spec creation/editing).
Key principle: Tests MUST be generated BEFORE the implementation. This proves the tests are meaningful — they fail when the behavior is missing and pass when it's present. If tests are generated alongside the implementation, you can't know if they'd catch regressions.
Step 1: Find the Spec
If a spec path is provided, read it directly. Otherwise, find it:
- From a source file: replace
packages/core/src/withspecs/core/and.tswith.spec.md - From a module name: look in
specs/core/<module-path>.spec.md - From a test file: reverse the mapping below
Step 2: Read the Spec
Read the full spec. Focus on:
titlefrom frontmatter (used fordescribe()block name)statusfrom frontmatter (must bereadyor later — refuse to generate tests fromdraftspecs)## Test Scenariossection (the source of truth for tests)## Type Contract(for understanding imports needed)exportsfrom frontmatter (for import statements)
Step 3: Determine Test File Path
| Spec path | Test file path |
|---|---|
specs/core/<path>/<name>.spec.md |
packages/core/src/__tests__/<path>/<name>.test.ts |
specs/integration/<name>.spec.md |
packages/core/src/__tests__/integration/<name>.test.ts |
Create parent directories if they don't exist.
Step 4: Generate the Test File
Structure
import { describe, it, expect, expectTypeOf } from "vitest";
import {} from /* exports from spec */ "@noddde/core";
describe("<spec title>", () => {
// One it() block per ### heading in Test Scenarios
it("<heading text>", async () => {
// Code from the TypeScript code fence under that heading
});
});
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.
- 6d ago First seen · 118 lines · 41 tokens per session scan A 946a249aca3f
generate-tests is a skill published in the GitHub repository dogganidhal/noddde (49 stars, last pushed 7d ago), licensed MIT. It adds 41 tokens to every session and 1,154 once invoked, about $0.0002 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
cratis-specs-csharp
Step-by-step guidance for writing C# specs in Cratis with BDD Specification by Example — the Establish/Because/should pattern, for/when/and folder hierarchy, reusable given/ contexts, NSubstitute mocking, and the in-process scenario family. Use when writing C# unit or integration specs or structuring the for/when/and…
write-specs-events
Use this skill when asked to write tests or specs for event appending, event log behavior, constraint violations, or concurrency violations using EventScenario in a Cratis-based project. Produces infrastructure-free in-process specs using EventScenario and AppendResult Should extensions.
cratis-specs-typescript
Step-by-step guidance for writing TypeScript specs in Cratis using BDD-style Specification by Example — the given()/describe/it pattern, for/when/ folder hierarchy, reusable context classes, Sinon mocking, and Chai assertions. Use whenever writing TypeScript specs or tests, creating spec files/folders, using the…
write-specs-frontend
Use this skill to write specs for the React/TypeScript surface of a Cratis APPLICATION slice — view models, helpers, and component behavior (Vitest + Mocha-style describe/it + Sinon + Chai .should). The frontend peer to write-specs (backend). For framework @cratis/ package specs use cratis-specs-typescript instead.
principle-tdd
Test-Driven Development (TDD) — red-green-refactor, spec first, Arrange-Act-Assert; making tests fast and isolated; test doubles (mock, stub, fake, spy), mocking-as-design-feedback, outside-in vs inside-out TDD. Auto-load when implementing a feature TDD-style, fixing a bug with tests, or writing the test before the…
cpp-testing
Use only when writing/updating/fixing C++ tests, configuring GoogleTest/CTest, diagnosing failing or flaky tests, or adding coverage/sanitizers.