moai/.planning/PROJECT.md
Mikkel Georgsen 1686f90467 docs: initialize MoAI
Multi-AI collaborative brainstorming platform - Telegram bot Phase 1.

Creates PROJECT.md with requirements and constraints.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 14:53:11 +00:00

73 lines
2.9 KiB
Markdown

# MoAI - Master of AIs
## What This Is
A multi-AI collaborative brainstorming platform where multiple AI models (Claude, GPT, Gemini) discuss topics together, see each other's responses, and work toward consensus. Phase 1 is a Telegram bot for personal use; Phase 2 adds a web UI; future phases enable lightweight SaaS with multi-user collaboration.
## Core Value
Get richer, more diverse AI insights through structured multi-model discussions—ask a team of AIs instead of just one.
## Requirements
### Validated
(None yet — ship to validate)
### Active
- [ ] Project scaffolding (pyproject.toml, ruff, pre-commit, src layout)
- [ ] M1: Bot responds to /help, /status
- [ ] M2: Project CRUD (/projects, /project new, select, delete, models, info)
- [ ] M3: Single model Q&A working
- [ ] M4: Open mode (parallel) with multiple models
- [ ] M5: Discuss mode (sequential rounds)
- [ ] M6: Consensus generation (/consensus)
- [ ] M7: Export to markdown (/export)
- [ ] M8: @mention direct messages
### Out of Scope
- Web UI — Phase 2, after Telegram POC is validated
- Multi-user collaboration — Phase 3 future
- Personas (optimist/critic/pragmatist modes) — future enhancement
- Voting/tallying — future enhancement
- Cross-project memory — future enhancement
- Automated triggers/webhooks — future enhancement
- Voice memo transcription — future enhancement
## Context
**SPEC.md contains:**
- Full architecture diagram (Telegram → Python backend → Requesty/OpenRouter → AI APIs)
- Complete data model (Project, Discussion, Round, Message, Consensus)
- All Telegram commands with syntax
- System prompts for models and consensus detection
- Export markdown format
- File structure specification
**Current state:** Greenfield. Only documentation exists (SPEC.md, README.md, CLAUDE.md).
## Constraints
- **Python version**: 3.11+ — required for modern async patterns
- **Bot framework**: python-telegram-bot (async) — spec requirement
- **Database**: SQLAlchemy + SQLite — upgrades to PostgreSQL in Phase 2
- **AI routing**: Modular abstraction layer — Requesty first, support OpenRouter and others
- **Linting**: ruff (line length 100) — enforced via pre-commit
- **Testing**: pytest, 80%+ coverage on core logic
- **Type hints**: Required on all public functions
- **Docstrings**: Required on modules and classes
- **Logging**: logging module only, no print()
- **Dependencies**: Unpinned unless security requires it
## Key Decisions
| Decision | Rationale | Outcome |
|----------|-----------|---------|
| AI client as abstraction layer | Support Requesty, OpenRouter, direct APIs without changing core code | — Pending |
| Full project scaffolding first | Consistent tooling from day one; prevents tech debt | — Pending |
| User allowlist auth (Phase 1) | Simple for single-user POC, each user brings own AI credentials later | — Pending |
---
*Last updated: 2026-01-16 after initialization*