Skip to main content
Glama

Your coding agent forgets you every time you close the session. Every architecture decision you explained. Every debugging session where you traced a bug through four layers of abstraction. Every "remember, we decided to use event sourcing, not CRUD" correction. Gone. Next session, your agent is a stranger to its own tools.

Cortex is a cross-platform persistent memory engine for AI coding agents, built on computational neuroscience. Codex, Gemini CLI, Claude Code, and any local stdio MCP host can use the same remember/recall, knowledge-graph, consolidation, and wiki tools. Claude Code's plugin adds automatic capture and injection hooks; other hosts use the same memory through explicit tool calls.

It runs entirely on your machine — a local SQLite database by default (zero setup, no services to install), or PostgreSQL + pgvector when you want it. A 22 MB embedding model, no LLM in the retrieval loop, no data leaving localhost.

36 neuroscience mechanisms · 52 memory tools · 9 lifecycle hooks · a self-curating, continuously-groomed per-project wiki — all local, all open-source.


Getting Started

Cortex ships as a single-click MCP bundle (.mcpb). Download the latest hypermnesia-mcp.mcpb from Releases, then open it in Claude Desktop — Settings → Extensions installs it in one click.

It runs immediately on the built-in SQLite backend: zero configuration, no database to provision, nothing to set up. Memory persists to a local file under ~/.claude/methodology/. That's the whole install.

Claude Cowork works the same zero-setup way: the sandboxed environment is detected automatically (CLAUDE_ENVIRONMENT=cowork) and Cortex uses the local SQLite store — no PostgreSQL required.

Want PostgreSQL + pgvector instead (for very large stores or a shared team database)? It's a single configuration field — see Configuration below. SQLite is the default; PostgreSQL is opt-in.

Claude Code plugin (marketplace):

claude plugin marketplace add cdeust/Cortex
claude plugin install hypermnesia-mcp

Upgrading from the cortex plugin? The plugin was renamed hypermnesia-mcp in v4.15.0 (a community-directory name collision with an unrelated cortex plugin): claude plugin uninstall cortex && claude plugin install hypermnesia-mcp — your memories and configuration are untouched, storage paths do not change.

