bts-testlisted
Install: claude install-skill imtemp-dev/claude-bts
# Test: Generate + Execute + Fix Loop
Generate and run tests for recipe: $ARGUMENTS
## Settings
Read `.bts/config/settings.yaml` for project-specific limits.
## Prerequisites
0. **Resolve recipe ID**: If `$ARGUMENTS` is empty, run `bts recipe status`
to find the active recipe. Use its ID for all `{id}` references below.
1. Verify tasks.json exists and implementation is done:
```bash
ls .bts/specs/recipes/{id}/tasks.json
```
If not found → "Run /implement first."
2. Check tasks.json: all tasks should be `done` or `skipped` (no `pending` or `in_progress`).
If incomplete → "Implementation not finished. Complete /implement first."
## Resume
If test-results.json already exists:
- Skip Steps 1-2 (test scenarios already extracted, test code already generated)
- Go directly to Step 3 (always re-run tests — code may have changed since last run)
- If status was `"fail"` → read previous failures for context before re-running
If test-results.json does not exist → start from Step 1
## Step 1: Extract Test Scenarios
1. Read `.bts/specs/recipes/{id}/final.md`
2. Find all test scenarios defined in the spec:
- Happy path scenarios
- Error path scenarios
- Edge cases
- Integration scenarios
3. **Read simulations/*.md (Phase 13)**: collect every scenario id
referenced in simulation files. These are the ids that tests MUST
link via `bts:scenario` tags. `bts check test-coverage` enforces
this after Step 2.5 runs.
4. Read existing test files in th