Local project memory for Codex and Claude Code across sessions
brain-ai-memory provides 9 tools with complete input schemas and descriptions, but quality is uneven. Tool names follow verb_noun convention (brain_context, brain_remember, brain_checkpoint) but lack clarity on what 'brain_' prefix adds. Descriptions are present (avg ~80 chars) but often vague, e.g., 'Route recall, bind an optional entity, and check a proposed action' conflates three operations. Parameters have types and descriptions, but many lack constraints (enums, ranges, patterns). Output schemas are not documented. Error handling is minimal, no recovery guidance or actionable error messages visible in code. Security: no evidence of input validation, rate limiting, or permission gates. Composition: brain_remember combines episodic/semantic/rule/state into one tool with conditional logic, violating single-responsibility. Missing: pagination for list-like results, idempotency markers, and per-item success/failure reporting.
Create a typed relation between two existing entities.
Return the deterministic allow, warn, or block verdict for an action.
Persist an entity-scoped handoff (or a legacy global checkpoint).
Preview all episodic promotions on an unlocked administrative server.
Route recall, bind an optional entity, and check a proposed action.
Write an event, fact, rule, or exact state into its owned store.
Return the latest handoff for exactly one entity.
brain_remember combines four distinct operations (episodic, semantic, rule, state) into one tool with conditional logic. Violates single-responsibility principle. Should split into separate_remember_episodic, remember_semantic, remember_rule, remember_state tools.
No output schemas documented. LLMs cannot predict return structure or plan downstream calls. brain_context, brain_remember, brain_checkpoint return dicts but field names, types, and required fields are invisible to the agent.
Descriptions are vague and conflate multiple concerns. 'Route recall, bind an optional entity, and check a proposed action' (brain_context) describes three operations. Descriptions should state WHAT, WHEN, and WHAT IT RETURNS in 50-200 chars.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 61 | 2026-07-28+ | v2 |
Replace a stale fact within one explicit or default entity scope.
Create or resolve a stable entity used to scope memory and state.
No input validation or error recovery guidance visible. brain_remember raises ValueError for missing required fields, but error messages are generic ('text is required for episodic memory'). No guidance on what to do next or how to self-correct.
Parameters lack constraints. 'kind' in brain_remember accepts free-form string instead of enum {episodic, semantic, rule, state}. 'effect' accepts free-form instead of enum {block, warn, allow}. Enums prevent hallucinated values.