docs: initialize project

Discord bot that translates Vivi's emoji communication into text so her community understands her instantly.
This commit is contained in:
Dani B
2026-01-29 10:42:14 -05:00
commit 7059b44f69

78
.planning/PROJECT.md Normal file
View File

@@ -0,0 +1,78 @@
# Vivi Speech Translator
## What This Is
A Discord bot that translates Vivi's emoji-based communication into text so her community understands what she's saying without prior knowledge. Works with PluralKit/Tupperbox to detect Vivi's messages, learns emoji meanings over time, and can be adopted by other plural systems with mute members who use emojis to communicate.
## Core Value
Vivi posts emojis and others instantly understand her without needing to know what each emoji means.
## Requirements
### Validated
(None yet — ship to validate)
### Active
- [ ] Bot detects Vivi's messages via PluralKit/Tupperbox integration
- [ ] Bot translates emoji sequences into natural language
- [ ] Bot learns new emoji meanings when taught (by Vivi or other alters)
- [ ] Bot can update/correct existing emoji meanings
- [ ] Translation mode can toggle between automatic and on-demand
- [ ] Unknown emojis are shown with meanings for known emojis only
- [ ] Bot works in Discord channels and DMs
- [ ] Emoji meanings are global across all servers
- [ ] Bot works in any Discord server without per-server installation friction
- [ ] Translation format adapts based on emoji sequences (natural language where possible)
### Out of Scope
- Real-time learning from context (emoji meanings learned explicitly, not inferred)
- Voice/speech synthesis (text translation only)
- Mobile app (Discord bot only)
- Moderation or safety features beyond Discord's built-in tools
- Support for non-emoji communication methods (focus on emoji first)
## Context
**About Vivi:**
- Vivi is mute and communicates through custom emoji sequences
- Vivi has Dysgraphia (writing difficulty), making emoji communication more accessible than text
- Vivi can read normally, so she understands text translations
- Vivi is one alter in a plural system; other alters can speak and help manage emoji meanings
**Emoji Language:**
- Emojis are compositional and read left-to-right, but meanings vary based on sequence
- Includes both standard emojis (😷, ❌) and custom server emojis (`:me1:`)
- Example: `:me1:😷 2⃣ 🍑 ❌ 🤧` = "Vivi is sick, but not in the sinuses"
**Integration:**
- Must integrate with PluralKit or Tupperbox to detect when Vivi is the active communicator
- These bots proxy messages through a shared account, but Vivi should be recognizable
**Broader Vision:**
- Initially built for Vivi's community
- Designed to be generalizable so other plural systems with mute members can adopt it
- Global emoji dictionary allows different systems to maintain their own emoji meanings
## Constraints
- **Platform**: Discord bot only (no web, mobile, or other platforms)
- **Integration**: Must work seamlessly with PluralKit or Tupperbox
- **Accessibility**: Must be low-friction for Vivi and other alters to teach/update emoji meanings
- **Multi-server**: Should work in any Discord server without requiring complex per-server setup
- **Global scope**: Emoji meanings are global, not per-server (but per-server overrides could be added later)
## Key Decisions
| Decision | Rationale | Outcome |
|----------|-----------|---------|
| Global emoji dictionary | Vivi's emoji language is consistent across communities; other systems will benefit from shared knowledge | — Pending |
| Learning-based system | Vivi uses many emojis; manual mapping would be unsustainable. Bot learns when taught. | — Pending |
| Auto + on-demand modes | Auto is natural but can be noisy; on-demand is explicit but requires action. Both options respect server preferences. | — Pending |
| PluralKit/Tupperbox integration | These are standard plural system tools; integrating with them lets us detect Vivi's messages accurately | — Pending |
---
*Last updated: 2026-01-29 after initialization*