MCP-consumer summary

Mean scores: accuracy 4.78 / succinctness 4.53 / usefulness 4.33 / ask 4.50 / mcp 3.80

Nodes scored: 100

Top strengths (top 3, concrete)

Top weaknesses (top 3, concrete)

Worst 5 nodes

uuidreason
fe5d66df-c6f0-43bd-ad00-f6f18bbd7f0flower env_var; bloated summary >700ch; 4 bucket entities absent in embed
b239a21e-24d2-434e-b4bf-ffe8ebe757c1very short summary; low embed identifier density (5); no decisions for ask synthesis
da979c70-f512-4dc3-ba51-2a93ba3f6935very short summary; low embed identifier density (7); no decisions for ask synthesis
b9a5e0cd-a994-4c78-8921-64c2a23dc757very short summary; low embed identifier density (7); no decisions for ask synthesis
5bbbc30a-fe97-4ce4-a12a-b84eafb208c7very short summary; low embed identifier density (7); no decisions for ask synthesis

MCP-tool-specific findings

Common failure modes per tool:

Cross-node consistency check

Drift in surface forms across the 100 nodes:

Cross-bucket drift (same canonical name in multiple buckets): 17 cases — e.g. [‘sqlite3’, ‘chezmoi’, ‘hippo doctor’, ‘superpowers’, ‘grafana’].

Cross-cutting observation

From the consuming-agent perspective, the v3 enrichments are mostly high-quality fuel for ask and search_hybrid: summaries are specific, embed_text is tag-soupy, and entity buckets carry real identifiers. Two consumer-facing taxes dominate. (1) Worktree-path leakage — 5/100 nodes still ship .claude/worktrees/<X>/... prefixed paths in entities.files despite v3 rule 5 explicitly stripping them. This breaks get_entities(type='file') exact-match filtering and creates hybrid-search drift between worktree clones and main-tree paths for the same file. (2) Cross-bucket canonicalization drift — the same component shows up as hippo-daemon (tag), hippo daemon (tool), and /Users/carpenter/projects/hippo/crates/hippo-daemon/... (file) without a canonical mapping. An agent that does get_entities(type='file') then search_hybrid(entity=name) will pick one spelling and miss the others. The entities.canonical column already exists in the schema but is largely unused; populating it (and stripping worktree prefixes at enrichment time) would close the gap without touching the LLM prompt.