A Claude Code plugin for Test-Driven Development with context-isolated agents. Enforces red-green-refactor discipline for Dart/Flutter, C++, and Bash/Shell projects. Decomposes TDD into four isolated agents that prevent single-context failure modes.
Add this skill
npx mdskills install hugo-bluecorn/bash-testing-conventionsClear test structure and tool invocation guide, but lacks actionable agent instructions
A Claude Code plugin for Test-Driven Development with context-isolated agents. Enforces red-green-refactor discipline for Dart/Flutter, C++, and Bash/Shell projects.
This plugin decomposes TDD into four context-isolated agents that prevent the common failure modes of single-context TDD: training distribution bias toward implementation-first code, context rot under token accumulation, and absence of epistemic boundaries between test and implementation reasoning.
claude plugin install
/tdd-plan Implement a LocationService that wraps geolocator
This forks a fresh context, researches your codebase, and produces a structured plan with testable slices. After reviewing and approving the plan:
/tdd-implement
This reads .tdd-progress.md, finds pending slices, and runs each through red-green-refactor with automated verification. Supports resuming interrupted sessions.
User Request
|
v
/tdd-plan (Orchestrating Skill)
| context: fork
| agent: tdd-planner (opus, read-only)
| Researches codebase, produces slice-oriented plan
| Writes: .tdd-progress.md + planning/ archive
v
Human Review (approve / revise / reject)
|
v For each slice:
tdd-implementer (opus)
| 1. Write failing test (RED)
| 2. Minimal implementation (GREEN)
| 3. Refactor (still GREEN)
| Hooks: validate-tdd-order, auto-run-tests
v
tdd-verifier (haiku, read-only)
| Blackbox validation:
| - Full test suite
| - Static analysis
| - Coverage check
| - Plan criteria verification
v
PASS -> next slice | FAIL -> retry
|
v (all slices done)
/tdd-release (Orchestrating Skill)
| context: fork
| agent: tdd-releaser (sonnet)
| Updates CHANGELOG, pushes branch, creates PR
v
Done
| Agent | Model | Purpose |
|---|---|---|
| tdd-planner | opus | Codebase research, plan creation (read-only) |
| tdd-implementer | opus | Red-green-refactor per slice (full tools) |
| tdd-verifier | haiku | Blackbox validation (read-only) |
| tdd-releaser | sonnet | Release workflow (CHANGELOG, PR) |
| Skill | Type |
|---|---|
/tdd-plan | Orchestrating entry point (forks context) |
/tdd-implement | Implementation loop (reads progress, runs slices) |
/tdd-release | Release entry point (forks context) |
| dart-flutter-conventions | Convention reference (auto-loaded by agents) |
| cpp-testing-conventions | Convention reference (auto-loaded by agents) |
| bash-testing-conventions | Convention reference (auto-loaded by agents) |
| Hook | Type | Purpose |
|---|---|---|
| validate-tdd-order.sh | PreToolUse (command) | Blocks implementation writes before test exists |
| auto-run-tests.sh | PostToolUse (command) | Runs tests after every file change |
| planner-bash-guard.sh | PreToolUse (command) | Allowlists read-only commands for planner |
| validate-plan-output.sh | Stop + SubagentStop (command) | Validates plan file has required sections |
| check-tdd-progress.sh | Stop (command) | Prevents session end with pending slices |
| SubagentStart (planner) | command | Injects git context into planner |
| check-release-complete.sh | SubagentStop (command) | Validates branch is pushed to remote |
| SubagentStop (implementer) | prompt | Verifies R-G-R cycle completion |
Default: model: opus. For faster but less thorough planning, change to model: sonnet in agents/tdd-planner.md. The /tdd-plan skill includes ultrathink which works with both models.
Default: not included. To let the planner check pub.dev or API docs, add WebFetch, WebSearch to the planner's tools list.
Default: compact single-line Given/When/Then. Customizable via the template and planner instructions. See Changing the test specification format.
Default: permissionMode: plan. If plan mode blocks Bash writes to .tdd-progress.md, remove permissionMode: plan and rely on disallowedTools instead.
tdd-workflow/
├── .claude-plugin/
│ └── plugin.json
├── agents/
│ ├── tdd-planner.md
│ ├── tdd-implementer.md
│ ├── tdd-verifier.md
│ └── tdd-releaser.md
├── skills/
│ ├── tdd-plan/
│ │ ├── SKILL.md
│ │ └── reference/
│ │ ├── tdd-task-template.md
│ │ └── feature-notes-template.md
│ ├── tdd-implement/
│ │ └── SKILL.md
│ ├── tdd-release/
│ │ └── SKILL.md
│ ├── dart-flutter-conventions/
│ │ ├── SKILL.md
│ │ └── reference/
│ │ ├── test-patterns.md
│ │ ├── mocking-guide.md
│ │ ├── widget-testing.md
│ │ └── project-conventions.md
│ ├── cpp-testing-conventions/
│ │ ├── SKILL.md
│ │ └── reference/
│ │ ├── googletest-patterns.md
│ │ ├── cmake-integration.md
│ │ └── googlemock-guide.md
│ └── bash-testing-conventions/
│ ├── SKILL.md
│ └── reference/
│ ├── bashunit-patterns.md
│ └── shellcheck-guide.md
├── hooks/
│ ├── hooks.json
│ ├── validate-tdd-order.sh
│ ├── auto-run-tests.sh
│ ├── check-tdd-progress.sh
│ ├── planner-bash-guard.sh
│ ├── validate-plan-output.sh
│ ├── check-release-complete.sh
│ └── detect-project-context.sh
├── docs/
│ ├── version-control.md
│ ├── version-control-integration.md
│ └── user-guide.md
├── CLAUDE.md
├── README.md
├── CHANGELOG.md
└── LICENSE
To use bash testing support, install bashunit and shellcheck:
curl -s https://bashunit.typeddevs.com/install.sh | bash
# Debian/Ubuntu
apt install shellcheck
# macOS
brew install shellcheck
Add the following to your .claude/settings.local.json to allow Claude Code to run these tools:
{
"permissions": {
"allow": [
"Bash(shellcheck *)",
"Bash(bashunit *)"
]
}
}
Apache-2.0
Install via CLI
npx mdskills install hugo-bluecorn/bash-testing-conventionsBash Testing Conventions is a free, open-source AI agent skill. A Claude Code plugin for Test-Driven Development with context-isolated agents. Enforces red-green-refactor discipline for Dart/Flutter, C++, and Bash/Shell projects. Decomposes TDD into four isolated agents that prevent single-context failure modes.
Install Bash Testing Conventions with a single command:
npx mdskills install hugo-bluecorn/bash-testing-conventionsThis downloads the skill files into your project and your AI agent picks them up automatically.
Bash Testing Conventions works with Claude Code, Claude Desktop, Cursor, Vscode Copilot, Windsurf, Continue Dev, Codex, Gemini Cli, Amp, Roo Code, Goose, Opencode, Trae, Qodo, Command Code. Skills use the open SKILL.md format which is compatible with any AI coding agent that reads markdown instructions.