- Reliability 9/20
- The README describes a self-hosted stack started by ./deploy.sh (Postgres + pgvector, Redis, server, worker) that serves every agent tool at /mcp. However this is a static-only review: nothing was executed, and the SERVER MANIFEST is explicitly not cached, so the MCP init handshake, the declared tool list, and whether those tools match real behavior cannot be verified. The claim of 213/213 coverage via mirobody/tests/test_engine_coverage.py is documentation-level assertion only; no CI workflow or committed test artifacts are visible in the supplied evidence to substantiate reproducible key paths or controlled, diagnosable failures. The offline resolver's name-to-code path (with explicit abstention) is described concretely and is the most credible part, but the server-side behavior stays unverified. Per the static calibration cap (no reliability above 12 without verifiable CI + tests), deduct accordingly.
- Security and permissions 11/20
- Positive signals: Apache-2.0, the API key lives only in .env and config.llm.yaml references the variable name (e.g. OPENROUTER_API_KEY) rather than the secret, no real tokens appear in the install examples, and no signs of malware or covert exfiltration are present. The care-circle model is explicit (care_circle_members.health_access NOT NULL DEFAULT 0, invite alone shares nothing, unauthorized routes answer 403), which is good least-privilege design. Open risks: the agent reads original medical documents and report images and relays content to third-party hosted LLM providers (OpenRouter/DashScope/OpenAI/Anthropic/DeepSeek) — the scope of data sent off-box, redaction, or PHI handling is not disclosed; the agent stage appears to include an eval REPL (langchain-quickjs) with no stated confirmation gate for dangerous operations; and SEED_DEMO_DATA is on by default, which risks mixing synthetic and real data if not disabled. Main risks are visible but permission/confirmation/data-flow disclosure is incomplete; no red line is crossed, so 11.
- Maintenance 13/20
- The repository shows 1,322 stars, 1 open issue, is not archived, and ships Apache-2.0 plus links to SECURITY.md, CHANGELOG, CONTRIBUTING, and a roadmap; the README states releases land most weeks and the project publishes an arXiv paper, HuggingFace benchmarks, and a separate mirobody-eval repo, which suggests real governance. Static evidence cannot confirm commit recency, issue response latency, or dependency update cadence. Reductions: the arXiv identifier (2604.02834) and the 2026 copyright/release dates are future-dated and therefore impossible to verify, which weakens trust in the stated activity claims. No evidence of abandonment, archived status, or a missing license. Net 13.
- Documentation 12/20
- Documentation is layered and generally strong: a 60-second uvx smoke test, concrete Python examples (resolve/resolve_reading, including the deliberate abstention and refusal semantics), deployment steps, model/key configuration guidance, MCP enablement location (Settings → MCP, /mcp, gated per user), and many docs.mirobody.ai links. It also honestly discloses that 'offline' means only the resolver and that no inference runs locally. Deductions: the MCP tool parameter list, auth model, rate/cost limits, and troubleshooting procedures are missing from the supplied material (manifest not cached); several external references, the arXiv ID, and the 2026 dates cannot be statically verified; and troubleshooting relies on the external docs site rather than self-contained files. Net 12.
- Setup experience 9/20
- The README provides a fairly explicit multi-step path: git clone --depth 1, git lfs install && git lfs pull (required for the LOINC bundle, otherwise only a pointer stub — an easy-to-miss failure), then ./deploy.sh bringing Postgres/pgvector, Redis, server, and worker up at localhost:18060, plus demo credentials, a registration curl, and the SEED_DEMO_DATA default. Friction is real: Docker, Git LFS, and a separate .env for the API key (a shell export does not reach containers; a restart is required), and although no local inference runs, a hosted model key is still mandatory for upload and question flows. No concrete Claude Desktop/Cursor configuration snippet is included in the evidence — only links to docs. With no execution evidence, the static cap (no setup above 15 without verifiable CI + tests) pushes this lower; net 9.