AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Tdd

skill-aldianriski-lean-flow-tdd · by aldianriski

Use when building NEW testable behavior test-first — feature work, business logic, an API surface, a tool wrapper. Runs behaviour-driven red-green-refactor in vertical slices (tracer bullet, then one test → one implementation → repeat). Do not use to debug an existing failure or fix a bug — use /diagnose (it already writes the regression test first). Not for docs, config, or throwaway spikes.

No reviews yet
0 installs
7 views
0.0% view→install

Install

$ agentstack add skill-aldianriski-lean-flow-tdd

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-aldianriski-lean-flow-tdd)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
1mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Tdd? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

tdd

Behaviour-driven test-first development. Build in vertical slices: one test → one implementation → repeat. Each test responds to what the last cycle taught you.

For fixing a bug, use /diagnose (it writes the failing regression test before the fix). This skill is for new behaviour.

Philosophy

> Tests verify behaviour through public interfaces, not implementation details. Code can change > entirely; the tests shouldn't.

  • Good test — integration-style, exercises a real code path through the public API, reads like a

spec ("user can checkout with a valid cart"). Survives refactors because it ignores internal shape.

  • Bad test — coupled to implementation: mocks internal collaborators, tests private methods, or

verifies through a side channel (querying the DB instead of the interface). The tell: it breaks when you rename an internal function but behaviour hasn't changed.

When a test is hard to write, or you're unsure what to mock / how to shape an interface for testability → ${CLAUDE_SKILL_DIR}/references/testability.md (mock-at-boundaries · DI · good/bad examples · refactor candidates). Unsure which kind of test (unit/integ/e2e/perf/load) fits the task → ${CLAUDE_SKILL_DIR}/references/test-strategy.md. What makes a test good — the quality checklist + the 70/20/10 pyramid + risk-tier→depth, as host-project guidance → ${CLAUDE_SKILL_DIR}/references/test-standard.md.

Anti-pattern: horizontal slicing

Do NOT write all tests first, then all implementation. Bulk-written tests verify imagined behaviour — they test the shape of things, pass when behaviour breaks, and lock you into a structure before you understand the implementation.

WRONG (horizontal):  RED: test1..test5   then  GREEN: impl1..impl5
RIGHT (vertical):    test1→impl1 · test2→impl2 · test3→impl3 …

Workflow

1. Plan (get approval before writing code)

  • [ ] Confirm the public interface that's changing.
  • [ ] List the behaviours to test (not implementation steps), in priority order.
  • [ ] You can't test everything — confirm with the user which behaviours matter most (critical paths, complex logic), not every edge case.

2. Tracer bullet

Write ONE test for the first behaviour → it fails (RED) → write the minimal code to pass (GREEN). This proves the path works end-to-end.

3. Incremental loop

For each remaining behaviour: RED (write the next test, it fails) → GREEN (minimal code to pass). One test at a time. Only enough code to pass the current test. Don't anticipate future tests.

4. Refactor

Only once GREEN — never refactor while RED. Extract duplication, move complexity behind simple interfaces, apply patterns where natural (candidate list → references/testability.md). Run the tests after each refactor step.

Per-cycle checklist

[ ] Test describes behaviour, not implementation
[ ] Test uses the public interface only
[ ] Test would survive an internal refactor
[ ] Code is minimal for this test — no speculative features

Red flags

Writing all tests up front — horizontal slicing; produces tests insensitive to real change. ❌ Testing private methods / mocking internal collaborators — couples tests to implementation. ❌ Refactoring while RED — get to GREEN first; one change at a time. ❌ Writing more code than the current test needs — speculative code has no test driving it; the simplicity ladder says stop at the first working rung (CLAUDE). ❌ Using this to fix a bug — that's /diagnose (test-first regression, then fix). ❌ Gating the commit on filtered test output… | grep -E '^(OK|FAIL)' can swallow FAILED and let a red suite through; gate on the runner's exit code (L-016).

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.