Skip to content

Commit 0e2d925

Browse files
Polish fireteam library for release
## Changes - Streamline package structure (src/ with prompts/, tests/) - Extract prompts to editable markdown files (src/prompts/*.md) - Fix CI pipeline (proper package installation with uv) - Remove incomplete terminal-bench - Clean up obsolete documentation files - Add build artifacts to .gitignore ## Package Structure ``` src/ __init__.py # Public API exports api.py # Core execute() function complexity.py # Complexity estimation config.py # Configuration hooks.py # SDK hooks for quality prompts/ __init__.py # Prompt loader executor.md # Executor agent prompt reviewer.md # Reviewer agent prompt planner.md # Planner agent prompt complexity.md # Complexity estimation prompt ``` Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1 parent a9f057e commit 0e2d925

107 files changed

Lines changed: 3595 additions & 19048 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.ai-rules.md

Lines changed: 0 additions & 66 deletions
This file was deleted.

.claude-plugin/plugin.json

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"name": "fireteam",
3+
"version": "0.1.0",
4+
"description": "Multi-phase autonomous task execution with complexity estimation, planning, execution, and review",
5+
"commands": ["commands/fireteam.md"],
6+
"hooks": "hooks/hooks.json"
7+
}

.claude/CLAUDE.md

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
# Fireteam Agent Principles
2+
3+
These principles are automatically loaded by the Claude Agent SDK and guide all fireteam operations.
4+
5+
## Testing
6+
7+
- Write tests as you implement (not as an afterthought)
8+
- Run tests after every code change
9+
- Don't consider a task complete until tests pass
10+
- If tests fail, fix them before moving on
11+
12+
## Quality Gates
13+
14+
- All CI checks must pass locally before completion
15+
- Run linting, type checking, and tests before considering work done
16+
- If any quality check fails, address it immediately
17+
18+
## Progress Checkpoints
19+
20+
- After significant progress, step back and reassess
21+
- Ask yourself: How are we doing? What's left? Is this more complex than expected?
22+
- Update your todo list to reflect current understanding
23+
- If the task has grown beyond the original estimate, flag it for re-evaluation
24+
25+
## Escalation
26+
27+
- If stuck after 3 attempts on the same issue, consider a different approach
28+
- If a task turns out to be more complex than estimated, communicate this
29+
- Don't silently struggle - surface blockers early
30+
31+
## Code Quality
32+
33+
- Write clean, readable code with clear intent
34+
- Follow existing patterns in the codebase
35+
- Add comments only where the logic isn't self-evident
36+
- Don't over-engineer - solve the problem at hand
37+
38+
## Minimal Changes
39+
40+
- Make the smallest change that solves the problem
41+
- Don't refactor unrelated code
42+
- Don't add features that weren't requested
43+
- Keep diffs focused and reviewable

.cursorrules

Lines changed: 0 additions & 28 deletions
This file was deleted.

.env.example

Lines changed: 0 additions & 13 deletions
This file was deleted.

.github/workflows/test.yml

Lines changed: 26 additions & 83 deletions
Original file line numberDiff line numberDiff line change
@@ -4,88 +4,76 @@ on:
44
pull_request:
55
branches: [ main ]
66
push:
7-
branches: [ main ] # Only run on direct pushes to main
7+
branches: [ main ]
88

