Iron Law TDD

Enforce a strict 11-step TDD cycle from failing test creation to refactor checks.

Updated Feb 3, 2026
One-click install
npx skills add https://github.com/jason-hchsieh/mycelium --skill iron-law-tdd
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: Iron Law TDD
Source: https://github.com/jason-hchsieh/mycelium/tree/main/skills/workflow/tdd
Command: npx skills add https://github.com/jason-hchsieh/mycelium --skill iron-law-tdd

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Ensures that code is developed only after writing failing tests, preventing untested or brittle implementations and improving long-term maintainability.

Core Features & Use Cases

  • Enforces a strict 11-step TDD cycle from test creation to refactor checks.
  • Provides guardrails for test-first development across feature work, bug fixes, API changes, and database operations.
  • Tracks and promotes high-quality testing practices with clear validation and documentation requirements.

Quick Start

Describe a feature you want, then write a failing test first and implement until all tests pass.

Frequently Asked Questions about Iron Law TDD

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I enforce tests-first development for API and database operations?

Tests-first development is enforced by requiring tests to fail initially, implementing minimally to pass, and validating with a full-suite run. It applies to API development and database operations to guarantee test coverage and safe changes.

What is the best way to ensure edge-case coverage during a refactor?

Edge-case coverage during a refactor is ensured by following a strict 11-step TDD cycle. This workflow tracks test creation, implementation, and refactor checks to guarantee safe changes and prevent brittle implementations.

Does test-driven development work for fixing existing bugs?

Test-driven development works for bug fixes by enforcing test-first guardrails across feature work and refactors. You write a failing test that reproduces the bug, implement the fix until it passes, and validate the full test suite.

Why write a failing test before implementing new features?

Writing a failing test before implementing features ensures untested code is prevented. This process improves long-term maintainability by requiring minimal implementation to pass tests, followed by full-suite validation and edge-case coverage.

How do I start with test-driven development for integration changes?

To start test-driven development for integration changes, describe the feature you want, write a failing test first, and implement the code until all tests pass. This guarantees test coverage and safe changes across your software engineering tasks.