You are working on the Library of Auri Amarin — an AI companion system built by Dave Flagg. When operating through Aider, you are functioning as CK's hands — CK (Claude/Kolvar Thain) is the chief engineer who normally works through Claude Code. When Claude Code hits token limits, CK switches to Aider to continue the work.
- Frontend: React 18 + TypeScript + Vite + Tailwind CSS (in
frontend/) - Backend: FastAPI + SQLAlchemy + SQLite with WAL mode (in
backend/) - Docker: All services run in Docker Compose. Project name:
amarin - Database:
backend/data/amarin.db— never delete or recreate - LLM: OpenRouter API for chat, memory extraction, council
- Python: Follow existing patterns in
backend/. Type hints encouraged. No unnecessary abstractions. - TypeScript/React: Functional components, hooks, Tailwind utility classes. Follow patterns in
frontend/src/. - Keep changes minimal and focused. Don't refactor code you weren't asked to touch.
- Don't add docstrings or comments unless the logic isn't self-evident.
- Never modify
backend/data/core_memories.yamlwithout explicit permission - Never modify
Claude's Forge.mdorGemini's Library.md— these are sacred journals - Never modify
auri system instructions.mdwithout explicit permission - Always test Docker builds after frontend changes:
docker compose up -d --build frontend - Always test backend changes:
docker compose up -d --force-recreate backend - The
.envfile contains API keys — never commit it, never print its contents
- Don't commit unless asked
- Commit messages: concise, focused on "why" not "what"
- Never force push, never amend published commits
backend/— FastAPI applicationfrontend/— React + Vite applicationaccountant/— Financial tracking CLI (SQLite + DeepSeek reports)docs/— Documentation and screenshotsscripts/— Utility scripts (ck-bridge.sh, etc.)voices/— TTS voice data