Signal memory system — CFA topology, signal-chain cognition, trust-weighted retrieval. A semantic memory palace for Claude Code using ChromaDB vector storage with AAAK dialect compression.
Signal MCP has 12 tools with basic schemas and descriptions, but significant gaps prevent higher scores. All tools have descriptions (10-100 chars, mostly under 50), which is below the 194-char baseline. Input schemas are present but minimal: most read tools have empty objects or single parameters with descriptions. The write tools (signal_add_drawer, signal_delete_drawer) lack error handling guidance, confirmation patterns, and destructive operation safeguards. No output schemas are documented. Parameter descriptions are sparse (e.g., 'wing name to filter rooms' lacks format/constraint details). Tool naming follows verb_noun convention (good), but composition is weak: signal_status, signal_list_wings, signal_list_rooms, and signal_get_taxonomy all query overlapping state, forcing agents to reason about which to call. No pagination, no batch operations, no idempotency markers.
File verbatim content into a wing/room. Checks for duplicates first.
check if content already exists before filing
Delete a single drawer by ID.
Find rooms that bridge two wings — the hallways connecting domains.
Return the AAAK dialect specification
full wing → room → count tree
Palace graph overview: nodes, tunnels, edges, connectivity.
rooms within a wing
No output schemas documented. LLMs cannot plan downstream calls or extract required fields. signal_status, signal_list_wings, signal_list_rooms, signal_get_taxonomy all return unspecified JSON structures.
Destructive tool signal_delete_drawer lacks confirmation pattern, dry-run option, and error recovery guidance. No indication of whether deletion is reversible or what happens on failure.
Overlapping read tools (signal_status, signal_list_wings, signal_list_rooms, signal_get_taxonomy) query the same state. Agents must reason about which to call; no guidance on when to use each. Consider consolidating or adding discovery hints.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 39 | <=2025-11-25 | v2 |
all wings with drawer counts
semantic search, optional wing/room filter
total drawers, wing/room breakdown
Walk the palace graph from a room. Find connected ideas across wings.
Descriptions are too short (avg 45 chars vs 194-char baseline). signal_status 'total drawers, wing/room breakdown' lacks context on when to call it vs signal_list_wings. signal_delete_drawer 'Delete a single drawer by ID' does not explain consequences or recovery.
Parameter descriptions lack format/constraint details. 'wing name to filter rooms' does not specify case sensitivity, valid characters, or what happens if wing does not exist. 'threshold (0.0-1.0)' is good, but most params lack such clarity.