Add coding standards and update project structure

This commit is contained in:
Mikkel Georgsen 2026-01-16 14:39:07 +00:00
parent d2fa0f920c
commit 6357b3499b

55
SPEC.md
View file

@ -1,7 +1,9 @@
# AI Roundtable # MoAI - Master of AIs
A multi-AI collaborative brainstorming platform where multiple AI models (Claude, GPT, Gemini, etc.) discuss topics together, see each other's responses, and work toward consensus. A multi-AI collaborative brainstorming platform where multiple AI models (Claude, GPT, Gemini, etc.) discuss topics together, see each other's responses, and work toward consensus.
**Domain:** moai.dk (planned)
## Concept ## Concept
Instead of asking one AI a question, ask a "team" of AIs. They each provide initial thoughts, then engage in a structured discussion where each can see and respond to the others' contributions. The result is a richer, more diverse exploration of ideas that gets summarized into actionable markdown documents. Instead of asking one AI a question, ask a "team" of AIs. They each provide initial thoughts, then engage in a structured discussion where each can see and respond to the others' contributions. The result is a richer, more diverse exploration of ideas that gets summarized into actionable markdown documents.
@ -304,26 +306,43 @@ Format as structured JSON.
- httpx for API calls - httpx for API calls
- Requesty or OpenRouter for model routing - Requesty or OpenRouter for model routing
### Coding Standards
- **Formatting/Linting:** ruff (line length 100)
- **Testing:** pytest (80%+ coverage on core logic)
- **Type hints:** Required on all public functions
- **Docstrings:** Required on modules and classes
- **Logging:** Use `logging` module, no `print()` in production
- **Pre-commit:** Enforce ruff and pytest before commits
### File Structure ### File Structure
``` ```
ai-roundtable/ moai/
├── bot/ ├── src/
│ └── moai/
│ ├── __init__.py
│ ├── bot/
│ │ ├── __init__.py
│ │ ├── main.py # Bot entry point
│ │ ├── handlers/
│ │ │ ├── __init__.py
│ │ │ ├── projects.py # /project commands
│ │ │ ├── discussion.py # /open, /discuss, @mentions
│ │ │ └── export.py # /export, /consensus
│ │ └── middleware.py # Auth, logging
│ └── core/
│ ├── __init__.py
│ ├── models.py # SQLAlchemy models
│ ├── database.py # DB connection
│ ├── orchestrator.py # AI round management
│ ├── ai_client.py # Requesty/OpenRouter wrapper
│ └── exporter.py # Markdown generation
├── tests/
│ ├── __init__.py │ ├── __init__.py
│ ├── main.py # Bot entry point │ ├── test_models.py
│ ├── handlers/ │ ├── test_orchestrator.py
│ │ ├── projects.py # /project commands │ └── test_handlers.py
│ │ ├── discussion.py # /open, /discuss, @mentions ├── pyproject.toml # Project config, dependencies, ruff settings
│ │ └── export.py # /export, /consensus ├── .pre-commit-config.yaml
│ └── middleware.py # Auth, logging
├── core/
│ ├── __init__.py
│ ├── models.py # SQLAlchemy models
│ ├── database.py # DB connection
│ ├── orchestrator.py # AI round management
│ ├── ai_client.py # Requesty/OpenRouter wrapper
│ └── exporter.py # Markdown generation
├── config.py # Settings, API keys
├── requirements.txt
└── README.md └── README.md
``` ```