99
jobs:
1010
fast-tests:
1111
name: Fast Tests (Unit + Lightweight)
1212
runs-on: ubuntu-latest
13-
13+
1414
steps:
1515
- uses: actions/checkout@v4
16-
16+
1717
- name: Set up Python 3.12
1818
uses: actions/setup-python@v5
1919
with:
2020
python-version: '3.12'
21-
21+
2222
- name: Install uv
2323
run: curl -LsSf https://astral.sh/uv/install.sh | sh
24-
24+
2525
- name: Create virtual environment
2626
run: uv venv
27-
27+
2828
- name: Install dependencies
2929
run: |
3030
source .venv/bin/activate
31-
uv pip install -r requirements.txt
32-
33-
- name: Run all fast tests
31+
uv pip install -e ".[dev]"
32+
33+
- name: Run unit tests
3434
run: |
3535
source .venv/bin/activate
36-
pytest tests/ -m "not slow and not e2e and not integration" -v --tb=short
36+
pytest tests/ -v --tb=short
3737
3838
e2e-tests:
3939
name: End-to-End Tests (API)
4040
runs-on: ubuntu-latest
41-
timeout-minutes: 20 # Fail fast if tests hang
42-
# Run on main branch and e/* branches for testing
41+
timeout-minutes: 20
4342
if: |
44-
github.ref == 'refs/heads/main' ||
43+
github.ref == 'refs/heads/main' ||
4544
startsWith(github.ref, 'refs/heads/e/') ||
4645
startsWith(github.head_ref, 'e/')
47-
46+
4847
steps:
4948
- uses: actions/checkout@v4
50-
51-
- name: Set up Node.js
52-
uses: actions/setup-node@v4
53-
with:
54-
node-version: '20'
55-
56-
- name: Install Claude CLI
57-
run: |
58-
npm install -g @anthropic-ai/claude-code
59-
echo "Claude CLI installed at: $(which claude)"
60-
claude --version
61-
49+
6250
- name: Set up Python 3.12
6351
uses: actions/setup-python@v5
6452
with:
6553
python-version: '3.12'
66-
54+
6755
- name: Install uv
6856
run: curl -LsSf https://astral.sh/uv/install.sh | sh
69-
57+
7058
- name: Create virtual environment
7159
run: uv venv
72-
60+
7361
- name: Install dependencies
7462
run: |
7563
source .venv/bin/activate
76-
uv pip install -r requirements.txt
77-
78-
- name: Run E2E tests
79-
timeout-minutes: 15 # Per-step timeout
64+
uv pip install -e ".[dev]"
65+
66+
- name: Run integration tests
67+
timeout-minutes: 15
8068
env:
8169
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
82-
PYTHONUNBUFFERED: "1" # Force immediate output
70+
PYTHONUNBUFFERED: "1"
8371
run: |
8472
source .venv/bin/activate
85-
echo "Starting e2e tests at $(date)"
86-
pytest tests/ -m "e2e" -v --tb=short -s --log-cli-level=INFO
87-
echo "E2E tests completed at $(date)"
88-
73+
echo "Starting integration tests at $(date)"
74+
pytest tests/ --run-integration -v --tb=short -s
75+
echo "Integration tests completed at $(date)"
76+
8977
- name: Upload logs on failure
9078
if: failure()
9179
uses: actions/upload-artifact@v4
@@ -95,48 +83,3 @@ jobs:
9583
/tmp/fireteam-test-*/
9684
tests/**/*.log
9785
retention-days: 7
98-
99-
integration-tests:
100-
name: Terminal-bench Integration
101-
runs-on: ubuntu-latest
102-
# Temporarily disabled - needs debugging
103-
if: false
104-
105-
steps:
106-
- uses: actions/checkout@v4
107-
108-
- name: Set up Python 3.12
109-
uses: actions/setup-python@v5
110-
with:
111-
python-version: '3.12'
112-
113-
- name: Set up Docker
114-
uses: docker/setup-buildx-action@v3
115-
116-
- name: Install uv
117-
run: curl -LsSf https://astral.sh/uv/install.sh | sh
118-
119-
- name: Install terminal-bench
120-
run: uv tool install terminal-bench
121-
122-
- name: Create virtual environment
123-
run: uv venv
124-
125-
- name: Install dependencies
126-
run: |
127-
source .venv/bin/activate
128-
uv pip install -r requirements.txt
129-
130-
- name: Install Fireteam adapter
131-
run: |
132-
source .venv/bin/activate
133-
cd benchmark
134-
uv pip install -e .
135-
136-
- name: Run terminal-bench integration test
137-
env:
138-
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
139-
run: |
140-
source .venv/bin/activate
141-
pytest tests/ -m "integration" -v --tb=short
142-

.gitignore

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,12 @@ __pycache__/
1515
*.so
1616
.Python
1717

18+
# Build artifacts
19+
*.egg-info/
20+
dist/
21+
build/
22+
.eggs/
23+
1824
# Virtual environments
1925
venv/
2026
env/

0 commit comments

Comments
 (0)