---
description: Initialize TddBee with flexible multi-modal inputs (files, text, images, URLs)
args: <spec-file|"text instruction"|image.png|url> [additional-inputs...]
---
# Initialize TddBee Project
You are initializing a new TddBee autonomous TDD project.
## Arguments Provided
$ARGUMENTS
## Your Task
1. **Read all inputs** - Parse the provided arguments to identify:
- File paths (read their content)
- Text instructions (use directly)
- Image files (analyze them)
- URLs (fetch and analyze)
2. **Create `.tddbee/` directory** in the current working directory
3. **Generate feature list** - Create `.tddbee/features.json`:
- 10-200 features depending on project scope (larger projects = more features)
- Each feature MUST have **clear, testable** acceptance criteria
- Order by dependency (foundational features first)
- Use JSON format (models are more precise with JSON than markdown)
4. **Create config** - Create `.tddbee/config.json`
5. **Create progress log** - Create `.tddbee/progress.md` for session handoffs
6. **Initialize git** (if not already a repo)
7. **Report results** to the user
## File Formats
### features.json - THE CONTRACT (Do Not Modify During Implementation)
```json
{
"project": "Project Name",
"created": "ISO timestamp",
"features": [
{
"id": "F001",
"title": "Feature Title",
"description": "What this feature does",
"category": "setup|core|error-handling|validation|quality",
"priority": 1,
"completed": false,
"acceptance_criteria": [
"function_name(input) returns expected_output",
"When X happens, Y should result",
"Error message contains 'specific text'"
]
}
]
}
```
**IMPORTANT**: Once created, the acceptance criteria are the CONTRACT. During `/tddbee:run`, they must NOT be modified - only the `completed` field changes.
### config.json
```json
{
"version": "1.0.0",
"project_name": "Project Name",
"initialized": "ISO timestamp",
"inputs": ["list of input sources"],
"current_feature": null,
"completed_features": 0,
"total_features": N
}
```
### progress.md - Session Handoff Log
```markdown
# TddBee Progress Log
## Project: [Name]
Initialized: [date]
---
### Session 1 - [date]
- Completed: F001, F002, F003
- Notes: Set up project structure, implemented basic operations
- Tests: 15 passing
---
```
## Acceptance Criteria Guidelines
Each criterion MUST be:
**Specific** - Not vague
- ✅ `add(2, 3) returns 5`
- ❌ `addition works correctly`
**Verifiable** - Has expected outcome
- ✅ `divide(1, 0) raises ValueError with message "Cannot divide by zero"`
- ❌ `handles division by zero`
**Testable** - Can write a test for it
- ✅ `login with invalid password returns 401 status`
- ❌ `authentication is secure`
## Feature Count Guidelines
Scale to project complexity:
- Simple utility/script: 10-20 features
- Medium application: 30-80 features
- Large application: 100-200 features
## Report to User
After initialization, show:
- Total features generated
- Categories breakdown
- List of all features (ID + title)
- Next steps: `/tddbee:run` to start, `/tddbee:status` to check progress