Upgrading from cortex-viz@cortex-plugins? Its Claude Code marketplace identity was renamed to hypermnesia-mcp-viz, first published in cortex-viz v3.1.0 (the rename commit itself was never tagged as v3.0.0 — that version number was pinned here for six days without a matching release; see cortex-viz's CHANGELOG). Run claude plugin uninstall cortex-viz@cortex-plugins, then claude plugin marketplace update cortex-plugins, then claude plugin install hypermnesia-mcp-viz@cortex-plugins. The retained cortex-viz@cortex-plugins item is a frozen, nonfunctional migration shim: it only prints this notice and exposes no MCP server or tools. The repository remains cdeust/cortex-viz; only its marketplace plugin identity changed.

Claude tool allowlists, hooks, skills, and agents must migrate both composed names: mcp__plugin_cortex-viz_cortex-viz__open_visualization becomes mcp__plugin_hypermnesia-mcp-viz_hypermnesia-mcp-viz__open_visualization, and mcp__plugin_cortex-viz_cortex-viz__get_methodology_graph becomes mcp__plugin_hypermnesia-mcp-viz_hypermnesia-mcp-viz__get_methodology_graph.

That is the whole install — zero configuration, no PostgreSQL, no system packages. The postInstall provisions Python dependencies and selects the local SQLite store (~/.claude/methodology/memory.db); the store schema auto-creates on first use. The embedding model is not downloaded at install time — it fetches lazily on first use (~100 MB, one-time; see PRIVACY.md) and runs fully offline afterwards. The plugin path registers all lifecycle hooks (session-start context injection, per-prompt auto-recall, auto-capture, compaction checkpointing, the autonomous wiki cycle) and the /cortex-setup-project command.

An existing PostgreSQL install is never downgraded: the installer detects a configured DATABASE_URL, a prior PostgreSQL backend marker, or a reachable local cortex database and keeps using it across plugin updates.

Upgrading the plugin to PostgreSQL (optional):

bash <plugin-dir>/scripts/install-plugin.sh --postgres   # <plugin-dir> = the installed plugin root

In one line: PostgreSQL adds connection-pooled concurrency (two psycopg_pool latency classes), server-side PL/pgSQL WRRF fusion, and pgvector HNSW ANN indexing — worth it for very large stores or a shared team database (see Under the Hood); the memory tools and retrieval contract are identical on both backends. After upgrading, run /cortex-setup-project once — it handles pgvector setup, database creation, the embedding-model pre-cache, profile building, codebase seeding, and hook registration.

What SQLite mode does not do (honest disclosure): the WRRF fusion runs in-process instead of server-side, without HNSW ANN indexing (fine at personal-store scale, slower at very large scale); and three PostgreSQL-only hook enrichments degrade to silent no-ops — cross-agent team-decision injection (agent_briefing, plus the banner's Team Decisions section), file-based preemptive context (preemptive_context), and pipeline symbol heat-bumps (pipeline_impact_bump). Session-start banners, auto-recall injection, auto-capture, checkpoints, and all 52 memory tools work on both backends.

Verify any install:

python3 -m mcp_server.doctor

The check list is backend-aware: on SQLite it verifies Python, the store opens, a writable methodology dir, and the pool-capacity invariant; on PostgreSQL it additionally checks the PG driver, DATABASE_URL, connection, and extensions. Exit 0 means ready.

Clone + setup script:

git clone https://github.com/cdeust/Cortex.git && cd Cortex
bash scripts/setup.sh        # macOS / Linux
python3 scripts/setup.py     # Windows / cross-platform

Docker:

git clone https://github.com/cdeust/Cortex.git && cd Cortex
docker build -t cortex-runtime -f docker/Dockerfile .
docker run -it \
  -v $(pwd):/workspace \
  -v cortex-pgdata:/var/lib/postgresql/17/data \
  -v ~/.claude:/home/cortex/.claude-host:ro \
  cortex-runtime

PyPI (uvx / pip) — best-effort hook-free compatibility:

uvx hypermnesia-mcp          # run the MCP server directly
pip install hypermnesia-mcp  # or install into your environment

The server is published on PyPI as hypermnesia-mcp (registry name io.github.cdeust/hypermnesia-mcp). Claude Code remains the primary integration because it adds the lifecycle hooks; PyPI is the best-effort hook-free stdio compatibility channel for Gemini CLI, Codex CLI, and other MCP hosts.

WSL / TLS client-cert / remote PostgreSQL: See deployment scenarios.


Related MCP server: rawthink

Use with other MCP hosts

The MCP server is host-agnostic: any host that can launch a stdio process gets the full tool surface — remember, recall, the wiki, navigation, consolidation, all 52 tools — on the default local SQLite store. What is not portable are the 9 lifecycle hooks, which are Claude Code plugin machinery. The server itself does not import or require those hooks at startup.

What works where (honest matrix):

Capability

Claude Code plugin

Local stdio hosts (Gemini CLI, Codex CLI, ChatGPT desktop, Cursor, Windsurf, VS Code, Agents SDK)

ChatGPT web

All 52 memory tools (remember, recall, wiki, navigation, consolidation, triggers, rules)

❌ — Cortex does not ship a remote HTTPS endpoint

SQLite default store / PostgreSQL opt-in

❌ — a remote deployment and per-user storage/auth model would be required

Auto-capture of significant tool output

✅ (PostToolUse hook)

❌ — store explicitly with remember

Session-start context injection

✅ (SessionStart hook)

❌ — call recall yourself

Per-prompt auto-recall

Compaction checkpoints

Autonomous wiki cycle (headless worker)

❌ — run consolidate / curate_wiki manually

Cognitive profiling (query_methodology)

⚠️ profiles are mined from Claude Code session logs under ~/.claude/; without them the profile is empty

In one sentence: on Claude Code memory is ambient (hooks capture and inject automatically); on every other host memory is manual-tool-driven — the agent stores and retrieves when instructed, and nothing happens between prompts.

The launch command on every host is the PyPI package (the [sqlite] extra enables sqlite-vec vector search; without it the store still works, with vector search disabled):

uvx --from "hypermnesia-mcp[sqlite]" hypermnesia-mcp

Gemini CLI — this repo ships a gemini-extension.json:

gemini extensions install https://github.com/cdeust/Cortex

Or add it to ~/.gemini/settings.json directly:

{
  "mcpServers": {
    "cortex": {
      "command": "uvx",
      "args": ["--from", "hypermnesia-mcp[sqlite]", "hypermnesia-mcp"]
    }
  }
}

OpenAI Codex and ChatGPT desktop — native local plugin (recommended). The repository now carries an isolated Codex marketplace and an exact 10-tool lean MCP surface. Claude Code remains the primary integration and retains its automatic hooks, custom agent, and full tool profile. Its shared marketplace catalog changes only for the pinned hypermnesia-mcp-viz publication and the frozen cortex-viz migration shim. Pre-install the same published package once so the plugin's first uvx handshake can reuse the local uv cache instead of spending its startup budget downloading the Python environment. The bundled server also declares a 180-second startup ceiling, backed by a 110.46-second clean-cache launch measured on 2026-08-02 on local macOS 26.5.1 arm64 with uv 0.8.19 (the clean ubuntu-latest CI run completed in 23.87 seconds):

uv tool install "hypermnesia-mcp[sqlite]"
codex plugin marketplace add cdeust/Cortex
codex plugin add hypermnesia-mcp-codex@cortex-codex-plugins

Restart the ChatGPT desktop app and start a new task after installation. See the Codex plugin guide for the host boundary and the public-directory requirements Cortex deliberately does not claim.

Direct Codex MCP configuration (fallback). After the same pre-installation, register the executable directly:

uv tool install "hypermnesia-mcp[sqlite]"
codex mcp add cortex --env CORTEX_MEMORY_STORE_BACKEND=sqlite -- hypermnesia-mcp

codex mcp add registers the executable and SQLite backend. For production use, extend that generated entry with explicit startup and tool timeouts. Codex CLI, the Codex IDE extension, and the ChatGPT desktop app's local Codex host share ~/.codex/config.toml; the recommended complete entry is:

[mcp_servers.cortex]
command = "hypermnesia-mcp"
startup_timeout_sec = 30
tool_timeout_sec = 600

[mcp_servers.cortex.env]
CORTEX_MEMORY_STORE_BACKEND = "sqlite"

Verify discovery with codex mcp list and then /mcp inside a Codex session. ChatGPT web is a different surface: it does not read local Codex configuration and accepts MCP tools through hosted plugins backed by remote Streamable HTTP servers. Cortex deliberately does not claim that deployment model today; exposing a local personal-memory database through a remote endpoint would require an explicit authentication, tenancy, and privacy design.

The server preserves FastMCP's diagnostic startup banner (including the FASTMCP_SHOW_SERVER_BANNER setting) but disables its network update probe: an MCP stdio handshake must succeed offline and must not fail because of proxy-specific HTTP extras. This does not freeze FastMCP indefinitely. Upgrade the installed tool explicitly; the new Cortex release and its declared dependency set are then resolved together:

uv tool upgrade hypermnesia-mcp

Repository installs remain reproducible through uv.lock, whose dependency updates are reviewed through normal pull requests.

Validation scope: CI runs the installed production console entry point through the MCP lifecycle under representative Claude, Gemini, and Codex client identities for both the full and exact 10-tool lean profiles, then separately invokes pinned vendor CLIs to parse the Claude plugin, Gemini extension, and recommended Codex configuration. This proves the protocol and configuration contracts; it does not simulate an authenticated model turn inside each vendor UI.

Cursor.cursor/mcp.json (project) or ~/.cursor/mcp.json (global) — and Windsurf~/.codeium/windsurf/mcp_config.json — take the same mcpServers block as Gemini above.

VS Code.vscode/mcp.json:

{
  "servers": {
    "cortex": {
      "type": "stdio",
      "command": "uvx",
      "args": ["--from", "hypermnesia-mcp[sqlite]", "hypermnesia-mcp"]
    }
  }
}

OpenAI Agents SDK (Python):

from agents.mcp import MCPServerStdio

async with MCPServerStdio(
    name="cortex",
    params={
        "command": "uvx",
        "args": ["--from", "hypermnesia-mcp[sqlite]", "hypermnesia-mcp"],
    },
) as server:
    agent = Agent(name="Assistant", mcp_servers=[server])

uvx requires uv; pip install "hypermnesia-mcp[sqlite]" + the hypermnesia-mcp console script works identically. GUI hosts that don't inherit your shell PATH may need the absolute path from which uvx.


Configuration

Cortex needs no configuration to run — the SQLite backend is the default and requires nothing. Two optional settings let you change the storage backend; in the single-click bundle they appear as fields in Claude Desktop's extension settings, and everywhere else they map to environment variables.

Setting

Env var

Default

What it does

Storage backend

CORTEX_MEMORY_STORE_BACKEND

sqlite*

sqlite runs fully local with zero setup. postgresql uses an external PostgreSQL + pgvector database (set the URL below). auto tries PostgreSQL and falls back to SQLite.

PostgreSQL URL

CORTEX_MEMORY_DATABASE_URL

(empty)

Only used when the backend is postgresql or auto. Example: postgresql://user:password@host:5432/cortex. Leave empty to stay on SQLite. Treated as sensitive.

* The single-click bundle pins the backend to sqlite through the manifest. If you run the server directly (clone / Docker) without setting the variable, the underlying code default is auto — it tries PostgreSQL and falls back to SQLite.

That's the entire surface most users touch. Both backends expose the same 52 memory tools (55 with the optional ai-architect-mcp-codebase + ai-architect-mcp-spec integrations) and the same retrieval contract; PostgreSQL adds server-side PL/pgSQL fusion and HNSW indexing that pays off at very large scale. Every other knob uses the CORTEX_MEMORY_ prefix — see mcp_server/infrastructure/memory_config.py.


Examples

A live, end-to-end run on the SQLite backend — store three memories, recall them by meaning, then check the store. The output is taken from the in-process FastMCP client (recall lists trimmed to the top hit). The harness writes with force: true for determinism, and the demo store already held a few earlier memories — so memory_stats totals exceed the three inserted here.

1 — Store a memory. It is stored with a heat score (force: true skips the dedup write-gate to keep the demo deterministic; omit it and a near-duplicate would be gated).

remember({
  content: "Cortex stores memory in a local SQLite database by default — zero setup, no PostgreSQL required.",
  tags: ["architecture", "decision"],
  force: true
})
// → { stored: true, memory_id: 490, action: "stored", heat: 0.796 }

2 — Recall by meaning, not keywords. The fused retrieval ranks the relevant memory first.

recall({ query: "how does cortex store memory by default?" })
// → memories[0] = {
//     content: "Cortex stores memory in a local SQLite database by default — zero setup, no PostgreSQL required.",
//     score: 0.0167, heat: 0.846, tags: ["architecture", "decision"]
//   }

3 — A different query surfaces a different memory. Stored "Anchored memories survive context compaction with maximum priority."; this recall puts it on top.

recall({ query: "what survives context compaction?" })
// → memories[0] = {
//     content: "Anchored memories survive context compaction with maximum priority.",
//     heat: 0.565, tags: ["compaction"]
//   }

4 — Inspect the store. has_vector_search: true confirms semantic search is live on SQLite.

memory_stats({})
// → { total_memories: 14, episodic_count: 8, semantic_count: 6,
//     avg_heat: 0.942, has_vector_search: true }

You rarely call these by hand: the lifecycle hooks (plugin install) inject the right memories at session start and capture new ones as you work. The tools are there when you want explicit control — anchor to pin an architecture constraint, consolidate to run a maintenance cycle, narrative to get the project's story so far.


What's new

v4.13.0 — grooming becomes continuous instead of session-bound. A measured 76-day wiki-citation and lesson-promotion silence (invisible until this release could measure it) is closed by wiring a recurring citation-reconciliation pass and a lesson-promotion backlog count into every consolidation cycle, a new READ_ONLY get_grooming_health tool (backlog + staleness per grooming type, on demand), a one-line session_start nudge past a sourced staleness threshold, and an opt-in scheduled scripts/groomer.py entry point (dry-run by default) for anyone who wants the maintenance pass on its own cron/launchd cadence. Also fixed: headless wiki writes now go through the same governed path as interactive writes, and — found on the way — a CRITICAL latent bug where the anchor-page frontmatter template's status: living violated the wiki.pages CHECK constraint since its origin, silently failing the database sync of every interactively-authored curate_wiki page in production. 49 memory tools (52 with upstream integrations). See CHANGELOG.md for the full write-up.

v4.0.0 — the neuroscience model complete (13 new mechanisms). Cortex fills the remaining cognitive-science gaps so memory spans encoding → consolidation → retrieval → forgetting with a grounded mechanism at every stage: source/reality monitoring (C1) with a confabulation gate, recollection-vs-familiarity dual-process retrieval (C2), claim-conflict monitoring (A2), goal maintenance (A1), attentional-salience gating, habituation (E1), fear-extinction inhibitory learning (E2), stress/arousal encoding-gain modulation, a predictive-coding forward model, value/reward-weighted retention, procedural (skill) memory (B1), two-phase NREM/REM sleep consolidation (F1), and cued targeted reactivation (F2). One new MCP tool (recall_skills); each mechanism is cited to published work and exposed as a live system vital. 44 memory tools (47 with upstream integrations).

v3.23.0 — single-click bundle + registry-indexer build fix. Cortex now ships as an MCP bundle (.mcpb) with a uv runtime and a selectable storage backend — SQLite by default, PostgreSQL optional — so it installs in one click with zero setup. Also: a neuro-cortex-memory console script so uv run neuro-cortex-memory resolves from a checkout; registry indexers that build with uv sync and launch via that script now start the server and register all standalone tools without a PostgreSQL connection (so tools/list answers inside a DB-less container).

v3.21.0 — visualization extracted to cortex-viz. The entire visualization stack — the galaxy graph, execution trace, the Knowledge / Board / Wiki / Pipeline views, and their HTTP server — moves to a standalone companion MCP, cortex-viz, which reads this same store read-only. Cortex is a focused memory engine again (−50k lines). Breaking: the open_visualization, get_methodology_graph, and query_workflow_graph MCP tools are removed from Cortex — install the canonical hypermnesia-mcp-viz Claude Code plugin to get them back (its /cortex-visualize skill replaces the old one). 46 MCP tools remain; no memory, retrieval, or wiki behaviour changed; full suite green (3214 tests).

Full changelog and release notes


The science under the hood

Cortex doesn't store memories the way a database stores rows. It treats them the way a brain treats experiences. Every mechanism traces to a published paper — a 97-reference bibliography (docs/papers/bibliography.md).

Memories have temperature. Every memory starts hot. Access it and it stays hot; ignore it and it cools. Below a threshold it compresses: full text → summary → keywords → fades entirely. This is rate-distortion optimal forgetting — the framework your brain uses to decide what's worth keeping. Important memories resist compression; surprising ones get a heat boost; boring, redundant ones quietly disappear. (Anderson & Lebiere 1998; Ebbinghaus 1885)

Storage has a gatekeeper. Not everything deserves to be remembered. Cortex maintains a predictive model of what it already knows and only stores information that violates its expectations. Tell it the same thing twice and the write gate blocks the second attempt. This is predictive coding — the mechanism your neocortex uses to filter sensory input. Only prediction errors get through. (Friston 2005; Bastos et al. 2012)

Retrieval changes the memory. When you recall a memory in a new context, Cortex compares the retrieval context against the storage context, and if there's enough mismatch it reconsolidates — updates the memory to reflect what's true now. Nader et al. showed in 2000 that retrieved memories become labile and can be rewritten. Your codebase evolves, and so do Cortex's memories of it. (Dudai 2012; Nader et al. 2000)

Emotional memories are stronger. Frustration during debugging, urgency in a production incident — Cortex detects emotional valence and encodes those memories with more force. They decay slower, compress later, and surface faster, like how you remember your worst outage in vivid detail but not last Tuesday's standup. (Qasim et al. 2023; Hebb 1955)

Background consolidation runs like sleep. When you're away, a consolidation cycle decays old memories, compresses verbose ones, promotes recurring patterns into general knowledge (episodic → semantic transfer), discovers entity relationships, and runs "dream replay" where related memories are compared and new connections emerge. (McClelland et al. 1995; Foster & Wilson 2006; Buzsáki 2015)

Similar memories stay distinct. Pattern separation, modeled on the dentate gyrus, keeps "Tuesday's standup" separate from "Wednesday's standup" even though they're nearly identical — without it, retrieval returns the same generic match for every similar query. (Leutgeb et al. 2007; Yassa & Stark 2011)

Forgetting is active, not just passive decay. Beyond the slow cooling of the heat model, Cortex runs two independent dopaminergic forgetting circuits from Drosophila: a permanent one that erodes a memory's trace under chronic interference (Rac1), and a transient one that blocks retrieval of a memory without erasing it (DAMB). Interference-heavy, low-value memories are actively removed rather than left to linger — the same way your brain prunes what competes without paying off. (Davis & Zhong 2017; Sabandal et al. 2021)

The two arXiv-ready papers go deeper: Thermodynamic Memory vs. Flat-Importance Stores (PDF, 34 pages) · Stage-Aware Context Assembly (PDF, 39 pages).


What this actually feels like

Monday. You spend an hour debugging a webhook handler. After tracing through four layers, you find the root cause: a race condition in the Redis session store where TTL expiry can fire between the auth check and the permission lookup. You discuss the fix with Claude, decide on an approach, implement it. Session ends.

Thursday. Different project, but a user reports intermittent logouts. You open Claude. Before you even describe the bug, Cortex has already injected three memories: Monday's race-condition analysis, a decision from two weeks ago to use Redis for all session state, and a lesson from an older session about TTL edge cases in distributed caches.

Claude doesn't just have your conversation history. It has context — it connects the current problem to past decisions and skips the part where you re-explain your architecture.

Three weeks later. Those debugging sessions have consolidated into a general pattern: "authentication edge cases involving TTL-based caches." The specific Redis commands compressed to a summary, the debugging steps faded, the principle survived. Your next auth issue starts with institutional knowledge, not a blank page.


Retrieval that actually works

We tested Cortex against three published benchmarks. All scores are retrieval-only — no LLM reader in the evaluation loop. We measure whether the right memory shows up, not whether a model can generate a good answer from it.

LongMemEval — can you find a fact from 40 sessions ago?

LongMemEval (Wu et al., ICLR 2025): 500 human-curated questions embedded in ~40 sessions of conversation history (~115k tokens). The paper's best retrieval hit 78.4% Recall@10.

Cortex

What it means

Recall@10

98.2%

The right memory shows up in the top 10 for nearly every question

MRR

0.9167

The correct memory is usually ranked first or second — retrieval rank only, no LLM reader

n=500, clean-DB run benchmarks/results/repro/20260714-v4.14.1-pretag/longmemeval-s.json, code SHA 28145f0b7a113fc06e22568de6feea7f8444eaf5, dirty=false.

Category

MRR

R@10

Single-session (assistant)

1.000

100.0%

Multi-session reasoning

0.964

100.0%

Knowledge updates

0.932

100.0%

Single-session (user)

0.841

95.7%

Knowledge updates score near-perfect because the retrieval stack's recency signal and update-intent routing push the newest version of a fact above older ones.

Two categories — Temporal reasoning and Single-session (preference) — are withheld from this table. A confirmed same-protocol degradation exists between two committed, clean-tree runs (code SHA 0e858e8, 2026-05-02, and this table's own 28145f0b, 2026-07-14; identical n=500, with_consolidation=false, --variant s harness), and the responsible commit has not yet been isolated within the 269-commit window between them. Publishing the lower figure as the reference before the cause is found and fixed would misrepresent an open regression as a settled result. See docs/benchmarks/arxiv-figure-audit-2026-08-02.md § Per-category provenance for the full evidence and docs/benchmarks/e1-v3-per-category.md for both endpoints.

LoCoMo — trick questions and multi-hop reasoning

LoCoMo (Maharana et al., ACL 2024): 1,986 questions across 10 conversations — adversarial trick questions, multi-hop queries needing evidence from multiple turns, and temporal reasoning.

Cortex

What it means

Recall@10

94.2%

Right memory in top 10 over 9 times out of 10

MRR

0.8278

The correct memory is typically ranked first — retrieval rank only, no LLM reader

n=1986, BASELINE_NO_CONSOLIDATION, code SHA ef178da7418a05bcf7aeb3e66f5b3179fdad2c4d (before the plasticity fix 5f737fe) — docs/benchmarks/e1-v3-locomo-results.md, backed by the committed artifact at benchmarks/results/ablation/locomo_v3/.

Category

MRR

R@10

Adversarial

0.879

95.7%

Open-domain

0.874

96.9%

Multi-hop

0.781

89.4%

Single-hop

0.743

94.3%

Temporal

0.583

78.3%

No LLM at query time. Five signals fused — vector similarity, full-text search, trigram matching, thermodynamic heat, recency — then reranked by a cross-encoder. On PostgreSQL the fusion runs server-side in PL/pgSQL; on SQLite the same five signals are fused in-process.

BEAM — 10 million tokens of conversation

BEAM (Tavakoli et al., ICLR 2026) is the hardest long-term memory benchmark published: 10 conversations, each spanning 10 million tokens, probed across 10 memory abilities — including three no prior benchmark tests: contradiction resolution, event ordering, and instruction following. (Question counts vary by split: 196 on 10M, 395 on the current 100K.)

Every system in the paper collapses at this scale; the best reported (LIGHT on Llama-4-Maverick) scores 0.266 end-to-end. The collapse is measurable — and structured assembly resists it. Same code, same day, clean database, 35 conversations per split:

Split

Flat WRRF

With Context Assembler

Δ

500K (699 Qs)

0.500

0.570

+0.070

1M (695 Qs)

0.466

0.535

+0.069

Measured 2026-06-11 — benchmarks/results/beam_crossover/RESULTS.md. Flat retrieval degrades as the corpus doubles (0.500 → 0.466); the assembler holds a durable +0.07. At small scale it is net-flat (April 100K: 0.591 flat vs 0.602 assembled, 200-Q split since re-based to 395) — the value is scale-dependent, not universal.

At 10M tokens the gap widens — and the assembler needs no labels:

Configuration

MRR

vs. flat WRRF (0.353)

Flat WRRF baseline

0.353

Assembler, oracle stage labels (BEAM plan_id)

0.429

+21.5%

Assembler, temporal stage detection (timestamps only)

0.471

+33.4%

2026-04 family, same code revision, 196 Qs / 10 conversations — benchmarks/beam/variance/assembler_10m_stagefixed.txt and assembler_10m_temporal.txt. Reproduced 2026-06-11 on current code (fresh DBs, same 196 Qs): oracle 0.496, temporal 0.523 — the temporal advantage persists across code revisions (benchmarks/results/beam10m_paired/RESULTS.md).

The finding that surprised us: label-free temporal day-level partitioning outperforms BEAM's ground-truth topic labels (0.471 vs 0.429). Temporal proximity is a stronger stage signal than topic boundaries for conversational memory, so the Stage-Aware Context Assembly architecture deploys without any oracle metadata. It was originally designed in September 2025 for 9-page PRDs on Apple Intelligence's 4,096-token window (ai-prd-builder, commit 462de01) — one month before the BEAM paper existed — because the problem is the same at both scales: you can't fit everything in context, so you have to be smart about what goes in.

Honest caveat: BEAM defines no retrieval MRR metric — the paper uses LLM-as-judge nugget scoring. Our "MRR" is a retrieval proxy (rank of the first substring-matching memory); LIGHT's scores are end-to-end QA. The two are not commensurable, so we make no head-to-head BEAM claim and use BEAM only for within-system, same-harness comparisons.

pip install -e ".[postgresql,benchmarks,dev]"

python benchmarks/beam/run_benchmark.py --split 100K          # ~10 min
CORTEX_USE_ASSEMBLER=1 python benchmarks/beam/run_benchmark.py --split 10M
python benchmarks/locomo/run_benchmark.py                     # ~40 min
python benchmarks/longmemeval/run_benchmark.py --variant s    # ~45 min

All scores on a fresh database (DROP + CREATE per run), TRUNCATE between conversations, FlashRank preflight verified. Full methodology: docs/papers/research-post-context-assembly.md.


Context that survives compaction

Claude has a 200k/1M token context window. During long sessions, when it fills, it compacts: summarizes older messages, strips tool outputs, paraphrases instructions. Important nuance evaporates; decisions you anchored early dissolve into vague summaries.

Hippocampal Replay fixes this — named after the phenomenon where your brain replays important experiences during sleep to consolidate them. It treats compaction as "sleep" and replays what matters when Claude "wakes up." Before compaction hits, a hook drains your active context — what you were working on, which files were open, what decisions you'd made, what errors were unresolved — and stores it as a checkpoint. After compaction, a second hook reconstructs context intelligently: the latest checkpoint, anything you'd anchored as critical, the hottest project memories, and predictions about what you'll need next.

You can be explicit about what matters:

cortex:anchor({ content: "We're using event-sourcing. All state changes go through the event bus.", reason: "Architecture constraint" })

Anchored memories get maximum protection — they always survive compaction, no matter what.

The compaction checkpoint, session-start injection, and the autonomous wiki cycle are lifecycle hooks registered by the Claude Code plugin install. The single-click .mcpb bundle is a Directory connector — it delivers the 52 memory tools but no hooks (the MCPB format carries none). For the automatic session-lifecycle memory (session-start injection, auto-capture, compaction checkpointing, the autonomous wiki cycle), install the Claude Code plugin (see More options); the plugin also auto-registers the 3 upstream-integration tools when ai-architect-mcp-codebase / ai-architect-mcp-spec are present (55 total).


The autonomous wiki

Cortex's wiki is a self-curating per-project knowledge base, not a memory dump. Every project the registry knows is driven toward 42 canonical documentation scopes (product overview, architecture, services, API, data flow, operations, decisions, onboarding, security, testing, configuration … ), and every source file toward 13 canonical sections (Purpose · Public API · Dependencies · Callers · How it works · Invariants · What can go wrong · Tests · Sequence diagram · Flow diagram · Parameters · Request example · Response example).

What makes it autonomous — no cron, no daemon, no manual invocation:

  • A SessionStart hook spawns a background consolidate cycle every 6 hours (TTL stamp at ~/.claude/methodology/.last_consolidate). The agent runs because you opened Claude Code, and stops when nothing is left to author.

  • A curation-gap detector + headless authoring worker. Each file-doc page declares its missing sections in frontmatter (curation_gaps:); the worker drains them by invoking claude -p (your existing credentials, no API key), which calls the codebase-intelligence MCP tools — codebase_context, codebase_impact, codebase_query — to ground each section in the real call graph before writing.

  • Missing-anchor authoring. When a project has no architecture / services / api / data-flow / operations / ADR / PRD page, the worker authors it from the source tree (structure + README + manifest + CLAUDE.md), same grounding.

  • Drift detection. Pages whose cited source moved, whose mtime is stale (>60 days), or whose body is off-template are flagged and re-authored in place. Deletion is never the policy; visibility is — a yellow banner shows ⚠ Page N% curated — M sections still missing and exactly what belongs in each.

  • ADRs as task-records. Every completed task (≥1 commit at session end) auto-drafts an ADR with five mandatory sections (Entry / Mandatory / How / Result / Serves) from commit subjects + the session's memories; the worker refines it next cycle.

  • Per-project dashboards at wiki/_dashboards/<project>.md show slot-fill rate, file coverage %, open gaps, and the queue for the next cycle.

  • Continuous mechanical grooming. A recurring citation-reconciliation pass and a lesson-promotion backlog count run inside every consolidation cycle, not just when a session author happens to be active — closing a gap that let a 76-day, multi-thousand-item wiki-citation and lesson-promotion backlog go entirely unnoticed. get_grooming_health (a READ_ONLY MCP tool) reports exact backlog + last-run age per grooming type on demand; session_start prints one line when any type exceeds a sourced staleness threshold (3× the measured p90 gap between consolidation cycles). A scripts/groomer.py scheduled entry point (dry-run by default, opt-in --apply) is shipped for anyone who wants the maintenance pass to also run on its own cron/launchd schedule, independent of live sessions.

This isn't documentation you write — it's documentation Cortex authors, grooms, and verifies for you, every 6 hours, until every project reaches full scope coverage and every source file has all 13 sections filled.

Write papers in Cortex

Every page is editable in place in a full scientific writing environment — the same markdown that feeds the memory pipeline, with a rendering layer on top that never steals your content into a proprietary format. Your .md files stay grep-able, diffable, and git-versioned.

  • CodeMirror 6 split-pane editor — syntax-highlighted markdown on the left, fully-rendered article on the right, atomic round-trip to the .md file on disk.

  • Structured frontmatterkind / domain / scope / status / authored_by / provenance / created / updated / last_reviewed. Real metadata: the coverage audit, dashboards, and wiki view all read it.

  • [[wiki/path]] cross-references rendered as clickable links (bare slugs route to filtered search), with a backlinks footer.

  • Mermaid diagrams with a 🔍 lens — viewport-sized viewer with wheel-zoom, drag-pan, and keyboard shortcuts.

  • LaTeX math via KaTeX, BibTeX citations ([@friston2010](Friston 2010) with an auto APA bibliography), and figure / equation / table auto-numbering with cross-refs.

  • Pandoc export — one click to PDF (via LaTeX), TEX, DOCX, or HTML. Journal-submittable from the same source.

The wiki's editor, galaxy graph, and views render through the standalone hypermnesia-mcp-viz MCP, which reads this same store read-only.


Agent Integration

Cortex works with teams of specialized agents — and it uses one itself: the headless wiki worker is a Claude agent that drains the curation queue every six hours (see the autonomous wiki). Memory is shared across a team via Wegner's transactive-memory model (1987): teams store more than individuals because each member specializes.

  • Specialization — each agent writes to its own agent_topic. Engineer's debugging notes don't clutter tester's recall; the wiki worker writes to agent_topic=wiki-curation so its drafts stay out of interactive recall.

  • Coordination — decisions auto-protect and propagate. When engineer decides "use Redis over Memcached," every agent sees it at next session start. The ADRs the worker drafts at session end are the cross-agent shared memory.

  • Directory — entity-based queries span all topics. "What do we know about the reranker?" returns results from engineer, tester, researcher, and the worker's drafts alike.

Works with any custom agents. See zetetic-team-subagents for a ready-made team of specialists, each with scoped memory.


The rest of the stack

Cortex fixes what an agent forgets. Three sibling MCP servers fix what it can't see, what it can't verify, and how it reasons. Each installs on its own — none requires the others — and Cortex registers extra tools automatically when it finds them.

The problem it solves

Install it when

Related work

ai-architect-mcp-codebase

Your agent answers structural questions ("who calls this?", "what breaks if I change it?") by re-reading files, burning context and missing cross-file callers. Indexes the repo into a property graph: call/import resolution, Leiden communities, hybrid BM25+TF-IDF search, impact analysis.

Refactoring, root-cause work, or any repo big enough that grep stops being an answer.

codebase-memory-mcp covers far more languages (158). ai-architect-mcp-codebase is narrower but qualifies every impact answer as exact or lower-bound instead of presenting a possibly-incomplete list as complete.

ai-architect-mcp-spec

Specs pass review, then the implementation quietly contradicts them. Turns a feature description into a 9-file PRD and verifies it — deterministic Hard Output Rules plus multi-judge consensus calibrated against external oracles (schema / math / code).

You already write specs and want a gate that fails, not a template that hopes.

spec-kit, BMAD and Kiro generate specs. This verifies them — it runs as a CI gate over their output rather than replacing them.

zetetic-team-subagents

Subagents that assert confidently instead of citing. 11 problem-shaped skills over 97 sourced reasoning patterns (Curie to Toulmin), plus a pre-commit gate that blocks unsourced constants.

You want "I don't know" to be an available answer, and every constant in your code to trace to a paper or a benchmark.

Collections like wshobson/agents organise agents by role. These are organised by problem shape, and each carries its epistemic method and sources.

hypermnesia-mcp-viz

Memory you can't inspect is memory you can't trust. Read-only galaxy graph, execution trace, and wiki browser over this same store.

You want to see what Cortex actually kept, and why.


Architecture

Clean Architecture with strict dependency rules — inner layers never import outer layers.

Layer

What lives here

Modules

shared/

Pure utilities (text, hash, similarity, types)

18

core/

Neuroscience + retrieval + wiki-curation logic

177

core/context_assembly/

Structured context assembler + stage detector

10

infrastructure/

SQLite + PostgreSQL stores, embeddings, file I/O, MCP client

59

handlers/

MCP tools + consolidation cycles (50 MCP-exposed; 53 with upstream integrations)

105

hooks/

Lifecycle automation (incl. autonomous consolidate spawn)

9 registered

server/

MCP tool registration + composition roots

observability/

Prometheus text-format metrics

2

Storage: SQLite by default (a single local file, zero setup) or PostgreSQL 15+ with pgvector (HNSW) and pg_trgm. Both back the same 52 tools and the same WRRF fusion of five signals — vector search, FTS, trigram, heat, recency. On PostgreSQL it runs server-side in PL/pgSQL stored procedures; on SQLite the equivalent fusion runs in-process (vector search included, as the live memory_stats has_vector_search flag confirms).

Concurrency (PostgreSQL): psycopg_pool.ConnectionPool with two latency classes — interactive_pool (min=2, max=8) for recall/remember/anchor, batch_pool (min=1, max=2) for consolidate/ingest. Tool handlers run on worker threads via asyncio.to_thread; per-tool admission semaphores bound fan-out. Heat is computed at read time by effective_heat(), so homeostatic maintenance writes one scalar per domain per run instead of N rows.

Configuration: select the backend with CORTEX_MEMORY_STORE_BACKEND (sqlite / postgresql / auto); set CORTEX_MEMORY_DATABASE_URL for the PostgreSQL path. All other parameters use the CORTEX_MEMORY_ prefix — see mcp_server/infrastructure/memory_config.py. Wiki cycle TTL is CORTEX_CONSOLIDATE_TTL_HOURS (default 6h).


Verification

Every benchmark headline above is backed by a per-mechanism ablation campaign — full n, single-seed, with code SHAs, dirty flags, manifests, and per-row JSON preserved:

  • LongMemEval-S, 17 rows, n=500docs/benchmarks/e1-v3-results.md. Per-mechanism deltas at the calibrated equilibrium + category-specialization analysis.

  • LoCoMo, 14 rows, n=1986docs/benchmarks/e1-v3-locomo-results.md (pre-fix) and docs/benchmarks/e1-v3-locomo-results-post-fix.md (post plasticity result-shape fix). Two-baseline design (NO_CONSOLIDATION / WITH_CONSOLIDATION).

The full per-mechanism evidence lives in the thermodynamic paper (§6.3); the BEAM decay dose-response (§6.4) documents a re-scoped negative result after a dirty-store confound was caught and traced. Thermodynamic Memory vs. Flat-Importance Stores (PDF, 34 pages) · Stage-Aware Context Assembly (PDF, 39 pages).


Security

Runs 100% locally — MCP over stdio, the storage backend (SQLite file or PostgreSQL on localhost) never leaves your machine (the optional hypermnesia-mcp-viz companion binds its server to 127.0.0.1). No data leaves your machine. SafeSkill scan: 94/100 (code 97, content 88 — docs/safeskill-report.json).

Privacy Policy

Cortex is local-first: your memories, conversations, and profiles stay on your machine — stored in a local SQLite database (~/.claude/methodology/memory.db) by default, or in a PostgreSQL database you control. Cortex sends no memories, content, or telemetry to the author, Anthropic, or any third party. The only outbound network activity is a one-time download of open-source embedding/reranking models from Hugging Face (model files only), plus any integrations you explicitly configure. Full policy: PRIVACY.md.

Support

Development

pytest                    # full suite (see assets/badge-tests.svg for the current count)
ruff check .              # Lintruff format --check .     # Format
python scripts/check_doc_claims.py   # advertised counts must match the repo

Contributing: CONTRIBUTING.md · Who decides and what happens if the maintainer stops: GOVERNANCE.md · Where the project is going: docs/ROADMAP.md · The security argument and its limits: docs/ASSURANCE-CASE.md.

License

MIT — see LICENSE.

This software is the independent work of Clément Deust. It was developed outside any employment relationship and is not affiliated with, endorsed by, or owned by any past or present employer. It is part of the ai-architect ecosystem (zetetic-team-subagents, ai-architect-mcp-codebase, ai-architect-mcp-spec).

The neuroscience and information-retrieval algorithms encoded in this software are derived from published academic work cited in docs/papers/bibliography.md and inline in the source via # source: annotations (Friston on predictive coding, Anderson & Lebiere on rate-distortion forgetting, Nader et al. on retrieval-induced lability, McClelland et al. on consolidation, and others). The MIT license covers this implementation; it does not assert ownership over the underlying mechanisms, which remain attributable to their original authors and publications.

Citation

The paper PDFs on main are the canonical artefacts (arXiv IDs forthcoming, endorsement in progress):

@software{cortex2026,
  title={Cortex: Persistent Memory for Claude Code},
  author={Deust, Clement},
  year={2026},
  url={https://github.com/cdeust/Cortex}
}

@unpublished{deust2026thermodynamic,
  title={Thermodynamic Memory vs. Flat-Importance Stores:
         Why Long-Term Retrieval Collapses Without Decay},
  author={Deust, Clement},
  year={2026},
  note={arXiv ID forthcoming, endorsement in progress},
  url={https://github.com/cdeust/Cortex/blob/main/docs/arxiv-thermodynamic/main.pdf}
}

@unpublished{deust2026context,
  title={Stage-Aware Context Assembly for Long-Context Memory Retrieval},
  author={Deust, Clement},
  year={2026},
  note={arXiv ID forthcoming, endorsement in progress},
  url={https://github.com/cdeust/Cortex/blob/main/docs/arxiv-context-assembly/main.pdf}
}

Available Tools

40 tools
add_ruleC

Add a neuro-symbolic rule to the memory store. Rules hard-filter or soft-rerank recall results based on conditions.

ParametersJSON Schema
NameRequiredDescriptionDefault
conditionYes
actionYes
rule_typeNosoft
scopeNoglobal
scope_valueNo
priorityNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It explains that rules 'hard-filter or soft-rerank recall results', which gives some insight into behavior, but lacks details on permissions, side effects, error handling, or response format, leaving significant gaps for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded and concise with two sentences that directly state the tool's purpose and effect. There's no unnecessary information, though it could be slightly more structured by explicitly listing key parameters.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (6 parameters, mutation operation) and lack of annotations, the description is minimally adequate but incomplete. It covers the basic purpose and effect, but with 0% schema coverage and an output schema present, it should provide more parameter context and behavioral details to be fully helpful.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for undocumented parameters. It mentions 'conditions' and hints at 'rule_type' (hard-filter vs. soft-rerank), but doesn't explain the meaning or usage of the 6 parameters (e.g., 'scope', 'priority'), failing to add sufficient value beyond the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Add') and resource ('neuro-symbolic rule to the memory store'), with a specific purpose of filtering or reranking recall results. However, it doesn't explicitly differentiate from sibling tools like 'get_rules' or 'validate_memory', which would require a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives, such as when to add rules versus using other tools like 'recall' or 'validate_memory'. The description mentions the tool's effect but not the context for its application.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

anchorA

Mark a memory as compaction-resistant. Anchored memories survive context compaction, heat decay, and cannot be deleted without force. Use for critical facts and active decisions.

ParametersJSON Schema
NameRequiredDescriptionDefault
memory_idYes
reasonNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden and does an excellent job explaining behavioral traits: it discloses that anchored memories 'survive context compaction, heat decay, and cannot be deleted without force.' This provides crucial information about persistence and deletion constraints that isn't available elsewhere.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with zero waste - the first explains what the tool does, the second provides usage guidance. Every word earns its place, and the most important information (what anchoring means) comes first.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no annotations, 0% schema coverage, but with an output schema, the description does well on behavioral aspects but completely misses parameter guidance. The existence of an output schema means return values are documented elsewhere, but the description should still explain parameter semantics given the poor schema coverage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage and 2 parameters, the description provides no information about what 'memory_id' or 'reason' parameters mean, their formats, or how they should be used. The schema shows 'reason' is optional with null default, but the description doesn't explain when or why to provide a reason.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Mark') and resource ('a memory') with specific purpose ('as compaction-resistant'), distinguishing it from sibling tools like 'forget' or 'rate_memory'. It explains what anchoring does rather than just restating the name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use this tool ('Use for critical facts and active decisions'), giving practical guidance. However, it doesn't explicitly state when NOT to use it or mention specific alternatives among the many sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

assess_coverageC

Evaluate knowledge coverage completeness for a project directory. Returns a 0-100 coverage score and actionable recommendations.

ParametersJSON Schema
NameRequiredDescriptionDefault
directoryNo
domainNo
stale_daysNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. While it mentions the tool returns a coverage score and recommendations, it doesn't describe what 'coverage' means, how the evaluation works, whether it's read-only or has side effects, performance characteristics, or error conditions. For a tool with 3 parameters and no annotation coverage, this is insufficient behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately concise with two sentences that efficiently state the tool's purpose and output. The first sentence clearly describes what the tool does, and the second sentence specifies the return format. There's no unnecessary verbiage or repetition, making it easy to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 3 parameters with 0% schema coverage and no annotations, but does have an output schema, the description is incomplete. While the output schema may document return values, the description doesn't adequately explain the tool's behavior, parameter usage, or relationship to sibling tools. For a coverage assessment tool in a complex memory/analysis system, more context about what 'coverage' means and how parameters affect the evaluation would be helpful.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage and 3 parameters (directory, domain, stale_days), the description provides no information about what these parameters mean or how they affect the evaluation. It doesn't explain what 'directory' should contain, what 'domain' refers to, or what 'stale_days' controls. The description fails to compensate for the complete lack of parameter documentation in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Evaluate knowledge coverage completeness for a project directory' specifies the verb (evaluate) and resource (knowledge coverage for a project directory). It distinguishes from siblings like 'detect_gaps' or 'codebase_analyze' by focusing on coverage assessment rather than gap detection or code analysis. However, it doesn't explicitly differentiate from all potential alternatives like 'validate_memory' or 'checkpoint'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, appropriate contexts, or exclusions. With many sibling tools like 'detect_gaps', 'validate_memory', and 'codebase_analyze' that might overlap in functionality, the absence of usage guidelines leaves the agent without direction on tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

backfill_memoriesA

Auto-import prior Claude Code conversations into the memory store. Idempotent -- tracks already-processed session files by hash. Links historical work to core concepts automatically.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectNo
max_filesNo
min_importanceNo
dry_runNo
force_reprocessNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden and does well by disclosing key behavioral traits: idempotency through hash tracking, automatic concept linking, and processing constraints ('already-processed session files'). It doesn't mention permissions, rate limits, or error handling, but provides solid operational context for a backfill operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three concise sentences with zero waste: first states core function, second explains idempotency mechanism, third describes value-add (automatic linking). Each sentence earns its place by adding distinct, valuable information. Perfectly front-loaded with the primary purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 5-parameter tool with no annotations but an output schema, the description provides good operational context about what the tool does and its behavioral characteristics. It doesn't explain parameters or return values, but the output schema handles returns, and the description gives enough context for an agent to understand the tool's role in the memory system.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage for 5 parameters, the description adds no explicit parameter information. However, it implies parameter semantics through context: 'auto-import' suggests batch processing, 'tracks already-processed' relates to idempotency parameters, and 'historical work' suggests scope parameters. This provides meaningful context despite no direct parameter documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with specific verbs ('auto-import', 'tracks', 'links') and resources ('prior Claude Code conversations', 'memory store', 'historical work', 'core concepts'). It distinguishes from sibling tools like 'import_sessions' by emphasizing automatic linking to concepts and idempotent processing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for importing historical conversations automatically, but doesn't explicitly state when to use this vs. alternatives like 'import_sessions' or 'seed_project'. It mentions idempotency which suggests it's safe for repeated runs, but lacks clear when/when-not guidance or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

checkpointC

Hippocampal replay: save/restore working state across context compaction events.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYes
directoryNo
current_taskNo
files_being_editedNo
key_decisionsNo
open_questionsNo
next_stepsNo
active_errorsNo
custom_contextNo
session_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. While 'save/restore' implies both read and write capabilities, it doesn't specify whether this is destructive, whether it requires special permissions, what the persistence characteristics are, or what happens during failures. The metaphorical language ('hippocampal replay', 'context compaction events') further obscures the actual behavior rather than clarifying it.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise (one sentence) but inefficiently uses that space. The metaphorical framing ('hippocampal replay', 'context compaction events') adds complexity without clear benefit. While brief, it's not front-loaded with actionable information - the core function 'save/restore working state' is buried in metaphorical language rather than stated clearly upfront.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 10 parameters (1 required, 9 optional), 0% schema description coverage, no annotations, but with an output schema, the description is inadequate. It doesn't explain what the tool actually does in concrete terms, provides no parameter guidance, and relies on metaphorical language that obscures rather than clarifies. While the output schema might document return values, the description fails to provide the necessary context for understanding when and how to use this complex state management tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 10 parameters and 0% schema description coverage, the description provides no information about any parameters. It doesn't mention the required 'action' parameter or any of the 9 optional parameters like 'directory', 'current_task', 'files_being_edited', etc. The description fails to compensate for the complete lack of schema documentation, leaving all parameters semantically unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Hippocampal replay: save/restore working state across context compaction events' uses metaphorical language ('hippocampal replay', 'context compaction events') that makes the purpose somewhat vague. It mentions 'save/restore working state' which indicates a state management function, but the metaphorical framing obscures the concrete action. It doesn't clearly distinguish this from sibling tools like 'record_session_end', 'remember', or 'backfill_memories' which might also involve state management.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no explicit guidance on when to use this tool versus alternatives. The phrase 'across context compaction events' hints at a specific triggering condition, but doesn't explain what those events are or when they occur. There's no mention of prerequisites, timing considerations, or comparison to sibling tools like 'remember' or 'record_session_end' that might serve similar purposes.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

codebase_analyzeA

Analyze a codebase and store its structure as Cortex memories. Uses tree-sitter AST for cross-file resolution, call graphs, and community detection. Incremental: only processes changed files.

ParametersJSON Schema
NameRequiredDescriptionDefault
directoryNo
languagesNo
max_filesNo
max_file_size_kbNo
incrementalNo
dry_runNo
domainNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key traits: it stores data as memories (implying persistence), uses tree-sitter AST for analysis (specifying the method), handles cross-file resolution and call graphs (detailing scope), and is incremental (explaining performance behavior). It lacks details on permissions, rate limits, or error handling, but covers significant operational aspects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized and front-loaded, with two sentences that efficiently convey the core functionality and a key behavioral trait (incremental processing). Every sentence adds value without redundancy, making it easy to scan and understand quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (codebase analysis with multiple parameters) and the presence of an output schema (which reduces need to explain return values), the description is partially complete. It covers the main purpose and some behavior but lacks parameter explanations and details on prerequisites or limitations, leaving gaps for effective use by an AI agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 7 parameters with 0% description coverage, meaning none are documented in the schema. The description does not mention any parameters, failing to compensate for this gap. It does not explain what 'directory', 'languages', 'max_files', etc., mean or how they affect the analysis, leaving semantics unclear.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with specific verbs ('analyze', 'store') and resources ('codebase', 'Cortex memories'), and distinguishes it from siblings by mentioning unique capabilities like tree-sitter AST processing, cross-file resolution, call graphs, and community detection. It goes beyond a simple restatement of the name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context through 'incremental: only processes changed files', which suggests when to use it for efficiency. However, it does not explicitly state when to use this tool versus alternatives like 'detect_domain' or 'explore_features', nor does it provide exclusions or prerequisites. The guidance is present but not comprehensive.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

consolidateB

Run memory maintenance: heat decay, compression, and CLS consolidation cycles.

ParametersJSON Schema
NameRequiredDescriptionDefault
decayNo
compressNo
clsNo
memifyNo
deepNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions 'memory maintenance' and specific operations, but doesn't explain what these operations entail (e.g., are they destructive, do they require special permissions, what are the side effects or performance impacts?). This leaves significant gaps in understanding the tool's behavior beyond its basic purpose.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the core action ('Run memory maintenance') and lists specific operations without unnecessary words. Every part of the sentence contributes directly to understanding the tool's purpose, making it appropriately concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (a maintenance tool with 5 parameters and no annotations) and the presence of an output schema (which reduces the need to describe return values), the description is moderately complete. It covers the purpose and hints at parameter semantics but lacks usage guidelines and detailed behavioral context, leaving room for improvement in guiding an agent effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 5 parameters with 0% description coverage, but the description compensates by implying the parameters' roles: 'heat decay' likely maps to 'decay', 'compression' to 'compress', and 'CLS consolidation cycles' to 'cls'. It doesn't mention 'memify' or 'deep', but the context suggests these are additional maintenance options. Since there are 0 required parameters, the baseline is 4, and the description adds meaningful context for most parameters beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Run memory maintenance') and specifies three specific operations (heat decay, compression, CLS consolidation cycles), which gives a good sense of what the tool does. However, it doesn't explicitly differentiate itself from sibling tools like 'memory_stats', 'rebuild_profiles', or 'validate_memory' that might also relate to memory management, leaving some ambiguity about its unique role.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. With many sibling tools related to memory operations (e.g., 'memory_stats', 'rebuild_profiles', 'validate_memory'), there's no indication of context, prerequisites, or exclusions for using 'consolidate', making it unclear when an agent should select it over other options.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_triggerB

Create a prospective memory trigger: a future-oriented reminder that fires when a condition is met (keyword, time, file, or domain).

ParametersJSON Schema
NameRequiredDescriptionDefault
contentYes
trigger_conditionYes
trigger_typeNokeyword
target_directoryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the tool creates a trigger that 'fires when a condition is met', which implies an action, but doesn't specify permissions needed, side effects, rate limits, or what happens upon firing. This is a significant gap for a creation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the purpose and key details. Every word earns its place, with no wasted text, making it easy to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has an output schema (which covers return values) and no annotations, the description is moderately complete. It explains the core functionality but lacks details on behavioral traits and full parameter semantics, making it adequate but with clear gaps for a creation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It adds meaning by explaining that parameters relate to conditions like 'keyword, time, file, or domain', which helps interpret 'trigger_condition' and 'trigger_type'. However, it doesn't detail all 4 parameters (e.g., 'content', 'target_directory'), leaving gaps.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('create') and resource ('prospective memory trigger'), defining it as a future-oriented reminder that fires based on conditions. It distinguishes from siblings like 'add_rule' or 'remember' by specifying its unique trigger-based nature, though it doesn't explicitly contrast them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like 'add_rule' or 'remember'. The description implies usage for creating reminders with conditions but lacks explicit when/when-not instructions or references to sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

detect_domainB

Lightweight domain classification from cwd, project, or first message. <20ms.

ParametersJSON Schema
NameRequiredDescriptionDefault
cwdNo
projectNo
first_messageNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses the tool is 'lightweight' and has a performance characteristic (<20ms), which is useful behavioral context. However, it doesn't mention error handling, output format, or whether it's read-only or has side effects, leaving gaps in transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the purpose ('Lightweight domain classification') and includes key details (inputs and performance). Every word earns its place with no redundancy or waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has an output schema (which covers return values), no annotations, and low schema coverage, the description is reasonably complete. It specifies the action, inputs, and a performance trait, but could improve by clarifying the domain types or error cases to fully compensate for the lack of annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It lists the three parameters (cwd, project, first_message) and implies they are alternative inputs for classification, adding meaning beyond the bare schema. However, it doesn't explain what each parameter represents (e.g., 'cwd' as current working directory) or their relationships, resulting in a baseline score.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool performs 'domain classification' with specific inputs (cwd, project, or first message), distinguishing it from siblings like 'list_domains' or 'detect_gaps'. However, it doesn't specify what type of domains are classified (e.g., programming languages, project types), leaving some ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions the tool is 'lightweight' and fast (<20ms), which implies usage for quick classification, but provides no explicit guidance on when to use it versus alternatives like 'assess_coverage' or 'detect_gaps'. There are no exclusions or prerequisites stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

detect_gapsB

Identify knowledge gaps in the memory store: isolated entities, sparse domains, temporal drift, and low-heat topic clusters.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainNo
include_entity_gapsNo
include_domain_gapsNo
include_temporal_gapsNo
stale_threshold_daysNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It mentions what types of gaps are identified but doesn't describe how the tool behaves: whether it's read-only or modifies data, what permissions are needed, whether it's computationally intensive, what the output format looks like, or any rate limits. For a gap detection tool with 5 parameters, this leaves significant behavioral questions unanswered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that immediately states the tool's purpose and enumerates the specific gap types it identifies. Every word serves a purpose with no redundancy or unnecessary elaboration. It's appropriately sized for a tool with this level of complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that there's an output schema (which handles return values), no annotations, and 5 parameters with 0% schema coverage, the description provides adequate basic purpose but lacks crucial context. For a gap detection tool that likely returns structured analysis results, the description should ideally mention what kind of output to expect or how results are organized, even with an output schema available. It's minimally viable but has clear gaps in behavioral and parameter guidance.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% description coverage, so all parameters are undocumented in the schema. The description mentions gap types (isolated entities, sparse domains, temporal drift, low-heat clusters) which partially maps to parameters like 'include_entity_gaps', 'include_domain_gaps', and 'include_temporal_gaps', but doesn't explain 'domain' filtering or 'stale_threshold_days'. It adds some semantic context but doesn't fully compensate for the complete lack of schema documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Identify knowledge gaps in the memory store' with specific types of gaps listed (isolated entities, sparse domains, temporal drift, low-heat topic clusters). It distinguishes from siblings like 'assess_coverage' or 'memory_stats' by focusing on gap detection rather than coverage assessment or statistical reporting. However, it doesn't explicitly differentiate from 'detect_domain' which might overlap in domain analysis.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. With siblings like 'assess_coverage', 'detect_domain', and 'memory_stats' that might serve related purposes, there's no indication of when this specific gap detection tool is preferred. The description only states what it does, not when it should be used.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

drill_downC

Navigate into a fractal memory cluster. L2 cluster → shows L1 child clusters. L1 cluster → shows individual memories.

ParametersJSON Schema
NameRequiredDescriptionDefault
cluster_idYes
domainNo
min_heatNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It describes the navigation behavior (showing child clusters or memories) but lacks critical details: whether this is read-only or has side effects, permission requirements, rate limits, pagination, or error conditions. For a tool with 3 parameters and no annotation coverage, this is insufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences front-load the core purpose and behavior with zero waste. Each sentence earns its place by explaining the navigation action and level-dependent outcomes efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 3 parameters with 0% schema coverage, no annotations, but an output schema exists, the description is incomplete. It covers the basic purpose but misses parameter explanations, behavioral context, and usage guidelines. The output schema mitigates some gaps, but overall completeness is minimal viable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It mentions 'cluster_id' implicitly (via 'L2 cluster'/'L1 cluster') but doesn't explain its format or purpose. It omits 'domain' and 'min_heat' entirely, leaving 2 of 3 parameters undocumented. The description adds minimal value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Navigate into') and resource ('fractal memory cluster'), explaining that it shows child clusters or individual memories depending on the cluster level. It distinguishes from general navigation tools like 'navigate_memory' by specifying hierarchical exploration, though it doesn't explicitly differentiate from all siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for exploring hierarchical memory structures but provides no explicit guidance on when to use this tool versus alternatives like 'navigate_memory', 'recall_hierarchical', or 'explore_features'. No prerequisites, exclusions, or comparative context are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

explore_featuresC

Explore interpretability features: dictionary features, attribution graphs, persona vectors, and cross-domain behavioral persistence. Inspired by Anthropic's mechanistic interpretability research.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeYes
domainNo
compare_domainNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It mentions exploring interpretability features but doesn't describe what the exploration entails - whether it's read-only, generates visualizations, performs analysis, has side effects, or requires specific permissions. The description is too vague about the tool's actual behavior and operational characteristics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately concise with two sentences. The first sentence lists the features to explore, and the second provides research context. There's no unnecessary verbosity, though the content itself is insufficiently informative about the tool's actual function and usage.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that there's an output schema (which reduces the need to describe return values) but zero schema description coverage and no annotations, the description is incomplete. It mentions what features can be explored but doesn't explain how to use the tool, what the parameters mean, or how this differs from sibling visualization/analysis tools. For a 3-parameter tool with complex interpretability features, more guidance is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so all 3 parameters (mode, domain, compare_domain) are completely undocumented in the schema. The description provides no information about what these parameters mean, what values they accept, or how they affect the exploration. This leaves critical usage information missing that the description should compensate for but doesn't.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'Explore interpretability features' but doesn't specify what action 'explore' entails or what resource it operates on. It lists feature types (dictionary features, attribution graphs, etc.) but doesn't clarify whether this tool displays, analyzes, compares, or generates these features. The mention of being 'inspired by Anthropic's mechanistic interpretability research' adds context but doesn't define the tool's specific function.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided about when to use this tool versus the many sibling tools. With 40+ sibling tools including 'open_visualization', 'get_methodology_graph', 'detect_domain', and others that might overlap with interpretability features, the description offers no differentiation or context for when this specific exploration tool is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

forgetA

Delete a memory by ID. Supports soft (mark stale) or hard (permanent) deletion. Protected memories require force=True.

ParametersJSON Schema
NameRequiredDescriptionDefault
memory_idYes
softNo
forceNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden and does well by disclosing key behavioral traits: it explains the two deletion modes (soft/hard), mentions protected memories requiring force parameter, and clarifies the destructive nature of the operation. However, it doesn't cover rate limits, authentication needs, or response format.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is perfectly sized at two sentences with zero wasted words. The first sentence establishes core functionality, the second adds crucial nuance about protected memories. Every phrase earns its place and information is front-loaded effectively.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive operation with 3 parameters and no annotations, the description does well by explaining deletion modes and protection overrides. Since an output schema exists, it doesn't need to explain return values. However, it could mention authentication requirements or error conditions for a more complete picture.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description fully compensates by explaining all three parameters: memory_id (target identifier), soft (deletion type), and force (override protection). It provides crucial semantic context about what each parameter controls that isn't available from the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with specific verb ('Delete') and resource ('a memory by ID'), and distinguishes it from siblings like 'recall' or 'remember' by focusing on deletion rather than retrieval or creation. It provides additional nuance about deletion types (soft vs hard) and protected memories.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use specific parameters (force=True for protected memories), but doesn't explicitly state when to use this tool versus alternatives like 'validate_memory' or 'rate_memory'. It implies usage through the deletion functionality but lacks explicit sibling differentiation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_causal_chainC

Trace entity relationships through the knowledge graph. Returns causal/dependency chains from a starting entity or memory.

ParametersJSON Schema
NameRequiredDescriptionDefault
entity_nameNo
memory_idNo
relationship_typesNo
max_depthNo
directionNoboth

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions 'trace' and 'returns' but lacks details on permissions, rate limits, side effects, or output format. The description does not contradict annotations, but it is insufficient for a tool with 5 parameters and no annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded, using two sentences that efficiently convey the core functionality. There is no wasted language, though it could benefit from more detailed guidance without sacrificing brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (5 parameters, no annotations, but with an output schema), the description is moderately complete. It outlines the purpose and starting inputs but lacks usage guidelines, behavioral details, and parameter explanations. The presence of an output schema reduces the need to describe return values, but gaps remain in other areas.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for undocumented parameters. It only hints at 'entity_name' and 'memory_id' as starting points and 'relationship_types' through 'causal/dependency chains,' but does not explain 'max_depth' or 'direction.' This adds minimal value beyond the schema, failing to fully address the coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Trace entity relationships through the knowledge graph' and 'Returns causal/dependency chains from a starting entity or memory.' It specifies the verb ('trace'), resource ('entity relationships'), and output type ('causal/dependency chains'), but does not explicitly differentiate it from similar sibling tools like 'get_methodology_graph' or 'navigate_memory'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It mentions 'starting entity or memory' but does not specify scenarios, prerequisites, or exclusions, nor does it reference sibling tools for comparison, leaving the agent without contextual usage direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_methodology_graphB

Returns methodology map as graph data for 3D visualization. <100ms.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It adds value by specifying the output format ('graph data for 3D visualization') and a performance characteristic ('<100ms'), which are useful beyond the input schema. However, it lacks details on permissions, error handling, or data scope, leaving gaps in behavioral understanding for a tool with no annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise and front-loaded, consisting of only two sentences that directly state the tool's purpose and a performance metric. Every word earns its place, with no redundant or vague language, making it efficient and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that there is an output schema (which should document return values), the description does not need to explain outputs. However, with no annotations, low parameter coverage, and complexity implied by 'graph data for 3D visualization', the description is somewhat incomplete. It covers purpose and performance but misses parameter details and broader context, making it minimally adequate but with clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has one parameter ('domain') with 0% description coverage, and the tool description does not mention any parameters. This leaves the parameter's purpose, format, and effect completely undocumented. Since schema coverage is low (<50%), the description fails to compensate, resulting in inadequate parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Returns methodology map as graph data for 3D visualization.' It specifies the verb ('returns'), resource ('methodology map'), and output format ('graph data for 3D visualization'), which is specific and actionable. However, it does not explicitly differentiate from sibling tools like 'query_methodology' or 'navigate_memory', which might have overlapping functions, so it falls short of a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It mentions a performance hint ('<100ms'), but this does not help in choosing between this tool and siblings such as 'query_methodology' or 'open_visualization'. There are no explicit when-to-use or when-not-to-use instructions, leaving the agent to infer usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_project_storyC

Generate a period-based autobiographical narrative of project activity. Returns chronological 'chapters' of what happened during a time period.

ParametersJSON Schema
NameRequiredDescriptionDefault
directoryNo
domainNo
periodNoweek
max_chaptersNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It mentions the tool generates and returns something, but lacks details on permissions, rate limits, side effects, or error handling. For a tool with 4 parameters and no annotation coverage, this is insufficient behavioral disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise (two sentences) and front-loaded with the core purpose. Every sentence adds value: the first defines the action, the second specifies the output format. No wasted words, though it could benefit from more detail given the complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 4 parameters with 0% schema coverage, no annotations, but an output schema exists, the description is incomplete. It adequately states what the tool does but fails to explain inputs or behavioral context. The output schema mitigates the need to describe return values, but other gaps remain significant.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so parameters are undocumented in the schema. The description doesn't explain any parameters (directory, domain, period, max_chapters), their meanings, or how they affect the narrative. This leaves significant gaps in understanding how to use the tool effectively.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Generate a period-based autobiographical narrative of project activity' and specifies it returns 'chronological chapters'. It uses specific verbs ('generate', 'returns') and identifies the resource ('project activity'). However, it doesn't explicitly differentiate from sibling tools like 'narrative' or 'recall', which appear related.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, context for selection, or exclusions. With many sibling tools (e.g., 'narrative', 'recall', 'get_causal_chain'), the lack of comparative guidance is a significant gap.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_rulesB

List active neuro-symbolic rules in the memory store, optionally filtered by scope or rule type.

ParametersJSON Schema
NameRequiredDescriptionDefault
scopeNo
rule_typeNo
include_inactiveNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions 'active' rules and optional filtering, but fails to cover critical aspects like whether this is a read-only operation, potential rate limits, authentication needs, or what 'active' means in this context. This leaves significant gaps for a tool with no annotation support.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence that efficiently conveys the core functionality and optional features without any wasted words. It's front-loaded with the main purpose and appropriately sized for the tool's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (3 parameters, no annotations, but with an output schema), the description is minimally adequate. It covers the basic purpose and hints at parameters, but lacks details on usage guidelines, behavioral traits, and full parameter semantics. The presence of an output schema reduces the need to explain return values, but overall completeness is limited.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description must compensate by explaining parameters. It mentions optional filtering by 'scope or rule type', which aligns with two of the three parameters ('scope' and 'rule_type'), and implies a focus on 'active' rules, hinting at the 'include_inactive' parameter. However, it doesn't fully detail all parameters or their semantics, such as default behaviors or what 'scope' entails, so it's not a perfect score.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('List') and resource ('active neuro-symbolic rules in the memory store'), making the purpose specific and understandable. However, it doesn't explicitly differentiate from sibling tools like 'list_domains' or 'get_causal_chain', which might also involve listing operations in the same domain, so it falls short of a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, such as 'list_domains' or 'get_causal_chain', which are sibling tools. It mentions optional filtering but doesn't specify contexts or prerequisites for usage, leaving the agent with minimal direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

import_sessionsB

Import conversation history from ~/.claude/projects/ into the memory store. Extracts decisions, errors, architecture notes, and key insights from JSONL sessions.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectNo
domainNo
min_importanceNo
max_sessionsNo
dry_runNo
full_readNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It mentions extraction of specific content types but omits critical details: whether this is a read-only or write operation (though 'import' suggests writing), what permissions are needed, whether it overwrites existing data, error handling, or performance characteristics. The description provides some context about what gets extracted but lacks comprehensive behavioral transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is efficiently structured in two sentences that convey core functionality. The first sentence covers the main action, source, and destination. The second adds valuable detail about extraction content. There's minimal waste, though it could be slightly more front-loaded by mentioning extraction in the first sentence.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 6 parameters with 0% schema coverage and no annotations, but does have an output schema, the description is moderately complete. It explains the core purpose well but leaves parameters completely undocumented. The output schema existence means return values don't need description, but the parameter gap and lack of behavioral context are significant omissions for a data import tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage for 6 parameters, the description provides no information about any parameters. It doesn't explain what 'project', 'domain', 'min_importance', 'max_sessions', 'dry_run', or 'full_read' mean or how they affect the import process. The description fails to compensate for the complete lack of schema documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Import conversation history'), source ('from ~/.claude/projects/'), destination ('into the memory store'), and what gets extracted ('decisions, errors, architecture notes, and key insights from JSONL sessions'). It distinguishes itself from siblings like 'record_session_end' or 'sync_instructions' by focusing on historical import rather than real-time recording or synchronization.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when needing to import historical session data into memory, but provides no explicit guidance on when to use this versus alternatives like 'backfill_memories' or 'seed_project'. There's no mention of prerequisites, exclusions, or comparative context with sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_domainsB

Overview of all detected cognitive domains. <10ms.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the performance characteristic '<10ms' which is useful context about expected latency. However, it doesn't describe what 'detected cognitive domains' means, whether this is a read-only operation (implied but not stated), what format the output takes, or any limitations like pagination or filtering constraints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely brief - just two phrases totaling 8 words. While concise, it's arguably too terse given the complexity implied by 'cognitive domains' and the lack of other documentation. The front-loaded purpose statement is clear, but the timing information might be better placed after more fundamental behavioral context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that there's an output schema (which should document return values), the description doesn't need to explain return format. However, for a tool dealing with 'cognitive domains' - a potentially complex concept in this system - the description feels minimal. With no annotations and siblings that suggest rich functionality (detect_domain, explore_features, etc.), more context about what this overview provides would be helpful.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters with 100% schema description coverage, so the schema fully documents the absence of inputs. The description doesn't need to compensate for any parameter documentation gaps. The baseline for zero parameters with complete schema coverage is 4, as there are no parameters whose semantics need explanation beyond what the structured data provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'Overview of all detected cognitive domains' which indicates a listing/retrieval function, but it's somewhat vague about what 'cognitive domains' are in this context. It doesn't clearly distinguish this tool from other list/retrieval siblings like 'get_rules', 'wiki_list', or 'memory_stats'. The '<10ms' timing hint adds specificity but doesn't fully clarify the core purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided about when to use this tool versus alternatives. With siblings like 'detect_domain', 'explore_features', 'navigate_memory', and 'get_rules' that might provide related functionality, the description offers no context about appropriate use cases, prerequisites, or when other tools might be more suitable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

memory_statsC

Memory system diagnostics: counts, heat distribution, entities, triggers.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions 'diagnostics' which implies a read-only operation, but doesn't specify whether this requires permissions, has side effects, or details about output format. For a tool with no annotation coverage, this leaves significant behavioral gaps unaddressed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient phrase that lists key diagnostic aspects. It's appropriately sized for a zero-parameter tool and front-loads the purpose. However, it could be slightly more structured by explicitly stating it's a read-only diagnostic tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 0 parameters, 100% schema coverage, and an output schema exists, the description is minimally complete. However, as a diagnostic tool with no annotations, it should ideally clarify that it's read-only and what kind of diagnostic data it returns. The existence of an output schema reduces but doesn't eliminate the need for some behavioral context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has 0 parameters with 100% schema description coverage, so the schema fully documents the lack of inputs. The description doesn't need to compensate for any parameter gaps, and it appropriately doesn't mention parameters. A baseline of 4 is appropriate since no parameter information is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the tool provides 'memory system diagnostics' and lists four diagnostic aspects (counts, heat distribution, entities, triggers), which gives a general purpose. However, it doesn't specify a clear verb action or distinguish this from sibling tools like 'checkpoint', 'validate_memory', or 'get_causal_chain' that might also provide diagnostic information about the memory system. The purpose is somewhat vague rather than specific.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, timing, or compare it to siblings like 'checkpoint' or 'validate_memory' that might serve similar diagnostic purposes. Without any usage context, the agent must infer when this tool is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

narrativeC

Generate a project narrative/story from stored memories for a directory or domain.

ParametersJSON Schema
NameRequiredDescriptionDefault
directoryNo
domainNo
briefNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool generates a narrative from stored memories but doesn't explain what 'stored memories' are, how the generation works, whether it's deterministic or creative, what permissions are needed, or any rate limits. For a generation tool with zero annotation coverage, this leaves significant gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the core purpose. There's no wasted wording, and it directly communicates the tool's function without unnecessary elaboration.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has an output schema (which likely describes the generated narrative), the description doesn't need to explain return values. However, with 3 parameters at 0% schema coverage and no annotations, the description is incomplete—it doesn't fully compensate for the lack of structured data, leaving key behavioral and parameter details unclear.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the schema provides no parameter documentation. The description mentions 'directory or domain', which maps to two of the three parameters (directory, domain), but doesn't explain what these mean or how they're used. It omits the 'brief' parameter entirely. The description adds minimal value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Generate a project narrative/story from stored memories for a directory or domain.' It specifies the verb ('generate'), resource ('project narrative/story'), and source ('stored memories'). However, it doesn't explicitly differentiate from sibling tools like 'get_project_story' or 'recall', which appear related to story/narrative retrieval.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, timing considerations, or compare it to siblings like 'get_project_story' or 'recall'. The agent must infer usage from the purpose alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

open_visualizationB

Launch the unified 3D neural graph in the browser. Combines methodology profiles, memories, and knowledge graph.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It mentions launching in the browser and combining data types, but lacks details on behavioral traits such as whether this is a read-only operation, if it requires specific permissions, potential side effects, or how the visualization behaves (e.g., interactivity, persistence). This leaves significant gaps for a tool that likely involves complex interactions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded and concise, consisting of two efficient sentences that directly state the tool's purpose and key features without unnecessary elaboration. Every sentence adds value by specifying the action and data integration.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (involving 3D neural graphs and multiple data types), no annotations, and an output schema that exists but is unspecified, the description is incomplete. It covers the basic purpose but lacks details on behavior, parameters, and usage context, making it adequate but with clear gaps for effective agent use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has one parameter ('domain') with 0% description coverage, and the tool description does not mention parameters at all. Since there is only one parameter and schema coverage is low, the description fails to compensate by explaining what 'domain' means or how it affects the visualization. This results in a baseline score of 3, as the minimal parameter count mitigates some risk.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Launch') and the target resource ('unified 3D neural graph in the browser'), specifying it combines methodology profiles, memories, and knowledge graph. However, it does not explicitly differentiate this tool from potential siblings like 'get_methodology_graph' or 'navigate_memory', which might offer related functionality, keeping it from a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. With many sibling tools like 'get_methodology_graph', 'explore_features', or 'navigate_memory', there is no indication of specific contexts, prerequisites, or exclusions for using 'open_visualization'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

query_methodologyA

Returns the user's cognitive profile for the current domain. Pre-computed, <50ms. Use at session start for context injection.

ParametersJSON Schema
NameRequiredDescriptionDefault
cwdNo
projectNo
first_messageNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It adds useful context by stating the profile is 'pre-computed' and has a performance metric ('<50ms'), which helps the agent understand efficiency and data freshness. However, it lacks details on permissions, error handling, or response format, leaving gaps for a tool with behavioral implications.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is highly concise and front-loaded, consisting of two sentences that efficiently convey the tool's purpose, performance, and usage timing. Every word adds value without redundancy, making it easy for an agent to parse and apply quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (involving user cognitive profiles), no annotations, and an output schema (which mitigates the need to describe return values), the description is partially complete. It covers purpose and usage but lacks parameter explanations and behavioral details like authentication or limitations, leaving room for improvement in guiding the agent fully.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 3 parameters (cwd, project, first_message) with 0% description coverage, meaning their purposes are undocumented. The tool description does not mention any parameters or explain their roles, failing to compensate for the schema's lack of documentation. This leaves the agent guessing about when and how to use these inputs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool 'returns the user's cognitive profile for the current domain,' specifying both the verb ('returns') and resource ('cognitive profile'). It distinguishes itself from siblings like 'get_methodology_graph' or 'rebuild_profiles' by focusing on the user's pre-computed profile for context injection, though it doesn't explicitly contrast with these alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance to 'use at session start for context injection,' indicating the optimal timing. However, it does not specify when not to use it or name alternative tools for similar purposes, such as 'get_project_story' or 'detect_domain,' which could be relevant for different context needs.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rate_memoryB

Rate a memory as useful or not. Drives metamemory confidence which affects decay resistance and recall ranking.

ParametersJSON Schema
NameRequiredDescriptionDefault
memory_idYes
usefulYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It states that rating 'drives metamemory confidence which affects decay resistance and recall ranking', which adds some context about the tool's impact. However, it doesn't disclose critical behavioral traits such as whether this is a read-only or mutation operation, permission requirements, rate limits, or error handling. For a tool with zero annotation coverage, this is insufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with zero waste: the first states the core action, and the second explains the impact. It is appropriately sized and front-loaded, with every sentence earning its place by adding essential information without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (2 parameters, no annotations, but has an output schema), the description is partially complete. It covers the purpose and impact but lacks usage guidelines, behavioral details, and full parameter semantics. The presence of an output schema means the description doesn't need to explain return values, but other gaps remain, making it adequate but with clear omissions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 2 parameters with 0% description coverage, so the description must compensate. It explains that the tool rates a memory as 'useful or not', which clarifies the purpose of the 'useful' boolean parameter. However, it doesn't add meaning for 'memory_id' (e.g., what constitutes a valid ID) or provide syntax/format details beyond the schema. The description adds some value but doesn't fully compensate for the coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'rate' and the resource 'memory', specifying the action of rating a memory as useful or not. It distinguishes this from sibling tools like 'remember', 'recall', or 'forget' by focusing on evaluation rather than creation, retrieval, or deletion. However, it doesn't explicitly differentiate from all possible siblings, such as 'validate_memory', which might have overlapping purposes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like 'validate_memory' or other memory-related tools. It mentions the effect on 'metamemory confidence', which implies a context of memory management, but lacks explicit when-to-use or when-not-to-use instructions, prerequisites, or comparisons to sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rebuild_profilesB

Full rescan of all session data to rebuild methodology profiles. <10s.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainNo
forceNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It adds useful context about performance ('<10s') and scope ('all session data'), but doesn't cover critical aspects like side effects (e.g., whether this is a destructive operation), permissions needed, or error handling, which are gaps for a tool that likely modifies data.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with only two clauses, front-loading the core purpose and adding a performance note, with zero wasted words. Every sentence earns its place by providing essential information efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (a rescan operation with 2 parameters) and the presence of an output schema (which reduces the need to describe return values), the description is partially complete. It covers purpose and performance but lacks parameter explanations and behavioral details, making it adequate but with clear gaps for safe invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0% description coverage, so the description must compensate but fails to do so. It doesn't explain the 'domain' parameter (e.g., whether it filters the rescan) or the 'force' parameter (e.g., what it overrides), leaving both parameters undocumented and their semantics unclear.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Full rescan of all session data') and the outcome ('to rebuild methodology profiles'), which is specific and actionable. It distinguishes itself from siblings like 'detect_domain' or 'query_methodology' by focusing on reconstruction rather than analysis or querying, though it doesn't explicitly name alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, such as 'sync_instructions' or 'backfill_memories', which might handle similar data tasks. It lacks context on prerequisites, triggers, or exclusions, leaving the agent to infer usage based on the purpose alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

recallC

Retrieve memories using intent-adaptive PG recall with production enrichments.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
domainNo
directoryNo
max_resultsNo
min_heatNo
agent_topicNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. While 'retrieve' implies a read operation, it doesn't specify whether this is a simple lookup or a complex search, what 'production enrichments' entail, or any performance characteristics. The description mentions technical implementation details ('intent-adaptive PG recall') but doesn't translate these to observable behaviors that would help an agent understand what to expect from the tool's operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise (one sentence), which could be efficient if it were informative. However, it wastes its limited space on implementation details ('intent-adaptive PG recall with production enrichments') rather than practical information about what the tool does and when to use it. While technically brief, it's not effectively structured to help an agent understand the tool's purpose and usage.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 6 parameters with 0% schema coverage and no annotations, the description is inadequate for helping an agent understand how to use this tool effectively. However, the presence of an output schema somewhat mitigates the need to describe return values in the description. The description fails to compensate for the complete lack of parameter documentation and provides minimal practical guidance for a tool with multiple parameters and complex sibling relationships.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage for all 6 parameters, the description provides no information about what any parameter means or how to use them. The description doesn't mention any parameters at all, leaving the agent with parameter names (query, domain, directory, max_results, min_heat, agent_topic) but no semantic understanding of what they control or how they affect the recall operation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the tool retrieves memories, which is a clear verb+resource combination ('retrieve memories'). However, it uses technical jargon like 'intent-adaptive PG recall with production enrichments' without explaining what this means in practical terms. It doesn't distinguish this tool from sibling tools like 'recall_hierarchical', 'remember', or 'navigate_memory' that likely have similar memory-related functions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. With multiple sibling tools dealing with memories (recall_hierarchical, remember, navigate_memory, etc.), there's no indication of what makes this specific recall method appropriate or when to choose it over other options. The technical terminology doesn't translate to practical usage scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

recall_hierarchicalA

Retrieve memories using the fractal hierarchy (L0/L1/L2 clusters). Adaptive weighting based on query length — short queries search broad, long queries search specific.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
domainNo
max_resultsNo
min_heatNo
cluster_thresholdNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses the adaptive weighting behavior based on query length, which is a key behavioral trait. However, it doesn't cover other aspects like performance characteristics, error handling, or what 'memories' entail in this context. The description adds some value but leaves gaps for a tool with 5 parameters and no annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized and front-loaded with the core purpose in the first sentence. The second sentence adds crucial behavioral context without redundancy. Every sentence earns its place, making it efficient and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (5 parameters, no annotations, but with an output schema), the description is partially complete. It explains the retrieval mechanism and adaptive behavior, but lacks details on parameter meanings and doesn't leverage the output schema to clarify return values. For a tool with multiple parameters and sibling alternatives, more context would be beneficial.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for undocumented parameters. It mentions 'query' and implies usage based on query length, but doesn't explain the semantics of other parameters like 'domain', 'max_results', 'min_heat', or 'cluster_threshold'. With 5 parameters total and only 1 addressed, the description fails to add sufficient meaning beyond the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Retrieve memories using the fractal hierarchy (L0/L1/L2 clusters).' It specifies the verb ('retrieve') and resource ('memories'), and mentions the hierarchical clustering mechanism. However, it doesn't explicitly differentiate from sibling tools like 'recall' or 'navigate_memory', which might offer similar retrieval functions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use this tool: 'Adaptive weighting based on query length — short queries search broad, long queries search specific.' This gives guidance on query length considerations. It doesn't explicitly mention when not to use it or name alternatives, but the adaptive weighting hint helps infer usage scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

record_session_endC

Incremental profile update after a session ends. <200ms.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYes
domainNo
tools_usedNo
durationNo
turn_countNo
keywordsNo
cwdNo
projectNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions performance ('<200ms'), which is useful, but fails to cover critical aspects like whether this is a read or write operation, if it requires specific permissions, what the update entails, or potential side effects. For a tool with 8 parameters and likely mutation, this is inadequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with two short phrases that are front-loaded and waste no words. Every element ('incremental profile update', 'after a session ends', '<200ms') earns its place by conveying purpose and a performance hint efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (8 parameters, likely a mutation tool), no annotations, and 0% schema coverage, the description is incomplete. While an output schema exists (which mitigates the need to explain return values), the description lacks essential details on behavior, parameter meanings, and usage context, making it insufficient for effective tool invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 0%, meaning none of the 8 parameters are documented in the schema. The description does not add any meaning or context for parameters like 'session_id', 'tools_used', or 'duration', leaving them entirely unexplained. This fails to compensate for the lack of schema documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('incremental profile update') and the triggering event ('after a session ends'), which is specific and informative. However, it does not explicitly differentiate this tool from sibling tools like 'checkpoint', 'backfill_memories', or 'rebuild_profiles', which might also involve profile updates, so it lacks sibling differentiation for a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context ('after a session ends') but provides no explicit guidance on when to use this tool versus alternatives, such as other profile-related tools in the sibling list. There are no exclusions, prerequisites, or comparisons mentioned, leaving the agent with minimal direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rememberD

Store a memory through the predictive coding write gate.

ParametersJSON Schema
NameRequiredDescriptionDefault
contentYes
tagsNo
directoryNo
domainNo
sourceNo
forceNo
agent_topicNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

D1.5/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure but provides almost none. 'Store a memory' implies a write operation, but we don't know if this is idempotent, what permissions are required, whether it's transactional, what happens on failure, or what the 'predictive coding write gate' entails. The description doesn't address rate limits, side effects, or any behavioral characteristics beyond the basic write implication.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise (one sentence) but this brevity comes at the cost of being under-specified. While it's front-loaded with the core action ('Store a memory'), it lacks necessary elaboration. The sentence earns its place but doesn't provide enough value - it's concise to a fault rather than efficiently informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 7-parameter write tool with no annotations and 0% schema coverage, the description is completely inadequate. While there's an output schema (which reduces the need to describe return values), the description fails to explain what this tool does, when to use it, how parameters work, or any behavioral characteristics. Given the complexity and complete lack of structured documentation, this description provides minimal contextual value.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 7 parameters and 0% schema description coverage, the description provides no information about any parameters. It doesn't explain what 'content' should contain, what 'tags' are for, what 'directory' or 'domain' represent, what 'source' indicates, when to use 'force', or what 'agent_topic' means. The description fails completely to compensate for the lack of schema documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Store a memory through the predictive coding write gate' is tautological - it essentially restates the tool name 'remember' as 'store a memory'. While it mentions 'predictive coding write gate', this is vague technical jargon that doesn't clarify what the tool actually does or what a 'memory' represents in this system. It doesn't distinguish this from sibling tools like 'record_session_end' or 'wiki_write' which might also store information.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides zero guidance on when to use this tool versus alternatives. With many sibling tools that might store or record information (record_session_end, wiki_write, backfill_memories, etc.), there's no indication of when 'remember' is appropriate versus these other options. No context, prerequisites, or exclusions are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_pipelineC

Drive the ai-architect pipeline end-to-end: discovery -> impact -> strategy -> PRD -> verification -> implementation -> PR. Connects to ai-architect MCP server over stdio.

ParametersJSON Schema
NameRequiredDescriptionDefault
codebase_pathYes
task_pathYes
context_pathNo
github_repoNo
serverNo
max_findingsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It mentions the tool 'connects to ai-architect MCP server over stdio' which provides some implementation context, but doesn't describe critical behavioral aspects: whether this is a long-running operation, what permissions or prerequisites are needed, what happens if the pipeline fails at intermediate stages, or what the output contains. For a complex pipeline tool with 6 parameters, this is insufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately concise with two sentences that efficiently convey the core functionality and implementation method. The first sentence clearly states the pipeline stages, and the second provides technical context about the server connection. There's no wasted verbiage or unnecessary elaboration.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (6 parameters, end-to-end pipeline), no annotations, but an output schema exists, the description is moderately complete. It explains the high-level pipeline flow but lacks details about parameter usage, behavioral expectations, and differentiation from sibling tools. The existence of an output schema means return values are documented elsewhere, but the description should still address more operational aspects.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage for all 6 parameters, the description provides no information about what 'codebase_path', 'task_path', 'context_path', 'github_repo', 'server', or 'max_findings' mean or how they should be used. The description doesn't mention any parameters at all, leaving them completely undocumented despite the schema's lack of descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Drive the ai-architect pipeline end-to-end' with a specific sequence of stages (discovery -> impact -> strategy -> PRD -> verification -> implementation -> PR). It provides a clear verb ('drive') and resource ('ai-architect pipeline'), though it doesn't explicitly differentiate from sibling tools like 'codebase_analyze' or 'navigate_memory' which might handle parts of this pipeline.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. With many sibling tools like 'codebase_analyze', 'explore_features', and 'get_project_story' that might handle components of the pipeline, there's no indication of when this comprehensive tool is preferred over more targeted ones. The description only states what it does, not when it's appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

seed_projectC

Bootstrap memory from an existing codebase. Analyzes structure, config, docs, entry points, and CI/CD. Stores key discoveries as memories.

ParametersJSON Schema
NameRequiredDescriptionDefault
directoryNo
domainNo
max_file_size_kbNo
dry_runNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden but offers limited behavioral insight. It mentions analysis scope (structure, config, docs, entry points, CI/CD) and memory storage, but omits critical details like required permissions, whether it modifies the codebase, rate limits, or error handling. For a tool with 4 parameters and no annotation coverage, this is insufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately concise with two sentences that directly state the tool's function and outcome. It's front-loaded with the core purpose and avoids unnecessary elaboration, though it could be slightly more structured by separating analysis steps from storage.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 4 parameters with 0% schema coverage, no annotations, but an output schema exists, the description is moderately complete. It covers the high-level purpose and analysis scope, but lacks parameter semantics and behavioral details. The output schema mitigates some gaps, but overall completeness is limited for a tool with this complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate but adds no parameter information. It doesn't explain what 'directory', 'domain', 'max_file_size_kb', or 'dry_run' mean or how they affect the bootstrapping process. This leaves all 4 parameters semantically undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Bootstrap memory from an existing codebase' specifies the verb and resource. It distinguishes from siblings like 'codebase_analyze' by emphasizing memory storage ('Stores key discoveries as memories'), but doesn't explicitly contrast with all similar tools like 'backfill_memories' or 'import_sessions'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives is provided. The description mentions analyzing structure, config, docs, etc., but doesn't specify prerequisites, timing, or contrast with siblings like 'codebase_analyze' or 'backfill_memories'. This leaves the agent without explicit usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sync_instructionsB

Sync top memory insights into CLAUDE.md for the project directory. Adds or refreshes a '## Memory Insights' section.

ParametersJSON Schema
NameRequiredDescriptionDefault
directoryNo
max_insightsNo
min_heatNo
dry_runNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the tool 'adds or refreshes' content, implying a write operation, but doesn't specify permissions required, whether changes are reversible, or how it handles existing sections. The description is minimal and misses key behavioral traits like error handling or side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is highly concise and front-loaded, consisting of a single sentence that directly states the tool's purpose. Every word earns its place, with no redundant or vague language. It efficiently communicates the core functionality without unnecessary elaboration.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (4 parameters, write operation) and the presence of an output schema, the description is minimally adequate. It covers the basic purpose but lacks details on usage context, behavioral traits, and parameter meanings. The output schema helps, but for a tool that modifies files, more guidance on effects and alternatives would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description provides no information about parameters, and the schema description coverage is 0%. However, the schema itself documents 4 parameters with defaults, and an output schema exists, which reduces the need for detailed param explanations in the description. The baseline score of 3 reflects that the schema handles parameter documentation adequately, but the description adds no value beyond this.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with a specific verb ('sync'), resource ('top memory insights'), and target ('CLAUDE.md for the project directory'). It specifies the action of adding or refreshing a '## Memory Insights' section. However, it doesn't explicitly differentiate this tool from sibling tools like 'wiki_write' or 'record_session_end' that might also modify documentation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. With many sibling tools related to memory, documentation, and project management (e.g., 'wiki_write', 'record_session_end', 'backfill_memories'), there's no indication of the specific context or prerequisites for choosing 'sync_instructions'. It lacks any 'when' or 'when-not' statements.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_memoryB

Validate memories against current filesystem state. Marks stale memories whose referenced files no longer exist.

ParametersJSON Schema
NameRequiredDescriptionDefault
memory_idNo
domainNo
directoryNo
base_dirNo
staleness_thresholdNo
dry_runNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses that the tool 'marks stale memories,' implying a mutation, but doesn't specify if this is reversible, what permissions are needed, or how it handles errors. It mentions a 'dry_run' parameter but doesn't explain its effect in the description.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the core purpose and outcome. Every word earns its place with no redundancy or unnecessary elaboration, making it highly concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (6 parameters, mutation implied, no annotations) and the presence of an output schema, the description is incomplete. It lacks details on parameter usage, behavioral traits, and context, but the output schema may cover return values, preventing a lower score.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It only implies parameters related to 'memories' and 'filesystem state' without detailing any of the 6 parameters. No meaning is added beyond the schema, leaving parameters like 'staleness_threshold' and 'domain' unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('validate memories against current filesystem state') and the outcome ('marks stale memories whose referenced files no longer exist'). It distinguishes this tool from siblings like 'memory_stats' or 'backfill_memories' by focusing on validation against filesystem state rather than statistics or creation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, ideal scenarios, or exclusions, nor does it reference sibling tools for comparison. Usage is implied only through the action described.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wiki_adrC

Create a numbered ADR (architecture decision record) from structured fields. Auto-increments the ADR number.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYes
contextYes
decisionYes
consequencesYes
statusNoaccepted
tagsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions auto-incrementing ADR numbers, which is a useful behavioral trait, but lacks details on permissions, side effects (e.g., whether this creates persistent records), error handling, or response format. For a creation tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the core action ('Create a numbered ADR') and adds key behavior ('Auto-increments the ADR number'). There is no wasted text, and it's appropriately sized for the tool's complexity, making it highly concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that there is an output schema (which handles return values) but no annotations and low schema coverage, the description is moderately complete. It covers the basic action and a key trait (auto-incrementing), but for a creation tool with 6 parameters, it should provide more context on inputs, behavioral constraints, or usage scenarios to be fully adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the schema provides no parameter details. The description mentions 'structured fields' but doesn't explain what those fields are (e.g., title, context, decision) or their purposes. It adds minimal semantic value beyond the schema, failing to compensate for the coverage gap, especially with 6 parameters (4 required).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool creates a numbered ADR from structured fields with auto-incrementing numbers. It specifies the verb ('Create'), resource ('ADR'), and key behavior ('Auto-increments the ADR number'), making the purpose unambiguous. However, it doesn't explicitly differentiate from sibling tools like wiki_write or wiki_list, which prevents a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like wiki_write (which might handle general wiki content) or wiki_list (which might list ADRs), nor does it specify prerequisites or exclusions. Usage is implied only through the action described, with no explicit context for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wiki_listB

List authored wiki pages. Optionally filter by kind (adr/specs/files/notes).

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions listing and optional filtering, but fails to disclose critical traits such as whether this is a read-only operation, if it requires authentication, how results are paginated or sorted, or what the output format is. The description is too minimal to adequately inform an agent about behavioral aspects beyond basic functionality.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with two short sentences that directly state the tool's purpose and parameter usage without any wasted words. It is front-loaded with the core action and efficiently includes necessary details, making it easy to parse and understand quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity (1 optional parameter) and the presence of an output schema, the description is minimally adequate. However, with no annotations and incomplete behavioral details, it leaves gaps in understanding operational constraints. The output schema likely covers return values, but the description should still address basic behavior like safety or permissions to be more complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds meaningful context for the single parameter 'kind' by specifying it as an optional filter with examples (adr, specs, files, notes), which goes beyond the schema's minimal coverage (0%). Since there's only one parameter and the schema provides no descriptions, the description effectively compensates by clarifying the parameter's purpose and possible values, making it highly useful for agent selection.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'list' and resource 'authored wiki pages', making the purpose specific and understandable. It distinguishes itself from other wiki tools like wiki_read, wiki_write, wiki_adr, etc., by focusing on listing rather than reading, writing, or linking. However, it doesn't explicitly differentiate from non-wiki list tools like list_domains, which slightly reduces clarity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage by mentioning optional filtering by kind (e.g., adr, specs, files, notes), which suggests when to use it for filtered vs. unfiltered lists. However, it lacks explicit guidance on when to use this tool versus alternatives like wiki_read for individual pages or other list tools, and no exclusions or prerequisites are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wiki_readA

Read the raw markdown of a wiki page by its relative path.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool reads raw markdown but does not mention whether this is a read-only operation, what permissions are required, how errors are handled, or the format of the output. For a tool with zero annotation coverage, this leaves significant behavioral gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that is front-loaded with the core purpose. Every word earns its place, with no redundant or verbose language, making it easy for an agent to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity (one parameter) and the presence of an output schema, the description is minimally adequate. However, it lacks details on behavioral aspects like error handling or permissions, which are important for a read operation in a wiki context. The output schema likely covers return values, but the description could benefit from more operational context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds meaningful context beyond the input schema, which has 0% coverage. It clarifies that the 'path' parameter is a 'relative path' to the wiki page, providing essential semantic information not present in the schema. With only one parameter, this adequately compensates for the low schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Read'), resource ('raw markdown of a wiki page'), and scope ('by its relative path'), distinguishing it from sibling tools like wiki_write, wiki_list, wiki_adr, and wiki_link. It precisely communicates what the tool does without ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives such as wiki_write, wiki_list, wiki_adr, or wiki_link. It lacks context about prerequisites, exclusions, or typical use cases, leaving the agent to infer usage from the tool name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wiki_reindexA

Regenerate the wiki table of contents at .generated/INDEX.md. Authored pages are never touched.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses that the tool regenerates content and does not touch authored pages, which is useful behavioral context. However, it lacks details on permissions, side effects, or response format, leaving gaps for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences with zero waste, front-loaded with the main action and followed by an important clarification. Every sentence earns its place by providing essential information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 0 parameters, an output schema exists, and no annotations, the description is mostly complete for its purpose. It explains what the tool does and what it doesn't affect, but as a mutation tool, it could benefit from more behavioral details like error handling or success indicators.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description adds value by explaining the tool's effect on the wiki table of contents and authored pages, which compensates for the lack of parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Regenerate') and target resource ('wiki table of contents at .generated/INDEX.md'), distinguishing it from sibling wiki tools like wiki_read or wiki_write. It also explicitly notes what is not affected ('Authored pages are never touched'), providing clear differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context by specifying the output location and that authored pages remain untouched, but it does not explicitly state when to use this tool versus alternatives like wiki_list or other wiki-related tools. No exclusions or prerequisites are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wiki_writeA

Author a wiki page (adr/specs/files/notes) or append/replace an existing one. Pages live under ~/.claude/methodology/wiki/ and are indexed in PostgreSQL as protected pointer memories for recall.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
contentYes
modeNocreate
tagsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden. It discloses that pages are stored in ~/.claude/methodology/wiki/ and indexed in PostgreSQL as protected pointer memories, adding useful context about persistence and recall mechanisms. However, it doesn't cover error handling, permissions, or what happens with existing content during replacement, leaving behavioral gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized with two sentences: the first states the core action, and the second adds storage and indexing context. It's front-loaded with the primary purpose, though the second sentence could be more directly related to usage.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 4 parameters with 0% schema coverage and no annotations, the description provides basic purpose and storage context but lacks details on parameters, error cases, or output (though an output schema exists, reducing need for return value explanation). It's incomplete for a write tool with multiple parameters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It mentions 'path' and 'content' implicitly through 'wiki page' and 'append/replace', and 'mode' through 'author...or append/replace', but doesn't explain parameter meanings, defaults (e.g., mode='create'), or tag usage. This adds minimal value beyond what the schema names suggest.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('author', 'append/replace') and resource ('wiki page') with specific types (adr/specs/files/notes). It distinguishes from siblings like wiki_read (read-only) and wiki_list (listing) by emphasizing write operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for creating or modifying wiki pages, with context about where pages live and how they're indexed. However, it doesn't explicitly state when to use this versus alternatives like wiki_adr (specific ADR tool) or wiki_link, nor does it mention exclusions or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

C2.8/5.0
Disambiguation3/5

The tools cover distinct functional areas (memory management, wiki operations, methodology analysis, etc.), but there is some overlap that could cause confusion. For example, 'recall' and 'recall_hierarchical' both retrieve memories with different algorithms, and 'backfill_memories' and 'import_sessions' both import conversation history, which might lead to misselection by an agent without careful reading of descriptions.

Naming Consistency4/5

Most tools follow a consistent verb_noun or verb_adjective_noun pattern (e.g., 'add_rule', 'anchor', 'assess_coverage'), with clear and descriptive names. However, there are minor deviations like 'wiki_adr' (which mixes a prefix with an acronym) and 'run_pipeline' (which is less structured), slightly reducing consistency.

Tool Count2/5

With 40 tools, the count is excessive for a single server, making it heavy and potentially overwhelming for agents to navigate. While the domain (cognitive memory and project management) is broad, the toolset feels bloated with many specialized operations that could have been grouped or streamlined, indicating poor scoping.

Completeness5/5

The tool set provides comprehensive coverage for memory storage, retrieval, maintenance, wiki management, and project analysis, with clear CRUD and lifecycle operations (e.g., 'remember', 'recall', 'forget', 'validate_memory'). There are no obvious gaps; it supports end-to-end workflows from data ingestion to visualization and narrative generation.

Maintenance

ActivityActive
ResponsivenessResponsive

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    F
    maintenance
    Cognitive memory system for AI agents with 129 MCP tools. Persistent 6-tier hierarchical memory (working→short-term→long-term→semantic), Ebbinghaus forgetting curves, dream consolidation, hybrid retrieval (BM25+RRF), goal tracking, emotional recall, knowledge graphs, and a 26-job consciousness daemon. Works with Claude Code, Cursor, and any MCP client.
  • A
    license
    A
    quality
    A
    maintenance
    Persistent memory for Claude Code — hybrid search, knowledge graph, session lifecycle.
    17
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Provides long-term memory and lossless context management for Claude Code, enabling automatic context compression, cross-session memory sharing, and semantic search across all history.
  • A
    license
    Not graded
    quality
    D
    maintenance
    A persistent memory MCP server for Claude Code that enables long-term recall across sessions via hybrid search, code intelligence, and tools for reading/writing memory.
    12
    1
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/cdeust/Cortex'

If you have feedback or need assistance with the MCP directory API, please join our Discord server