| Agent Role | Responsibility | Data Ownership (Folders/Files) |
|---|---|---|
| Data Engineer | Builds and maintains all external API integrations (NBA API, The Odds API) and SQLite database operations | /data/ (nba_client.py, odds_client.py, storage.py) |
| Quantitative Modeler | Implements statistical distributions (CMP, Bayesian Bivariate, Logistic+Poisson) for player prop projections | /models/ (distributions.py, projections.py) |
| Logic Architect | Develops adjustment algorithms (pace, defensive efficiency), usage reallocation, and ensemble edge scoring | /logic/ (usage_realloc.py, adjustments.py, ensemble.py) |
| Test Engineer | Writes unit, integration, and property-based tests; validates statistical model accuracy | /tests/ (test_models.py, test_logic.py, test_data.py) |
| Integration Specialist | Orchestrates main.py CLI, handles configuration, manages agent coordination, and produces final output | /main.py, /config.py, /utils/ (garbage_time.py, formatting.py) |
- No Direct Cross-Writes: An agent should NEVER modify files outside their owned directories without explicit coordination via
WHITEBOARD.md - Interface Contracts: When one agent needs data from another, they must use documented function signatures (public API) rather than reading private implementation details
- Test-First for Models: The Quantitative Modeler must validate each distribution function with the Test Engineer before merging
- API Key Security: Only the Data Engineer and Integration Specialist may reference
.envvariables; never hardcode or log API keys - Database Migrations: Any schema changes initiated by the Data Engineer must be approved by the Test Engineer to ensure test fixtures remain valid
┌─────────────────┐
│ Integration │ ◄── Orchestrator (main.py)
│ Specialist │
└────────┬────────┘
│ calls
▼
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Data Engineer │────►│ Quantitative │────►│ Logic Architect │
│ (API/DB) │ │ Modeler │ │ (Adjustments) │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│ │ │
└──────────────────────┴───────────────────────┘
│
▼
┌─────────────────┐
│ Test Engineer │
│ (Validation) │
└─────────────────┘
- Before Starting: Check
WHITEBOARD.mdfor blockers, in-progress tasks, and priority notes - After Completing: Update
WHITEBOARD.mdwith completion status, any errors encountered, and dependencies for next agent - Code Reviews: The Test Engineer must approve all code from Data Engineer, Quantitative Modeler, and Logic Architect before Integration Specialist can incorporate
| Type | Convention | Example |
|---|---|---|
| Files | snake_case.py |
usage_realloc.py |
| Classes | PascalCase |
ProjectionEngine |
| Functions | snake_case |
calculate_edge_score() |
| Variables | snake_case |
projected_points |
| Constants | UPPER_SNAKE_CASE |
DEFAULT_PACE_FACTOR |
| SQL Tables | snake_case (plural) |
projections, players |
| Feature | Status | Responsible Agent |
|---|---|---|
| Fetch Today's Games | ✅ P0 (Required) | Data Engineer |
| Play-by-Play Data Extraction | ✅ P0 (Required) | Data Engineer |
| Market Odds Retrieval | ✅ P0 (Required) | Data Engineer |
| Bottom-Up Projections | ✅ P0 (Required) | Quantitative Modeler |
| Usage Reallocation | Logic Architect | |
| Pace & Defensive Adjustments | Logic Architect | |
| Edge Score Calculation | Logic Architect | |
| Historical Tracking | Data Engineer | |
| Garbage Time Filtering | 🔹 P2 (Nice-to-have) | Integration Specialist |
| CLI Output Formatting | ✅ P0 (Required) | Integration Specialist |
- Progress Updates:
WHITEBOARD.md- Agent Status section - Blockers/Errors:
WHITEBOARD.md- Issues & Blockers section - Architecture Decisions:
BLUEPRINT.md- read-only for agents - Requirements Reference:
APPREQS.md,ALGOBUILD.md- read-only for agents