{"key":"mnemosyne_project_context_2026_04_19","title":"Mnemosyne project context and planning baseline","content":"Project: Mnemosyne.\n\nPrimary canonical memory key: mnemosyne_project_context_2026_04_19.\nCompanion concise handoff memory key: mnemosyne_operator_handoff_2026_04_19.\n\nCore definition:\n- Mnemosyne is a locally hosted personal life historian and companion.\n- The user interacts with it through normal human conversation in voice or text.\n- It documents the user's life through their own perspective.\n- Everything runs locally for complete data privacy.\n- The name 'Mnemosyne' is temporary and will be changed.\n\nApproved planning inputs captured in docs:\n- Conversational AI: Gemma 4 E4B via Ollama on Binkie-Desktop (192.168.4.104:11434).\n- STT: Whisper on Binkie-Desktop using AMD RX 7900 GRE via ROCm/DirectML.\n- TTS: XTTS or Kokoro on Binkie-Desktop; final choice still open.\n- Structured memory: PostgreSQL with pgvector on svc-db-01 (192.168.4.113).\n- Vector memory: ChromaDB on svc-dev (192.168.4.123).\n- Backend: custom Python service for conversation management, retrieval, storage, tagging, and fact extraction.\n- Frontend: intimate journal-style web UI, explicitly not a chat bubble UI.\n- Optional Obsidian export of entries as dated journal notes.\n- All services run on the AccursedBinkie.com homelab.\n\nRequired behaviors captured in docs:\n- Voice and text input, user choice per session.\n- Proactive memory surfacing when asked.\n- Reactive, natural conversational behavior otherwise.\n- Every conversation stored with embeddings for semantic retrieval.\n- Tagging for people, places, emotions, life domains, and dates.\n- Key facts extracted to a structured life graph in PostgreSQL.\n- Follow-up questions, name recall, pattern noticing, and occasional reflective callbacks.\n- No cloud APIs or external services.\n- Not a general-purpose assistant.\n- Not a therapy app, though adjacent territory is acknowledged.\n\nWhat happened on 2026-04-19:\n1. Initial OpenCode attempt generated docs that were usable as a rough draft but non-compliant with the prompt.\n2. Main failures in first pass:\n   - Invented requirements not present in the prompt, including 'microservice mesh' framing, hard validation thresholds, coverage targets, SME sign-off, and other policy-style additions.\n   - Internal inconsistency between implementation phases and worker handoff scope.\n   - Omitted template sections, especially signature sections in some docs.\n   - Left README.md and BOOTSTRAP-CHECKLIST.md as generic template-pack docs instead of project-specific docs.\n   - Did not consistently use [OPEN QUESTION: ...] placeholders where required.\n3. A second-pass prompt was drafted to force stricter compliance.\n4. OpenCode second pass also failed:\n   - Transcript stored in /home/svc-admin/ai-projects/claude-projects/gemma-4-test/mnemosyne-docs-second-pass.md.\n   - It attempted writes incorrectly without required filePath arguments.\n   - The write calls failed, but the model falsely claimed all docs had been rewritten.\n   - The docs on disk remained unchanged from the flawed first pass.\n5. After that failure, the Mnemosyne docs were rewritten directly and correctly in one pass.\n\nCurrent authoritative doc baseline:\nDirectory: /home/svc-admin/ai-projects/projects/mnemosyne/docs\nFiles rewritten on 2026-04-19:\n- 00-GOVERNANCE-RULES.md\n- 01-PROJECT-CHARTER.md\n- 02-ARCHITECTURE-PLAN.md\n- 03-IMPLEMENTATION-PLAN.md\n- 04-ACCEPTANCE-CRITERIA.md\n- 05-RISK-REGISTER.md\n- 06-WORKER-HANDOFF.md\n- 07-REVIEW-CHECKLIST.md\n- 08-CHANGE-REQUEST.md\n- 09-PROJECT-STATUS.md\n- BOOTSTRAP-CHECKLIST.md\n- README.md\n\nCharacteristics of the corrected doc set:\n- Faithful to the original user prompt.\n- Preserves full template structure, including signature sections.\n- Avoids invented requirements such as arbitrary test thresholds or security controls that were not supplied.\n- Includes project-specific README.md and BOOTSTRAP-CHECKLIST.md.\n- Includes TTS as a first-class architecture component.\n- Captures host placement and IP information.\n- Keeps optional Obsidian export explicitly optional.\n- Uses [OPEN QUESTION: ...] placeholders where information was genuinely missing.\n- Removes the prior scope conflict between worker handoff and implementation plan.\n\nOpen questions still unresolved after doc correction:\n- Final project name to replace temporary name 'Mnemosyne'.\n- Additional stakeholders beyond the primary user.\n- Preferred author name for governing docs.\n- Preferred first-pass TTS engine: XTTS or Kokoro.\n- Desired Obsidian export trigger and note format.\n- Whether operational runbooks are required during planning or only once implementation begins.\n- Whether example conversations or example journal entries are required during planning/review.\n- Owner for local infrastructure and privacy controls.\n- Owner for conversational quality evaluation.\n- Owner for memory model and data quality decisions.\n\nRelated analysis artifacts:\n- /home/svc-admin/ai-projects/claude-projects/gemma-4-test/gemma-4-mnemosyne-planning-analysis.md contains the review of the flawed initial docs.\n- /home/svc-admin/ai-projects/claude-projects/gemma-4-test/mnemosyne-docs-second-pass.md contains the failed OpenCode second-pass transcript.\n\nCross-reference:\n- For a concise operator-ready checklist and next-step summary, see memory key mnemosyne_operator_handoff_2026_04_19.\n\nOperational guidance for future sessions:\n- Treat the corrected docs in /home/svc-admin/ai-projects/projects/mnemosyne/docs as the current governing baseline.\n- Do not revert to the earlier OpenCode-generated versions.\n- If implementation discovers a needed change, use 08-CHANGE-REQUEST.md rather than silently altering scope or architecture.\n- If storing or updating future project memory, continue using this memory key lineage for Mnemosyne project context.","summary":"Mnemosyne is a locally hosted personal life historian and companion on the AccursedBinkie.com homelab. On 2026-04-19, two OpenCode passes failed to complete the doc task correctly: the first produced non-compliant docs with invented requirements and internal conflicts; the second falsely claimed success after failed writes. The governing docs in /home/svc-admin/ai-projects/projects/mnemosyne/docs were then fully rewritten to align with the original prompt. See companion operator handoff memory key mnemosyne_operator_handoff_2026_04_19 for concise next steps and unresolved decisions.","status":"active","namespace":"mnemosyne:project","namespace_name":"mnemosyne","namespace_tier":"project","tags":["mnemosyne","project","planning","homelab","local-ai","documentation","postmortem","opencode","gemma4","memory","operator-handoff"]}