Own the memory, rent the graph — a durable decision/lessons layer as a sidecar over a code-graph engine.
Sidegraph defines 15 tools with complete input schemas and descriptions. Naming follows verb_noun patterns (add_decision, supersede_decision, retrieve, query_structure). Descriptions are present and substantive (100-200 chars typical), explaining WHAT each tool does and WHEN to use it. However, parameter descriptions lack actionable constraints (enums, ranges, formats). Output schemas are not documented, LLMs cannot predict response structure for downstream chaining. Error handling is absent from visible code. No tool annotations (readOnlyHint/destructiveHint) despite clear READ/WRITE distinction. Composition is sound: tools are single-responsibility, and chains are clear (propose → ratify, retrieve → drill_down). Security: no credentials exposed as parameters. Overall: solid foundation with gaps in parameter constraints and output documentation.
Activate an accepted domain, synchronizing its community membership
Add a new decision to the store with title, kind, context, choice, and optional rejected/consequences/author/session_id/anchors/initiative/tags/layer
Add a fact to the store with title, context, and optional anchors/supports/author/session_id/tags/layer
Drill down into a specific decision or fact to retrieve related records
Get summaries of entities (code symbols, communities, domains, initiatives) with their decision bindings
List domain candidates derived from code graph communities
Propose a decision draft from agent input with optional anchors and ratify policy
Output schemas not documented. LLMs cannot predict response structure, breaking downstream tool chaining and forcing exploratory calls.
Parameter descriptions lack actionable constraints. 'tags' accepts 'list or comma-separated string' but no enum/pattern. 'ratify' accepts 'manual|auto-low-risk|auto-all' but not formalized as enum. LLMs hallucinate invalid values.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 61 | 2026-07-28+ | v2 |
Propose domain drafts from agent input
Propose fact drafts from agent input with optional anchors and supports
Query the decision store structure: list decisions, facts, domains, or entities
Ratify proposed decisions, facts, or domains, moving them to accepted status
Retrieve decisions and facts relevant to a task context with optional budget constraints
Supersede an existing decision with a new one, marking the old as superseded
Supersede an existing fact with a new one
Synchronize anchors against the code graph, updating bindings and entity mappings
No tool annotations (readOnlyHint/destructiveHint/idempotentHint) despite clear READ/WRITE distinction. Clients cannot determine safety without parsing descriptions.
No error handling guidance in visible code. Tools do not return actionable recovery hints (e.g., 'Record not found. Try query_structure() to list available IDs').
Pagination not visible for list-returning tools (query_structure, list_domain_candidates, entity_summaries). No limit/offset/cursor parameters documented; unbounded results risk context window exhaustion.