From 1686f904674ac552ddcad61283d05127a20f65a8 Mon Sep 17 00:00:00 2001 From: Mikkel Georgsen Date: Fri, 16 Jan 2026 14:53:11 +0000 Subject: [PATCH] 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 --- .planning/PROJECT.md | 73 +++++++++++++++++++++++++++++++++++++++++++ .planning/config.json | 18 +++++++++++ 2 files changed, 91 insertions(+) create mode 100644 .planning/PROJECT.md create mode 100644 .planning/config.json diff --git a/.planning/PROJECT.md b/.planning/PROJECT.md new file mode 100644 index 0000000..530c41d --- /dev/null +++ b/.planning/PROJECT.md @@ -0,0 +1,73 @@ +# 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* diff --git a/.planning/config.json b/.planning/config.json new file mode 100644 index 0000000..ecb5f9e --- /dev/null +++ b/.planning/config.json @@ -0,0 +1,18 @@ +{ + "mode": "yolo", + "depth": "standard", + "gates": { + "confirm_project": false, + "confirm_phases": false, + "confirm_roadmap": false, + "confirm_breakdown": false, + "confirm_plan": false, + "execute_next_plan": false, + "issues_review": false, + "confirm_transition": false + }, + "safety": { + "always_confirm_destructive": true, + "always_confirm_external_services": true + } +}