TDD Test List Phase

VerifiedSafe

Guides creation of a comprehensive TDD test list covering every rule and example from the specification, ordered from simplest to most complex.

Sby Skills Guide Bot
TestingIntermediate
11/2/2026
Claude CodeCursorWindsurfCopilotCodex
#tdd#test-planning#specification-coverage#inactive-tests#coverage-analysis

Recommended for

Automated summary

Guides an agent through the TDD test-list phase by turning every rule and example in a specification into ordered inactive tests.

Strengths

  • Requires every rule, example, and clarifying question in prompt.md to map to at least one inactive test.
  • Enforces simplest-to-most-complex ordering and keeps all tests inactive until the implementation phase.
  • Includes a coverage cross-check across independent spec dimensions such as operations, variants, state transitions, and error behavior.
  • Asks for observable error contracts instead of inventing unspecified error types or messages.

Limitations

  • Assumes the specification lives in prompt.md and that the project has an established inactive-test mechanism.
  • Stops at the test list; it does not cover making tests executable, implementation, or refactoring.
  • The guidance on unspecified error contracts can still leave judgment calls to the agent.
When to use it

Use when a specification is complete and you need a structured, coverage-oriented list of inactive tests before starting implementation.

When not to use it

Do not use when there is no written specification or when you need executable tests and implementation guidance rather than test planning.

Security analysis

Safe
Quality score84/100

The file is purely instructional prose about a TDD planning phase: it tells the agent to read a specification, enumerate inactive tests, order them, and summarize coverage. There are no shell commands, no network calls, no credential handling, no encoded payloads, no destructive operations, and no attempts to override the auditor or the host agent's safety behavior. The only executable-adjacent content is generic guidance to keep tests inactive until later phases, which is benign.

Findings
  • •Informational: no allowed-tools are declared, yet the skill directs the agent to read the spec, create/modify test files, and verify a test suite; tool needs are implicit rather than declared (transparency nit, not a risk).
How this analysis is made

Examples

TDD list from a feature spec
Read prompt.md and create the complete TDD test list for the feature, turning every rule and example into an inactive test ordered from simplest to most complex.
Error-contract coverage
Our spec describes several rejection cases without defining error types; build the inactive test list and make each failure case observable, stating any assumption you need to make.
Coverage cross-check
Review the specification and our existing inactive tests, then add missing tests for independent dimensions like operations, variants, and state transitions.

name: test-list description: TDD Test List Phase - Create a comprehensive test list covering every example and rule from the specification

TDD Test List Phase

You are now in the Test List Phase of TDD. Follow these instructions to create a comprehensive test list.

Your Mission

Create a test list using the project's inactive-test mechanism that covers every rule and every example from the specification:

  1. Read the specification (prompt.md) thoroughly -- every rule, every example, every clarifying question (?)
  2. Turn each example into at least one inactive test case
  3. Order tests from simplest to most complex
  4. Keep every test inactive -- NO executable tests yet

Process

Step 1: Understand the Feature

Read the complete specification. Pay special attention to integration examples and clarifying questions (marked with ?) -- these disambiguate rules that may seem open to interpretation in isolation.

  • What are all the operations the system must support?
  • What rules govern each operation?
  • Which examples in the spec illustrate these rules?
  • For rejection or failure cases, what is the observable error contract: a thrown error, an error result, a status, or another outcome? If an error is thrown, does the specification define its type and/or message?

Step 2: Identify Test Cases from the Spec

Walk through the specification section by section. For each rule and each example:

  • Create a test case that verifies the described behavior
  • Include the expected values from the spec in the test description
  • If a clarifying question (?) resolves an ambiguity, create a test for the clarified interpretation
  • If the spec uses an example-mapping format (rules, examples, questions), every listed example must have a corresponding test
  • Make every rejection or failure case explicit in observable terms, such as a thrown error of the profile's representative type, an error result, or an error status
  • Include an exact error type or message only when the specification establishes it
  • If the specification merely says rejects, fails, invalid, or equivalent without defining the observable contract, choose the most defensible reading of the specification, state that reading explicitly in the test description, and continue; do not silently invent an unstated contract

Step 3: Order Tests (Simple -> Complex)

Arrange tests in increasing complexity:

  1. Simplest case (often empty/zero/single item)
  2. Individual rules in isolation
  3. Rules with modifiers
  4. Combinations of multiple rules
  5. Multi-step scenarios (e.g., operations that reference earlier results)

Step 4: Write Test File

Create the test file using the project's inactive-test syntax. Keep every listed test inactive.

Step 5: Cross-Check Independent Specification Dimensions

Before declaring the list complete, review the specification and the inactive tests as a coverage map:

  • Identify independently specified dimensions such as operation, entity or variant, input category, policy attribute, state transition, and observable result.
  • For each explicit value named by the specification, ask whether every independently changeable rule that applies to it has a discriminating test. A test of one attribute does not establish another attribute of the same value.
  • Look especially for parallel catalogues, mappings, tables, or branches. Ask whether one side could omit an entry while every current test still passes.
  • Use a representative test where several values are governed by one uniform rule, but test each value separately when the specification assigns it independent data or when entries can drift independently.
  • Check each operation separately. Coverage through quote, parsing, or presentation does not establish policy creation, claim behavior, persistence, or another operation over the same entity.
  • For every uncovered cell, add an inactive test or record why an existing test discriminates that cell. Do not create a mechanical Cartesian product when dimensions cannot fail independently.

Use a falsifying counterfactual as the final check: if one explicitly specified entry or rule were removed or changed while neighboring behavior stayed correct, would an inactive test detect it once activated? If not, the list is not complete.

