Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
65 changes: 0 additions & 65 deletions .claude-plugin/commands/fireteam.md

This file was deleted.

28 changes: 28 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,34 @@ on:
branches: [ main ]

jobs:
lint:
name: Lint & Type Check
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

- name: Set up Python 3.12
uses: actions/setup-python@v5
with:
python-version: '3.12'

- name: Install uv
run: curl -LsSf https://astral.sh/uv/install.sh | sh

- name: Install dependencies
run: uv sync --extra dev

- name: Run ruff
run: |
source .venv/bin/activate
ruff check src/ tests/

- name: Run mypy
run: |
source .venv/bin/activate
mypy src/

fast-tests:
name: Fast Tests (Unit + Lightweight)
runs-on: ubuntu-latest
Expand Down
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -43,3 +43,6 @@ logs/

# Benchmark runs
runs/

# Fireteam job output
jobs/
41 changes: 14 additions & 27 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Fireteam

Adaptive task execution using Claude Agent SDK with complexity-based routing and loop-until-complete behavior.
Adaptive task execution using Claude Code CLI with complexity-based routing and loop-until-complete behavior.

## Overview

Expand All @@ -19,7 +19,7 @@ Fireteam estimates task complexity and routes to the appropriate execution strat
uv add fireteam
```

Requires Python 3.12+ and a valid `ANTHROPIC_API_KEY` environment variable.
Requires Python 3.12+ and Claude Code CLI installed.

## Usage

Expand Down Expand Up @@ -88,7 +88,7 @@ print(f"Estimated complexity: {complexity}")
## Execution Modes

### SINGLE_TURN
For trivial and simple tasks. Single SDK call, no review loop.
For trivial and simple tasks. Single CLI call, no review loop.

### MODERATE
For moderate tasks requiring validation:
Expand Down Expand Up @@ -123,7 +123,6 @@ async def execute(
goal: str,
context: str = "",
mode: ExecutionMode | None = None, # Auto-detect if None
run_tests: bool = True,
max_iterations: int | None = None, # None = infinite (default)
) -> ExecutionResult
```
Expand Down Expand Up @@ -158,44 +157,32 @@ Environment variables:

| Variable | Default | Description |
|----------|---------|-------------|
| `ANTHROPIC_API_KEY` | (required) | API key for Claude |
| `FIRETEAM_MAX_ITERATIONS` | (none) | Max loop iterations. Unset = infinite. |
| `FIRETEAM_LOG_LEVEL` | INFO | Logging verbosity |

## Quality Hooks

Fireteam includes SDK hooks for quality enforcement:

- **QUALITY_HOOKS**: Run tests after edits, block user questions
- **AUTONOMOUS_HOOKS**: Block all user interaction
- **DEBUG_HOOKS**: Log all tool usage

```python
from fireteam import execute

result = await execute(
project_dir="/path/to/project",
goal="Add feature",
run_tests=True, # Enables QUALITY_HOOKS (default)
)
```

## Project Structure

```
fireteam/
├── .claude-plugin/
│ ├── plugin.json # Claude Code plugin manifest
│ └── commands/
│ └── fireteam.md # /fireteam command definition
│ └── plugin.json # Claude Code plugin manifest
├── commands/
│ └── fireteam.md # /fireteam command definition
├── hooks/
│ └── hooks.json # Claude Code hooks configuration
├── src/
│ ├── __init__.py # Public API exports
│ ├── api.py # Core execute() function
│ ├── models.py # Data models (ExecutionMode, ExecutionResult, etc.)
│ ├── loops.py # Loop implementations (moderate_loop, full_loop)
│ ├── claude_cli.py # Claude Code CLI wrapper
│ ├── complexity.py # Complexity estimation
│ ├── circuit_breaker.py # Stuck loop detection
│ ├── rate_limiter.py # API call budget management
│ ├── runner.py # tmux-based autonomous execution
│ ├── prompt.py # PROMPT.md parsing with file includes
│ ├── config.py # Configuration
│ ├── hooks.py # SDK hooks for quality
│ ├── claude_hooks/ # Claude Code hook handlers
│ └── prompts/
│ ├── __init__.py # Prompt loader
│ ├── builder.py # Prompt building with feedback injection
Expand Down
Loading