Add sprint plan — 6 sprints with goals and acceptance criteria
[ci skip]
This commit is contained in:
parent
9d9f291889
commit
0ac9884b89
1 changed files with 134 additions and 0 deletions
134
docs/plans/2026-02-22-sprint-plan.md
Normal file
134
docs/plans/2026-02-22-sprint-plan.md
Normal file
|
|
@ -0,0 +1,134 @@
|
|||
# Trading Bot — Sprint Plan
|
||||
|
||||
## Sprint 1: Foundation
|
||||
**Goal:** Working project skeleton with database, shared libraries, and infrastructure containers.
|
||||
|
||||
**Acceptance Criteria:**
|
||||
- [ ] `docker compose up -d postgres redis` boots healthy containers
|
||||
- [ ] `python -m alembic upgrade head` applies all migrations cleanly
|
||||
- [ ] `python -m pytest tests/` — all unit tests pass
|
||||
- [ ] Shared libraries importable: `shared.config`, `shared.redis_streams`, `shared.telemetry`, `shared.models`, `shared.schemas`, `shared.db`
|
||||
|
||||
**Deliverables:**
|
||||
- `pyproject.toml` with all dependency groups
|
||||
- `docker-compose.yml` with postgres+timescaledb, redis, ollama
|
||||
- `.env.example`, `.gitignore`
|
||||
- `shared/` package: config, redis_streams, telemetry, db
|
||||
- `shared/models/` — all SQLAlchemy models (trading, news, learning, auth, timeseries)
|
||||
- `shared/schemas/` — all Pydantic schemas
|
||||
- `alembic/` — initial migration with hypertables
|
||||
- Unit tests for redis_streams, models, schemas
|
||||
|
||||
**Tasks (Plan Tasks 1-4):**
|
||||
- Task 1: Python monorepo setup + shared utilities
|
||||
- Task 2: Docker Compose infrastructure
|
||||
- Task 3: Database models + Alembic migrations
|
||||
- Task 4: Pydantic schemas
|
||||
|
||||
---
|
||||
|
||||
## Sprint 2: Data Pipeline
|
||||
**Goal:** News articles flow from RSS/Reddit through sentiment analysis into scored Redis stream.
|
||||
|
||||
**Acceptance Criteria:**
|
||||
- [ ] News fetcher polls RSS feeds and publishes `RawArticle` to `news:raw` stream
|
||||
- [ ] Sentiment analyzer consumes `news:raw`, scores with FinBERT, publishes to `news:scored`
|
||||
- [ ] Broker abstraction interface defined, Alpaca implementation can fetch account/positions
|
||||
- [ ] All unit tests pass
|
||||
|
||||
**Deliverables:**
|
||||
- `shared/broker/` — abstract interface + Alpaca implementation
|
||||
- `services/news-fetcher/` — RSS + Reddit sources
|
||||
- `services/sentiment-analyzer/` — FinBERT + Ollama fallback + ticker extraction
|
||||
- Unit tests for broker, news fetcher, sentiment analyzer
|
||||
|
||||
**Tasks (Plan Tasks 5-7):**
|
||||
- Task 5: Brokerage abstraction layer
|
||||
- Task 6: News fetcher service
|
||||
- Task 7: Sentiment analyzer service
|
||||
|
||||
---
|
||||
|
||||
## Sprint 3: Trading Core
|
||||
**Goal:** System generates trade signals from market data + sentiment and executes paper trades.
|
||||
|
||||
**Acceptance Criteria:**
|
||||
- [ ] 3 strategies (momentum, mean reversion, news-driven) produce correct signals for known inputs
|
||||
- [ ] Signal generator combines strategies via weighted ensemble, publishes to `signals:generated`
|
||||
- [ ] Trade executor applies risk checks, submits orders via broker, records trades in DB
|
||||
- [ ] All unit tests pass
|
||||
|
||||
**Deliverables:**
|
||||
- `shared/strategies/` — base interface + 3 strategy implementations
|
||||
- `services/signal-generator/` — market data consumer + weighted ensemble
|
||||
- `services/trade-executor/` — risk manager + execution loop
|
||||
- Unit tests for strategies, signal generator, trade executor
|
||||
|
||||
**Tasks (Plan Tasks 8-10):**
|
||||
- Task 8: Strategy implementations
|
||||
- Task 9: Signal generator service
|
||||
- Task 10: Trade executor service
|
||||
|
||||
---
|
||||
|
||||
## Sprint 4: Intelligence
|
||||
**Goal:** System learns from trade outcomes and can replay historical data for backtesting.
|
||||
|
||||
**Acceptance Criteria:**
|
||||
- [ ] Learning engine computes P&L, adjusts strategy weights respecting all guardrails
|
||||
- [ ] Backtester replays historical data through same strategies, produces equity curves + metrics
|
||||
- [ ] Weight adjustments logged in `learning_adjustments` table
|
||||
- [ ] All unit tests pass
|
||||
|
||||
**Deliverables:**
|
||||
- `services/learning-engine/` — evaluator + weight adjuster
|
||||
- `backtester/` — engine, simulated broker, data loader, metrics
|
||||
- Unit tests for learning engine, backtester
|
||||
|
||||
**Tasks (Plan Tasks 11-12):**
|
||||
- Task 11: Learning engine service
|
||||
- Task 12: Backtesting engine
|
||||
|
||||
---
|
||||
|
||||
## Sprint 5: API & Dashboard
|
||||
**Goal:** Web interface for monitoring and controlling the trading bot.
|
||||
|
||||
**Acceptance Criteria:**
|
||||
- [ ] Passkey registration and login works end-to-end
|
||||
- [ ] All API endpoints return correct data (portfolio, trades, signals, strategies, news)
|
||||
- [ ] Control endpoints pause/resume trading, force-close positions
|
||||
- [ ] Dashboard renders all 5 views with real-time WebSocket updates
|
||||
- [ ] All tests pass (backend + frontend)
|
||||
|
||||
**Deliverables:**
|
||||
- `services/api-gateway/` — FastAPI with passkey auth, all routes, WebSocket
|
||||
- `dashboard/` — React app with auth, portfolio, trades, strategies, news, backtest views
|
||||
- Unit tests for API routes, auth flow
|
||||
|
||||
**Tasks (Plan Tasks 13-16):**
|
||||
- Task 13: API Gateway — Auth
|
||||
- Task 14: API Gateway — Trading endpoints
|
||||
- Task 15: Dashboard — Setup & Auth
|
||||
- Task 16: Dashboard — Trading views
|
||||
|
||||
---
|
||||
|
||||
## Sprint 6: Integration & Deployment
|
||||
**Goal:** Full system runs in Docker Compose, passes integration tests.
|
||||
|
||||
**Acceptance Criteria:**
|
||||
- [ ] `docker compose up` starts all services, all health checks pass
|
||||
- [ ] Smoke test script passes (hits key endpoints, verifies responses)
|
||||
- [ ] Integration tests pass (news pipeline end-to-end, trading flow end-to-end)
|
||||
- [ ] Default strategies seeded in database
|
||||
|
||||
**Deliverables:**
|
||||
- `docker/` — Dockerfiles for all services
|
||||
- Updated `docker-compose.yml` with all application services
|
||||
- `scripts/smoke-test.sh`, `scripts/seed_strategies.py`
|
||||
- `tests/integration/` — pipeline and trading flow tests
|
||||
|
||||
**Tasks (Plan Tasks 17-18):**
|
||||
- Task 17: Dockerfiles & full Docker Compose
|
||||
- Task 18: Integration testing & seed data
|
||||
Loading…
Add table
Add a link
Reference in a new issue