Archived: - milestones/v1.0-ROADMAP.md - milestones/v1.0-REQUIREMENTS.md - milestones/v1.0-MILESTONE-AUDIT.md Deleted (fresh for next milestone): - ROADMAP.md Updated: - MILESTONES.md (new entry) - PROJECT.md (requirements → Validated, decisions with outcomes) - STATE.md (reset for next milestone) v1.0 MVP shipped: - 6 phases, 16 plans - 2,732 lines Python - All 9 requirements validated Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
125 lines
3.4 KiB
Markdown
125 lines
3.4 KiB
Markdown
# Milestone v1.0: MVP
|
|
|
|
**Status:** ✅ SHIPPED 2026-01-17
|
|
**Phases:** 1-6
|
|
**Total Plans:** 16
|
|
|
|
## Overview
|
|
|
|
Build a Telegram bot where multiple AI models (Claude, GPT, Gemini) collaborate on discussions. Start with project scaffolding and tooling, add bot infrastructure, then layer in project management, single-model queries, multi-model discussions, and finally consensus/export features.
|
|
|
|
## Phases
|
|
|
|
### Phase 1: Foundation ✓
|
|
|
|
**Goal**: Complete project scaffolding with pyproject.toml, ruff, pre-commit, src layout, and SQLAlchemy models
|
|
**Depends on**: Nothing (first phase)
|
|
**Plans**: 3 plans
|
|
|
|
Plans:
|
|
- [x] 01-01: Project scaffolding (pyproject.toml, ruff, pre-commit)
|
|
- [x] 01-02: SQLAlchemy models (Project, Discussion, Round, Message, Consensus)
|
|
- [x] 01-03: Database session management and tests
|
|
|
|
**Completed:** 2026-01-16
|
|
|
|
### Phase 2: Bot Core ✓
|
|
|
|
**Goal**: Working Telegram bot responding to /help and /status commands
|
|
**Depends on**: Phase 1
|
|
**Plans**: 2 plans
|
|
|
|
Plans:
|
|
- [x] 02-01: Bot infrastructure (Application, config, lifecycle)
|
|
- [x] 02-02: /help and /status command handlers
|
|
|
|
**Completed:** 2026-01-16
|
|
|
|
### Phase 3: Project CRUD ✓
|
|
|
|
**Goal**: Full project management via Telegram (/projects, /project new/select/delete/models/info)
|
|
**Depends on**: Phase 2
|
|
**Plans**: 3 plans
|
|
|
|
Plans:
|
|
- [x] 03-01: Project service layer, /projects and /project new
|
|
- [x] 03-02: /project select and /project info
|
|
- [x] 03-03: /project delete and /project models
|
|
|
|
**Completed:** 2026-01-16
|
|
|
|
### Phase 4: Single Model Q&A ✓
|
|
|
|
**Goal**: Query a single AI model through the bot with abstracted AI client layer
|
|
**Depends on**: Phase 3
|
|
**Plans**: 2 plans
|
|
|
|
Plans:
|
|
- [x] 04-01: AI client abstraction layer (Requesty/OpenRouter)
|
|
- [x] 04-02: /ask command handler
|
|
|
|
**Completed:** 2026-01-16
|
|
|
|
### Phase 5: Multi-Model Discussions ✓
|
|
|
|
**Goal**: Open mode (parallel), discuss mode (sequential rounds), and @mention direct messages
|
|
**Depends on**: Phase 4
|
|
**Plans**: 4 plans
|
|
|
|
Plans:
|
|
- [x] 05-01: Discussion service (CRUD operations)
|
|
- [x] 05-02: /open command (parallel mode)
|
|
- [x] 05-03: /discuss, /next, /stop commands (sequential mode)
|
|
- [x] 05-04: @mention message handler
|
|
|
|
**Completed:** 2026-01-16
|
|
|
|
### Phase 6: Consensus & Export ✓
|
|
|
|
**Goal**: Consensus generation from discussions and markdown export
|
|
**Depends on**: Phase 5
|
|
**Plans**: 2 plans
|
|
|
|
Plans:
|
|
- [x] 06-01: /consensus command (AI-generated synthesis)
|
|
- [x] 06-02: /export command (markdown file)
|
|
|
|
**Completed:** 2026-01-17
|
|
|
|
---
|
|
|
|
## Milestone Summary
|
|
|
|
**Decimal Phases:** None (clean milestone)
|
|
|
|
**Key Decisions:**
|
|
|
|
- hatchling as build backend with explicit src layout config
|
|
- String(36) for UUID storage (SQLite compatibility)
|
|
- Module-level singletons for database and AI client
|
|
- OpenAI SDK for router abstraction (Requesty/OpenRouter compatible)
|
|
- Service layer pattern for business logic
|
|
- asyncio.gather for parallel model queries
|
|
- user_data dict for discussion state across commands
|
|
- JSON format for consensus AI output
|
|
- BytesIO for in-memory markdown export
|
|
|
|
**Issues Resolved:**
|
|
|
|
- None (greenfield development)
|
|
|
|
**Issues Deferred:**
|
|
|
|
- Comprehensive error handling (retry/timeout logic)
|
|
- User allowlist middleware enforcement
|
|
- Test coverage for database error paths
|
|
|
|
**Technical Debt Incurred:**
|
|
|
|
- get_round_messages defined but unused
|
|
- Inconsistent get_selected_project pattern in export.py
|
|
- Missing re-exports in services/__init__.py
|
|
|
|
---
|
|
|
|
*For current project status, see .planning/PROJECT.md*
|