ðĨ Project Health Report (āļĢāļēāļĒāļāļēāļāļŠāļļāļāļ āļēāļāļāļāļāđāļāļĢāļāļāļēāļĢ - 2026-07-15)
Project (āđāļāļĢāļāļāļēāļĢ): SplitDee
Role (āļāļāļāļēāļ): Lead AI Engineer & CTO
Date (āļ§āļąāļāļāļĩāđ): 2026-07-15
ð 1. Overall Project Health Status (āļŠāļāļēāļāļ°āļŠāļļāļāļ āļēāļāļ āļēāļāļĢāļ§āļĄāļāļāļāđāļāļĢāļāļāļēāļĢ)
- Overall Status (āļŠāļāļēāļāļ°āļ āļēāļāļĢāļ§āļĄ): ðĒ Healthy (Design Phase) | ðĒ āđāļāđāļāđāļĢāļāļŠāļĄāļāļđāļĢāļāđ (āđāļāļŠāļāļēāļĢāļāļāļāđāļāļ)
- Status Details (āļĢāļēāļĒāļĨāļ°āđāļāļĩāļĒāļāļŠāļāļēāļāļ°): There is currently no production codebase written (both backend and frontend are skeletons), meaning there is no code technical debt. The system architecture, API specifications, and database schemas are fully defined and documented. (āļāļąāļāļāļļāļāļąāļāļĒāļąāļāđāļĄāđāļĄāļĩāđāļāđāļāđāļāļĢāļāļąāļāļāļąāļāđāļāļĩāļĒāļāļāļķāđāļāļĄāļē āļāļąāđāļāļŦāļĨāļąāļāļāđāļēāļāđāļĨāļ°āļŦāļāđāļēāļāđāļēāļāđāļāđāļāđāļāļĩāļĒāļāļāļĨāļēāļŠāđāļāļĢāļāļĢāđāļēāļāļŠāđāļāđāļĨāļāļąāļ āļāļģāđāļŦāđāļĒāļąāļāđāļĄāđāļĄāļĩāļŦāļāļĩāđāļŠāļīāļāļāļēāļāđāļāļāļāļīāļāļāļāļāļāļāļĢāđāļŠāđāļāđāļ āđāļāļĢāļāļŠāļĢāđāļēāļāļĢāļ°āļāļ āļŠāđāļāļ API āđāļĨāļ°āļāļ§āļēāļĄāļŠāļąāļĄāļāļąāļāļāđāļāļēāļāļāđāļāļĄāļđāļĨāđāļāđāļĢāļąāļāļāļēāļĢāđāļāļĩāļĒāļāļĢāļ°āļāļļāđāļ§āđāļāļĢāļāļāđāļ§āļāļŠāļĄāļāļđāļĢāļāđāđāļĨāđāļ§)
- Architecture Integrity (āļāļ§āļēāļĄāļāļđāļāļāđāļāļāļāļāļāļŠāļāļēāļāļąāļāļĒāļāļĢāļĢāļĄ): 100%. Follows Clean Architecture in both FastAPI and Flutter. Boundary layers are cleanly separated. (100% āļŠāļāļāļāļĨāđāļāļāļāļēāļĄāļŦāļĨāļąāļāļŠāļāļēāļāļąāļāļĒāļāļĢāļĢāļĄāļŠāļ°āļāļēāļāļāļąāđāļāļāļąāđāļ FastAPI āđāļĨāļ° Flutter āđāļāļĒāļĄāļĩāļāļēāļĢāđāļĒāļāļāļāļāđāļāļāđāļĨāđāļĒāļāļĢāđāļāļĒāđāļēāļāļāļąāļāđāļāļ)
â 2. Open Questions & Assumptions (āļāđāļāļŠāļāļŠāļąāļĒāđāļĨāļ°āļŠāļĄāļĄāļāļīāļāļēāļāļĢāļ°āļāļ)
During our audit and design review, we identified several questions that must be resolved before/during implementation:
āļāļēāļāļāļēāļĢāļāļĢāļ§āļāļŠāļāļāđāļāļāļŠāļēāļĢāļāļēāļĢāļāļāļāđāļāļ āđāļĢāļēāđāļāđāļĢāļ°āļāļļāļāļģāļāļēāļĄāļāļĢāļ°āđāļāđāļāļŠāļģāļāļąāļāļāļĩāđāļāđāļāļāđāļāđāļĢāļąāļāļāļēāļĢāļāļāļĒāļ·āļāļĒāļąāļāđāļāļ·āđāļāļāļģāđāļāļāļģāļŦāļāļāļŠāđāļāļ:
- AI Slip Verification Service Cost & Vendor (āļāđāļēāļāļĢāļīāļāļēāļĢāđāļĨāļ°āđāļ§āļāđāļāļāļĢāđāļĢāļ°āļāļāļāļĢāļ§āļāļŠāļāļāļŠāļĨāļīāļāđāļāļāđāļāļīāļ):
- Question (āļāļģāļāļēāļĄ): Which bank confirmation API/vendor will be used for validating the Mini-QR data from slips? (e.g., EasySlip, SlipOK, or direct bank partner APIs). (āļāļ°āđāļāđāļāļĢāļīāļāļēāļĢāļĢāļ°āļāļ API āļāļāļēāļāļēāļĢāļāđāļēāļĒāđāļāđāļāļāļēāļĢāļāļĢāļ§āļāļŠāļāļāļāđāļāļĄāļđāļĨāļŠāļĨāļīāļ āđāļāđāļ EasySlip, SlipOK āļŦāļĢāļ·āļ API āļāļĢāļāļāļēāļāļāļđāđāļāđāļēāļāļāļēāļāļēāļĢ)
- Impact (āļāļĨāļāļĢāļ°āļāļ): Affects operational costs and infrastructure setup. (āļĄāļĩāļāļĨāļāđāļāļāđāļāļāļļāļāļāļēāļĢāļāļđāđāļĨāļĢāļ°āļāļāđāļĨāļ°āļāļēāļĢāđāļāļ·āđāļāļĄāļāđāļāđāļāļĢāļ·āļāļāđāļēāļĒāļŦāļĨāļąāļāļāđāļēāļ)
- Firebase Cloud Messaging (FCM) vs In-App Local WebSockets (āļŠāļāļēāļāļąāļāļĒāļāļĢāļĢāļĄāļāļēāļĢāļĒāļīāļāļāđāļāļāļ§āļēāļĄ):
- Question (āļāļģāļāļēāļĄ): Should we use FCM exclusively for chat message notifications, or build WebSockets/SSE for real-time messaging and FCM only for background push alerts? (āļāļ§āļĢāđāļāđ FCM āļŠāđāļāļāđāļāļāļ§āļēāļĄāđāļāļāļāļĨāļāļāđāļ§āļĨāļē āļŦāļĢāļ·āļāđāļāļĩāļĒāļāđāļāļĢāđāļāļāļāļĨ WebSockets/SSE āļŠāļ·āđāļāļŠāļēāļĢāļŠāļāđāļĄāļ·āđāļāđāļāđāļēāđāļāļ āđāļĨāļ°āđāļŦāđ FCM āļāļģāļŦāļāđāļēāļāļĩāđāļŠāđāļ Push Alert āļāļāļāļāļĒāļđāđāļŦāļĨāļąāļāļāđāļēāļāđāļāđāļēāļāļąāđāļ)
- Impact (āļāļĨāļāļĢāļ°āļāļ): WebSockets are faster for active chats, FCM is better for background. (WebSockets āļāļāļāļŠāļāļāļāđāļĢāđāļ§āļāļ§āđāļēāđāļāļāļāļ°āđāļāļāļāļļāļĒ āļŠāđāļ§āļ FCM āļāļĢāļ°āļŦāļĒāļąāļāļāļĨāļąāļāļāļēāļāđāļĄāļ·āđāļāļāļĒāļđāđāđāļāļ·āđāļāļāļŦāļĨāļąāļ)
- Mochi Pet HP/Happiness Deduction Cron Schedule (āļāļ§āļēāļĄāļāļĩāđāđāļĨāļ°āđāļāļāļāđāļāļēāļĢāļŦāļąāļāļāļĨāļąāļāļāļĩāļ§āļīāļāļāđāļāļāđāļĄāļāļī):
- Question (āļāļģāļāļēāļĄ): What are the exact thresholds for Mochiâs HP deduction? (e.g., -10 HP for every 24 hours of delay per user, or group-wide status). (āđāļāļāļāđāļāļģāļāļ§āļāļŦāļąāļ HP āļāđāļāļāđāļĄāļāļīāļāļĩāđāļāđāļēāļāļāļģāļĢāļ°āļĄāļĩāļŠāļđāļāļĢāļāļĒāđāļēāļāđāļĢ āđāļāđāļ āļŦāļąāļ -10 HP āļāļļāļāđ 24 āļāļąāđāļ§āđāļĄāļāļāđāļāļĒāļāļāļŦāļāļĩāđāļāļāļāđāļāđāļĨāļ°āļāļ āļŦāļĢāļ·āļāļāļģāļāļ§āļāđāļāļāļēāļĄāļ āļēāļāļĢāļ§āļĄāļāļāļāļāļĨāļļāđāļĄ)
- Impact (āļāļĨāļāļĢāļ°āļāļ): Direct influence on the gamification balance and user engagement. (āļĄāļĩāļāļĨāļāđāļāļŠāļĄāļāļļāļĨāđāļāļĄāļāđāļāļāđāļĄāļāļīāđāļĨāļ°āļāļēāļĢāļĄāļĩāļŠāđāļ§āļāļĢāđāļ§āļĄāļāļāļāļāļđāđāđāļāđāļāļēāļ)
ð ïļ 3. Technical Debt List (āļĢāļēāļĒāļāļēāļĢāļŦāļāļĩāđāļŠāļīāļāļāļēāļāđāļāļāļāļīāļ)
Although no code has been written, we identified documentation and design technical debt:
āđāļĄāđāļāļ°āļĒāļąāļāđāļĄāđāļĄāļĩāđāļāđāļāđāļāļĢāļāļąāļāļāļąāļ āđāļāđāđāļĢāļēāđāļāđāļĢāļ°āļāļļāļŦāļāļĩāđāļŠāļīāļāļāļēāļāđāļāļāļāļīāļāđāļāļĢāļ°āļāļąāļāļāļēāļĢāļāļąāđāļāļāđāļēāđāļĨāļ°āļāļēāļĢāļāļāļāđāļāļāļĢāļ°āļāļāđāļāļāļŠāļēāļĢāđāļ§āđāļāļąāļāļāļĩāđ:
| Tech Debt ID | Category | Description | Severity | Action Plan |
|---|---|---|---|---|
| TD-DOC-001 | Documentation | Duplicate files and overlapping principles (AI_MEMORY.md, PRINCIPLES.md, TEAM_AGREEMENT.md, etc.). | Medium | Consolidation and cleanup during this session. |
| TD-DOC-002 | Naming | Legacy Obsidian links and naming formats in Dashboard.md and README.md. | Low | Update quick links and Obsidian bracket paths. |
| TD-SCH-001 | Database Design | No database indexes specified on bills.group_id and expense_shares.user_id in the initial draft schema. | Medium | Added index strategy to Database_Design.md. |
| TD-SEC-001 | Security | Missing JWT token rotation and blacklisting specifications for logged-out/compromised accounts. | High | Specify JWT blacklist/refresh token pattern in API Design. |