---
description: Start autonomous TDD implementation
---
# TddBee Run - Autonomous TDD Implementation
You are implementing features autonomously using strict Test-Driven Development.
## CRITICAL RULES - READ FIRST
### NEVER Modify Tests or Acceptance Criteria
**It is UNACCEPTABLE to remove, edit, or weaken tests or acceptance criteria.**
This could lead to missing or buggy functionality. The acceptance criteria in `features.json` are the contract - you implement TO them, never modify them.
If a test seems wrong:
- You probably misunderstand the requirement
- Re-read the acceptance criteria carefully
- Ask for clarification if truly ambiguous
- NEVER just change the test to make it pass
### One Feature at a Time
Work on exactly ONE feature per cycle. Do not:
- Start multiple features
- Skip ahead to "easier" features
- Partially implement and move on
### Actually RUN Tests - Don't Just Inspect Code
You MUST execute tests, not just read code and assume it works:
- Run the test suite after every change
- Verify with actual test output
- Never mark complete based on code inspection alone
## Session Startup Sequence
1. **Confirm working directory** - Run `pwd` to verify location
2. **Read state files**:
- `.tddbee/features.json` - the feature list (DO NOT MODIFY acceptance criteria)
- `.tddbee/config.json` - current progress
3. **Check git status** - Review recent commits to understand current state
4. **Run existing tests** - Ensure no regressions before starting new work
5. **Select ONE feature** - Pick the first `completed: false` feature
6. **Update config** - Set `current_feature` before doing any work
## TDD Cycle (For Each Feature)
### Step 1: Update Status FIRST
Before writing any code, update `.tddbee/config.json`:
- Set `current_feature` to the feature ID
### Step 2: READ Acceptance Criteria
**CRITICAL**: Before writing ANY tests or code:
1. Read the feature from `.tddbee/features.json`
2. Display the acceptance criteria clearly:
```
Feature [ID]: [Title]
Description: [description]
Acceptance Criteria:
1. [criterion 1]
2. [criterion 2]
3. [criterion 3]
...
```
3. Review each criterion carefully - these define what tests you must write
4. Ensure you understand what each criterion requires
### Step 3: RED - Write Failing Tests
- Write tests that verify ALL acceptance criteria from Step 2
- Each criterion should have at least one test
- Run tests - they MUST fail initially
- If tests pass without implementation, investigate why
### Step 4: GREEN - Make Tests Pass
- Write MINIMAL code to make tests pass
- Run tests after EVERY change (not just at the end)
- Continue until all tests pass
### Step 5: REFACTOR (if needed)
- Clean up code while keeping tests green
- Run tests after refactoring to confirm no regressions
### Step 6: VERIFY - Actually Run All Tests
**CRITICAL**: Before marking complete:
1. Run the FULL test suite (not just new tests)
2. Verify EACH acceptance criterion has a passing test
3. Document the verification:
```
Feature F003: Addition - Float Support
Acceptance Criteria Verification:
[PASS] add(1.5, 2.5) returns 4.0
Test: test_add_floats - PASSED
[PASS] add(0.1, 0.2) returns ~0.3
Test: test_add_floats_precision - PASSED
[PASS] Mixed int/float works
Test: test_add_mixed_int_float - PASSED
All tests passing. All criteria verified. Safe to mark complete.
```
### Step 7: Complete the Feature
Only after ALL tests pass and ALL criteria are verified:
1. Update `.tddbee/features.json` - set `completed: true`
2. Update `.tddbee/config.json` - increment `completed_features`
3. Commit with descriptive message: `git commit -m "feat: F003 - Addition float support"`
4. Update `.tddbee/progress.md` with what was done
### Step 8: Continue or Stop
- Find next `completed: false` feature
- Repeat the cycle
- Stop if user interrupts or all features complete
## Session Closure Requirements
Before ending a session:
1. **No half-implemented features** - Current feature must be complete or reverted
2. **All tests passing** - Run full suite one final time
3. **Git committed** - All changes saved
4. **Progress documented** - Update `.tddbee/progress.md`
## What NOT To Do
- ❌ Modify acceptance criteria to match your implementation
- ❌ Remove or weaken tests that are "too strict"
- ❌ Skip tests and assume code works
- ❌ Declare victory without running tests
- ❌ Start new features before completing current one
- ❌ Leave uncommitted or half-done work
## On Completion
When all features are done:
1. Run full test suite
2. Verify ALL features show `completed: true`
3. Report final summary with test results