Instruction file imported from Orenda-Project/NIETE-Rumi (
.cursor/rules/rumi.mdc). Copyright stays with the author.
Rumi Platform
Open-source AI teaching assistant on WhatsApp (Node.js + Express + Supabase + BullMQ).
Architecture
bot/whatsapp-bot.js— Entry point (webhook, message routing)bot/shared/config/— Branding, feature tiers, capabilitiesbot/shared/services/— 39+ service modules (LLM, coaching, reading, video)bot/shared/handlers/— Message handlers (text, voice, image, flow)bot/workers/— 8 background workersinfrastructure/supabase/— SQL schema (52+ tables)tests/— 158 tests across 11 suites
Rules
- Never commit
.envfiles — use.env.templatefor documentation - Branding via
bot/shared/config/branding.js— no hardcoded bot names or org names - All LLM calls go through
bot/shared/services/llm-client.js - Background jobs use BullMQ (Redis), not SQS
- Feature gating via
RUMI_TIERenv var:minimal,recommended, orfull - Tests run without external services — no Supabase/Redis/WhatsApp needed
Commands
npm test # All tests
npm run test:security # Security scan
npm run validate:env # Environment check
npm run simulate # CLI simulator
Key Files for Common Changes
| Change | Files |
|---|---|
| Bot personality/name | bot/shared/config/branding.js |
| LLM model/provider | bot/shared/services/llm-client.js, .env |
| Feature availability | bot/shared/config/feature-tiers.js |
| Coaching framework | bot/shared/services/coaching-service.js, bot/shared/constants/scoring-rubric.js |
| Reading benchmarks | bot/shared/services/reading-assessment-service.js |
| Add a language | 7 config files (see docs/agent-customization.md#4) |