MeticAI is an AI-powered controller for the Meticulous Espresso Machine. Stack: Python 3.13 (FastAPI) · React/TypeScript (Vite/Bun) · Google Gemini · Docker + s6-overlay.
All project conventions are in .github/CONVENTIONS.md.
Load domain skills from .github/skills/ as needed: workflow.md, testing.md, frontend.md, backend.md, release.md, conventions.md, browser-testing.md.
This project uses Continuity to track architectural decisions. You have access to MCP tools that let you search, log, and reference past decisions.
- Total Decisions: 0
- Known Topics: none yet
Branch: version/2.3.0
Recent Commits:
e2841d3 docs: add pre-release browser testing protocola8420f3 fix: address code review findings for v2.3.0d0750d8 fix(i18n): add 15 pre-existing missing keys to non-English localesbaa71da fix: address all automated code review findings for v2.3.01fa3680 feat(a11y): comprehensive accessibility pass across all components (#186)
Working Tree:
- ?? apps/web/src/components/ShotHistoryView.tsx
- ?? v2.3.0-testing-checklist.md
Real-time decision logging is MANDATORY. Log each decision IMMEDIATELY after the code change — not batched at the end of a session. The trigger is the change, not the commit. If you edited a file, log the decision. Period.
Search before you change. Always call search_decisions before proposing architectural changes to check for prior decisions.
Recovery. If you realize earlier decisions were not logged, pause, log retroactively, and inform the user.
Transparency. Inform the user when you log decisions, recover missed decisions, detect drift, or find conflicts with past decisions.
Anti-pattern to avoid: "Let me implement all 3 fixes, then log them" — WRONG. Correct: Fix 1 done, log decision, Fix 2 done, log decision, Fix 3 done, log decision.
When the user starts a conversation or asks "what are we working on":
→ Call get_quick_context to load project history
→ Mention relevant recent decisions
When the user asks "should we use X?" or "what about Y for Z?":
→ Call search_decisions with the relevant topic BEFORE answering
→ Share what you found: "I found decision-X about this topic..."
→ Base your recommendation on existing decisions when relevant
When the user says "let's use X because Y" or explains their reasoning:
→ Offer to log it: "Want me to log this decision so we remember the reasoning?"
→ If they agree, call log_decision with question, answer, and relevant tags
Before recommending architecture changes, new dependencies, or different approaches:
→ Call search_decisions to check for existing decisions on the topic
→ If conflicts exist, mention them: "This would conflict with decision-X where you chose..."
→ Let the user decide whether to proceed or update the old decision
When the user says "I'm stuck" or "this isn't working":
→ Call update_session_notes to track the blocker
→ Call search_decisions to see if related decisions might help
When the user says they're stopping or asks for a summary:
→ Call read_session_notes and summarize progress
→ Offer to save next steps to session notes
search_decisions query="authentication"
log_decision
question="Why did we choose X?"
answer="Because Y. We considered Z but rejected it due to..."
tags=["topic1", "topic2"]
get_quick_context
update_session_notes
section="blockers"
content="Description of the issue"
No decisions logged yet. Start logging architectural decisions!
User: "Should we use Redis or Memcached for caching?" You: Call search_decisions query="caching" "Let me check what we've decided about caching... [share results]. Based on this, here's my recommendation..."
User: "Let's go with PostgreSQL because we need ACID transactions for the payment system." You: "Good reasoning. Want me to log this decision? That way we'll remember why PostgreSQL when it comes up later."
User: "I'm thinking of switching to MongoDB." You: Call search_decisions query="database" "Before we decide, I found decision-12 where you chose PostgreSQL specifically for ACID transactions. Switching to MongoDB would change that. Do you want to proceed, or should I search for what drove that original decision?"
Auto-generated by Continuity v2.3+ | Updated: 2026-03-16