Step 6: Provide Summary

After creating and cross-checking the test list, provide this summary:

Test List Created:
**Feature**: [feature name]
**Test File**: [test file path]
**Tests**: [count]

**Test Cases** (ordered simple -> complex):
1. [first test description]
2. [second test description]
3. [third test description]
...

**Coverage Cross-Check**:
- [independent dimensions reviewed]
- [parallel catalogues or operations checked for omissions]
- [why representative tests are discriminating where exhaustive combinations are unnecessary]

Step 7: Continue the Workflow

Provide the Test List summary, then return control to the invoking workflow. EXACT Coding Predictive TDD predicts and verifies that the inactive list leaves the suite green without creating a method commit.

Important Guidelines

DO

  • Cover every spec example with at least one test
  • Cover every operation described in the spec
  • Give every clarifying question (?) a corresponding test
  • Order tests simple -> complex
  • Use the project's inactive-test mechanism for all tests
  • Include expected values in descriptions
  • State rejection and failure outcomes as explicit observable contracts
  • Name your chosen reading explicitly when the spec leaves a failure mechanism open
  • Keep tests independent
  • One behavior per test
  • Make the independent-dimensions cross-check visible in the summary

DON'T

  • Write executable tests yet
  • Think about implementation instead of behavior
  • Turn vague words such as rejects into an invented error contract without saying so
  • Leave a rejection test vague when its observable outcome is known
  • Miss an entire operation described in the spec
  • Order randomly

From the file to a first result

The download contains exactly the content displayed on this page. This copy may differ from the latest version in the source repository.

View the source and supporting files

This download contains SKILL.md only. Any scripts, references, templates and dependencies are not included. Get the required files from the source, preserving their directory structure, before continuing.

1. Download the file

Download SKILL.md

From the root of a test project, save the file as .skill-downloads/tdd-test-list-phase-mvg6tye5/SKILL.md, or use the command below. This folder is for inspecting the skill before installation.

Command for macOS/Linux or WSL: requires a POSIX shell and curl. On Windows without WSL, use the download button and create the folder manually.

mkdir -p '.skill-downloads/tdd-test-list-phase-mvg6tye5' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/tdd-test-list-phase-mvg6tye5/download' --output '.skill-downloads/tdd-test-list-phase-mvg6tye5/SKILL.md.part' && mv '.skill-downloads/tdd-test-list-phase-mvg6tye5/SKILL.md.part' '.skill-downloads/tdd-test-list-phase-mvg6tye5/SKILL.md'

2. Check prerequisites

Read SKILL.md before using it. If it references scripts or external services, inspect them and prepare the required access in your test environment.

No recognized prerequisites section in this file. This does not mean it is self-contained: libraries, tools and access requirements may be mentioned elsewhere in the content or source repository.

The platforms on this page are catalog indications. The paths below follow tool documentation; they do not prove this skill has been run in those tools. No minimum tool version is confirmed for this listing.

3. Load the skill

After inspection, copy the complete folder into your project using one of the commands below, then open a new tool session. The command stops if a folder with the same name already exists: compare the files before replacing it.

Claude Code
test -f '.skill-downloads/tdd-test-list-phase-mvg6tye5/SKILL.md' && test -s '.skill-downloads/tdd-test-list-phase-mvg6tye5/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/test-list' && cp -R '.skill-downloads/tdd-test-list-phase-mvg6tye5' '.claude/skills/test-list'

Cursor
test -f '.skill-downloads/tdd-test-list-phase-mvg6tye5/SKILL.md' && test -s '.skill-downloads/tdd-test-list-phase-mvg6tye5/SKILL.md' && mkdir -p '.cursor/skills' && test ! -e '.cursor/skills/test-list' && cp -R '.skill-downloads/tdd-test-list-phase-mvg6tye5' '.cursor/skills/test-list'

Codex
test -f '.skill-downloads/tdd-test-list-phase-mvg6tye5/SKILL.md' && test -s '.skill-downloads/tdd-test-list-phase-mvg6tye5/SKILL.md' && mkdir -p '.agents/skills' && test ! -e '.agents/skills/test-list' && cp -R '.skill-downloads/tdd-test-list-phase-mvg6tye5' '.agents/skills/test-list'

OpenSkills

OpenSkills must already be installed. The local install/read procedure is checked with OpenSkills 1.5.0, which requires Node.js ≥ 20.6.0. Catalog slugs are not resolved automatically.

Official OpenSkills installation
openskills install './.skill-downloads/tdd-test-list-phase-mvg6tye5'

openskills read 'tdd-test-list-phase-mvg6tye5'

Reading should display the installed file content and its base directory. It does not run the skill or install its dependencies.

For an agent that reads AGENTS.md, then sync the index. This command changes AGENTS.md: review the diff before using it.

openskills sync

Manual method or another tool: attach SKILL.md to a conversation, or open it in an agent that can read files. Include any required supporting resources. No universal folder is recognized by every tool.

4. Try a first task

Use a short, synthetic input: an API endpoint, a small document or an interface brief. In a new conversation, attach the file or give the agent its path, then adapt this request:

Read .skill-downloads/tdd-test-list-phase-mvg6tye5/SKILL.md and apply its instructions to this example: [describe a test input]. Identify any missing files, dependencies or access. Produce the result requested by the skill without inventing data or running unreviewed scripts.

Expected result: output matching the skill instructions, or a precise list of missing prerequisites. A read confirmation alone does not validate a first use. If an external resource is unavailable, that path remains untested.

Related skills