Complete cleanup of the legacy TDD AI and issue management system, establishing clear separation of concerns as requested. All issue handling is now provided by the standalone issue-facade system. Removed components: - TDD AI framework (tddai/ directory and tddai_cli.py) - Legacy issue management CLI commands and services - Issue-related Makefile targets and helper commands - Obsolete tests and infrastructure dependencies - Finance modules that depended on the old issue system Updated: - Makefile: Removed issue-*, tdd-*, and test-from-issue commands - CLI framework: Simplified to core functionality only - Documentation: Added deprecation notice for old config system The issue-facade now serves as the universal CLI for issue tracking, providing backend-agnostic interface to GitHub, GitLab, Gitea, and local SQLite storage as documented in issue-facade/README.md. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
205 lines
No EOL
5.7 KiB
Markdown
205 lines
No EOL
5.7 KiB
Markdown
# TDDAi Configuration Management
|
|
|
|
> **⚠️ DEPRECATED**: The tddai framework has been replaced by the [issue-facade](issue-facade/) system. This documentation is kept for historical reference only.
|
|
>
|
|
> **For current issue management**: See [issue-facade/README.md](issue-facade/README.md)
|
|
|
|
The tddai framework uses a flexible, hierarchical configuration system designed for project-agnostic deployment while supporting per-project customization.
|
|
|
|
## Configuration Hierarchy
|
|
|
|
Configuration values are loaded in the following priority order (highest to lowest):
|
|
|
|
1. **Environment Variables** - Runtime overrides (highest priority)
|
|
2. **`.env.tddai` File** - Project-specific configuration (auto-loaded)
|
|
3. **Default Values** - Framework defaults (fallback)
|
|
|
|
## Quick Start
|
|
|
|
### Automatic Configuration (Recommended)
|
|
The framework automatically loads `.env.tddai` from the current directory:
|
|
|
|
```bash
|
|
# Configuration loaded automatically
|
|
make tdd-status
|
|
make tdd-start NUM=5
|
|
```
|
|
|
|
### Manual Configuration
|
|
You can also source the setup script manually:
|
|
|
|
```bash
|
|
source tddai-setup.sh
|
|
make tdd-status
|
|
```
|
|
|
|
## Configuration Options
|
|
|
|
### Repository Settings (Required)
|
|
|
|
| Variable | Description | Example | Required |
|
|
|----------|-------------|---------|----------|
|
|
| `TDDAI_GITEA_URL` | Git platform URL | `https://github.com` | ✅ |
|
|
| `TDDAI_REPO_OWNER` | Repository owner/org | `myusername` | ✅ |
|
|
| `TDDAI_REPO_NAME` | Repository name | `myproject` | ✅ |
|
|
|
|
### Workspace Settings (Optional)
|
|
|
|
| Variable | Description | Default | Example |
|
|
|----------|-------------|---------|---------|
|
|
| `TDDAI_WORKSPACE_DIR` | TDD workspace directory | `.tddai_workspace` | `.myproject_workspace` |
|
|
|
|
### Test Settings (Framework Defaults)
|
|
|
|
| Setting | Value | Description |
|
|
|---------|-------|-------------|
|
|
| `tests_dir` | `tests/` | Main test directory |
|
|
| `test_file_pattern` | `test_issue_{issue_num}_{scenario}.py` | Test file naming pattern |
|
|
| `current_issue_file` | `current_issue.json` | Active issue metadata file |
|
|
|
|
## Configuration Files
|
|
|
|
### `.env.tddai` Format
|
|
```bash
|
|
# TDDAi configuration for YourProject
|
|
# Repository settings
|
|
TDDAI_GITEA_URL=https://your-git-platform.com
|
|
TDDAI_REPO_OWNER=yourusername
|
|
TDDAI_REPO_NAME=yourproject
|
|
|
|
# Workspace settings (optional)
|
|
TDDAI_WORKSPACE_DIR=.yourproject_workspace
|
|
```
|
|
|
|
### `tddai-setup.sh` Format
|
|
```bash
|
|
#!/bin/bash
|
|
# TDDAi environment setup script
|
|
|
|
export TDDAI_GITEA_URL=https://your-git-platform.com
|
|
export TDDAI_REPO_OWNER=yourusername
|
|
export TDDAI_REPO_NAME=yourproject
|
|
export TDDAI_WORKSPACE_DIR=.yourproject_workspace
|
|
|
|
echo "✅ TDDAi configured for YourProject"
|
|
```
|
|
|
|
## Platform Examples
|
|
|
|
### GitHub Configuration
|
|
```bash
|
|
TDDAI_GITEA_URL=https://github.com
|
|
TDDAI_REPO_OWNER=yourusername
|
|
TDDAI_REPO_NAME=yourrepo
|
|
```
|
|
|
|
### GitLab Configuration
|
|
```bash
|
|
TDDAI_GITEA_URL=https://gitlab.com
|
|
TDDAI_REPO_OWNER=yourusername
|
|
TDDAI_REPO_NAME=yourrepo
|
|
```
|
|
|
|
### Self-hosted Gitea
|
|
```bash
|
|
TDDAI_GITEA_URL=https://git.yourcompany.com
|
|
TDDAI_REPO_OWNER=yourorganization
|
|
TDDAI_REPO_NAME=yourproject
|
|
```
|
|
|
|
## API Integration
|
|
|
|
The configuration automatically constructs API URLs:
|
|
|
|
```python
|
|
# Constructed from configuration
|
|
issues_api_url = f"{TDDAI_GITEA_URL}/api/v1/repos/{TDDAI_REPO_OWNER}/{TDDAI_REPO_NAME}/issues"
|
|
```
|
|
|
|
## Workspace Structure
|
|
|
|
Default workspace layout (configurable via `TDDAI_WORKSPACE_DIR`):
|
|
|
|
```
|
|
.tddai_workspace/
|
|
├── current_issue.json # Active issue metadata
|
|
└── issue_X/ # Issue-specific workspace
|
|
├── tests/ # Test files for this issue
|
|
│ └── test_issue_X_*.py # Generated test files
|
|
├── requirements.md # Issue requirements analysis
|
|
└── test_plan.md # Test planning document
|
|
```
|
|
|
|
## Environment Variable Overrides
|
|
|
|
You can override any configuration at runtime:
|
|
|
|
```bash
|
|
# Override workspace directory for this session
|
|
TDDAI_WORKSPACE_DIR=.custom_workspace make tdd-start NUM=5
|
|
|
|
# Override repository for testing
|
|
TDDAI_REPO_NAME=test_repo make tdd-status
|
|
```
|
|
|
|
## Validation
|
|
|
|
The framework validates configuration on startup:
|
|
|
|
- **Required fields** must be non-empty (`gitea_url`, `repo_owner`, `repo_name`)
|
|
- **URLs** should include protocol (`http://` or `https://`)
|
|
- **Workspace directories** are created automatically if they don't exist
|
|
|
|
## Troubleshooting
|
|
|
|
### Common Errors
|
|
|
|
**`gitea_url cannot be empty`**
|
|
- Solution: Create `.env.tddai` with `TDDAI_GITEA_URL=your-url`
|
|
- Alternative: Run `source tddai-setup.sh` before tddai commands
|
|
|
|
**`repo_owner cannot be empty`**
|
|
- Solution: Set `TDDAI_REPO_OWNER` in `.env.tddai` or environment
|
|
|
|
**`repo_name cannot be empty`**
|
|
- Solution: Set `TDDAI_REPO_NAME` in `.env.tddai` or environment
|
|
|
|
### Debug Configuration
|
|
```bash
|
|
# Check current configuration
|
|
python -c "from tddai.config import get_config; c=get_config(); print(f'URL: {c.gitea_url}\\nOwner: {c.repo_owner}\\nRepo: {c.repo_name}\\nWorkspace: {c.workspace_dir}')"
|
|
```
|
|
|
|
## Migration from Other Projects
|
|
|
|
When adapting tddai for a new project:
|
|
|
|
1. **Copy configuration template**:
|
|
```bash
|
|
cp .env.tddai.example .env.tddai
|
|
```
|
|
|
|
2. **Update repository settings**:
|
|
```bash
|
|
# Edit .env.tddai
|
|
TDDAI_GITEA_URL=https://your-platform.com
|
|
TDDAI_REPO_OWNER=your-username
|
|
TDDAI_REPO_NAME=your-project
|
|
```
|
|
|
|
3. **Test configuration**:
|
|
```bash
|
|
make tdd-status
|
|
```
|
|
|
|
## Best Practices
|
|
|
|
- **Use `.env.tddai`** for project-specific settings
|
|
- **Use environment variables** for temporary overrides
|
|
- **Keep configuration in version control** (but exclude sensitive tokens)
|
|
- **Document custom workspace naming** in project README
|
|
- **Validate configuration** before starting development sessions
|
|
|
|
---
|
|
|
|
*This configuration system supports the TDD8 methodology (ISSUE-TEST-RED-GREEN-REFACTOR-DOCUMENT-REFINE-PUBLISH) across any software development project with issue tracking.* |