Skip to main content
Glama

agentmako

npm version Smoke Tests License: Apache 2.0 Node.js >=20 agentmako MCP server

agentmako is a local-first codebase intelligence engine for AI coding tools.

It gives agents like Codex, Claude Code, Cursor, and local harnesses a compact Reef-first tool surface for understanding a project before they edit it. Mako indexes your repo, builds local SQLite-backed facts, tracks diagnostics and review notes, and answers evidence-backed questions instead of making the agent orchestrate broad tool chains or rediscover everything with raw grep.

Mako is built for the first mile of coding-agent work:

What files matter? What routes, symbols, tables, diagnostics, and prior findings are relevant? What should the agent read next?

What You Get

  • MCP server for coding agents: agentmako mcp

  • Local dashboard: agentmako dashboard

  • Primary project query: reef_ask across code, database, findings, diagnostics, instructions, freshness, and literal checks

  • Queryable workflow orientation: mako_help

  • Deterministic context expansion: context_packet

  • _hints on tool results so agents get result-specific next steps

  • Central MCP annotations so clients can distinguish safe reads, live reads, and local-state mutations

  • Compact loop/fallback tools: reef_status, reef_verify, reef_impact, live_text_search, lint_files, and tool_batch

  • Reef Engine facts and findings across indexed, working-tree, and staged state

  • Reef convention extraction for auth guards, runtime boundaries, generated paths, route patterns, and schema usage

  • TypeScript, ESLint, Oxlint, Biome, and staged git diagnostic ingestion

  • Hot-reloaded .mako/rules YAML rule packs, including primitive cross-file helper-bypass rules via canonicalHelper

  • Optional Postgres/Supabase schema snapshots and read-only DB inspection

  • Local DB review comments for notes on tables, RLS, triggers, publications, subscriptions, and replication

  • Recall, acknowledgements, and agent feedback for repeated review work

Everything important runs locally. No hosted service is required.

Related MCP server: Atlas

Install

Requires Node.js 20 or newer.

npm install -g agentmako

Confirm the CLI is available:

agentmako --version
agentmako doctor

You should see green checks for configuration and the local API service.

Prefer to build from source (e.g. to contribute)? See Develop From Source at the bottom of this file.

Happy Path Setup

1. Attach your real project

Go to the project you want Mako to understand:

cd C:/path/to/your/project

Attach and index it:

agentmako connect . --no-db

Use --no-db for the first run. It gets the code intelligence path working before adding database scope.

2. Confirm Mako sees the project

agentmako status .
agentmako tool list

Run a real Reef query:

agentmako --json tool call . reef_ask "{\"question\":\"where should I inspect auth route state?\"}"

If that returns an evidence-backed answer, facts, findings, or next queries, the core setup is working.

reef_ask plans over code, database, durable findings, diagnostics, and exact literal evidence. App-flow questions favor file, route, and finding evidence; RLS/schema questions favor database facts and review comments. To inspect project rules of thumb directly:

agentmako --json tool call . project_conventions "{}"

3. Configure your MCP client

Add this to your MCP client config:

{
  "mcpServers": {
    "mako-ai": {
      "command": "agentmako",
      "args": ["mcp"]
    }
  }
}

Restart the MCP client and confirm the mako-ai server starts.

In the agent, default to reef_ask. The compact starting surface is:

  • reef_ask for project questions across code, database, findings, diagnostics, freshness, and quoted literal checks

  • reef_status for maintained issues, changed files, stale diagnostics, and watcher/schema health

  • reef_verify for the completion gate over diagnostic freshness and open loops

  • reef_impact for changed-file blast radius and convention risks

  • mako_help for an ordered workflow recipe with prefilled arguments

  • live_text_search for exact current-disk regex/glob inventories

  • lint_files for bounded diagnostics and .mako/rules findings

  • tool_batch for independent read-only follow-ups

  • tool_search to discover specialized route, graph, DB, finding, refresh, or context-expansion tools only when the compact surface points at a concrete need

4. Optional: use an agent plugin

Plain MCP works anywhere, but the bundled plugins add Mako-specific skills and include the same agentmako mcp wiring.

Prerequisites:

  • Claude Code installed

  • Node.js 20+ on PATH (the plugin runs npx -y agentmako mcp, which fetches the published agentmako package automatically — no separate global install required)

  • Your target project already attached with agentmako connect

Claude Code stable path:

claude plugin validate .\mako-ai-claude-plugin
claude --plugin-dir .\mako-ai-claude-plugin

New generated plugin layouts:

claude plugin validate ./plugins/claude-code
codex marketplace add ./plugins
ln -s "$(pwd)/plugins/cursor" ~/.cursor/plugins/local/mako-ai
gemini extensions install ./plugins/gemini

Inside the agent, confirm the mako-ai MCP server is connected.

The plugin exposes these skills:

  • /mako-ai:mako-guide

  • /mako-ai:mako-discovery

  • /mako-ai:mako-trace

  • /mako-ai:mako-neighborhoods

  • /mako-ai:mako-graph

  • /mako-ai:mako-database

  • /mako-ai:mako-code-intel

  • /mako-ai:mako-workflow

Use the plugin when you want Claude Code to load Mako-specific guidance for which tools to call and how to interpret their results.

5. Optional: launch the dashboard

From your target project:

agentmako dashboard .

This starts the local API, harness service, and web dashboard.

6. Optional: add Supabase/Postgres awareness

Mako works without a database. Add this only after code intelligence is working.

For a one-time interactive setup:

agentmako connect .

For CI or scripted setup using an environment variable:

set DATABASE_URL=postgres://...
agentmako connect . --db-env DATABASE_URL --yes

Then refresh and verify the local schema snapshot:

agentmako refresh .
agentmako verify .

Interactive mode stores database secrets in your OS keychain by default. Project config stores references, not plaintext DB URLs.

Normal Daily Loop

From the target project:

agentmako status .
agentmako dashboard .
agentmako --json tool call . context_packet "{\"query\":\"fix the broken auth callback route\"}"

For staged review checks:

agentmako git precommit . --json

For database review notes:

agentmako --json tool call . db_review_comment "{\"objectType\":\"replication\",\"objectName\":\"supabase_database_replication\",\"category\":\"review\",\"comment\":\"Check publication coverage before relying on realtime events.\",\"tags\":[\"supabase\",\"replication\"]}"

Develop From Source

If you want to hack on Mako itself, clone and build instead of installing from npm.

Prerequisites:

  • Node.js 20 or newer

  • Git

  • Corepack (corepack enable, included with modern Node.js)

git clone https://github.com/drhalto/agentmako.git
cd agentmako
corepack pnpm install
corepack pnpm run build
npm link ./apps/cli

npm link ./apps/cli makes the source-built CLI available as agentmako on your PATH, replacing any global npm install. Re-run corepack pnpm run build after pulling changes.

To go back to the published version: npm install -g agentmako.

Development Checks

corepack pnpm run typecheck
corepack pnpm run build
corepack pnpm run test:smoke:reef-tooling
corepack pnpm run test:smoke:reef-model-facing-views

Full verification:

corepack pnpm test

Repository Layout

apps/
  cli/              agentmako CLI and MCP entrypoint (the published package)
  web/              local dashboard
packages/
  contracts/        public TypeScript contracts and tool schemas
  config/           shared config helpers
  logger/           shared logger
  sdk/              programmatic SDK
  store/            SQLite stores, migrations, and query helpers
  tools/            shared tool implementations
  harness-core/     local agent harness runtime
  harness-tools/    action tools available to the harness
  harness-contracts/ harness contracts and provider catalog
services/
  api/              local API and MCP transports
  engine/           Reef Engine fact/finding pipeline
  harness/          local harness HTTP service
  indexer/          repo and schema indexing logic
  worker/           background worker
extensions/         provider and integration packages
storage/            schema migrations, models, queries
test/smoke/         smoke coverage
mako-ai-claude-plugin/ Claude Code plugin with Mako skills

More Docs

License

Apache-2.0. See LICENSE.

Available Tools

105 tools
agent_feedbackagent_feedbackA

Append-only feedback tool for rating a prior Mako tool run from the agent perspective. Use sparingly when a result was notably good, notably bad, or wrong; do not emit routine feedback after every call. Requires referencedToolName and referencedRequestId so each row is tied to a specific prior run. Grade semantics: full = helped complete the task, partial = somewhat useful but flawed, no = wrong or wasted the turn. Starter reason codes: full: answer_complete, evidence_sufficient, trust_matches; partial: partial_coverage, noisy, stale_evidence, missing_known_caller, top_not_useful; no: answer_wrong, wasted_turn, tool_did_nothing, schema_missing.

ParametersJSON Schema
NameRequiredDescriptionDefault
gradeYes
reasonNo
projectIdNo
projectRefNo
reasonCodesYes
referencedToolNameYes
referencedRequestIdYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
_hintsYes
eventIdYes
toolNameYes
projectIdYes
capturedAtYes

TDQS

A4.6/5.0
Behavior4/5

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

Annotations only set readOnlyHint=false and idempotentHint=false, but description adds important behavioral context: 'Append-only' (non-destructive, no updates) and constraints like 'maxItems: 20' for reasonCodes. However, doesn't detail what happens on duplicate submissions or error behavior.

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 with the core purpose, then gives usage guidance and parameter semantics in a structured way. While comprehensive, it could be slightly more concise without losing meaning.

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

Completeness5/5

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

For a tool with 7 parameters (4 required, arrays, enums) and an output schema, the description covers the purpose, usage constraints, parameter roles, semantics, and behavioral traits. It leaves no significant gaps for an agent to use the tool correctly.

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?

Schema has 0% description coverage, but the description compensates by explaining grade semantics ('full = helped complete the task, partial = somewhat useful but flawed, no = wrong or wasted the turn') and listing starter reason codes for each grade. It also explains referencedToolName and referencedRequestId, but misses projectId and projectRef fields.

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 as an 'append-only feedback tool for rating a prior Mako tool run from the agent perspective'. It distinguishes itself from the sibling 'agent_feedback_report' by being the writing tool.

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

Usage Guidelines5/5

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

Explicitly advises to 'Use sparingly when a result was notably good, notably bad, or wrong; do not emit routine feedback after every call', providing clear when-to-use and when-not-to-use criteria. Also specifies that it 'Requires referencedToolName and referencedRequestId so each row is tied to a specific prior run'.

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

agent_feedback_reportagent_feedback_reportA
Read-onlyIdempotent

Read-only inspection over agent_feedback rows in mako_usefulness_events: return grade counts by referenced tool plus bounded recent entries, filterable by referencedToolName, grade, and ISO time window. Use to review which tools agents found helpful, noisy, wrong, or incomplete.

ParametersJSON Schema
NameRequiredDescriptionDefault
gradeNo
limitNo
sinceNo
untilNo
projectIdNo
projectRefNo
referencedToolNameNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
_hintsYes
byToolYes
entriesYes
toolNameYes
warningsYes
projectIdYes
truncatedYes
feedbackInWindowYes

TDQS

A3.9/5.0
Behavior4/5

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

The description discloses that the tool is read-only (consistent with annotation), returns grade counts and bounded recent entries, and is filterable, adding useful behavioral context beyond the 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?

Two sentences efficiently convey the tool's purpose and usage, with no wasted words and a clear, front-loaded structure.

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?

The output schema exists but the description omits many parameters and does not mention pagination or sorting, leaving significant gaps for a tool with 7 parameters and 0% 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?

Despite 0% schema description coverage, the description only mentions 'referencedToolName, grade, and ISO time window', missing many parameters like projectId, projectRef, and limit, leaving meaning 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 returns grade counts and recent entries for agent feedback, with specific mention of filtering by tool name, grade, and time window, distinguishing it from the sibling 'agent_feedback' tool.

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 explicitly suggests using the tool to review which tools agents found helpful, noisy, wrong, or incomplete, providing clear use context but lacking explicit exclusion or alternative tools.

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

apply_patchA
Destructive

Apply a multi-file unified diff. Hunks must apply cleanly with exact context.

ParametersJSON Schema
NameRequiredDescriptionDefault
diffYesUnified diff. Multiple files supported. Each file header must be `--- a/<path>` then `+++ b/<path>`.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
errorYes
_hintsYes
requiresHarnessSessionYes

TDQS

A4/5.0
Behavior4/5

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

Annotations already mark destructiveHint=true and idempotentHint=false. The description adds behavioral context: hunks must apply cleanly with exact context, clarifying the strict matching requirement. No contradiction with 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?

Two succinct sentences with no filler. Every sentence conveys essential information: what it does and a critical constraint. Ideal structure for quick agent comprehension.

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?

With one parameter and an output schema not shown, the description covers the key behavioral constraint (exact context). It could mention that this mutates files (implied by destructiveHint) but is mostly complete. No mention of error behavior, but that may be in the output schema.

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 coverage is 100% with a detailed parameter description for 'diff' specifying format and file headers. The tool description adds no additional semantic value beyond the schema, so a baseline of 3 is appropriate.

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 applies a multi-file unified diff and specifies the requirement for exact context matching. The name 'apply_patch' is self-explanatory and distinguishes it from siblings like 'file_edit' or 'file_write' which handle single file modifications.

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 does not provide explicit guidance on when to use this tool versus alternatives (e.g., file_edit for single files, shell_run for custom patches). It implies usage for applying diffs but lacks when-not-to or alternative tool references.

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

askaskA
Read-only

Router tool: map one natural-language engineering question to one canonical named tool, or conservatively fall back to free_form.

ParametersJSON Schema
NameRequiredDescriptionDefault
questionYes
projectIdNo
projectRefNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
modeYes
_hintsYes
resultYes
toolNameYes
confidenceYes
selectedArgsYes
selectedToolYes
fallbackReasonYes
selectedFamilyYes

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already provide readOnlyHint=true, so no contradiction. The description adds the 'conservatively fall back' behavior, which provides some transparency beyond annotations, but overall adds limited 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.

Conciseness5/5

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

The description is a single, concise sentence that immediately conveys the tool's purpose. It is well front-loaded with no wasted words.

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 of a router tool and the presence of many sibling tools, the description is minimal. It does not explain what 'canonical named tool' means or provide enough context for an agent to use it effectively, though an output schema may exist.

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?

Schema description coverage is 0%, and the description does not explain the parameters (question, projectId, projectRef). It adds no meaning beyond the schema, failing to compensate for the lack of parameter descriptions.

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 it is a router tool that maps a natural-language engineering question to a canonical named tool or falls back to free_form. It distinguishes from sibling tools that are not routers.

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 when to use (when you have a question that might map to a tool) and mentions the conservative fallback to free_form. However, it does not explicitly state when not to use it or list alternative tools.

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

ast_find_patternast_find_patternA
Read-onlyIdempotent

Code-intelligence tool for structural pattern search: run one ast-grep pattern against every fresh indexed TypeScript / TSX / JavaScript / JSX file and return typed matches (file, line range, column range, matched text, captured metavariables). Ambiguous TSX/JSX snippets that start with {, [, or < retry with an auto-anchored const _ = ... parser context when the original pattern returns zero matches, and patternAttempts / match patternVariant report which form matched. Reef-backed freshness guard skips stale/deleted/unknown indexed files so old AST rows do not become phantom matches; set MAKO_REEF_BACKED=legacy for the one-release rollback path. Read-only; never edits files. Use when text/FTS search is too noisy for structural queries (e.g. console.log($X), await supabase.rpc($NAME), useEffect($FN, [])).

ParametersJSON Schema
NameRequiredDescriptionDefault
patternYes
capturesNo
maxFilesNo
pathGlobNo
languagesNo
projectIdNo
maxMatchesNo
projectRefNo
excludeAcknowledgedCategoryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
_hintsYes
matchesYes
patternYes
toolNameYes
warningsYes
projectIdYes
truncatedYes
filesScannedYes
reefExecutionYes
reefFreshnessYes
patternAttemptsYes
languagesAppliedYes
acknowledgedCountYes

TDQS

A4.3/5.0
Behavior5/5

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

Annotations already provide readOnlyHint=true, idempotentHint=true, and openWorldHint=true. The description adds substantial behavioral context: it never edits files (read-only), explains the retry logic for ambiguous TSX/JSX snippets with auto-anchored parser context, describes the reef-backed freshness guard to avoid phantom matches, and mentions the MAKO_REEF_BACKED environment variable for rollback. No contradictions with annotations.

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 relatively long but front-loaded with the core purpose. Each sentence adds value, covering purpose, retry logic, freshness guard, and usage guidance. No fluff, but could be slightly more structured (e.g., separate sections). Overall efficient for the amount of 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 9 parameters with 0% schema coverage, the description explains key behavioral traits (retry, freshness, safety) and return values. However, it does not detail all parameters or provide output schema details (though output schema exists externally). For a moderate-complexity tool, it covers the most important aspects but leaves some gaps, such as parameter documentation and error conditions.

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 explains the 'pattern' parameter (ast-grep pattern), mentions 'captures' (captured metavariables), and implies 'languages' by listing file types. However, other parameters like projectId, projectRef, pathGlob, maxMatches, maxFiles, and excludeAcknowledgedCategory are not explained. The description adds partial value but is insufficient for all 9 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 it is a code-intelligence tool for structural pattern search using ast-grep, specifies the file types (TypeScript/TSX/JavaScript/JSX), and lists the return value (typed matches: file, line range, column range, matched text, captured metavariables). It effectively distinguishes itself from text/FTS search by labeling it as structural pattern search.

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 explicitly says to use it when text/FTS search is too noisy for structural queries, with concrete examples like console.log($X) and await supabase.rpc($NAME). It does not explicitly exclude scenarios, but the 'use when' guidance is clear and helpful. It also mentions retry behavior for ambiguous TSX/JSX snippets, providing context for when the tool automatically adjusts.

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

auth_pathauth_pathA
Read-onlyIdempotent

Answer tool for auth questions: trace likely auth boundaries for a route, file, or feature without overclaiming. When no exact route/file/feature match exists, returns matched:false with suggestedNext:{ tool:"cross_search", args:{...} } instead of throwing, so batches and agent workflows can continue.

ParametersJSON Schema
NameRequiredDescriptionDefault
fileNo
routeNo
featureNo
projectIdNo
projectRefNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
_hintsYes
reasonNo
resultYes
matchedNo
toolNameYes
projectIdYes
suggestedNextNo
fallbackReasonNo

TDQS

A4/5.0
Behavior4/5

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

Annotations already provide readOnlyHint and idempotentHint, so the description adds value by disclosing the 'without overclaiming' philosophy and the specific fallback behavior (matched:false with suggestedNext). It does not contradict annotations. Minor gaps: unclear behavior when multiple parameters are provided.

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, front-loaded with purpose, no wasted words. 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?

With an output schema present, the description doesn't need to detail returns, but it does cover the fallback. However, given 5 optional parameters and sibling tools, more context on parameter interactions and when to choose this over other tools would improve completeness.

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 only three of five parameters (route, file, feature) with no details on their meaning or constraints. missing semantics for projectId and projectRef.

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 it is an 'Answer tool for auth questions' that 'trace likely auth boundaries for a route, file, or feature', specifying the verb and resources. It also distinguishes itself from sibling tools like cross_search by describing the fallback behavior of returning matched:false with a suggestedNext for cross_search instead of throwing.

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 tells when to use (for auth questions about a route, file, or feature) and implies when not (if no exact match, use cross_search). It also mentions that the tool's non-throwing behavior is beneficial for batches and agent workflows. However, it does not explicitly exclude other sibling tools like route_trace.

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

biome_diagnosticsbiome_diagnosticsA

Explicit Reef ingestion tool for Biome diagnostics: run the project's local Biome executable or GitLab-reporter package script on requested project-relative files with check --reporter=gitlab, persist working-tree ProjectFinding rows under source biome, and record unavailable/error/succeeded run status. File-mode only; deliberately avoids Biome's experimental JSON reporter.

ParametersJSON Schema
NameRequiredDescriptionDefault
filesYes
projectIdNo
projectRefNo
scriptNameNo
maxFindingsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
_hintsYes
statusYes
commandNo
exitCodeNo
findingsYes
toolNameYes
warningsYes
errorTextNo
projectIdYes
truncatedYes
durationMsYes
projectRootYes
totalFindingsYes
requestedFilesYes
checkedFileCountYes
persistedFindingsYes

TDQS

A3.9/5.0
Behavior4/5

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

Annotations are present (readOnlyHint=false, idempotentHint=false, openWorldHint=true) and the description adds behavioral context: it runs external executables, persists ProjectFinding rows, and records run status (unavailable/error/succeeded). This goes beyond annotations without contradiction.

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 reasonably concise and starts with a clear purpose statement. It packs several details (executable, reporter, persistence, status tracking) without excessive verbosity. Minor improvement could be breaking parameter-related content into a clearer structure.

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 5 parameters, 0% schema description coverage, and existence of an output schema (not shown), the description covers the main workflow but lacks detail on parameter specifics and the output format. It is adequate but not comprehensive for a tool with side effects and multiple inputs.

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%, yet the description only implicitly relates parameters: 'files' are mentioned as 'project-relative files', 'scriptName' is hinted but not explicitly explained. Parameters like 'projectId', 'projectRef', and 'maxFindings' are not described at all. The description fails to add sufficient semantic meaning for the majority 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 action ('run', 'persist', 'record'), the resource ('Biome diagnostics', 'files'), and the specific behavior (uses `check --reporter=gitlab`, persists ProjectFinding rows under source 'biome'). It distinguishes from siblings like eslint_diagnostics by specifying 'Biome' and 'GitLab-reporter package script'.

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 guidance by stating 'File-mode only' and 'deliberately avoids Biome's experimental JSON reporter', implying it is for deterministic file-by-file checking. However, it does not explicitly mention when to use this tool over sibling diagnostic tools (e.g., eslint_diagnostics) or provide conditions for avoidance.

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

change_planchange_planC
Read-onlyIdempotent

Graph tool for bounded change scope: return path-derived direct surfaces, one-hop dependent surfaces, and an explicit dependency order.

ParametersJSON Schema
NameRequiredDescriptionDefault
directionNo
edgeKindsNo
projectIdNo
projectRefNo
startEntityYes
targetEntityYes
traversalDepthNo
includeHeuristicEdgesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
_hintsYes
resultYes
toolNameYes
projectIdYes

TDQS

C2.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true. Description adds context about 'bounded change scope' and 'path-derived' computation but no deeper behavioral details beyond what annotations imply.

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?

Single sentence, 14 words, no fluff. However, conciseness sacrifices completeness given tool complexity.

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?

With 8 parameters, nested objects, enums, and a large sibling set, the description is too brief. It does not explain key terms like 'direct surfaces' or 'one-hop dependent surfaces', and omits any guidance on required parameters or typical use.

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?

Schema coverage is 0%, but the description does not explain any parameters. Parameters like startEntity, targetEntity, direction, traversalDepth have no additional meaning provided. The description fails to clarify the complex nested object parameters.

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 'path-derived direct surfaces, one-hop dependent surfaces, and an explicit dependency order' for bounded change scope. It is specific but does not explicitly differentiate from sibling tools like graph_path or flow_map.

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 (e.g., graph_neighbors, graph_path). No exclusions or context for appropriate usage.

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

context_packetcontext_packetA
Read-onlyIdempotent

Context scout for coding agents: turn a messy request into ranked, source-labeled, readable context using deterministic providers first (bounded live quoted-literal search, files, routes, symbols, schema, import graph, centrality, hot hints). Retrieval diagnostics expose providerExecutionMode, totalProviderDurationMs, slowestProvider, evidence gates, and executable follow-ups so agents can distinguish recall gaps from slow or incomplete provider lanes. Reef-backed enrichments add working-tree overlay metadata and active findings; use risksMinConfidence to suppress low-confidence risk speculation. Set MAKO_REEF_BACKED=legacy for the one-release rollback path. Read-only; does not refresh the index. Use as the first-mile packet before normal harness read/search/edit loops.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNo
requestYes
projectIdNo
focusFilesNo
projectRefNo
focusRoutesNo
budgetTokensNo
changedFilesNo
focusSymbolsNo
includeRisksNo
freshnessPolicyNo
includeLiveHintsNo
maxPrimaryContextNo
maxRelatedContextNo
risksMinConfidenceNo
includeInstructionsNo
focusDatabaseObjectsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
modeYes
risksYes
_hintsYes
intentYes
limitsYes
routesYes
requestYes
symbolsYes
toolNameYes
warningsYes
projectIdYes
modePolicyYes
projectRootYes
graphSummaryYes
freshnessGateYes
reefExecutionYes
activeFindingsYes
indexFreshnessNo
primaryContextYes
relatedContextYes
databaseObjectsYes
evidenceQualityYes
expandableToolsYes
requestCoverageYes
scopedInstructionsYes
retrievalDiagnosticsYes
recommendedHarnessPatternYes

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint. The description adds value by stating the tool is read-only, does not refresh the index, uses deterministic providers, exposes retrieval diagnostics, and mentions a rollback path. No contradictions with annotations.

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 front-loads the core purpose and adds necessary technical details. Sentences are dense but each adds value. Could be slightly more concise, but overall efficient for a complex 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?

The description provides a thorough explanation of the tool's role, behavior, and outputs (retrieval diagnostics, enrichments). However, it lacks detail on most input parameters and does not leverage the existing output schema to reduce the burden. Adequate for high-level understanding but incomplete for precise 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?

Schema description coverage is 0% and the description only mentions one parameter (risksMinConfidence) explicitly. With 17 parameters, the description fails to compensate for the lack of schema-level parameter documentation, leaving most inputs 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 defines the tool as a first-mile context scout for coding agents, using deterministic providers to produce ranked, source-labeled context. It distinguishes itself from siblings by stating its role before normal harness loops, making the purpose highly specific and unambiguous.

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?

Explicitly says 'Use as the first-mile packet before normal harness read/search/edit loops', providing clear usage context. However, it does not specify when to avoid this tool or mention alternative tools for different scenarios, leaving some gap.

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

create_fileA
Destructive

Create a new file at a project-relative path. Errors if the file already exists; use file_write to overwrite.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesProject-relative path of the new file
contentYesFile content (UTF-8 text)

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
errorYes
_hintsYes
requiresHarnessSessionYes

TDQS

A4.5/5.0
Behavior4/5

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

The description adds key behavioral information beyond annotations: it errors if the file already exists. Annotations already provide readOnlyHint=false and destructiveHint=true, and the description aligns with these. It does not mention other behaviors like permission requirements or return value, but the presence of an output schema and annotations reduces the burden.

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, front-loaded with the primary action, then error condition and alternative. Every word earns its place with no redundancy.

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

Completeness5/5

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

Given the tool's simplicity (2 required params, no enums, no nested objects), the description covers the essential purpose, error condition, and alternative. Annotations and output schema fill remaining gaps, making it complete.

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 coverage is 100%, so both parameters have descriptions in the input schema. The description adds no additional meaning to the parameters beyond what is already in the schema. Baseline score of 3 is appropriate.

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 'create' and resource 'file at a project-relative path', and distinguishes it from the sibling tool file_write by noting that it errors if the file already exists and to use file_write to overwrite. This provides a specific and distinguishable purpose.

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

Usage Guidelines5/5

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

The description explicitly states when to use this tool (to create a new file) and when not to (if file already exists, use file_write). This provides clear guidance on alternatives and conditions.

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

db_columnsdb_columnsB
Read-onlyIdempotent

Read-only database tool for column questions: inspect only columns and primary-key details for a table via pg_catalog.

ParametersJSON Schema
NameRequiredDescriptionDefault
tableYes
schemaNo
projectIdNo
projectRefNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
tableYes
_hintsYes
schemaYes
columnsYes
toolNameYes

TDQS

B3.3/5.0
Behavior3/5

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

Description confirms read-only nature and mentions pg_catalog, but adds little beyond annotations which already include readOnlyHint, idempotentHint, and openWorldHint. No additional behavioral traits disclosed.

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?

Single sentence, front-loaded with key purpose information. No fluff, every word earns its place.

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?

With 4 undocumented parameters and many sibling tools, the description is insufficient for an agent to correctly select and invoke the tool. Output schema exists but does not mitigate parameter gaps.

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?

Schema description coverage is 0% and description provides no information about parameters (projectId, projectRef, table, schema). The description does not compensate for missing schema descriptions.

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?

Description clearly states read-only tool for inspecting columns and primary-key details via pg_catalog, using specific verbs and differentiating from sibling tools like db_table_schema and db_fk.

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?

Description implies use for column questions but does not explicitly state when to use versus alternatives or provide exclusions. It lacks concrete guidance on context.

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

db_fkdb_fkA
Read-onlyIdempotent

Read-only database tool for relationship questions: inspect inbound and outbound foreign-key references for a table via pg_catalog.

ParametersJSON Schema
NameRequiredDescriptionDefault
tableYes
schemaNo
projectIdNo
projectRefNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
tableYes
_hintsYes
schemaYes
inboundYes
outboundYes
toolNameYes

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and openWorldHint. The description adds the method 'via pg_catalog' and the scope of inspection, enhancing transparency beyond the 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 a single concise sentence that front-loads the key information ('Read-only database tool for relationship questions'), with no wasted words.

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?

While the purpose is clear and annotations cover behavioral aspects, the description omits explanations for projectId and projectRef parameters, which are needed for complete context in a tool with multiple siblings.

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, the description does not explain any of the four parameters (projectId, projectRef, table, schema). It only implies the 'table' parameter by mentioning 'for a table', leaving others undocumented.

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 uses a specific verb 'inspect' and clearly identifies the resource as 'inbound and outbound foreign-key references for a table', distinguishing it from sibling tools like db_columns or db_table_schema.

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?

It states the tool is for 'relationship questions', providing clear context for when to use it, but does not explicitly mention when not to use it or suggest alternative tools.

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

db_pingdb_pingA
Read-onlyIdempotent

Read-only database tool: verify connectivity and surface platform, version, schemas, and transaction state.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdNo
projectRefNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
_hintsYes
schemasYes
databaseYes
platformYes
readOnlyYes
toolNameYes
connectedYes
currentUserYes
serverVersionYes

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and openWorldHint. The description adds behavioral details about what data is surfaced (platform, version, schemas, transaction state), going beyond the annotation hints.

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 concise sentence that efficiently conveys the tool's purpose and scope without extraneous information.

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?

The description, combined with annotations and the presence of an output schema, covers the core behavior. However, the lack of parameter explanation leaves a notable gap in completeness for a tool with two required-looking parameters.

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 has 0% description coverage for its two parameters (projectId, projectRef). The description offers no explanation of what these parameters represent or how they affect the call, leaving the agent without necessary context to provide correct values.

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?

Description clearly states it is a read-only database tool for verifying connectivity and surfacing platform, version, schemas, and transaction state. This is a specific verb-resource pair that distinguishes it from sibling tools like db_columns or db_table_schema which have more specific functions.

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 initial connectivity checks and metadata retrieval, but does not explicitly state when to use it versus other database-related sibling tools, nor does it provide exclusions or prerequisites.

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

db_reef_refreshdb_reef_refreshA

Explicit Reef DB ingestion tool: replace indexed Reef facts for the current schema snapshot, including schemas, tables, columns, indexes, foreign keys, RLS policies, triggers, enums, RPCs, scheduled jobs, RPC-to-table refs, and indexed schema usages. Uses the existing schema snapshot/read-model indexes; run project_index_refresh first if the snapshot is stale or missing.

ParametersJSON Schema
NameRequiredDescriptionDefault
freshenNo
projectIdNo
factsLimitNo
projectRefNo
includeFactsNo
includeAppUsageNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
factsNo
_hintsYes
summaryYes
toolNameYes
warningsYes
projectIdYes
projectRootYes
factsTruncatedNo
schemaFreshnessYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations indicate read/write and non-idempotent behavior. The description confirms mutation by stating 'replace indexed Reef facts'. It also discloses dependency on existing snapshot. However, it could be more explicit about failure modes if snapshot is missing.

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, no unnecessary words. First sentence delivers the core purpose, second provides critical prerequisite. Front-loaded and efficient.

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?

While the output schema exists (so return values need not be explained), the description lacks parameter coverage. For a 6-parameter tool, the description should detail at least the key parameters to be complete.

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, the description must compensate but only mentions a few aspects (snapshot, facts) and does not explain any of the 6 parameters (freshen, projectId, factsLimit, etc.). Users cannot infer parameter meanings from the description.

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 (replace/index) and resource (Reef facts), listing many specific components. It distinguishes itself from sibling tools like project_index_refresh by explicitly mentioning it uses an existing snapshot and that the sibling should be run first if stale.

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

Usage Guidelines5/5

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

Explicitly states when to use this tool (for ingestion after snapshot is ready) and when to use the alternative (run project_index_refresh first if stale). This provides clear context for choosing among siblings.

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

db_review_commentdb_review_commentA

Append-only DB review note tool: leave a short AI/operator comment on a database object such as a table, column, policy, trigger, publication, replication slot, or general replication topic. Writes only to Mako's local project store; it never mutates the live database.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagsNo
commentYes
previewNo
categoryNo
metadataNo
severityNo
createdByNo
projectIdNo
objectNameYes
objectTypeYes
projectRefNo
schemaNameNo
parentObjectNameNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
_hintsYes
commentNo
previewYes
toolNameYes
warningsYes
projectIdYes
wouldApplyNo
projectRootYes

TDQS

A3.6/5.0
Behavior4/5

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

Annotations indicate readOnlyHint=false, idempotentHint=false, and the description adds valuable context: 'append-only', writes to 'Mako's local project store', and 'never mutates the live database'. This is clear and helpful, though it could mention whether it can delete or modify existing comments.

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, well-structured sentence that front-loads the purpose. It is concise, but could be expanded to cover key parameters without becoming verbose.

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 complexity (13 parameters, 3 enums, 0% schema description coverage) and presence of an output schema, the description covers behavioral transparency well but fails to document parameter semantics, leaving significant gaps for an agent to correctly invoke the 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?

Schema description coverage is 0%, so the description must explain parameters. It only mentions database object types but does not explain any of the 13 parameters (e.g., projectId, preview, category, severity, tags). The agent must infer meaning from parameter names and enums, which is insufficient.

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 it is an 'append-only DB review note tool' for leaving comments on database objects, and explicitly lists supported object types. It distinguishes from siblings by emphasizing it writes only to local store, unlike potential sibling tools that might read or mutate the live database.

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 leaving comments on database objects and highlights it never mutates the live database, but it does not explicitly contrast with sibling tools like db_review_comments (for reading). No when-not or alternative guidance is provided.

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

db_review_commentsdb_review_commentsA
Read-onlyIdempotent

Read DB review comments from Mako's local append-only ledger, filterable by database object, category, tag, free-text query, or target fingerprint. Use during schema/table/RLS/replication review to recover prior AI/operator notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagNo
limitNo
queryNo
categoryNo
projectIdNo
objectNameNo
objectTypeNo
projectRefNo
schemaNameNo
parentObjectNameNo
targetFingerprintNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
_hintsYes
filtersYes
commentsYes
toolNameYes
warningsYes
projectIdYes
projectRootYes
totalReturnedYes

TDQS

A4.3/5.0
Behavior5/5

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

Annotations already indicate readOnlyHint=true and idempotentHint=true. The description adds behavioral context by specifying 'Read' and 'append-only ledger', reinforcing the read-only nature and providing details about the data source (local, persistent, append-only). No contradictions.

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: first describes function and filters, second gives usage context. No extraneous information. Every sentence adds value.

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?

With 11 parameters, 0 required, and an output schema present, the description covers the core use case but does not detail all filter options or relationships between parameters. Missing mention of projectId/projectRef, which are likely needed for scoping. Could be more comprehensive.

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. The description lists major filter categories (object, category, tag, query, fingerprint) but omits projectId, projectRef, schemaName, parentObjectName, and limit. Only provides partial parameter meaning beyond the 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 'Read DB review comments from Mako's local append-only ledger' with specific filtering options (database object, category, tag, free-text query, target fingerprint). It distinguishes from sibling tool 'db_review_comment' by indicating this is a read/browse operation rather than a single comment operation.

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?

Explicitly states to 'Use during schema/table/RLS/replication review to recover prior AI/operator notes.' Provides clear context for when to use, but does not mention when not to use or alternative tools like db_review_comment.

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

db_rlsdb_rlsA
Read-onlyIdempotent

Read-only database tool for security questions: inspect row-level security state and policies for a table via pg_catalog.

ParametersJSON Schema
NameRequiredDescriptionDefault
tableYes
schemaNo
projectIdNo
projectRefNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
tableYes
_hintsYes
schemaYes
forceRlsYes
policiesYes
toolNameYes
rlsEnabledYes

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already provide readOnlyHint and idempotentHint; the description reinforces read-only nature and adds context about inspecting RLS state via pg_catalog, without contradiction.

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?

A single, concise sentence front-loads the key purpose with no superfluous words.

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?

With an output schema present and a focused inspection task, the description covers the main purpose. However, lack of parameter detail slightly reduces completeness.

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 coverage is 0% and the description only mentions 'table', leaving projectId, projectRef, and schema unexplained. This is insufficient given the low baseline 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 tool is for inspecting row-level security state and policies via pg_catalog, using specific verb 'inspect' and resource 'security questions'. It distinguishes itself from sibling database tools like db_columns and db_fk.

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 security questions but does not provide explicit guidance on when not to use or alternatives among sibling tools.

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

db_rpcdb_rpcA
Read-onlyIdempotent

Read-only database tool for function questions: inspect one stored procedure/function signature by name, or pass list: true to enumerate routines with signatures, return shape, language, and security.

ParametersJSON Schema
NameRequiredDescriptionDefault
listNo
nameNo
limitNo
schemaNo
argTypesNo
projectIdNo
projectRefNo
includeSourceNo
includeSystemSchemasNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
argsNo
modeNo
nameNo
rpcsNo
limitNo
_hintsYes
schemaNo
sourceNo
returnsNo
languageNo
toolNameYes
truncatedNo
volatilityNo
totalReturnedNo
securityDefinerNo

TDQS

A3.9/5.0
Behavior4/5

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

Description states read-only, matching annotations, and adds that it returns signatures, return shape, language, and security, which goes beyond annotation hints. It also describes two modes of operation.

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?

Single sentence is concise and front-loaded with the core purpose. No waste, though could benefit from clearer separation of modes.

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?

Covers main usage modes and mentions return shape, language, security, but lacks explanation of many parameters. Output schema exists but not detailed. Adequate but with 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?

Only 'name' and 'list' are explained in the description, leaving 7 other parameters (e.g., limit, schema, argTypes) completely undocumented. With 0% schema description coverage, this is insufficient.

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?

Description explicitly states the tool inspects stored procedure/function signatures or enumerates routines, with specific verb 'inspect' and 'enumerate'. This clearly distinguishes it from siblings like rpc_neighborhood and trace_rpc.

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?

Clearly implies usage for function questions (inspecting signatures or listing routines), but does not explicitly exclude other cases or mention alternatives. Context is clear enough for an agent.

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

db_table_schemadb_table_schemaA
Read-onlyIdempotent

Read-only database tool for full table shape: inspect columns, indexes, constraints, foreign keys, RLS, and triggers.

ParametersJSON Schema
NameRequiredDescriptionDefault
tableYes
schemaNo
projectIdNo
projectRefNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
rlsYes
tableYes
_hintsYes
schemaYes
columnsYes
indexesYes
toolNameYes
triggersYes
constraintsYes
foreignKeysYes

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and openWorldHint. The description adds scope (full table shape) but no additional behavioral traits beyond what annotations provide, so it meets the baseline.

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 sentence that front-loads the key concept ('Read-only database tool') and lists details efficiently without extraneous wording.

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?

Despite an output schema existing, the description lacks parameter guidance and usage context for a tool with four parameters (one required) and no parameter descriptions. It is incomplete relative to the tool's 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% and the description does not explain any parameter meanings. Parameter names (projectId, projectRef) are not self-explanatory, and the description fails to compensate for the lack of schema descriptions.

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 'Read-only database tool for full table shape' and lists specific aspects (columns, indexes, constraints, foreign keys, RLS, triggers), which distinguishes it from more focused sibling tools like db_columns or db_rls.

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 a comprehensive schema inspection tool, but does not explicitly state when to use versus alternatives like db_columns or db_rls. Context from sibling names provides some guidance, but no explicit when-not-to-use statements.

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

delete_fileA
Destructive

Delete a file at a project-relative path. Snapshot captures the bytes for undo.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesProject-relative path of the file to delete

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
errorYes
_hintsYes
requiresHarnessSessionYes

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare destructiveHint: true. Description adds valuable behavior: 'Snapshot captures the bytes for undo', indicating the deletion is potentially reversible. No contradictions.

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 short, front-loaded sentences with no wasted words. Essential information is presented efficiently.

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 simple 1-param destructive tool with an output schema, the description covers the primary action and undo behavior. Missing info on error handling (e.g., file not found) but acceptable for this complexity.

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 coverage is 100% and already documents 'path' with its description. The tool description adds no additional semantic meaning beyond the schema, so baseline score applies.

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?

Description clearly states the verb 'Delete' and the resource 'file at a project-relative path'. It is specific and distinct from sibling tools like create_file or file_write.

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 (e.g., file_edit or other deletion methods). No when-not-to-use or prerequisites mentioned.

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

diagnostic_refreshdiagnostic_refreshA

Explicit Reef diagnostic ingestion runner: invoke selected diagnostic sources (lint_files, programmatic_findings, typescript_syntax, TypeScript, ESLint, Oxlint, Biome, or git_precommit_check), persist their Reef diagnostic runs/findings through the underlying tools, and return a compact per-source summary. File-mode sources are skipped unless files are supplied; this is a mutation tool because it refreshes Reef state.

ParametersJSON Schema
NameRequiredDescriptionDefault
filesNo
scriptsNo
sourcesNo
projectIdNo
projectRefNo
maxFindingsNo
tsconfigPathNo
continueOnErrorNo
includeFindingsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
_hintsYes
resultsYes
summaryYes
findingsNo
toolNameYes
warningsYes
projectIdYes
projectRootYes

TDQS

A3.7/5.0
Behavior4/5

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

Annotations indicate a mutating operation (readOnlyHint=false, idempotentHint=false). The description confirms this: 'this is a mutation tool because it refreshes Reef state.' It also adds context about file-mode skipping and persistence, which goes beyond the annotations. No contradiction.

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 two sentences, concise, and front-loaded with the action. It wastes no words but could be slightly more structured (e.g., separating conditions). Still effective.

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 (9 parameters, nested objects) and presence of an output schema, the description covers the core purpose and a key condition (file-mode skipping). However, it lacks details about output format or parameter usage, making it adequate but not comprehensive.

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 9 parameters, the description provides no explanation for parameters like projectId, maxFindings, or tsconfigPath. It only references 'sources' and 'files' briefly. This is insufficient for an agent to understand parameter roles.

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: it invokes selected diagnostic sources and persists findings, returning a summary. It lists the exact sources (lint_files, programmatic_findings, etc.) and distinguishes itself from individual diagnostic tools by being an aggregation runner. This is specific and actionable.

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 implicitly says when to use this tool (for refreshing multiple diagnostic sources) but does not explicitly guide when not to use it or suggest alternatives like single-source tools. The note about file-mode sources is useful but incomplete.

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

eslint_diagnosticseslint_diagnosticsA

Explicit Reef ingestion tool for ESLint diagnostics: run the project's local ESLint executable on the requested project-relative files with JSON output, persist working-tree ProjectFinding rows under source eslint, and record unavailable/error/succeeded run status. File-mode only; does not run broad project lint.

ParametersJSON Schema
NameRequiredDescriptionDefault
filesYes
projectIdNo
projectRefNo
scriptNameNo
maxFindingsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
_hintsYes
statusYes
commandNo
exitCodeNo
findingsYes
toolNameYes
warningsYes
errorTextNo
projectIdYes
truncatedYes
durationMsYes
projectRootYes
totalFindingsYes
requestedFilesYes
checkedFileCountYes
persistedFindingsYes

TDQS

A3.5/5.0
Behavior4/5

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

Annotations indicate readOnlyHint=false and openWorldHint=true, and the description adds that the tool persists ProjectFinding rows, records run statuses, and operates only on specified files. This provides useful behavioral context beyond annotations, though details about side effects (e.g., overwriting previous findings) are missing.

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 front-loads the main purpose and adds crucial constraints. Every clause serves a purpose, with no wasted words.

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 5 parameters with no schema descriptions and an output schema (not shown), the description covers core behavior but lacks parameter guidance. For a tool with side-effects and multiple sibling diagnostics, more parameter context would improve completeness.

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%, yet the description only mentions 'project-relative files' and does not explain parameters like projectId, projectRef, scriptName, or maxFindings. The description adds minimal meaning beyond the schema's names and types.

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?

Description clearly states it is an ESLint diagnostics ingestion tool that runs local ESLint on specific files, persists findings, and records run status. It distinguishes from broad-project lint tools by stating 'File-mode only; does not run broad project lint.' However, it does not explicitly differentiate from sibling diagnostic tools like biome_diagnostics or oxlint_diagnostics.

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 specific project-relative files and notes it does not run broad project lint, giving context for when to use. However, it does not explicitly mention when not to use this tool or suggest alternatives, leaving the agent to infer.

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

evidence_confidenceevidence_confidenceC
Read-onlyIdempotent

Reef 10 evidence-confidence view: label facts and findings as verified_live, fresh_indexed, stale_indexed, fuzzy_semantic, historical, contradicted, or unknown so model-facing tools can prefer trustworthy evidence.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
filePathNo
projectIdNo
projectRefNo
subjectFingerprintNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
itemsYes
_hintsYes
summaryYes
toolNameYes
warningsYes
projectIdYes
projectRootYes
reefExecutionYes

TDQS

C2.3/5.0
Behavior1/5

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

The description says 'label facts and findings', implying a write operation, but annotations declare readOnlyHint=true, creating a direct contradiction. No additional behavioral context is provided beyond the annotations.

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?

Single sentence but somewhat verbose with domain jargon ('Reef 10 evidence-confidence view'). Could be more concise without losing meaning.

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?

Despite having an output schema, the description does not specify what the tool returns. It covers the labeling intent but omits details on parameter usage, side effects, or output format.

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?

Schema coverage is 0% and the description does not explain any of the 5 parameters. No value is added beyond the schema definition.

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 labels facts and findings with specific confidence levels, distinguishing its function as an evidence-confidence viewer. However, it does not explicitly differentiate from the sibling tool 'evidence_conflicts'.

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 like 'evidence_conflicts'. The description implies usage for labeling evidence but lacks explicit context or when-not cases.

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

evidence_conflictsevidence_conflictsA
Read-onlyIdempotent

Reef 10 conflict view: surface stale indexed evidence, explicit conflict facts, and findings that report incorrect or contradictory evidence, with suggested cross-check actions.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
filePathNo
projectIdNo
projectRefNo
includeResolvedNo
subjectFingerprintNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
_hintsYes
toolNameYes
warningsYes
conflictsYes
projectIdYes
projectRootYes
reefExecutionYes
totalReturnedYes

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already indicate read-only and idempotent behavior. The description adds value by mentioning 'surfacing' (retrieval) and 'suggested cross-check actions' (actionable output), beyond what annotations provide. No contradiction.

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 concise sentence that front-loads the key concept. However, the jargon 'Reef 10 conflict view' may reduce accessibility. Still, it is efficient with no wasted words.

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 6 parameters with no descriptions and an output schema, the description fails to explain parameter roles or output structure. It lacks sufficient detail for an AI agent to use the tool correctly without extra inference.

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 does not mention any parameters by name or purpose. The meaning of projectId, projectRef, filePath, etc. is left entirely to the schema names and constraints.

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 surfaces stale evidence, conflict facts, and contradictory findings, with cross-check actions. It uses specific verbs and resources, and distinguishes from similar siblings like evidence_confidence.

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 use for viewing conflicts but does not explicitly state when to use this tool vs alternatives, nor does it provide exclusionary conditions or prerequisites.

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

exports_ofexports_ofB
Read-onlyIdempotent

Symbols tool for exports: list only the indexed symbols that a file exports.

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYes
projectIdNo
projectRefNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
fileYes
_hintsYes
exportsYes
toolNameYes
warningsYes
projectIdYes
reefExecutionYes
resolvedFilePathYes

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint and idempotentHint. The description adds the behavioral nuance of 'indexed' symbols, indicating that only indexed exports are listed, which is valuable context beyond the annotations.

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 concise sentence that front-loads the core purpose. It is efficient, though it could expand slightly without becoming verbose.

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 three parameters and an output schema, the description fails to explain how to use the parameters (e.g., that 'file' is required) or what the output contains. The agent lacks essential context for correct 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 input schema has 0% description coverage and the tool description does not mention any parameters, their purposes, or how they relate to the function, leaving the agent with no guidance.

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 uses the specific verb 'list' and clearly identifies the resource as 'indexed symbols that a file exports'. It distinguishes this tool from the sibling 'symbols_of' by narrowing to exports only.

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 the tool should be used when needing a file's exported symbols, but it does not explicitly state when not to use it or suggest alternative tools like 'symbols_of' for all symbols.

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

extract_rule_templateextract_rule_templateA
Read-onlyIdempotent

Read-only Reef rule-pack mining tool: inspect a local git fix diff and propose .mako/rules YAML templates from removed TS/JS anti-pattern shapes, with related durable findings when available. Does not write files or mutate Reef state.

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathNo
fixCommitYes
projectIdNo
baseCommitNo
projectRefNo
maxTemplatesNo
ruleIdPrefixNo
includeRelatedFindingsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
_hintsYes
summaryYes
toolNameYes
warningsYes
draftYamlYes
fixCommitYes
projectIdYes
templatesYes
baseCommitYes
projectRootYes
reefExecutionYes
suggestedPathYes

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and openWorldHint. The description adds 'Does not write files or mutate Reef state' and explains the specific mining behavior, providing context beyond 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 a single, well-structured sentence that front-loads the purpose ('Read-only Reef rule-pack mining tool') and packs in key details without redundancy. Every word adds value.

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's complexity (8 parameters, output schema exists), the description covers core inputs and outputs. However, it lacks context on prerequisites (e.g., project setup) and what 'related durable findings' entails. Almost complete.

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 mentions 'git fix diff' (implying fixCommit, baseCommit, filePath) and 'YAML templates' (relating to output), but does not systematically explain all 8 parameters. Partial compensation but not complete.

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: 'inspect a local git fix diff and propose .mako/rules YAML templates from removed TS/JS anti-pattern shapes'. It uses specific verbs and resources, and distinguishes from siblings like file editors or database tools.

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 rule mining from diffs but does not explicitly state when to use this tool over alternatives like `reef_scout` or `reef_diff_impact`. No guidance on when not to use or how it compares to siblings.

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

file_editA
Destructive

Replace a substring in an existing file. The substring must occur exactly once unless replaceAll is true.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesProject-relative path of the file to edit
newStringYesReplacement string
oldStringYesExact substring to replace (must occur exactly once unless replaceAll is true)
replaceAllNoReplace every occurrence (default: false)

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
errorYes
_hintsYes
requiresHarnessSessionYes

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already indicate destructiveHint=true, covering the primary behavioral trait. The description adds no extra context about permissions, backups, or error cases, so it does not go beyond the 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?

Two sentences, front-loaded with the purpose, no wasted words. Efficient and easy to parse.

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

Completeness5/5

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

Given an output schema exists and annotations cover safety, the description fully explains the core behavior and the key constraint (unique occurrence) without needing elaboration on returns or side effects.

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 100% with clear parameter descriptions. The tool description does not add additional meaning beyond what the schema already provides, meeting the baseline.

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 replaces a substring in an existing file, with a specific verb and resource. It distinguishes from siblings like create_file, delete_file, or apply_patch, which have different purposes.

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?

It provides a clear constraint (substring must occur exactly once unless replaceAll is true) but does not explicitly mention when to use this tool over alternatives like file_write or apply_patch.

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

file_factsfile_factsA
Read-onlyIdempotent

Reef read tool for one file's durable facts: computes the file subject fingerprint and returns facts such as working_tree_overlay file_snapshot rows. Use this to inspect what Reef currently knows about a file across overlays.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNo
limitNo
sourceNo
overlayNo
filePathYes
projectIdNo
projectRefNo
freshnessPolicyNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
factsYes
_hintsYes
filtersYes
filePathYes
toolNameYes
warningsYes
projectIdYes
projectRootYes
reefExecutionYes
totalReturnedYes

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint. The description adds value by explaining it computes a file subject fingerprint and returns facts across overlays, providing behavioral context beyond the annotations. No contradictions.

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, front-loaded with purpose, no wasted words. Perfectly concise.

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?

An output schema exists, so return values need not be explained. However, with 8 parameters and no parameter descriptions in either schema or description, the tool is incomplete for proper use. The description covers purpose and behavior but omits essential parameter guidance.

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 description provides no parameter details despite having 8 parameters with 0% schema description coverage. It mentions 'overlays' but does not explain the overlay parameter or any other required/optional parameters, forcing reliance on 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 it is a read tool for one file's durable facts, computes a file subject fingerprint, and returns specific facts like working_tree_overlay file_snapshot rows. It is specific about verb and resource, but does not differentiate from sibling tools like file_findings or file_health.

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 says 'Use this to inspect what Reef currently knows about a file across overlays,' providing clear context for usage. However, it does not discuss when not to use this tool or mention 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.

file_findingsfile_findingsA
Read-onlyIdempotent

Reef read tool for one project-relative file: return durable Reef findings attached to that file, with the same overlay/source/status filters as project_findings, including source aliases for bare rule IDs and rule_pack:. Use this before editing a file when a shell or agent needs known active diagnostics without rerunning broad lint.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
sourceNo
statusNo
overlayNo
filePathYes
projectIdNo
projectRefNo
freshnessPolicyNo
includeResolvedNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
_hintsYes
filtersYes
filePathYes
findingsYes
toolNameYes
warningsYes
projectIdYes
projectRootYes
reefExecutionYes
totalReturnedYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already provide readOnlyHint and idempotentHint. Description adds that findings are durable, uses same overlay/source/status filters as project_findings, and supports source aliases. No contradictions.

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-loaded with purpose, no unnecessary words or repetition.

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 9-parameter complexity and existence of output schema, the description provides sufficient context for understanding the tool's purpose and usage. Could be enhanced by mentioning the return value characteristics, but output schema compensates.

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?

Despite 0% schema description coverage, the description mentions 'overlay/source/status filters' and 'source aliases', which adds semantic context. However, it does not individually describe the 9 parameters beyond a high-level mapping, leaving some clarity gaps.

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 returns 'durable Reef findings' for one file, identifies it as a read tool, and distinguishes it from sibling project_findings by specifying the same filters and source aliases.

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?

Explicitly says 'Use this before editing a file when a shell or agent needs known active diagnostics without rerunning broad lint.' Provides clear when-to-use context but does not elaborate on when not to use or explicitly name alternatives beyond project_findings.

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

file_healthfile_healthC
Read-onlyIdempotent

Answer tool for file questions: summarize a file's role, dependents, and notable risks with evidence.

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYes
projectIdNo
projectRefNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
_hintsYes
resultYes
toolNameYes
projectIdYes

TDQS

C2.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint and idempotentHint, so the safety profile is clear. The description adds that it summarizes with evidence, but does not disclose potential costs or depth of analysis beyond that.

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?

Single sentence is concise and front-loaded with 'Answer tool for file questions'. Could be slightly more structured to separate input and output expectations.

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?

With 3 parameters and no schema descriptions, the description is insufficient. It omits parameter explanations and does not clarify what 'evidence' means, making the tool harder to use correctly.

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?

Schema description coverage is 0%, so the description must explain parameters. It does not mention projectId, projectRef, or file at all, leaving agents to infer their meaning from context.

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 it summarizes a file's role, dependents, and notable risks with evidence. It distinguishes from sibling tools like file_facts or file_findings by focusing on a holistic summary, though it could be more explicit about what 'evidence' entails.

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 like file_facts or file_preflight. Without exclusion criteria or context, agents may misuse it when a more specific tool is appropriate.

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

file_preflightfile_preflightA
Read-onlyIdempotent

Reef pre-edit composer for one file: returns durable findings, file-scoped diagnostic freshness, source-filtered recent runs, watcher diagnostic state, applicable conventions, and finding acknowledgement history in one read-only packet. Use before editing a file when an agent needs the operational gate without separate file_findings, verification_state, project_conventions, and finding_acks_report calls.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourcesNo
ackLimitNo
filePathYes
projectIdNo
projectRefNo
findingsLimitNo
freshnessPolicyNo
cacheStalenessMsNo
conventionsLimitNo
diagnosticRunsLimitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
_hintsYes
filtersYes
summaryYes
filePathYes
findingsYes
toolNameYes
warningsYes
projectIdYes
ackHistoryYes
conventionsYes
diagnosticsYes
projectRootYes
reefExecutionYes

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true. The description adds value by confirming it returns a 'read-only packet' and listing the contents, but does not disclose error behavior or edge cases. No contradiction with annotations.

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, using three sentences to convey purpose and usage. It is front-loaded with the core function and avoids redundancy, though could be slightly more compact.

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's complexity (10 parameters, composite output) and the presence of annotations and an output schema, the description adequately covers the operational context. It omits error handling and prerequisites but is sufficient for typical use.

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?

Input schema has 10 parameters with 0% description coverage. The description only mentions the return items and not the parameters like freshnessPolicy, cacheStalenessMs, or limits. The description does not compensate for the missing schema descriptions, providing minimal parameter guidance.

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 identifies the tool as a pre-edit composer for one file, listing the specific data it returns (findings, freshness, runs, etc.) and distinguishing it from sibling tools like file_findings, verification_state, etc., by stating it replaces multiple separate calls.

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 tool explicitly states when to use it ('Use before editing a file when an agent needs the operational gate') and mentions what it replaces, but does not provide explicit when-not-to-use scenarios or prerequisites, slightly reducing clarity.

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

file_writeA
Destructive

Create or overwrite a file at a project-relative path. Returns a snapshot id for undo.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesProject-relative path of the file to write
contentYesFull file content (UTF-8 text)

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
errorYes
_hintsYes
requiresHarnessSessionYes

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already indicate destructiveHint=true and readOnlyHint=false. The description adds value by noting that it returns a snapshot id for undo, providing behavioral context beyond the 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?

Two concise sentences front-load the purpose and outcome. No redundant 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 presence of an output schema and annotations, the description covers the key behavior and return value (snapshot id). It could mention error handling or directory creation, but overall adequate for a write 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 100%, so baseline is 3. The description repeats 'project-relative path' already in schema and does not add semantic meaning beyond what the schema provides.

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 explicitly states 'Create or overwrite a file at a project-relative path', using a specific verb and resource. It distinguishes itself from sibling tools like 'create_file' and 'file_edit' by specifying overwrite behavior.

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 does not provide explicit guidance on when to use this tool over alternatives. No comparison to sibling tools or conditions for exclusion is given.

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

finding_ackfinding_ackA

Mutation tool for verified-safe markers: append one row to the finding_acks ledger so subsequent ast_find_pattern / lint_files callers that opt into the same category filter the match out. Category is caller-owned (for lint findings, finding.code is the recommended default). For ast_find_pattern matches, pass match.ackableFingerprint; for lint_files findings, pass finding.identity.matchBasedId. Append-only; duplicate (projectId, category, fingerprint) inserts persist as separate rows and dedupe at query time. Emits one RuntimeUsefulnessEvent per successful call.

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonYes
statusNo
previewNo
snippetNo
categoryYes
filePathNo
projectIdNo
projectRefNo
fingerprintYes
subjectKindYes
sourceRuleIdNo
acknowledgedByNo
sourceToolNameNo
sourceIdentityMatchBasedIdNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
ackNo
_hintsYes
previewYes
toolNameYes
projectIdYes
wouldApplyNo

TDQS

A4/5.0
Behavior4/5

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

Annotations already mark it as a mutation, and the description adds valuable behavioral details: append-only, deduplication at query time, and emission of a RuntimeUsefulnessEvent. No contradictions with annotations.

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 with the purpose and reasonably concise. It uses technical but accurate language. Slightly verbose in the middle, but overall efficient.

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 complex tool with 14 parameters and no output schema, the description covers the main operation, duplicate behavior, and event emission. However, it omits explanation of several optional parameters and does not fully describe the return value, leaving some gaps.

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?

With 0% schema description coverage, the description adds meaning for key parameters (category, fingerprint, subjectKind) but leaves many optional parameters (e.g., acknowledgedBy, sourceToolName) unexplained. The core required ones are clarified.

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 (append), resource (finding_acks ledger), and purpose (filter out matches for subsequent callers). It differentiates from sibling tools like finding_ack_batch and finding_acks_report.

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 on when to use which fingerprint based on source (ast_find_pattern vs lint_files) and mentions the default category for lint findings. It does not explicitly compare with the batch variant, but the guidance is sufficient for correct invocation.

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

finding_ack_batchfinding_ack_batchA

Mutation batch for reviewed finding acknowledgements: append many finding_acks rows in one call while sharing batch-level defaults for category, subjectKind, status, reason, acknowledgedBy, sourceToolName, and sourceRuleId. Use when a scan returns many reviewed false positives or accepted tradeoffs. Emits one finding_ack telemetry event per successful row.

ParametersJSON Schema
NameRequiredDescriptionDefault
rowsYes
reasonNo
statusNo
previewNo
categoryNo
projectIdNo
projectRefNo
subjectKindNo
sourceRuleIdNo
acknowledgedByNo
sourceToolNameNo
continueOnErrorNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
acksYes
_hintsYes
previewYes
summaryYes
rejectedYes
toolNameYes
warningsYes
projectIdYes
wouldApplyNo

TDQS

A4.4/5.0
Behavior5/5

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

Description provides behavioral details beyond annotations: it is a mutation (consistent with readOnlyHint=false), it emits one telemetry event per successful row, and it shares batch-level defaults. No contradiction with 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?

Two sentences covering definition, use case, and side effects. No redundant information; each sentence adds unique value. Front-loaded with the core 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?

The description gives essential context: batch operation, defaults, use case, and telemetry. With an output schema present, return values are covered externally. However, it does not mention error handling behavior (continueOnError parameter) or row structure details, leaving some gaps for a tool with 12 parameters and nested rows.

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 lists the default parameters that can be shared across rows (category, subjectKind, status, reason, etc.), adding meaning beyond the schema which has 0% description coverage. However, it does not explain all parameters (e.g., projectId, projectRef, preview, continueOnError, row fields like label, filePath, fingerprint). The baseline is 3 due to low coverage, and description partially compensates but not fully.

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?

Description clearly states it's a mutation batch for finding acknowledgements, appending multiple rows with batch-level defaults. It identifies the specific resource (finding_acks) and verb (batch append), and distinguishes itself from the singular 'finding_ack' sibling by emphasizing batch operation and defaults.

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?

Explicitly states when to use: 'Use when a scan returns many reviewed false positives or accepted tradeoffs.' It implies this is the batch alternative to the singular 'finding_ack', but does not explicitly mention when not to use or list alternative tools.

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

finding_acks_reportfinding_acks_reportA
Read-onlyIdempotent

Read-only inspection over the finding_acks ledger: return aggregate counts (by category, status, subjectKind, filePath) and a bounded reverse-chronological list of acks, filterable by category, subjectKind, filePath, status, and ISO time window. Use to see what operators have suppressed and which categories carry the most weight. Never writes to the ledger.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
sinceNo
untilNo
statusNo
categoryNo
filePathNo
projectIdNo
projectRefNo
subjectKindNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
acksYes
_hintsYes
byStatusYes
toolNameYes
warningsYes
projectIdYes
truncatedYes
byCategoryYes
byFilePathYes
acksInWindowYes
bySubjectKindYes

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint. The description reinforces this with 'Never writes to the ledger' and adds specifics about the returned data (aggregate counts by various dimensions, bounded reverse-chronological list). This adds value beyond the annotations.

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, with no extraneous information. Key points are front-loaded: read-only, what it returns, and filter options. One could argue for a slightly more structured format, but it is efficient.

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 there is an output schema (presumably defining return structure), the description does not need to detail return values. It covers the purpose, filters, and behavior (bounded list, read-only). With 9 optional parameters, the description adequately informs an agent about tool usage.

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 carries the burden. It lists filterable fields (category, subjectKind, filePath, status, ISO time window) but does not provide detailed explanations for each parameter or their default behavior. This partially compensates for the lack of schema descriptions but is not exhaustive.

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 identifies the resource ('finding_acks ledger') and the action ('read-only inspection returning aggregate counts and a bounded list of acks'). It distinguishes from sibling tools that write to the ledger, such as 'finding_ack' and 'finding_ack_batch'.

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 usage context ('to see what operators have suppressed and which categories carry the most weight') and explicitly states the tool does not write. However, it does not explicitly mention when not to use it or suggest alternatives, though it is clear it is for reading only.

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

flow_mapflow_mapA
Read-onlyIdempotent

Graph tool for end-to-end flow questions: turn one graph path into ordered flow steps, transitions, and major boundary crossings.

ParametersJSON Schema
NameRequiredDescriptionDefault
directionNo
edgeKindsNo
projectIdNo
projectRefNo
startEntityYes
targetEntityYes
traversalDepthNo
includeHeuristicEdgesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
_hintsYes
resultYes
toolNameYes
projectIdYes

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint and idempotentHint, covering safety. The description adds context about output format (ordered steps, transitions, boundary crossings) but does not disclose additional behavioral traits like auth needs or rate limits.

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 concise sentence that conveys the core purpose with no wasted words.

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, nested objects, output schema exists) and 0% schema coverage, the description is insufficient. It does not explain required parameters, how to construct input objects, or interpret results, leaving significant gaps for the 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?

Schema description coverage is 0%, and the tool description does not describe any parameters. The schema provides names and enums, but the description fails to add meaning or clarify usage of the 8 parameters, leaving the agent without guidance on how to specify start/target entities, direction, depth, etc.

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: converting a graph path into ordered flow steps, transitions, and boundary crossings. It distinguishes from siblings like graph_path and graph_neighbors by specifying the transformation into a structured flow.

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 'end-to-end flow questions' but does not explicitly state when to use this tool over alternatives or provide exclusion criteria. No explicit guidance on prerequisites or usage context.

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

git_precommit_checkgit_precommit_checkA

Git pre-commit guard for staged TS/TSX files: reads staged blobs, checks API route auth guards and Next.js server/client boundary mistakes, persists staged Reef findings unless MAKO_REEF_BACKED disables the migration, and returns hook-friendly continue/stopReason output. Uses discovered project-profile auth guards/server-only modules plus optional .mako/git-guard.json/input allowlists. Never edits the index or worktree.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdNo
projectRefNo
authGuardSymbolsNo
publicRouteGlobsNo
includeExtensionsNo
serverOnlyModulesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
_hintsYes
policyYes
gitRootYes
continueYes
findingsYes
toolNameYes
warningsYes
projectIdYes
stopReasonNo
projectRootYes
stagedFilesYes
checkedFilesYes
skippedFilesYes
stagedChangesYes

TDQS

A3.8/5.0
Behavior4/5

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

Annotations indicate it is not read-only and not idempotent. The description adds that it persists findings to Reef (unless disabled), never edits the index or worktree, and uses discovered auth guards and allowlists. This goes beyond annotations by detailing side effects and 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 front-loaded with the main purpose and actions in the first sentence. It is detailed but not overly verbose; each sentence adds value. A slight reduction in length could improve conciseness, but it remains efficient.

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's complexity and the presence of an output schema, the description covers inputs, actions, side effects, and constraints reasonably well. It does not detail output format (likely covered by output schema) or required permissions, but overall it is adequate for understanding the tool's role.

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 using 'discovered project-profile auth guards/server-only modules' and 'optional allowlists', which maps to some parameters (authGuardSymbols, serverOnlyModules, possibly publicRouteGlobs), but the core parameters projectId, projectRef, and includeExtensions are not explained. Only partial value added.

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 it is a pre-commit guard for staged TS/TSX files that checks auth guards and boundary mistakes, persists findings, and returns hook-friendly output. It uses specific verbs and resources, distinguishes itself from sibling tools by focusing on git pre-commit checks.

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 it is for use in git pre-commit hooks but does not explicitly state when to use it versus alternatives or when not to use it. No cross-references to sibling tools or exclusion criteria are provided.

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

graph_neighborsgraph_neighborsA
Read-onlyIdempotent

Graph tool for adjacency questions: traverse outward from one or more start entities with explicit direction, depth, and edge filters.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
directionNo
edgeKindsNo
nodeKindsNo
projectIdNo
projectRefNo
startEntitiesYes
traversalDepthNo
includeHeuristicEdgesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
_hintsYes
resultYes
toolNameYes
projectIdYes

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true. The description adds behavioral context by detailing the traversal behavior with direction, depth, and edge filters. It does not contradict annotations and provides sufficient insight for a safe read operation.

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 concise sentence that front-loads the purpose. No unnecessary words, but it could be slightly more structured by listing key parameters or usage notes.

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 (9 parameters, output schema exists), the description provides a high-level understanding but lacks detail on parameter usage and interpretation. An output schema covers return values, but the description could be more complete regarding parameter semantics.

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 hints at 'direction, depth, and edge filters' but does not describe all 9 parameters, such as startEntities, nodeKinds, limit, etc. The added value is minimal.

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: 'Graph tool for adjacency questions: traverse outward from one or more start entities with explicit direction, depth, and edge filters.' It specifies the verb 'traverse' and the resource 'graph neighbors', and distinguishes from sibling tools like graph_path by focusing on neighbor exploration rather than path finding.

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 adjacency exploration but does not explicitly state when to use this tool versus alternatives like graph_path or other graph tools. No exclusions or alternative recommendations are provided.

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

graph_pathgraph_pathA
Read-onlyIdempotent

Graph tool for connection questions: find one shortest typed path between two entities while keeping heuristic edges explicit and opt-in.

ParametersJSON Schema
NameRequiredDescriptionDefault
directionNo
edgeKindsNo
nodeKindsNo
projectIdNo
projectRefNo
startEntityYes
targetEntityYes
traversalDepthNo
includeHeuristicEdgesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
_hintsYes
resultYes
toolNameYes
projectIdYes

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already provide readOnlyHint and idempotentHint. The description adds that it finds one shortest path and that heuristic edges are explicit and opt-in, which provides behavioral context beyond the annotations.

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 front-loaded sentence that efficiently communicates core purpose. However, it could be more specific about 'connection questions'.

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 (9 params, nested objects, enums, output schema), the description omits crucial details such as entity kinds, direction semantics, and traversal depth, making it incomplete for an 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?

Schema description coverage is 0%, and the description does not clarify any of the 9 parameters. The only hint is about includeHeuristicEdges via 'opt-in', but no details on startEntity, targetEntity, direction, etc.

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 it finds one shortest typed path between two entities, specifying typed edges and opt-in heuristic edges. This distinguishes it from sibling tools like graph_neighbors or auth_path.

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 phrase 'for connection questions' implies usage context but does not explicitly state when to use this tool vs alternatives like graph_neighbors or auth_path. No exclusions or conditions are provided.

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

health_trendhealth_trendA
Read-onlyIdempotent

Operator tool for project-state trend review: compare a recent trace window against a prior window without fabricating trend lines when history is thin.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
projectIdNo
projectRefNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
_hintsYes
resultYes
toolNameYes
projectIdYes

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, indicating safe, idempotent operation. The description adds a critical behavioral detail: it avoids fabricating trend lines when history is thin, which is not captured by annotations. This enhances transparency beyond what annotations provide.

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 tool's purpose, action, and a key constraint. Every word adds value, and the most important information is front-loaded.

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?

Despite having an output schema (which may clarify return values), the description omits details about trace window definition, parameter usage, and how the tool fits among many similar sibling tools. For a tool with three optional parameters, this leaves gaps that could confuse an 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?

With 0% schema description coverage, the description does not explain any of the three parameters (projectId, projectRef, limit). The schema documents their types but the description adds no semantic context, leaving the agent to infer their roles from names alone.

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: comparing recent and prior trace windows for trend review. The specific phrase 'without fabricating trend lines when history is thin' distinguishes it from other trace-related tools and provides a unique behavioral nuance.

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 use for trend comparisons when sufficient history exists, but does not explicitly mention when not to use or suggest alternatives among the many sibling tools. No exclusion criteria or comparative guidance is provided.

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

implementation_handoff_artifactimplementation_handoff_artifactB
Read-only

Artifact tool for reusable implementation handoff: compose one implementation brief and the current session handoff into a typed handoff artifact. Basis is session-scoped — session_handoff shifts with every tool call, so artifactId moves between calls by design (each call captures the current session state). Do not dedupe on artifactId.

ParametersJSON Schema
NameRequiredDescriptionDefault
exportNo
projectIdNo
queryArgsNo
queryKindYes
queryTextYes
projectRefNo
sessionLimitNo
followupLimitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
_hintsYes
resultYes
exportedNo
toolNameYes
projectIdYes

TDQS

B3.2/5.0
Behavior2/5

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

The description describes composing an artifact, suggesting a write operation, but annotations set readOnlyHint=true. This creates a contradiction as to whether the tool is read-only or produces new artifacts. The description adds some behavioral context about artifactId shifting, but the inconsistency undermines 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 short and front-loaded but could be more concise. It effectively communicates the core purpose and a critical caveat about artifactId, though the mismatch with parameters reduces overall clarity.

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 8 parameters, nested objects, and no schema descriptions, the description is insufficient. It does not cover parameters, output, or how to use the tool, leaving significant gaps despite having an output schema.

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 schema has 8 parameters with 0% description coverage, and the description fails to explain any parameter. The parameters listed (projectId, queryKind, etc.) appear unrelated to the described purpose of composing an implementation brief and session handoff, causing confusion.

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 composes an implementation brief and current session handoff into a typed handoff artifact, with specific verb 'compose' and resource identification. It distinguishes itself from sibling artifact tools by emphasizing session-scoped behavior.

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 capturing session state in an artifact and explicitly warns against deduplication on artifactId, but does not explicitly state when to use this tool versus alternatives like session_handoff or other artifact tools.

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

imports_cyclesimports_cyclesB
Read-onlyIdempotent

Imports tool for cycle detection: detect circular dependencies in the indexed internal import graph.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdNo
projectRefNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
_hintsYes
cyclesYes
toolNameYes
projectIdYes
reefExecutionYes

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint and idempotentHint, covering safety traits. The description adds the context of internal import graph and cycle detection, but does not disclose any additional behavioral characteristics beyond what annotations provide.

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?

One short sentence with no redundancy. Could be slightly more structured (e.g., front-loading 'Detect circular dependencies...' but it remains concise and immediately clear.

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?

While outputs are presumably defined by the output schema (not shown), the description omits parameter semantics and does not clarify input requirements. For a tool that requires project identification, this leaves a significant gap.

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 has 0% description coverage, and the description does not mention or explain the two parameters (projectId, projectRef). The agent receives no guidance on what these parameters represent or how to fill them.

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 it detects circular dependencies in the indexed internal import graph, specifying the verb 'detect' and the resource 'circular dependencies'. This distinguishes it from sibling tools like imports_deps (dependency listing) and imports_impact (impact 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, nor any prerequisites or context. It lacks explicit 'when to use' or 'when not to use' instructions.

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

imports_depsimports_depsA
Read-onlyIdempotent

Imports tool for direct dependencies: list a file's indexed imports and flag unresolved internal edges.

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYes
projectIdNo
projectRefNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
fileYes
_hintsYes
importsYes
toolNameYes
warningsYes
projectIdYes
unresolvedYes
reefExecutionYes
resolvedFilePathYes

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and openWorldHint=false, covering safety and idempotency. The description adds context about output: it lists imports and flags unresolved internal edges, which the annotations do not provide. No contradictions.

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 sentence that immediately states the tool's purpose. It contains no redundant information and is efficiently front-loaded.

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 output schema exists, return values need not be detailed. However, the description does not explain prerequisites (e.g., project indexing), the meaning of 'unresolved internal edges', or how projectId/projectRef affect behavior. It covers basic purpose but lacks operational context for effective use.

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 explains the 'file' parameter by mentioning 'a file's indexed imports', but projectId and projectRef are not described at all. Their optionality and effect remain unclear, leaving significant gaps.

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 lists a file's indexed imports and flags unresolved internal edges, using specific verbs ('list' and 'flag') and a specific resource (file's direct dependencies). It distinguishes from sibling tools like imports_cycles, imports_hotspots, and imports_impact by focusing on direct dependencies and internal edges.

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 analyzing direct dependencies and internal edges within a project, but it does not explicitly state when to use this tool versus alternatives (e.g., imports_cycles for cycles). No exclusions or when-not guidance are provided.

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

imports_hotspotsimports_hotspotsB
Read-onlyIdempotent

Imports tool for graph hotspots: rank the most connected files in the indexed internal import graph.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
projectIdNo
projectRefNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
limitYes
_hintsYes
hotspotsYes
toolNameYes
projectIdYes
reefExecutionYes

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already provide readOnlyHint and idempotentHint. The description adds context about ranking by connectivity but does not disclose other behavioral traits such as data freshness or limitations. With annotations covering safety, the description adds some value but not extensively.

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, concise sentence that front-loads the purpose. Every word is necessary, with no 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?

While the output schema covers return values, the description does not specify what 'most connected' means (e.g., incoming vs outgoing imports). The lack of required parameters in the schema could lead to confusion about whether projectId and projectRef are needed. More context would improve completeness.

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%, and the description does not explain the purpose of projectId, projectRef, or limit. The names and constraints imply project identification, but without explicit documentation, the agent lacks clarity on how to set these parameters correctly.

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 ranks the most connected files in the import graph, using a specific verb and resource. It distinguishes from sibling import tools like imports_cycles and imports_deps by focusing on connectivity ranking.

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 explicit guidance on when to use this tool versus alternatives like imports_deps or imports_impact. The description does not provide context for when this tool is appropriate or when to choose another.

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

imports_impactimports_impactC
Read-onlyIdempotent

Imports tool for downstream impact: trace which indexed files depend on a file through the import graph.

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYes
depthNo
projectIdNo
projectRefNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
fileYes
depthYes
_hintsYes
toolNameYes
warningsYes
projectIdYes
impactedFilesYes
reefExecutionYes
resolvedFilePathYes

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true. The description adds the concept of tracing file dependencies through the import graph, confirming read-only nature. It does not contradict annotations and provides minimal additional 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 a single sentence that is front-loaded with the core purpose. It is concise but omits important details, making it not overly verbose but slightly under-informative.

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 4 parameters with 0% schema description coverage and the presence of sibling tools, the description fails to provide complete context. Missing parameter details and usage guidance make it inadequate for full understanding.

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%, yet the description does not explain the meaning or usage of any parameter. It only implies the 'file' parameter as the entry point, leaving projectId, projectRef, and depth undefined.

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 states it traces downstream impacts via import graph, using specific verb 'trace' and resource 'downstream impact'. It distinguishes from siblings like imports_cycles, imports_deps, imports_hotspots through its focus on dependency direction, but does not explicitly differentiate.

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 or when not to use it. The description implies its use for finding dependents but lacks explicit context or exclusions.

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

investigateinvestigateA
Read-onlyIdempotent

Workflow tool for bounded read-only investigation: run a short sequential tool chain over shipped workflows and return typed step history.

ParametersJSON Schema
NameRequiredDescriptionDefault
budgetNo
questionYes
directionNo
projectIdNo
projectRefNo
startEntityNo
targetEntityNo
traversalDepthNo
includeHeuristicEdgesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
_hintsYes
resultYes
toolNameYes
projectIdYes

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already indicate read-only and idempotent. The description adds that it runs a 'short sequential tool chain' and returns 'typed step history', providing behavioral context beyond 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 a single, well-structured sentence that front-loads the core purpose and key constraints without unnecessary detail.

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?

Despite having many parameters and an output schema, the description only covers high-level behavior. It fails to explain key parameters like projectId, projectRef, startEntity, targetEntity, direction, etc., and does not describe the return format.

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?

Schema description coverage is 0%, and the description provides no information about the 9 parameters. The parameter names and types are left entirely to the schema, with no guidance on how to use them.

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 defines the tool as a read-only investigation workflow that runs a sequential tool chain and returns typed step history, distinguishing it from many sibling tools that are more targeted.

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 bounded read-only investigation but does not explicitly state when to use this tool versus alternatives like cross_search or graph_path. The term 'investigation' is broad.

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

issues_nextissues_nextC
Read-onlyIdempotent

Operator tool for queue-oriented recommendations: derive one current issue plus queued follow-on issues from recent unresolved project traces.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
projectIdNo
projectRefNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
_hintsYes
resultYes
toolNameYes
projectIdYes

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint and idempotentHint, so the tool is safe and repeatable. The description adds that it derives issues from traces, which is consistent but does not elaborate on behavior beyond annotations. No contradiction.

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 sentence, concise and front-loaded. However, it uses abstract phrasing ('operator tool') that could be clearer. No unnecessary words, but slightly under-specified.

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 (3 parameters, output schema exists), the description provides basic context about the output (current issue + follow-ons) but does not explain input constraints or the notion of 'recent unresolved project traces'. Completeness is adequate but not thorough.

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?

Schema description coverage is 0%, and the description does not explain the meaning of any parameters (projectId, projectRef, limit). This is a critical gap; the agent cannot infer how to use these parameters from the description alone.

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 it derives the current issue plus follow-on issues from recent unresolved project traces, which specifies the verb and resource. However, the phrase 'operator tool for queue-oriented recommendations' is somewhat jargon-heavy and doesn't fully distinguish from sibling tools like 'suggest' or 'ask'.

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 explicit guidance on when to use this tool versus alternatives. The description implies it is for queue-based issue recommendations, but does not mention when not to use it or compare to siblings. This leaves the agent without clear decision criteria.

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

lint_fileslint_filesC

Code-intelligence tool for diagnostics on an indexed file set: run rule-packs, including canonicalHelper producer/consumer checks, plus TS-aware and structural alignment diagnostics; persist indexed Reef findings/run metadata under source lint_files; and return typed AnswerSurfaceIssue findings. Same engine that powers the answer loop and review_bundle, so findings stay consistent across surfaces.

ParametersJSON Schema
NameRequiredDescriptionDefault
filesYes
projectIdNo
verbosityNo
projectRefNo
maxFindingsNo
primaryFocusFileNo
excludeAcknowledgedCategoryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
_hintsYes
findingsYes
toolNameYes
warningsYes
projectIdYes
truncatedYes
resolvedFilesYes
unresolvedFilesYes
acknowledgedCountYes

TDQS

C2.7/5.0
Behavior3/5

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

Annotations indicate non-read-only, non-idempotent, and open-world. The description confirms persistence of findings and metadata, adding context beyond annotations. However, it does not disclose failure modes, rate limits, or other behavioral details.

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 a single dense paragraph of about 50 words. It front-loads the main purpose but uses jargon (canonicalHelper, Reef, AnswerSurfaceIssue) that may reduce clarity. It is somewhat concise but could be restructured for readability.

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 (7 parameters, no descriptions, multiple sibling lint tools), the description is incomplete. It does not explain how to use parameters or when to select this tool over alternatives. The output schema exists but the description only vaguely mentions typed findings.

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?

Schema description coverage is 0%, yet the description provides no information about any of the 7 parameters, including the enum for verbosity. The description fails to compensate for the lack of parameter documentation, leaving agents without guidance on how to set 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 runs diagnostics on indexed files using rule-packs, including canonicalHelper checks and TS-aware diagnostics. It differentiates from siblings by noting it powers the answer loop and review_bundle, but does not explicitly distinguish from other lint tools like biome_diagnostics.

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 does not provide explicit when-to-use or when-not-to-use guidance compared to alternative tools. It mentions consistency with answer loop and review_bundle, but lacks practical usage guidance or prerequisites.

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

list_reef_ruleslist_reef_rulesA
Read-onlyIdempotent

Reef read tool for rule metadata: list durable rule descriptors, optionally filtered by source namespace or enabled-by-default status. Descriptors explain which facts a finding source consumes and what rule ids mean.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
projectIdNo
projectRefNo
enabledOnlyNo
sourceNamespaceNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
rulesYes
_hintsYes
filtersYes
toolNameYes
warningsYes
projectIdYes
projectRootYes
totalReturnedYes

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint and idempotentHint both true. The description adds value by explaining that the result contains descriptors which explain facts consumption and rule IDs, and mentions filtering parameters. No contradictions.

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?

Two sentences front-load the purpose and add detail about descriptor content. Efficient, but could optionally mention the other parameters briefly.

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?

Output schema exists, reducing need to describe return format. But with 5 parameters and 0% schema coverage, the description should explain all parameters or at least projectId/projectRef. Missing usage guidance. Adequate but with gaps.

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 mentions filtering by sourceNamespace and enabledOnly, but does not explain projectId, projectRef, or limit. Partial coverage of parameters; leaves some meaning 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?

Clearly states it is a read tool for rule metadata, listing durable rule descriptors, with optional filtering by source namespace or enabled-by-default status. This distinguishes it from sibling tools (e.g., reef_agent_status, reef_inspect).

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 listing rule descriptors with filtering, but does not explicitly state when to use this tool versus alternatives like reef_inspect or reef_scout. No exclusion or comparison to siblings.

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

mako_helpmako_helpA
Read-onlyIdempotent

Orientation tool for coding agents: given a natural-language task plus optional focusFiles, changedFiles, focusRoutes, focusSymbols, focusDatabaseObjects, route, table, or rpc anchors, return the recommended Mako workflow recipe as an ordered tool sequence with pre-filled suggestedArgs, batchable follow-ups, and notes. Use before reading long AGENTS/CLAUDE docs when deciding how to start with reef_ask and which specialist follow-ups to load. Read-only and does not execute the returned steps.

ParametersJSON Schema
NameRequiredDescriptionDefault
rpcNo
taskYes
routeNo
tableNo
maxStepsNo
projectIdNo
focusFilesNo
projectRefNo
focusRoutesNo
changedFilesNo
focusSymbolsNo
focusDatabaseObjectsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
taskYes
notesYes
stepsYes
_hintsYes
summaryYes
recipeIdYes
toolNameYes
batchHintYes
retrievalPlanGuideYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint. The description adds valuable behavioral context: 'Read-only and does not execute the returned steps.' This reinforces and clarifies the tool's non-execution nature beyond the 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?

Two sentences with zero wasted words. The first sentence defines the tool's purpose and inputs/outputs. The second provides usage context. Front-loaded with the primary action and result.

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 complexity (12 params, 79 siblings), the description covers the essential purpose, usage, and most inputs. The output schema exists, so return values are documented elsewhere. Missing mention of maxSteps and project identifiers, but overall sufficient.

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 coverage is 0%, but the description lists many of the 12 parameters: focusFiles, changedFiles, focusRoutes, focusSymbols, focusDatabaseObjects, route, table, rpc, and the required task. However, maxSteps, projectId, and projectRef are not mentioned, providing incomplete semantics for those.

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 identifies mako_help as an orientation tool that returns a Mako workflow recipe based on a task and optional anchors. It specifies the output structure (ordered tool sequence with pre-filled args) and distinguishes itself from sibling tools like reef_ask.

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?

Explicitly states when to use: before reading long AGENTS/CLAUDE docs when deciding how to start with reef_ask. Also notes it is read-only and does not execute steps, clarifying when not to use it. Could provide alternatives, but the context is sufficient.

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

owasp_auditowasp_auditA
Read-onlyIdempotent

Operator tool for OWASP Top 10 (2025) review: scan indexed TS/JS files for evidence-backed security issues mapped to OWASP categories (A01 broken access control, A02 misconfiguration, A04 crypto failures, A05 injection, A07 auth failures, A10 exceptional conditions) with CWE references and a direct_evidence/weak_signal honesty strength. Always returns a full 10-category coverage section, explicitly naming categories it does not statically check (A03 supply chain, A06 insecure design, A08 integrity, A09 logging). Advisory and heuristic — requires acknowledgeAdvisory:true; not a replacement for dedicated SAST/SCA. Read-only; does not persist findings.

ParametersJSON Schema
NameRequiredDescriptionDefault
freshenNo
maxFilesNo
projectIdNo
categoriesNo
projectRefNo
maxPerSectionNo
includeFullResultsNo
acknowledgeAdvisoryYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
_hintsYes
resultYes
toolNameYes
projectIdYes

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint. The description adds important behavioral context: it is read-only, does not persist findings, uses direct_evidence/weak_signal honesty strength, and always returns a full 10-category coverage section. No contradictions.

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 dense paragraph that front-loads the main purpose and then details. Every sentence adds value, though it could be slightly more concise. 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?

For a complex tool with 8 parameters and an output schema, the description adequately covers purpose, scope, and advisory nature. However, missing parameter explanations for 6 of 8 parameters leave gaps in completeness.

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 explain parameters. It only covers categories and acknowledgeAdvisory. It does not explain freshen, maxFiles, projectId, projectRef, maxPerSection, or includeFullResults. This is a significant gap.

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 it is for OWASP Top 10 (2025) review of TS/JS files, listing specific categories and explicitly naming those it does not check. This distinguishes it from sibling tools like tenant_leak_audit.

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 usage guidance: it is advisory/heuristic, requires acknowledgeAdvisory:true, and is not a replacement for dedicated SAST/SCA. It does not mention alternative tools but gives clear when-to-use and when-not-to-use context.

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

oxlint_diagnosticsoxlint_diagnosticsA

Explicit Reef ingestion tool for Oxlint diagnostics: run the project's local Oxlint executable or JSON package script on requested project-relative files with --format json, persist working-tree ProjectFinding rows under source oxlint, and record unavailable/error/succeeded run status. File-mode only; does not run broad project lint.

ParametersJSON Schema
NameRequiredDescriptionDefault
filesYes
projectIdNo
projectRefNo
scriptNameNo
maxFindingsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
_hintsYes
statusYes
commandNo
exitCodeNo
findingsYes
toolNameYes
warningsYes
errorTextNo
projectIdYes
truncatedYes
durationMsYes
projectRootYes
totalFindingsYes
requestedFilesYes
checkedFileCountYes
persistedFindingsYes

TDQS

A4/5.0
Behavior5/5

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

The description explicitly details behavioral traits: runs local Oxlint executable or script with JSON format, persists ProjectFinding rows, records run status. This adds significant context beyond the annotations which only indicate non-readonly and open world.

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?

Two sentences convey the core purpose and key constraints, but the description is slightly verbose and could be more streamlined while retaining clarity.

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 5 parameters with no schema descriptions and an output schema, the description lacks information about parameter semantics and return values, making it incomplete for effective tool usage.

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, the description only adds meaning for the 'files' parameter (project-relative, JSON format). Other parameters like projectId, projectRef, scriptName, and maxFindings are left undocumented.

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 it is a tool for running Oxlint diagnostics on specific files, persisting findings, and recording status. It distinguishes itself from sibling diagnostic tools by specifying it is file-mode only and not a broad project lint.

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 (file-mode, not broad lint) and indicates it is an 'Explicit Reef ingestion tool', but does not explicitly state when to use it over alternatives like eslint_diagnostics or biome_diagnostics.

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

preflight_tablepreflight_tableB
Read-onlyIdempotent

Return the full preflight surface for a table: columns, primary key, indexes, foreign keys, RLS state + policies, triggers, related routes, and zod schemas whose surrounding file references the table. Snapshot-strict.

ParametersJSON Schema
NameRequiredDescriptionDefault
tableYes
schemaNo
projectIdNo
projectRefNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
_hintsYes
resultYes
toolNameYes
projectIdYes

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, covering safety. The description adds 'Snapshot-strict', indicating a point-in-time snapshot, but does not disclose further behavioral traits like response size or error conditions. With annotations present, the description adds some value but remains limited.

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, dense sentence that conveys a lot of information without verbosity. However, it lacks front-loading of key purpose (e.g., 'Returns preflight data') and could be restructured for faster scanning.

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 presence of an output schema (not shown), the description successfully lists the major components returned. It does not mention error handling or optional items, but for a snapshot tool, the completeness is 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%, meaning no parameters are described in the description. The schema itself has 4 parameters with basic constraints (minLength), but the description adds no meaning beyond what the schema provides. For a tool with multiple parameters, this is insufficient compensation.

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 uses specific verbs ('Return') and identifies a clear resource ('full preflight surface for a table') with a detailed list of components (columns, primary key, indexes, etc.), distinguishing it from sibling tools like 'db_table_schema' or 'table_neighborhood'.

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, nor does it mention exclusions or prerequisites. It only describes what the tool returns without context for selection.

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

project_conventionsproject_conventionsB
Read-onlyIdempotent

Reef 9 convention view: surface explicit convention facts plus profile/index/rule-derived convention candidates such as auth guards, runtime boundaries, generated paths, route patterns, and schema usage conventions.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNo
limitNo
statusNo
projectIdNo
projectRefNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
_hintsYes
toolNameYes
warningsYes
projectIdYes
conventionsYes
projectRootYes
totalReturnedYes

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint and idempotentHint. The description adds context about the output content (explicit facts and derived candidates), but does not disclose behavioral details like pagination, filtering behavior, or performance 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 a single, information-dense sentence that front-loads the core purpose and lists examples. It is concise but could be slightly clearer by reducing jargon (e.g., 'Reef 9 convention view').

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?

The tool has 5 optional parameters and an output schema, but the description does not cover parameter usage or output structure. While the output schema provides return value details, the description should clarify how parameters affect results. Overall, it is adequate but not fully comprehensive.

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%, meaning the description provides no information about the 5 parameters. While parameter names (projectId, kind, status, limit) are somewhat self-explanatory, the description fails to explain how they influence the tool's behavior or output.

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: surfacing explicit convention facts plus derived candidates, with concrete examples like auth guards and route patterns. It distinguishes itself from sibling tools by focusing on conventions specifically.

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. The description does not mention when to prefer this over other tools like reef_inspect or reef_instructions, nor does it specify any conditions or exclusions.

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

project_diagnostic_runsproject_diagnostic_runsA
Read-onlyIdempotent

Reef read tool for diagnostic source runs: list recent lint/type adapter runs by source and status, including unavailable/error/succeeded state, duration, counts, command, config, cwd, metadata, and derived cache freshness/age. Use this to distinguish no findings from a diagnostic source that did not run or ran too long ago.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
sourceNo
statusNo
projectIdNo
projectRefNo
cacheStalenessMsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
runsYes
_hintsYes
filtersYes
toolNameYes
warningsYes
projectIdYes
projectRootYes
totalReturnedYes

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already mark it as readOnlyHint=true and idempotentHint=true, so the description adds little behavioral context. It mentions 'cache freshness/age' which hints at caching behavior, but overall, the description does not go beyond what annotations provide.

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: the first states functionality, the second provides usage guidance. Every word is essential, no redundancy. It is well-structured and front-loaded.

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's complexity, annotations (readOnlyHint, idempotentHint), and presence of an output schema (implied by 'including...'), the description covers most aspects. The missing parameter explanations lower the score, but the overall context is fairly complete.

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 filtering by 'source' and 'status' implicitly ('by source and status'), but does not explain projectId, projectRef, limit, or cacheStalenessMs. With 6 parameters, this is insufficient for an agent to understand all inputs.

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 it lists recent diagnostic runs with specific fields like state, duration, counts, command, etc. It includes a specific scope ('diagnostic source runs') and the verb 'list' makes the action unambiguous. Among siblings like biome_diagnostics or eslint_diagnostics, this tool is unique in focusing on run history, not current diagnostics.

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 a clear use case: 'Use this to distinguish no findings from a diagnostic source that did not run or ran too long ago.' This helps the agent decide when to use it. However, it does not explicitly mention when not to use it or suggest alternative tools (e.g., diagnostic_refresh for triggering a run).

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

project_factsproject_factsA
Read-onlyIdempotent

Reef read tool for durable project facts: query facts by overlay, source, kind, and subject fingerprint. Use this when an agent or shell needs the calculated substrate behind findings without rerunning analysis.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNo
limitNo
sourceNo
overlayNo
projectIdNo
projectRefNo
freshnessPolicyNo
subjectFingerprintNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
factsYes
_hintsYes
filtersYes
toolNameYes
warningsYes
projectIdYes
projectRootYes
reefExecutionYes
totalReturnedYes

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint and idempotentHint. The description adds behavioral context by characterizing the tool as a 'reef read tool' and the facts as 'durable' and the 'calculated substrate behind findings.' No contradiction with 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?

Two sentences, front-loaded with purpose, no redundant words. Every sentence adds value.

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?

Despite an output schema existing, the input schema lacks descriptions and the description covers only half the parameters. Important context about project identification, freshness, and limits is missing. The description is insufficient for an 8-parameter tool with 0% 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?

Schema coverage is 0% (no descriptions). The description lists only 4 out of 8 parameters (overlay, source, kind, subjectFingerprint), providing meaning for those but omitting projectId, projectRef, freshnessPolicy, and limit. This leaves critical parameters undocumented.

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 identifies the tool as a read operation for 'durable project facts' and lists the query dimensions (overlay, source, kind, subject fingerprint). It distinguishes itself from sibling tools by emphasizing that it returns 'calculated substrate behind findings without rerunning analysis.'

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 explicitly states when to use the tool: 'when an agent or shell needs the calculated substrate behind findings without rerunning analysis.' It does not list alternative tools by name, but the context is clear enough to guide selection among siblings.

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

project_findingsproject_findingsA
Read-onlyIdempotent

Reef read tool for active project findings: query the durable Reef findings view by overlay, source, status, and resolved inclusion. The source filter accepts a producer source, bare rule ID, or rule_pack:. Acknowledged status is derived from the existing finding_ack ledger, so this is the canonical read path for Reef-native lint/rule findings.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
sourceNo
statusNo
overlayNo
projectIdNo
projectRefNo
freshnessPolicyNo
includeResolvedNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
_hintsYes
filtersYes
findingsYes
toolNameYes
warningsYes
projectIdYes
projectRootYes
reefExecutionYes
totalReturnedYes

TDQS

A4.3/5.0
Behavior5/5

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

Beyond the readOnlyHint and idempotentHint annotations, the description adds context: it queries a 'durable Reef findings view', status derivation from the 'finding_ack ledger', and the canonical nature of the read path. No contradiction with 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 two sentences, front-loaded with the core purpose, and each sentence provides 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 8 parameters and an output schema present, the description covers the core filtering purpose but leaves many parameters unexplained (projectId, projectRef, freshnessPolicy, limit, and the relationship between status and includeResolved). The tool is moderately complex, so more detail is warranted.

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?

With 0% schema description coverage, the description must compensate. It explains the 'source' parameter format and mentions filtering by overlay, source, status, and resolved inclusion. However, it omits explanations for the other parameters (projectId, projectRef, freshnessPolicy, limit, and details of overlay and status enums).

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 it is a 'Reef read tool for active project findings' and specifies the filters (overlay, source, status, resolved inclusion). It also positions itself as the 'canonical read path for Reef-native lint/rule findings', distinguishing it from sibling tools like finding_ack.

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 indicates it's a read tool for querying findings and explains the source filter format, but does not explicitly state when to use it versus alternatives or provide exclusions.

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

project_index_refreshproject_index_refreshA

Mutation tool for index freshness: run the project indexer through the current project-store cache when the snapshot is stale, unknown, deleted, or has unindexed files, then return before/after freshness summaries and the new index run. In if_stale mode, unknown freshness refreshes defensively and unindexed files count as stale work.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNo
reasonNo
projectIdNo
projectRefNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
runNo
afterNo
statsNo
_hintsYes
beforeYes
reasonYes
skippedYes
toolNameYes
warningsYes
projectIdYes
projectRootYes
operatorReasonNo

TDQS

A3.9/5.0
Behavior4/5

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

Annotations only indicate mutation and not read-only. The description adds behavioral context beyond annotations: handling of unknown freshness in if_stale mode, counting unindexed files as stale, and returning freshness summaries. No contradiction with annotations.

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?

Three sentences with no wasted words. The first sentence efficiently packs the main purpose, conditions, and output. The second adds mode specifics. Slightly dense but still clear. Could benefit from more structured presentation.

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 4 optional parameters and an output schema (not shown), the description covers main behavior and modes. However, parameter semantics are missing, limiting completeness. Output schema existence mitigates need to detail return fields, but parameter descriptions are 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%, and the description does not explain the individual parameters (projectId, projectRef, mode, reason). Only 'mode' is implicitly referenced. With zero coverage, the description should compensate but fails to add meaning for 3 of 4 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 it is a mutation tool for index freshness, specifies conditions (stale, unknown, deleted, unindexed), and lists output (before/after summaries, new index run). This distinguishes it from siblings like project_index_status.

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 explains when to use the tool (when snapshot is stale, unknown, deleted, or has unindexed files) and the behavior of 'if_stale' mode. However, it does not explicitly contrast with sibling project_index_status or provide when-not-to-use guidance.

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

project_index_statusproject_index_statusA
Read-onlyIdempotent

Project tool for index freshness: compare indexed file rows against live disk metadata, report Reef working-tree fact freshness, watch state, latest index run, unindexedScan status, and a suggested next action. By default this checks indexed rows only and reports that the new-file scan was skipped; pass includeUnindexed: true to pay the repo walk cost and get an exact count/details for files not yet in the index. Trust/stability is not freshness; this tool answers whether the index snapshot is current.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdNo
verbosityNo
projectRefNo
includeUnindexedNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
watchNo
_hintsYes
toolNameYes
freshnessYes
latestRunNo
projectIdYes
reefFactsNo
reefStatusNo
projectRootYes
lastIndexedAtNo
unindexedScanYes
suggestedActionYes
suggestedActionReasonYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already indicate readonly and idempotent nature. Description adds useful behavioral details: default skips new-file scan, includeUnindexed triggers a more expensive walk, and clarifies that 'trust/stability' is separate from freshness. No contradictions with 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 concise (two sentences) and front-loaded with the core purpose. Every sentence adds value, and there is no redundant or filler content.

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

Completeness5/5

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

Given the presence of an output schema (reducing need to explain return format), the description covers what the tool reports, default behavior, and the effect of the key parameter. It provides sufficient context for an agent to understand the tool's functionality without 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?

With 0% schema description coverage, the description must compensate but only explains includeUnindexed. projectId, projectRef, and verbosity are not described. Though the schema provides enums for verbosity, their meaning (compact vs full) is absent, leaving ambiguity.

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?

Description clearly states the tool's purpose: compare indexed file rows against live disk metadata to report index freshness. It uses specific verbs and resources, and distinguishes itself from potentially confusing siblings like project_index_refresh by focusing on status rather than mutation.

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?

Description explains the default behavior and when to use includeUnindexed parameter, including the trade-off (repo walk cost). However, it does not explicitly mention when to use this tool over alternatives, such as project_index_refresh, though the context implies it is for checking status, not performing updates.

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

project_open_loopsproject_open_loopsA
Read-onlyIdempotent

Reef 8 open-loop view: list unresolved active findings, stale or unknown facts, and stale or failed diagnostic runs so an agent can see what still needs attention without rerunning broad checks.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
filePathNo
projectIdNo
projectRefNo
cacheStalenessMsNo
includeAcknowledgedNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
loopsYes
_hintsYes
summaryYes
filePathNo
toolNameYes
warningsYes
projectIdYes
projectRootYes
reefExecutionYes

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint and idempotentHint, covering safety. The description adds no new behavioral traits beyond the purpose. It is consistent with annotations, no contradiction.

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?

A single sentence that is front-loaded with purpose. No wasted words, though it could be clearer about the scope. Efficient but minimal.

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?

With 6 undocumented parameters and an output schema present but not described, the description leaves significant gaps. The agent cannot infer parameter roles or return format, making the tool hard to invoke correctly without external knowledge.

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%, and the description does not explain any of the 6 parameters. While parameter names like projectId and limit are somewhat self-explanatory, the agent lacks guidance on required fields or effects, hurting usability.

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 lists unresolved findings, stale facts, and failed diagnostic runs, specifying the resource and verb. It distinguishes itself from siblings by focusing on open loops for attention without rerunning broad checks.

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 when to use: to get pending items without rerunning diagnostics. It provides context but does not explicitly mention alternatives or when not to use, though the purpose is clear enough for an agent.

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

recall_answersrecall_answersA
Read-onlyIdempotent

Read-only session-recall tool: search prior project answer traces by text, query kind, support level, trust state, and ISO time window. Returns bounded answer summaries, pre-cap matchCount, truncation signal, and optional stored answer markdown. Does not run the answer loop or infer freshness.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryNo
sinceNo
untilNo
projectIdNo
queryKindNo
projectRefNo
trustStateNo
supportLevelNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
_hintsYes
answersYes
toolNameYes
warningsYes
projectIdYes
truncatedYes
matchCountYes
generatedAtYes

TDQS

A3.5/5.0
Behavior4/5

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

Adds value beyond annotations: lists return contents (bounded summaries, matchCount, truncation signal, optional markdown) and clarifies it does not run answer loop. Annotations already declare readOnlyHint=true and idempotentHint=true.

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?

Single front-loaded sentence with key action and filters, then two concise sentences on return and behavior. No wasted words.

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 9 parameters with 0% schema description coverage, description covers main filtering dimensions but omits project identifiers and limit. Output description is present but could be more detailed. Adequate for a tool with annotations but leaves gaps.

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 description must compensate. It mentions filtering by text, query kind, support level, trust state, and ISO time window, but does not explain projectId, projectRef, limit, or output schema. Parameter names are somewhat self-explanatory, but description could be more complete.

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?

Description clearly states it searches prior answer traces by multiple filters. Specific verb+resource. Does not explicitly distinguish from sibling 'recall_tool_runs' but purpose is clear.

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 explicit guidance on when to use vs alternatives. Only states it does not run answer loop or infer freshness, which implies a read-only use case but lacks direct context.

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

recall_tool_runsrecall_tool_runsA
Read-onlyIdempotent

Read-only session-recall tool: inspect prior project tool_runs by tool name, outcome, request id, and ISO time window. Returns bounded summaries with runId plus requestId when available; use requestId as agent_feedback.referencedRequestId. Default limit is 50, max 500. Persisted payloads are only included when includePayload is true.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
sinceNo
untilNo
outcomeNo
toolNameNo
projectIdNo
requestIdNo
projectRefNo
includePayloadNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
_hintsYes
toolNameYes
toolRunsYes
warningsYes
projectIdYes
truncatedYes
matchCountYes
generatedAtYes

TDQS

A4.1/5.0
Behavior4/5

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

Declares read-only and bounded summaries, consistent with annotations. Adds details on limits and payload condition. No contradiction with annotations.

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?

Two sentences, front-loaded with purpose, includes key usage details. Slightly dense but acceptable.

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?

Covers filtering, limits, payload inclusion, and return structure. Output schema handles return values. Lacks pagination details but adequate for a read-only recall 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 coverage is 0% and description covers 6 of 9 parameters (toolName, outcome, requestId, since, until, limit, includePayload). Misses projectId and projectRef. Partially compensates but not fully.

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?

Clearly states 'inspect prior project tool_runs' with specific filtering criteria. Distinguishes from sibling tools like 'recall_answers' by focusing on tool runs.

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?

Provides default limit, max limit, and payload inclusion detail. Implicitly suggests using requestId for agent_feedback. Does not explicitly contrast with alternatives, but usage context is clear.

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

reef_agent_statusreef_agent_statusA
Read-onlyIdempotent

Reef agent-loop status summary: report maintained known issues, changed files needing verification, stale diagnostic sources, schema freshness, watcher degradation, and background queue state. Never edits files.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
projectIdNo
focusFilesNo
projectRefNo
freshnessPolicyNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
stateYes
_hintsYes
schemaNo
summaryYes
toolNameYes
warningsYes
projectIdYes
knownIssuesYes
projectRootYes
changedFilesYes
staleSourcesYes
reefExecutionYes
suggestedActionsYes

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint and idempotentHint. The description adds value by detailing the report's contents and reinforcing the non-editing behavior, but does not cover error conditions or additional behavioral traits beyond what annotations provide.

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 sentence with a clear list of report items, front-loading the purpose. It effectively summarizes the tool's output without excess, though it could be slightly more concise.

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?

Despite having an output schema and annotations, the description lacks guidance on parameter usage. With 5 parameters and 0% schema description coverage, the agent cannot determine how to correctly invoke the tool (e.g., what parameters are typical, which are optional).

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%, and the description provides no information about the 5 parameters (projectId, projectRef, focusFiles, freshnessPolicy, limit). The description does not compensate for the lack of schema descriptions, leaving parameter semantics entirely to the schema field names.

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?

Description clearly defines the tool as a status summary for the reef agent-loop, listing specific report items like maintained known issues, changed files, stale diagnostics, etc. It explicitly states it never edits files, distinguishing it from mutation tools. The verb 'report' and resource 'status' are specific.

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 getting an overview of agent health, but does not specify when to use this tool versus alternatives like 'reef_known_issues' or 'reef_inspect'. No explicit when-not or alternative recommendations are provided.

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

reef_askreef_askA
Read-onlyIdempotent

Primary Reef query engine facade: ask one project question and receive a compiled codebase plus database evidence packet with compact answer sections, ranked context, findings, risks, open loops, diagnostic freshness, a normalized evidence graph, and suggested next actions. Internally handles bounded quoted literal checks, materialized DB inventories, specific table/column/RLS/index/FK/trigger questions, where-used/impact questions, and verification-gate questions with typed summaries. Raw evidence defaults to compact: per-section item caps plus omission of the raw evidence-graph nodes/edges and heavy per-item provenance/diagnostic detail (node/edge and section totals are still reported, and long finding messages are clipped). Pass evidenceMode="full" for the uncapped raw evidence and full graph, or includeTrace=true for the decision trace and engine steps. Read-only; uses internal Reef/context modules instead of model-orchestrated MCP tool chains.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNo
questionYes
projectIdNo
focusFilesNo
projectRefNo
focusRoutesNo
budgetTokensNo
changedFilesNo
evidenceModeNo
focusSymbolsNo
includeRisksNo
includeTraceNo
maxOpenLoopsNo
freshnessPolicyNo
includeOpenLoopsNo
maxPrimaryContextNo
maxRelatedContextNo
risksMinConfidenceNo
includeInstructionsNo
includeVerificationNo
focusDatabaseObjectsNo
maxEvidenceItemsPerSectionNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
_hintsYes
answerYes
limitsYes
evidenceYes
questionYes
toolNameYes
warningsYes
freshnessYes
projectIdYes
queryPlanYes
projectRootYes
reefExecutionYes

TDQS

A3.9/5.0
Behavior5/5

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

The description expands on the readOnlyHint, explaining it is read-only and uses internal modules. It details default compact evidence mode, options to get full evidence (evidenceMode, includeTrace), and special question handling. This adds value beyond annotations.

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 long but front-loads the main purpose. It includes necessary details for a complex tool, but some sentences could be trimmed without losing clarity. Adequate but not maximally concise.

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's complexity and no schema descriptions, the description covers the output format, evidence modes, and question type handling. It does not detail every parameter but provides enough context for effective use, especially with an output schema present.

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 coverage is 0%, so the description must compensate. It explains only a few parameters (evidenceMode, includeTrace) and the general question type. Most of the 22 parameters (e.g., projectId, focusFiles, budgetTokens) are not described, leaving incomplete understanding.

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 it is the 'Primary Reef query engine facade' and lists its output: a compiled codebase and database evidence packet with specific elements. It distinguishes itself by mentioning internal handling of various question types and its read-only nature, matching the annotation.

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 this is the main query tool but does not explicitly compare to sibling tools like 'ask', 'reef_verify', or 'reef_where_used'. It lists question types it handles, suggesting when to use it, but lacks explicit when-not-to-use or alternatives.

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

reef_diff_impactreef_diff_impactA
Read-onlyIdempotent

Reef mid-edit impact composer: for changed working-tree files, return affected import callers, active caller findings that may need re-checking, and conventions the diff or impacted callers may violate. Reads existing working_tree_overlay facts and import graph state; it does not refresh or mutate Reef.

ParametersJSON Schema
NameRequiredDescriptionDefault
depthNo
filePathsYes
projectIdNo
projectRefNo
maxConventionsNo
freshnessPolicyNo
maxCallersPerFileNo
maxFindingsPerCallerNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
_hintsYes
filtersYes
summaryYes
toolNameYes
warningsYes
projectIdYes
projectRootYes
changedFilesYes
reefExecutionYes
conventionRisksYes
impactedCallersYes
possiblyInvalidatedFindingsYes

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint. The description reinforces this by stating it reads existing state and does not refresh or mutate, adding clarity about what it does not do. This goes beyond annotations by specifying the exact data sources (working_tree_overlay facts, import graph state).

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 long, front-loading the core purpose and then adding behavioral notes. Every sentence adds unique value without unnecessary detail, making it highly concise and 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?

While the description covers the high-level purpose and behavioral traits, it lacks details about the input parameters and the exact format of the return value (though an output schema exists). For a tool with 8 parameters, this is a significant gap, making it only minimally complete.

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 input schema has 8 parameters with 0% description coverage, and the tool description does not explain any parameter meanings. For a complex tool with many parameters, the description should provide context for parameters like projectId, depth, or freshnessPolicy, but it does not.

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: to return affected import callers, findings, and conventions for changed working-tree files. It uses specific verbs ('return') and resources ('import callers', 'caller findings', 'conventions'), and differentiates itself from sibling tools like imports_impact and cross_search by focusing on mid-edit impact analysis.

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 changed working-tree files during mid-edit, but does not explicitly state when to use this tool versus alternatives or provide exclusion criteria. No alternative tools are mentioned, though the context suggests it is for impact analysis without mutation.

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

reef_impactreef_impactA
Read-onlyIdempotent

Thin Reef impact query: for changed files, return affected import callers, invalidated findings, and convention risks through the primary Reef surface. Equivalent calculation to reef_diff_impact with a smaller model-facing name.

ParametersJSON Schema
NameRequiredDescriptionDefault
depthNo
filePathsYes
projectIdNo
projectRefNo
maxConventionsNo
freshnessPolicyNo
maxCallersPerFileNo
maxFindingsPerCallerNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
_hintsYes
filtersYes
summaryYes
toolNameYes
warningsYes
projectIdYes
projectRootYes
changedFilesYes
reefExecutionYes
conventionRisksYes
impactedCallersYes
possiblyInvalidatedFindingsYes

TDQS

A4/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=true and idempotentHint=true. The description adds behavioral context by specifying 'query' and listing return types (callers, findings, conventions). No contradiction with 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?

Two concise, front-loaded sentences that convey the essential purpose and relationship to a sibling tool without any waste.

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?

Provides high-level purpose and output types, but with 8 parameters and no parameter details in the description or schema, the agent lacks sufficient context to use the tool correctly. An output schema exists but is not described.

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%, yet the description provides no information about any of the 8 parameters. It does not compensate for the lack of schema documentation, leaving agents without guidance on parameter usage.

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?

Description clearly states the verb ('query'), resource ('impact of changed files'), and the outputs ('affected import callers, invalidated findings, and convention risks'). It also distinguishes from sibling tool 'reef_diff_impact' by noting equivalence with a smaller 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?

Explicitly mentions equivalent calculation to reef_diff_impact, providing a clear alternative. However, it does not elaborate on when to prefer this tool over other siblings or any prerequisites.

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

reef_inspectreef_inspectA
Read-onlyIdempotent

Reef 7 inspection view: explain one file or subject fingerprint by returning its durable facts, findings, and relevant diagnostic runs. Use after reef_scout when the model needs the evidence trail and freshness details before editing.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
filePathNo
projectIdNo
projectRefNo
subjectFingerprintNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
factsYes
_hintsYes
summaryYes
filePathNo
findingsYes
toolNameYes
warningsYes
projectIdYes
projectRootYes
reefExecutionYes
diagnosticRunsYes
subjectFingerprintNo

TDQS

A4.1/5.0
Behavior4/5

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

Annotations indicate read-only and idempotent behavior. Description adds that the tool returns 'durable facts, findings, and relevant diagnostic runs', providing concrete behavioral context about the output. No contradictions with 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?

Two sentences that are front-loaded: first sentence defines the action and output, second provides usage guidance. No redundancy or filler.

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?

Description covers the tool's role and usage context well. Output schema exists so return format is not required. However, the description does not clarify the roles of the 5 parameters (e.g., projectId vs projectRef), leaving some ambiguity for an 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?

Input schema has 5 parameters with 0% schema description coverage. The description does not explain any parameter meaning, usage, or relationships. Given the lack of schema descriptions, the description should compensate but fails to do so.

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?

Description clearly states the verb 'explain' and the resource 'one file or subject fingerprint', and specifies the output: 'durable facts, findings, and relevant diagnostic runs'. It also distinguishes from sibling tool reef_scout by advising use after reef_scout.

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?

Explicitly provides context for usage: 'Use after reef_scout when the model needs the evidence trail and freshness details before editing.' This gives clear when-to-use guidance and implies an alternative, but does not explicitly state when not to use.

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

reef_instructionsreef_instructionsA
Read-onlyIdempotent

Reef read tool for scoped project instructions: load .mako/instructions.md and applicable AGENTS.md files for requested project-relative files, returning structured instruction items plus derived Reef fact shapes. Reads only inside the project root and does not persist facts.

ParametersJSON Schema
NameRequiredDescriptionDefault
filesNo
projectIdNo
projectRefNo
includeDerivedFactsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
filesYes
_hintsYes
summaryYes
toolNameYes
warningsYes
projectIdYes
projectRootYes
derivedFactsYes
instructionsYes

TDQS

A4.2/5.0
Behavior5/5

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

Annotations declare the tool as read-only, idempotent, and open-world. The description adds valuable behavioral details: it loads specific file types, returns structured items with derived facts, and does not persist facts. It also clarifies the security scope ('reads only inside the project root'). No contradictions.

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 pack the essential purpose, behavior, and constraints. No filler. The first sentence is front-loaded with the core action and output, meeting conciseness and structure goals.

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 read tool with an output schema, the description is adequate but incomplete. It covers the general behavior and security, but lacks parameter details despite having 4 parameters. Given the schema's zero coverage, more parameter explanation 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?

The input schema has 0% description coverage, so the description must compensate. It only hints at the 'files' parameter ('project-relative files') but fails to explain projectId, projectRef, or includeDerivedFacts. This is insufficient for understanding parameter semantics.

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: 'load .mako/instructions.md and applicable AGENTS.md files for requested project-relative files, returning structured instruction items plus derived Reef fact shapes.' It specifies the verb (load, return), resource (project instructions), and distinguishes from siblings by noting it is a read-only tool that does not persist facts.

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 'scoped project instructions' and 'requested project-relative files', and notes it 'Reads only inside the project root.' This provides context but does not explicitly state when to avoid this tool or suggest alternative sibling tools, leaving room for ambiguity.

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

reef_known_issuesreef_known_issuesC
Read-onlyIdempotent

Reef warm issue query: answer "have any errors?" from maintained Reef findings and diagnostic readiness state without launching broad lint or typecheck commands.

ParametersJSON Schema
NameRequiredDescriptionDefault
filesNo
limitNo
sourcesNo
projectIdNo
projectRefNo
severitiesNo
freshnessPolicyNo
includeAcknowledgedNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
_hintsYes
issuesYes
summaryYes
toolNameYes
warningsYes
projectIdYes
projectRootYes
reefExecutionYes
suggestedActionsYes

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already provide readOnlyHint and idempotentHint. The description adds that the tool avoids broad lint/typecheck commands, which is behavioral context. There is no contradiction with annotations, and the description adds some value beyond the annotations.

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 sentence that is concise and front-loaded with the tool's purpose. There is no wasted text, though it could be structured with more detail if space allowed.

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?

Despite having an output schema, the description is minimal (one sentence) and does not cover parameter semantics, return value expectations, or usage constraints. With 8 parameters and zero schema descriptions, the description is incomplete for effective tool use.

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?

Schema description coverage is 0%, and the description does not explain any of the 8 parameters (e.g., projectId, files, severities). With no parameter information, the description fails to add meaning beyond the schema, which is a critical 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 answers 'have any errors?' from maintained Reef findings and diagnostic readiness state, which is specific. It distinguishes from 'broad lint or typecheck commands' but could better differentiate from sibling tools like 'reef_agent_status' or 'reef_inspect'.

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 querying known issues without launching broad commands, providing some context. However, it does not explicitly state when not to use or list alternatives among the many sibling tools, so guidance is only implicit.

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

reef_learning_reviewreef_learning_reviewA
Read-onlyIdempotent

Suggestion-only Reef learning review: propose rule-pack, sentinel, instruction, convention, conjecture, or session-recall candidates from resolved findings, repeated rule history, recent tool runs, and agent feedback. Never writes durable knowledge; acceptance must happen through an explicit separate write path.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNo
limitNo
sinceNo
projectIdNo
projectRefNo
changedFilesNo
recentToolRunIdsNo
resolvedFindingIdsNo
includeLowConfidenceNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
modeYes
_hintsYes
summaryYes
toolNameYes
warningsYes
projectIdYes
guardrailsYes
projectRootYes
suggestionsYes
reefExecutionYes

TDQS

A4.2/5.0
Behavior5/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint. Description adds detail: 'Suggestion-only', 'Never writes durable knowledge', lists data sources (resolved findings, repeated rule history, etc.). No contradictions.

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, front-loaded with main action, no unnecessary words. Highly efficient.

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?

The tool has 9 parameters (no required), an output schema, and is suggestion-only. Description covers core behavior and safety but lacks details on output format, error handling, or edge cases like empty results. Adequate but not comprehensive.

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 coverage is 0%, so description must compensate. It hints at data sources (resolved findings, recent tool runs) but does not systematically explain each of the 9 parameters. Many params like mode, limit, since, projectId remain 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 verb 'propose' and resources (rule-pack, sentinel, etc.) and highlights it's suggestion-only. It distinguishes from sibling tools like list_reef_rules or reef_instructions by emphasizing no writes.

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?

Explicitly states when to use (suggestion) and when not (if writing is needed). Provides an alternative path ('explicit separate write path') though does not name specific sibling tools.

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

reef_overlay_diffreef_overlay_diffA
Read-onlyIdempotent

Reef read tool for overlay comparison: diff durable facts between two overlays, defaulting indexed vs working_tree, with optional filePath/kind/source filters. Use after working_tree_overlay or before edits to see exactly what Reef believes changed without rerunning diagnostics.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNo
limitNo
sourceNo
filePathNo
projectIdNo
projectRefNo
leftOverlayNo
includeEqualNo
includeFactsNo
rightOverlayNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
_hintsYes
entriesYes
summaryYes
toolNameYes
warningsYes
projectIdYes
leftOverlayYes
projectRootYes
rightOverlayYes

TDQS

A4/5.0
Behavior4/5

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

Annotations already mark it as read-only and idempotent; the description reinforces this as a read tool and adds the default overlays, adding value beyond 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?

Two efficient sentences: first explains functionality and defaults, second gives usage advice. Front-loaded and compact, no wasted words.

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?

Output schema exists, so return values are covered. The description explains the core diff and usage context, but given the schema's 0% coverage and 10 parameters, more parameter documentation would improve completeness.

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 only mentions filePath, kind, source filters. Many important parameters (projectId, projectRef, includeEqual, includeFacts, limit) are not explained, requiring the agent to infer or look elsewhere.

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 diffs durable facts between overlays, with a default of indexed vs working_tree. This distinguishes it from siblings like reef_diff_impact and reef_inspect.

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?

Explicitly advises using after working_tree_overlay or before edits to see changes without rerunning diagnostics, giving clear context for when to invoke it.

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

reef_scoutreef_scoutA
Read-onlyIdempotent

Reef 7 model-facing scout view: turn a messy request into intent-weighted, explainable candidates from durable Reef facts, findings, rules, and diagnostic runs. App-flow queries prefer files/routes/findings; RLS/schema queries prefer database evidence. This is a context scout, not an editing agent; use normal harness read/search after the packet.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryYes
projectIdNo
focusFilesNo
projectRefNo
includeRawEvidenceNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
factsNo
queryYes
_hintsYes
findingsNo
toolNameYes
warningsYes
projectIdYes
candidatesYes
projectRootYes
reefExecutionYes
suggestedActionsYes

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint: true and idempotentHint: true, indicating safe, read-only behavior. The description reinforces this by stating 'not an editing agent' and describes the output as 'intent-weighted, explainable candidates.' It adds context about the nature of the returned data (from durable Reef facts, etc.), which goes beyond the 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: three sentences that front-load the main purpose, provide usage guidance, and set expectations. Every sentence adds unique value without redundancy or unnecessary detail.

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?

While the description adequately covers purpose, usage, and behavioral context, it lacks parameter-level details for a tool with 6 parameters and 0% schema description coverage. The presence of an output schema partially compensates for return value explanation, but the missing parameter descriptions leave a notable gap. Considering the tool's complexity, the description is not fully comprehensive.

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%, meaning the schema provides no descriptions for any of the 6 parameters. The tool description does not compensate: it only generically mentions 'query' and types of queries, but does not explain projectId, projectRef, focusFiles, limit, or includeRawEvidence. Given this gap, the description fails to add sufficient meaning beyond the schema's structural definitions.

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: 'turn a messy request into intent-weighted, explainable candidates from durable Reef facts, findings, rules, and diagnostic runs.' It distinguishes from siblings by emphasizing it's a scout view, not an editing agent, and advises using other tools after obtaining the packet. The verb 'scout' and resource 'Reef model-facing scout view' are specific and unique among siblings.

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 context for when to use the tool: 'App-flow queries prefer files/routes/findings; RLS/schema queries prefer database evidence.' It also states what not to use it for: 'This is a context scout, not an editing agent; use normal harness read/search after the packet.' However, it does not explicitly name alternative sibling tools for specific scenarios.

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

reef_statusreef_statusB
Read-onlyIdempotent

Thin Reef status query: report maintained known issues, changed files needing verification, stale diagnostic sources, schema freshness, watcher degradation, and background queue state through the primary Reef surface.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
projectIdNo
focusFilesNo
projectRefNo
freshnessPolicyNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
stateYes
_hintsYes
schemaNo
summaryYes
toolNameYes
warningsYes
projectIdYes
knownIssuesYes
projectRootYes
changedFilesYes
staleSourcesYes
reefExecutionYes
suggestedActionsYes

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, so the description does not need to restate safety. It adds no additional behavioral context (e.g., rate limits, scope limitations). Baseline 3 is appropriate.

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?

Description is a single sentence, efficiently listing the reported categories with a front-loaded summary ('Thin Reef status query'). No wasted words, though listings could be more 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 output schema exists and annotations provide safety context, the description offers a reasonable overview of the tool's output categories. However, the lack of parameter semantics leaves a gap in usability, especially for a tool with 5 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%, and the description only lists high-level status categories without explaining any of the 5 parameters (limit, projectId, focusFiles, projectRef, freshnessPolicy). This forces the agent to rely solely on parameter names, which is insufficient.

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?

Description uses clear verb 'report' and lists specific status categories (known issues, changed files, etc.), distinguishing from sibling tools like reef_known_issues or reef_scout. However, the term 'thin' is ambiguous, slightly reducing clarity.

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?

Description provides no guidance on when to use this tool versus alternatives. No mention of context, prerequisites, or exclusions. 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.

reef_verifyreef_verifyC
Read-onlyIdempotent

Thin Reef verification query: combine diagnostic freshness, changed files, watcher state, recent diagnostic runs, and unresolved open loops into one completion gate. Read-only and does not run diagnostics.

ParametersJSON Schema
NameRequiredDescriptionDefault
filesNo
limitNo
sourcesNo
projectIdNo
projectRefNo
openLoopsLimitNo
cacheStalenessMsNo
includeOpenLoopsNo
includeAcknowledgedLoopsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
_hintsYes
statusYes
summaryYes
toolNameYes
warningsYes
openLoopsNo
projectIdYes
projectRootYes
verificationYes
reefExecutionYes
suggestedActionsYes

TDQS

C2.9/5.0
Behavior3/5

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

Annotations provide readOnlyHint and idempotentHint, and the description reinforces that it is read-only and does not run diagnostics. No contradictions. Adds behavioral context about combining multiple state elements, but no additional depth beyond 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?

Two sentences, front-loaded with the core purpose. No wasted words. Efficient and to the point.

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 9 parameters with no description coverage, the description is incomplete. An output schema exists, but without parameter semantics or usage guidance, the tool cannot be confidently invoked correctly.

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?

Schema description coverage is 0%. The description does not explain any of the 9 parameters, leaving their semantics entirely unclear. Even though schema provides constraints, the lack of textual description forces the agent to guess parameter purposes.

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: 'Thin Reef verification query' that combines multiple state elements. It distinguishes itself from other tools by specifying it is read-only and does not run diagnostics, but does not explicitly differentiate from 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?

No explicit guidance on when to use this tool versus alternatives. The description mentions it is read-only, implying no side effects, but lacks context on typical usage scenarios or when to prefer it over similar tools like verification_state.

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

reef_where_usedreef_where_usedA
Read-onlyIdempotent

Reef maintained structural query: answer where a symbol, component, route, file, or indexed pattern is defined and used from maintained symbols/imports/routes first, then supplement symbol/component answers with indexed identifier-text references and related durable findings. Does not run grep; coverage explains import-graph/text/finding limits and returns fallback tool args when maintained state has no answer.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryYes
projectIdNo
projectRefNo
targetKindNo
freshnessPolicyNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
queryYes
_hintsYes
usagesYes
coverageYes
toolNameYes
warningsYes
projectIdYes
targetKindNo
definitionsYes
projectRootYes
reefExecutionYes
totalReturnedYes
relatedFindingsYes
fallbackRecommendationNo

TDQS

A4/5.0
Behavior4/5

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

Annotations already provide readOnlyHint and idempotentHint. The description adds behavioral context: it does not run grep, coverage explains limits, and returns fallback tool args. This adds value beyond annotations.

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 dense sentence that front-loads purpose. It is efficient but could be split for readability. Every part adds value, but it is slightly verbose.

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 output schema exists, the description need not detail return values. It covers coverage limits, fallback behavior, and the two-stage process. However, it lacks detail on what the answer structure looks like, and parameter semantics are weak.

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 schema. The description only implicitly mentions query and targetKind via 'symbol, component, route, file, or pattern', but provides no explanation of projectId, projectRef, freshnessPolicy, or limit. This is insufficient for correct parameter usage.

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 answers where a symbol, component, route, file, or pattern is defined and used, with a two-stage process from maintained state then indexed references. It explicitly says it does not run grep, distinguishing it from raw text search tools.

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 structural queries and mentions fallback behavior when maintained state has no answer. It explicitly states what it does not do (grep), but does not explicitly name alternative tools like live_text_search or cross_search.

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

repo_maprepo_mapA
Read-onlyIdempotent

Code-intelligence tool for repo orientation: emit a token-budgeted aider-style outline of the indexed project (ranked files + key symbols) as first-turn context for agents meeting an unfamiliar codebase. Ranking uses import-graph PageRank, personalized bidirectionally around focusFiles, focusRoutes, focusSymbols, or focusDatabaseObjects when supplied so nearby dependencies and dependents surface first. Symbol selection prefers exported declarations. Read-only; default budget 1024 tokens (char/4 approximation), cap 16384.

ParametersJSON Schema
NameRequiredDescriptionDefault
maxFilesNo
pathGlobNo
projectIdNo
focusFilesNo
projectRefNo
focusRoutesNo
tokenBudgetNo
focusSymbolsNo
maxSymbolsPerFileNo
focusDatabaseObjectsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
filesYes
_hintsYes
renderedYes
toolNameYes
warningsYes
projectIdYes
tokenBudgetYes
estimatedTokensYes
totalFilesIndexedYes
truncatedByBudgetYes
totalFilesEligibleYes
truncatedByMaxFilesYes

TDQS

A4.3/5.0
Behavior5/5

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

The description discloses read-only behavior, default token budget (1024), maximum cap (16384), ranking algorithm (import-graph PageRank with bidirectional personalization), and symbol selection preference (exported declarations). This adds substantial value beyond the annotations (readOnlyHint, idempotentHint), providing deep 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 a single paragraph of three sentences, efficiently packing purpose, algorithm, default, and parameters. It is front-loaded with the core purpose, though some might find it dense. No wasted words.

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 (so return values don't need full explanation), and the description covers purpose, algorithm, defaults, and parameter roles, it is fairly complete. It could mention that projectRef and projectId are identifiers, but the context is sufficient for most use cases.

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 explains the purpose of focusFiles, focusRoutes, focusSymbols, focusDatabaseObjects, and tokenBudget, adding meaning beyond the schema. However, with 0% schema description coverage, it does not document all 10 parameters (e.g., pathGlob, maxFiles, maxSymbolsPerFile are not mentioned), leaving gaps.

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 emits a token-budgeted outline of the indexed project (ranked files + key symbols) specifically for first-turn context when agents face an unfamiliar codebase. It uniquely distinguishes itself from sibling tools like flow_map or graph_neighbors by focusing on project orientation with a specific outline format.

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 explicitly says it is for 'first-turn context for agents meeting an unfamiliar codebase,' providing clear usage context. It also explains how focus parameters personalize the output, but does not explicitly state when not to use or compare to alternatives like ast_find_pattern or cross_search.

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

review_bundle_artifactreview_bundle_artifactC
Read-onlyIdempotent

Artifact tool for reviewer-facing change inspection: compose implementation brief, change plan, optional flow map, and optional tenant audit into one typed review bundle. Basis is stable — identical inputs produce the same artifactId, so callers may dedupe on it.

ParametersJSON Schema
NameRequiredDescriptionDefault
exportNo
directionNo
edgeKindsNo
projectIdNo
queryArgsNo
queryKindYes
queryTextYes
projectRefNo
startEntityYes
targetEntityYes
traversalDepthNo
freshenTenantAuditNo
includeDiagnosticsNo
includeTenantAuditNo
includeImpactPacketNo
includeHeuristicEdgesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
_hintsYes
resultYes
exportedNo
toolNameYes
projectIdYes

TDQS

C2.9/5.0
Behavior4/5

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

Annotations declare readOnlyHint=true and idempotentHint=true. The description adds that the basis is stable and identical inputs yield the same artifactId, reinforcing idempotency. No contradiction with annotations, and adds useful context beyond them.

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 two sentences, concise and front-loaded with the purpose. The second sentence adds a useful property without redundancy. Slightly more detail could be added without harming conciseness.

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 (16 parameters, nested objects, output schema) and numerous sibling tools, the description is insufficient. It does not explain the output, the role of parameters, or how this tool fits among alternatives like verification_bundle_artifact.

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?

Schema description coverage is 0%, and the description does not explain any of the 16 parameters. The brief mention of components (implementation brief, change plan, etc.) does not map to specific parameters or their meanings, leaving agents with no guidance.

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 composes a review bundle from components (implementation brief, change plan, etc.) for reviewer-facing change inspection. However, it does not explicitly differentiate from sibling artifact tools like verification_bundle_artifact or task_preflight_artifact.

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 that identical inputs produce the same artifactId for deduplication but provides no guidance on when to use this tool versus alternatives or any prerequisites.

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

route_contextroute_contextA
Read-onlyIdempotent

Neighborhood composer for one route: combines route_trace route resolution, file_health handler summary, imports_deps direct imports/dependents, schema_usage touches, trace_rpc downstream table edges, and db_rls policy surfaces.

ParametersJSON Schema
NameRequiredDescriptionDefault
routeYes
projectIdNo
projectRefNo
maxPerSectionNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
routeYes
trustYes
_hintsYes
toolNameYes
warningsYes
projectIdYes
generatedAtYes
handlerFileYes
rlsPoliciesYes
evidenceRefsYes
reefExecutionYes
resolvedRouteYes
downstreamRpcsYes
inboundImportsYes
outboundImportsYes
downstreamTablesYes

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true. The description adds value by listing the combined data sources but does not disclose additional behavioral traits such as performance implications or authentication requirements beyond the annotations.

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 sentence that front-loads the key idea ('Neighborhood composer for one route') and lists components concisely. However, it could benefit from slight restructuring for easier parsing.

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?

Output schema exists, so the lack of return value description is acceptable. However, the description does not cover how parameters affect the output, error conditions, or what happens when data is missing. It is adequate but not comprehensive.

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, and the description does not explain any of the parameters (projectId, projectRef, route, maxPerSection). The agent must rely solely on parameter names, which is insufficient for correct invocation.

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 as a 'neighborhood composer for one route' and lists the specific components it combines (route_trace, file_health, imports_deps, etc.), making it distinct from sibling tools like route_trace or imports_deps.

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 a comprehensive overview of a route's context is needed, but it does not provide explicit guidance on when to use this tool versus alternatives like rpc_neighborhood or route_trace, nor does it mention exclusions.

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

route_traceroute_traceB
Read-onlyIdempotent

Answer tool for route questions: trace a route to the indexed handler, matching files, and nearby evidence.

ParametersJSON Schema
NameRequiredDescriptionDefault
routeYes
projectIdNo
projectRefNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
_hintsYes
resultYes
toolNameYes
projectIdYes

TDQS

B3.1/5.0
Behavior4/5

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

The description states it 'trace[s] a route,' consistent with the readOnlyHint=true and idempotentHint=true annotations. It adds context about matching files and nearby evidence, which goes beyond the annotations. No contradiction.

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 a single sentence, concise but slightly vague. It front-loads 'Answer tool for route questions,' which is helpful but lacks structure.

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?

With 3 parameters (0% schema coverage) and an output schema present, the description is too brief. It omits parameter details and does not leverage the output schema context.

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?

Schema description coverage is 0%, so the description must explain parameters. It does not mention projectId, projectRef, or route at all, leaving the agent to guess their meaning.

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 it is an 'Answer tool for route questions' that 'trace a route to the indexed handler, matching files, and nearby evidence.' It specifies the verb (trace) and resource (route), but does not differentiate from siblings like route_context or trace_edge, which also deal with routes.

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 only says 'Answer tool for route questions,' implying its use for route-related queries. However, it provides no explicit guidance on when to use this tool over alternatives like route_context or trace_* tools, nor does it mention when not to use it.

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

rpc_neighborhoodrpc_neighborhoodB
Read-onlyIdempotent

Neighborhood composer for one RPC: combines db_rpc-equivalent schema snapshot signature/body, schema_usage app-code callers, trace_rpc function-to-table refs, and db_rls policies on touched tables into one bounded bundle.

ParametersJSON Schema
NameRequiredDescriptionDefault
rpcNameYes
argTypesNo
projectIdNo
projectRefNo
schemaNameNo
maxPerSectionNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
rpcYes
trustYes
_hintsYes
callersYes
rpcNameYes
argTypesNo
toolNameYes
warningsYes
projectIdYes
schemaNameYes
generatedAtYes
rlsPoliciesYes
evidenceRefsYes
tablesTouchedYes

TDQS

B3.2/5.0
Behavior3/5

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

The annotations declare readOnlyHint and idempotentHint true, so the description is not required to restate those. However, the description adds no further behavioral traits (e.g., cost, permissions, failure modes). It only describes the composition, which is informational, not behavioral.

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 concise sentence with no fluff. It is front-loaded with the purpose. However, the dense technical jargon ('db_rpc-equivalent schema snapshot signature/body') may reduce clarity for some agents, but it is not excessive.

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 complexity (6 parameters, output schema present) and many siblings, the description is incomplete. It does not explain parameters or provide any usage context beyond the bundle composition. The output schema exists, so return values are covered, but parameter guidance is missing.

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 0% schema coverage, the description must compensate, but it does not explain any of the six parameters. Only rpcName is indirectly referenced. No semantic meaning is added for projectId, projectRef, schemaName, argTypes, or maxPerSection.

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 combines multiple data sources (db_rpc-equivalent schema snapshot, schema_usage callers, trace_rpc refs, db_rls policies) into one bundle for a single RPC. It is specific and distinguishes from sibling tools like db_rpc, schema_usage, trace_rpc, and db_rls by being an aggregator.

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 composing a neighborhood bundle but does not explicitly state when to use this tool versus alternatives, nor does it provide exclusions or prerequisites. The context is clear but lacks explicit guidance.

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

rule_memoryrule_memoryA
Read-onlyIdempotent

Reef 9 rule-memory view: aggregate Reef rule descriptors and finding history so agents can see which rules are active, acknowledged, resolved, or suppressed before making changes.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
projectIdNo
projectRefNo
sourceNamespaceNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
_hintsYes
entriesYes
toolNameYes
warningsYes
projectIdYes
projectRootYes
totalReturnedYes

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already provide readOnlyHint and idempotentHint. Description adds contextual detail about aggregating descriptors and history, but does not disclose additional behavioral traits like auth requirements or data freshness.

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?

Single sentence that efficiently conveys purpose and usage context with no redundancy. Every word adds value despite some internal jargon ('Reef 9').

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 presence of an output schema and 4 parameters with no descriptions in schema or description, the tool lacks essential information about parameter semantics. The description does not explain how to invoke the tool (e.g., which parameters are needed). This is a significant gap for an AI agent.

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?

Schema description coverage is 0%, and the description offers no information about any of the 4 parameters (projectId, projectRef, sourceNamespace, limit). Description fails to compensate for missing schema descriptions, leaving agents without guidance on how to use 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?

Description clearly states the tool aggregates rule descriptors and finding history to show rule states (active, acknowledged, resolved, suppressed). It distinguishes from siblings like list_reef_rules by focusing on memory/state before changes.

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?

Explicitly says 'before making changes' providing clear usage context. However, it does not mention when not to use or suggest alternative tools, slightly limiting guidance.

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

rule_pack_validaterule_pack_validateA
Read-onlyIdempotent

Read-only Reef rule-pack authoring tool: validate .mako/rules YAML packs, including canonicalHelper cross-file declarations; return pack/rule counts, schema errors, and optional ReefRuleDescriptor previews without running diagnostics or writing Reef state.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdNo
projectRefNo
includeDescriptorsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
packsYes
rulesYes
_hintsYes
summaryYes
toolNameYes
warningsYes
projectIdYes
projectRootYes

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint, idempotentHint, and openWorldHint. The description reinforces these by calling itself 'Read-only' and adds specific behavioral traits: it validates without running diagnostics or writing state, and returns counts and schema errors. Although consistent, the annotation coverage is high, so the description adds moderate extra value.

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 front-loads key information ('Read-only') and efficiently conveys the tool's purpose, scope, and limitations with no extraneous words. Every part earns its place.

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?

While the output schema exists and the description mentions what is returned (counts, errors, optional descriptors), it completely omits parameter guidance. For a tool with three parameters and no parameter descriptions, this makes the description insufficient for correct invocation, reducing contextual completeness.

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 input schema has three parameters (projectId, projectRef, includeDescriptors) with 0% description coverage in the schema. The description does not explain the purpose or usage of any parameter, leaving the agent to guess how to fill them. This is a critical gap that severely impacts usability.

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 identifies it as a read-only validation tool for rule packs, specifying the file types (.mako/rules), the scope (cross-file declarations), and the outputs (pack/rule counts, schema errors, optional descriptors). It effectively distinguishes itself from siblings by explicitly stating it does not run diagnostics or write Reef state.

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 during rule-pack authoring and clearly states what the tool does and does not do (no diagnostics, no writing). However, it does not explicitly mention alternatives or when to choose this over other rule-related tools, so guidance on tool selection is indirect.

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

runtime_telemetry_reportruntime_telemetry_reportA
Read-onlyIdempotent

Read-only inspection over mako_usefulness_events (Phase 8.1): return aggregate counts (by decisionKind, by family, by grade) and a bounded list of recent events, filterable by decisionKind, family, requestId, and ISO time window. Use to verify usefulness capture is flowing or to triage why a decision site emitted the grade it did. Never writes to the event table.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
sinceNo
untilNo
familyNo
projectIdNo
requestIdNo
projectRefNo
decisionKindNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
_hintsYes
eventsYes
byGradeYes
byFamilyYes
toolNameYes
warningsYes
projectIdYes
truncatedYes
byReasonCodeYes
byDecisionKindYes
eventsInWindowYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true. The description reinforces these by stating 'Read-only inspection' and 'Never writes to the event table,' and adds behavioral details like returning aggregate counts and a bounded list. No contradictions with 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?

Two clear, well-structured sentences, front-loaded with the core action and outputs. No extraneous 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?

The description covers purpose, usage, and key filters. It does not detail the output schema (but that is provided separately) or mention pagination. For a report tool with 8 optional parameters and an output schema, it is adequately complete.

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?

With schema description coverage at 0%, the description must compensate. It mentions four filterable parameters (decisionKind, family, requestId, ISO time window) but omits limit, since, until, projectId, and projectRef. This provides partial but incomplete enrichment over the 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 is a read-only inspection over mako_usefulness_events, returning aggregate counts and a bounded list of recent events, with specific filter parameters. It uses specific verbs and resources, distinguishing it from sibling tools like agent_feedback_report, though not explicitly contrasting.

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 use cases: 'verify usefulness capture is flowing' and 'triage why a decision site emitted the grade it did,' plus a clear 'Never writes to the event table' disclaimer. However, it does not mention when not to use the tool or name alternative tools.

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

schema_usageschema_usageA
Read-onlyIdempotent

Answer tool for schema questions: find where an indexed schema object is defined and directly referenced in app code. RPC-mediated touches are intentionally excluded; use trace_rpc, route_context, table_neighborhood, or flow_map for transitive schema paths.

ParametersJSON Schema
NameRequiredDescriptionDefault
objectYes
schemaNo
projectIdNo
projectRefNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
_hintsYes
resultYes
toolNameYes
projectIdYes
reefExecutionNo
schemaFreshnessNo

TDQS

A4.2/5.0
Behavior4/5

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

Annotations indicate readOnlyHint=true and idempotentHint=true, so the description's addition that it only finds direct references (not transitive) provides valuable behavioral context beyond annotations. No contradictions.

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: first states purpose concisely, second adds critical usage guidelines. No filler; every sentence serves a purpose.

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 output schema exists, return values need no explanation. The description covers purpose and usage boundaries, but it omits any mention of prerequisites (e.g., indexing) and leaves parameter semantics unaddressed, making it just 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?

Input schema has 4 parameters with 0% description coverage (no schema descriptions), but the tool description does not explain the meaning or usage of any parameter (e.g., projectId, projectRef, object, schema). The description only mentions 'indexed schema object' without mapping to 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 'find where an indexed schema object is defined and directly referenced in app code', which is a specific verb and resource. It distinguishes itself from sibling tools by listing alternatives for transitive paths.

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

Usage Guidelines5/5

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

The description explicitly states 'RPC-mediated touches are intentionally excluded' and provides four alternative sibling tools for transitive schema paths, giving clear when-to-use and when-not-to-use guidance.

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

session_handoffsession_handoffC
Read-onlyIdempotent

Operator tool for derived project-state handoff: summarize recent answer traces, active unresolved focus, and recorded follow-up momentum.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
projectIdNo
projectRefNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
_hintsYes
resultYes
toolNameYes
projectIdYes

TDQS

C2.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint and idempotentHint. The description adds that it summarizes derived project state, which aligns with read-only behavior. No contradictions, but no further behavioral details beyond annotations.

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 sentence of 15 words, efficiently conveying the core purpose. It is front-loaded and avoids unnecessary verbiage.

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?

Despite having an output schema, the description omits details about parameter distinctions, the nature of the handoff output, or any prerequisites. Given three parameters and no schema descriptions, the description is insufficient for complete understanding.

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 input schema has zero description coverage, and the description does not explain any parameter's meaning or usage. Without clarifying projectId, projectRef, or limit, the agent lacks guidance on how to correctly invoke the tool.

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: summarizing recent answer traces, active unresolved focus, and recorded follow-up momentum for project-state handoff. It distinguishes from siblings by focusing on derived project state rather than raw artifacts or context packets.

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 explicit guidance is provided on when to use this tool versus alternatives. It only says 'Operator tool for derived project-state handoff,' implying use during handoffs but lacking when-not or alternative references.

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

shell_runA
Destructive

Run a shell command with arguments as a list (never concatenated). cwd is locked to the project root or a subdirectory; env keys must be allowlisted.

ParametersJSON Schema
NameRequiredDescriptionDefault
cwdNoProject-relative working directory (defaults to project root)
envNoExtra env vars; keys outside the allowlist are rejected
argsYesArgument list — never concatenated into a shell string. Pass [] for no args.
commandYesExecutable name (no shell metacharacters)
timeoutMsNoSoft timeout in ms (default 30000, hard kill 120000)

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
errorYes
_hintsYes
requiresHarnessSessionYes

TDQS

A4/5.0
Behavior4/5

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

The description adds behavioral context beyond annotations: args must be a list (safety), cwd is restricted (security), env keys must be allowlisted (security). Annotations already mark destructiveHint=true, so the description reinforces safety concerns but does not elaborate on return values or error handling.

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: two sentences without any fluff. It front-loads the core purpose and immediately covers critical constraints. Every sentence adds value.

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's complexity (shell execution, security, environment) and rich schema (100% coverage, output schema exists), the description covers key constraints. It does not explain success/failure behavior, but output schema likely handles that. Minor missing: no mention of stdout/stderr capture or process lifecycle.

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?

Input schema has 100% coverage with parameter descriptions. The description mostly reiterates schema details (e.g., args never concatenated, env allowlisted). It adds minor clarification for cwd ('locked to project root or subdirectory'). Baseline score of 3 is appropriate as schema already provides adequate meaning.

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: 'Run a shell command with arguments as a list (never concatenated).' It specifies the action (run), resource (shell command), and key constraints (args list, cwd locked, env allowlisted). It is distinctive from siblings which are mostly non-shell tools.

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 provides constraints (args as list, cwd locked, env allowlisted) but does not explicitly state when to use this tool versus alternatives. It implies usage for secure command execution but lacks guidance on when not to use or mention of alternative tools.

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

suggestsuggestB
Read-onlyIdempotent

Workflow tool for tool-chain recommendations: choose one canonical workflow or a short ordered sequence without executing hidden planner logic.

ParametersJSON Schema
NameRequiredDescriptionDefault
maxStepsNo
questionYes
directionNo
projectIdNo
projectRefNo
startEntityNo
targetEntityNo
traversalDepthNo
includeHeuristicEdgesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
_hintsYes
resultYes
toolNameYes
projectIdYes

TDQS

B3.1/5.0
Behavior4/5

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

Annotations already declare readOnly and idempotent. The description adds that it does not execute hidden planner logic, which reassures about side effects. This adds value beyond annotations.

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 a single sentence, which is concise but lacks detail on inputs and outputs. It front-loads the purpose but omits critical parameter guidance.

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 9 parameters and no schema descriptions, the description is severely incomplete. It does not cover parameter roles, return type (though output schema exists), or constraints. The agent would struggle to use it correctly without additional context.

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 0% schema description coverage, the description fails to explain any of the 9 parameters, including 'question' which is required. The agent cannot infer correct parameter usage from the description alone.

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 states it as a workflow tool for tool-chain recommendations, specifying it selects a canonical workflow or short ordered sequence. It clearly distinguishes from siblings by its unique recommendation purpose, though it could be more explicit about the output format.

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?

It mentions 'without executing hidden planner logic', suggesting it is for static recommendations. However, it doesn't provide explicit when-to-use or alternatives, leaving the agent to infer from sibling names.

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

symbols_ofsymbols_ofB
Read-onlyIdempotent

Symbols tool for declarations: list the indexed symbols declared in a file.

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYes
projectIdNo
projectRefNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
fileYes
_hintsYes
symbolsYes
toolNameYes
warningsYes
projectIdYes
reefExecutionYes
resolvedFilePathYes

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=true and idempotentHint=true. The description adds that symbols are indexed and declared, but no additional behavioral traits like error handling or scope. Adequate but not enriched.

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?

Single sentence, 12 words, no wasted text. However, it is too brief to cover needed information.

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?

Output schema exists, so return values not needed. But description omits parameter guidance and context for optional params. Acceptable for a simple tool but not fully complete.

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?

Schema description coverage is 0%, yet the description provides no explanation of parameters, only implicitly mentioning 'file'. No details on projectId or projectRef meaning or usage.

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 lists indexed symbols declared in a file, using a specific verb and resource. It distinguishes from sibling tools like exports_of or imports_* which handle different aspects.

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 vs alternatives, no exclusions or context. The description only states what it does, not when to choose it.

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

table_neighborhoodtable_neighborhoodA
Read-onlyIdempotent

Neighborhood composer for one table: combines db_table_schema/db_rls-equivalent schema snapshot data, schema_usage read/write sites, trace_table RPC-to-table edges, and route_trace handler routes into one bounded typed bundle.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdNo
tableNameYes
projectRefNo
schemaNameNo
maxPerSectionNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
rlsYes
readsYes
tableYes
trustYes
_hintsYes
writesYes
toolNameYes
warningsYes
projectIdYes
tableNameYes
schemaNameYes
generatedAtYes
evidenceRefsYes
dependentRpcsYes
dependentRoutesYes

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint and idempotentHint true, so the description adds value by explaining the composition of data from multiple sources, but lacks further behavioral details (e.g., performance, pagination). No contradiction with 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 a single sentence that efficiently conveys the tool's purpose without superfluous 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 existence of an output schema and annotations, the description sufficiently outlines the tool's function. It could mention the role of maxPerSection, but overall it is complete enough for a data composition 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 indirectly explains tableName and schemaName via the data sources, but does not detail projectId, projectRef, or maxPerSection. Some context is provided but not per-parameter clarity.

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?

Description clearly states it is a 'neighborhood composer for one table' that combines multiple data sources (schema, usage, trace edges, routes) into one bundle, distinguishing it from sibling tools like db_table_schema or schema_usage.

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 use for comprehensive table analysis by listing the combined data types, but does not explicitly state when to use this tool over individual queries or provide exclusion criteria.

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

task_preflight_artifacttask_preflight_artifactA
Read-onlyIdempotent

Artifact tool for start-of-work preparation: compose implementation brief, verification plan, change plan, and flow map into one typed preflight artifact. Basis is stable — identical inputs produce the same artifactId, so callers may dedupe on it.

ParametersJSON Schema
NameRequiredDescriptionDefault
exportNo
directionNo
edgeKindsNo
projectIdNo
queryArgsNo
queryKindYes
queryTextYes
projectRefNo
startEntityYes
targetEntityYes
traversalDepthNo
includeHeuristicEdgesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
_hintsYes
resultYes
exportedNo
toolNameYes
projectIdYes

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint and idempotentHint. The description adds value by stating that identical inputs produce the same artifactId for deduplication, reinforcing deterministic behavior. No contradictions with 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?

Two sentences with no fluff. The first defines purpose, the second adds important dedup info. Efficient and well-structured.

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?

While the output concept is explained, the description fails to cover the input parameters (12 params, 4 required) and usage context. The presence of an output schema does not compensate for the lack of parameter semantics.

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?

Schema description coverage is 0%, and the description does not mention any parameters. With 12 parameters including nested objects, the agent receives no guidance on parameter meaning, which is a critical gap.

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 composes an implementation brief, verification plan, change plan, and flow map into one typed preflight artifact for start-of-work preparation. It distinguishes itself from siblings like file_preflight or flow_map by specifying the combination of multiple documents.

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 use for start-of-work preparation but does not provide explicit when-to-use or when-not-to-use guidance. No alternatives or exclusions are mentioned, leaving the agent to infer context from siblings.

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

tenant_leak_audittenant_leak_auditB
Read-onlyIdempotent

Operator tool for tenant-boundary review: audit tenant-keyed tables, RLS posture, and RPC/code touch points without making generic security-score claims.

ParametersJSON Schema
NameRequiredDescriptionDefault
freshenNo
projectIdNo
projectRefNo
maxPerSectionNo
includeFullResultsNo
acknowledgeAdvisoryYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
_hintsYes
resultYes
toolNameYes
projectIdYes

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint and idempotentHint true, so the description need not restate safety. However, the description adds no behavioral traits beyond the annotation scope; it only describes scope of audit. It does not mention potential performance impact, permission requirements, or side effects like advisory acknowledgement. Scores 3 because annotations cover safety but description adds minimal 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.

Conciseness5/5

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

A single sentence that front-loads 'Operator tool for tenant-boundary review' and efficiently specifies the audit targets. Every word adds value; no fluff. Excellent conciseness.

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?

Despite having six parameters and an output schema, the description is extremely sparse. It does not explain the required acknowledgeAdvisory parameter, nor the optional parameters, nor when to invoke this tool. The agent is left uninformed about inputs, outputs, and context. Completeness is low.

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?

Input schema has 0% description coverage, requiring the description to explain parameters. The description fails to mention any of the six parameters (projectId, projectRef, acknowledgeAdvisory, freshen, includeFullResults, maxPerSection). No parameter purpose is indicated, leaving the agent without guidance on how to set them.

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 uses a specific verb ('audit') and clearly specifies the resources audited: tenant-keyed tables, RLS posture, and RPC/code touch points. It explicitly distinguishes itself from generic security-score tools by stating 'without making generic security-score claims'. This clearly defines the tool's purpose and differentiates it from siblings like db_rls.

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 explicit guidance on when to use this tool versus alternatives is provided. The phrase 'Operator tool for tenant-boundary review' suggests a niche but does not include when-not-to-use or alternative scenarios. There is no mention of prerequisites or typical use cases.

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

tool_batchtool_batchA
Read-only

Read-only batching wrapper for independent Mako lookups. The input schema only accepts batchable read-only tools; runtime also rejects mutation tools and recursive tool_batch calls defensively. With continueOnError=true, operations run with bounded concurrency while results preserve input order; tune maxConcurrency to trade latency against shared-store pressure. continueOnError=false keeps fail-fast sequential execution. Returns labeled sub-results with per-op duration plus summary latency metadata including totalOpDurationMs and slowestOp. Use verbosity: "compact" or per-op resultMode: "summary" to return compact summaries instead of full payloads; per-op resultMode: "full" keeps the full output. Each sub-op's projectId is overridden with the parent batch's resolved project, so all ops run against one project. Use to reduce round-trips after a context_packet recommends several expansions.

ParametersJSON Schema
NameRequiredDescriptionDefault
opsYes
maxOpsNo
projectIdNo
verbosityNo
projectRefNo
maxConcurrencyNo
continueOnErrorNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
_hintsYes
resultsYes
summaryYes
toolNameYes
warningsYes
projectIdYes
projectRootYes

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare readOnlyHint, but the description adds rich behavioral details: runtime rejection of mutation/recursion, bounded concurrency with order preservation, projectId override, and output metadata (latency, per-op duration). No contradiction with annotations.

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 informative and front-loaded with the core purpose. It is slightly long but every sentence adds value, covering error modes, concurrency, output, and project isolation. Could be trimmed but remains effective.

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

Completeness5/5

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

For a complex tool with 7 parameters and nested ops, the description is thorough. It covers batching semantics, concurrency, error handling, output format (label, duration, summary latency), and project override. Output schema exists but description still adds context. No gaps noted.

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 coverage, the description must compensate. It explains the key parameters (ops, maxOps, projectId, verbosity, maxConcurrency, continueOnError) and their effects, such as compact vs full modes and error handling behavior. It lacks a bit of detail on projectRef but overall provides meaningful semantics.

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 precisely states the tool is a 'Read-only batching wrapper for independent Mako lookups', clearly distinguishing it from sibling tools by mentioning reduction of round-trips after context_packet expansions.

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 explains when to use (after context_packet recommends expansions), constraints on input tools, and details of continueOnError, maxConcurrency, verbosity, and resultMode. It doesn't explicitly state when not to use but implies via runtime checks.

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

trace_edgetrace_edgeA
Read-onlyIdempotent

Trace a handler / edge function: its own route, app-code callers (ast-grep on fetch('/functions/v1/$NAME') and supabase.functions.invoke('$NAME')), tables and RPCs the handler touches, and DB triggers whose body references the name. Snapshot-strict.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
projectIdNo
projectRefNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
_hintsYes
resultYes
toolNameYes
projectIdYes

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint. Description adds useful behavioral details like 'snapshot-strict' and lists trace components. No contradiction. Could further explain 'snapshot-strict' for clarity.

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?

Single sentence efficiently conveys all key information: action, resource, what is traced. No unnecessary words.

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?

Covers core functionality but omits parameter descriptions and does not elaborate on 'snapshot-strict' implications. Output schema exists but description could be more complete regarding input parameters and output interpretation.

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?

Input schema has 3 parameters (projectId, projectRef, name) with 0% description coverage. Description does not mention or explain any parameters. It implies name is the function name but lacks clarity on projectId and projectRef.

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?

Description clearly states it traces a handler/edge function, listing specific items (route, app-code callers via fetch/invoke patterns, tables/RPCs, DB triggers). This distinguishes it from sibling tools like trace_file, trace_rpc, trace_table.

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?

Provides clear context on what the tool does and what it covers (callers via ast-grep patterns, DB triggers). However, it does not explicitly state when to use this tool versus alternatives or when not to use it.

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

trace_errortrace_errorA
Read-onlyIdempotent

Trace an error term across throw sites (ast-grep throw new Error($MSG), throw new $ERR($MSG)), catch handlers (ast-grep try/catch), and PL/pgSQL bodies that reference the term. FTS narrows the ast-grep pass. Snapshot-strict.

ParametersJSON Schema
NameRequiredDescriptionDefault
termYes
projectIdNo
projectRefNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
_hintsYes
resultYes
toolNameYes
projectIdYes

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnly and idempotent hints. The description adds valuable behavioral context beyond annotations: 'FTS narrows the ast-grep pass' and 'Snapshot-strict' indicate query optimization and consistency guarantees.

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, consisting of two sentences with no wasted words. However, it lacks structure for parameter explanations.

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?

The description covers the core functionality and behavioral traits, but misses parameter semantics and usage guidelines. Given an output schema exists, return values are not needed, but the description could be more complete regarding input parameters and comparative usage.

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. The description mentions only the 'term' parameter implicitly ('error term'), but does not explain the optional projectId and projectRef parameters, leaving their 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 specifies exactly what the tool does: trace an error term across throw sites (with ast-grep patterns), catch handlers, and PL/pgSQL bodies. It clearly distinguishes from sibling trace tools (e.g., trace_edge, trace_file) by focusing on error-specific constructs.

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 error term tracing but provides no explicit guidance on when to use this tool versus other trace tools (e.g., trace_edge for control flow). No 'when-not' or alternative tools are mentioned.

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

trace_filetrace_fileA
Read-onlyIdempotent

Trace a file end-to-end from the snapshot: declared symbols, outbound imports, inbound dependents, routes contributed, and related evidence. Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYes
projectIdNo
projectRefNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
_hintsYes
resultYes
toolNameYes
projectIdYes

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint. The description adds specific details about the trace content (symbols, imports, dependents, routes, evidence), providing useful behavioral context beyond annotations.

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 sentence that front-loads the main purpose and lists key capabilities. It is concise but lacks parameter documentation, which would improve structure.

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?

The tool has an output schema, so return values are covered. However, with three parameters and no schema descriptions, the description should explain projectId and projectRef to be complete.

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 three parameters (projectId, projectRef, file) with 0% schema description coverage. The description does not explain any parameters, leaving agents to infer their meaning from names alone.

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 traces a file end-to-end, listing specific aspects like declared symbols, imports, dependents, and routes. This differentiates it from sibling tools like exports_of, imports_deps, or trace_edge.

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 does not explicitly state when to use this tool versus alternatives. While the list of traced elements helps infer usage, no guidance on exclusions or prerequisites is provided.

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

trace_rpctrace_rpcA
Read-onlyIdempotent

Trace an RPC end-to-end: the RPC definition (searchSchemaObjects filtered to rpc), other PL/pgSQL bodies whose body text references it (searchSchemaBodies), overload-aware table refs (listFunctionTableRefs), and app-code .rpc('$FN') call sites (FTS-retrieval + ast-grep proof). Snapshot-strict.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
schemaNo
argTypesNo
projectIdNo
projectRefNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
_hintsYes
resultYes
toolNameYes
projectIdYes

TDQS

A3.7/5.0
Behavior4/5

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

Adds important context beyond annotations: 'Snapshot-strict' indicating consistency, and internal steps (searchSchemaObjects, etc.). No contradiction with readOnlyHint=true and idempotentHint=true.

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?

Well-structured with a front-loaded purpose and colon-separated details. Slightly dense but efficient; every sentence adds value.

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?

Covers main outputs but lacks detail on output schema (though it exists) and parameter relationships. Does not explain how argTypes disambiguates overloads or when schema 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%, yet the description does not explain the purpose of individual parameters (projectId, projectRef, schema, argTypes). Only mentions the function name placeholder, leaving agent to guess parameter roles.

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?

Clearly defines 'Trace an RPC end-to-end' with specific sub-components (definition, bodies, table refs, app-code). Distinguishes from sibling tracing tools like trace_table or trace_edge by focusing on RPC-specific aspects.

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?

Implies usage for tracing an RPC but provides no explicit when-to-use or when-not-to-use guidance. Does not compare with sibling tools like rpc_neighborhood or trace_error.

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

trace_tabletrace_tableA
Read-onlyIdempotent

Trace a table end-to-end: columns, indexes, foreign keys, RLS, triggers (via getSchemaTableSnapshot), schema-scoped RPC → table edges (via listFunctionTableRefs), and app-code .from('$TABLE') call sites (FTS-retrieval + ast-grep proof). Snapshot-strict.

ParametersJSON Schema
NameRequiredDescriptionDefault
tableYes
schemaNo
projectIdNo
projectRefNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
_hintsYes
resultYes
toolNameYes
projectIdYes

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already declare readOnly and idempotent. Description adds 'Snapshot-strict' and reveals internal mechanisms (getSchemaTableSnapshot, listFunctionTableRefs, FTS, ast-grep), giving insight into its behavior beyond annotations.

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 (3 sentences) and front-loaded with the purpose. However, the first sentence is a dense list of components, which slightly reduces clarity.

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 complexity and presence of output schema, the description covers scope and internal methods but lacks prerequisites, error conditions, or output format details. Adequate but with gaps.

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 0% schema description coverage, the description must explain parameters. It does not mention projectId, projectRef, or schema, leaving their purpose unclear. Only 'table' is implied by the context.

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 uses the verb 'Trace' on resource 'table' and lists specific components (columns, indexes, foreign keys, RLS, triggers, RPC edges, app-code call sites). It clearly distinguishes from sibling tools like trace_edge, trace_rpc, etc., by focusing on a single table end-to-end.

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 explains what the tool does comprehensively but lacks explicit guidance on when to use it over siblings like 'table_neighborhood' or 'trace_edge'. No conditions or alternatives mentioned.

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

typescript_diagnosticstypescript_diagnosticsA

Explicit Reef ingestion tool for semantic TypeScript compiler diagnostics: read tsconfig, run the TypeScript program with no emit, persist working-tree ProjectFinding rows under source typescript, and return bounded findings. This may run a broad typecheck; use diagnostic_refresh with typescript_syntax for syntax-only refresh.

ParametersJSON Schema
NameRequiredDescriptionDefault
filesNo
projectIdNo
projectRefNo
maxFindingsNo
tsconfigPathNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
_hintsYes
statusYes
findingsYes
toolNameYes
warningsYes
errorTextNo
projectIdYes
truncatedYes
durationMsYes
projectRootYes
tsconfigPathNo
totalFindingsYes
requestedFilesYes
checkedFileCountYes
persistedFindingsYes

TDQS

A4.3/5.0
Behavior4/5

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

The description discloses key behavioral traits: it persists ProjectFinding rows (a side effect), runs a broad typecheck, and returns bounded findings. Annotations already indicate not read-only and not idempotent, but the description adds context about persistence and typecheck scope. However, it doesn't detail whether the operation is destructive or any rate limiting.

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: two sentences with no filler. It front-loads the core purpose ('Explicit Reef ingestion tool for semantic TypeScript compiler diagnostics') and efficiently adds usage guidance. Every sentence adds value.

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 complexity (5 parameters, side effects, output schema present), the description covers the primary behavior and distinguishes from a sibling. The output schema likely handles return values, so not describing them is acceptable. However, it could briefly mention the effect on the working tree or that it may be slow due to broad typecheck.

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 by explaining each parameter. It only implies tsconfigPath and maxFindings but completely omits projectId, projectRef, and files. These are not self-explanatory from names alone, leaving the agent without critical details about what values are expected.

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 identifies the tool as a 'semantic TypeScript compiler diagnostics' tool, specifying exactly what it does: read tsconfig, run TypeScript with no emit, persist findings, and return bounded results. It explicitly distinguishes from the sibling tool diagnostic_refresh for syntax-only refresh, making its purpose unambiguous.

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

Usage Guidelines5/5

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

The description provides explicit guidance on when to use this tool versus alternatives: 'This may run a broad typecheck; use diagnostic_refresh with typescript_syntax for syntax-only refresh.' It tells the agent exactly which sibling tool to use for a lighter operation, making usage decisions clear.

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

verification_bundle_artifactverification_bundle_artifactA
Read-onlyIdempotent

Artifact tool for safe completion and verification: compose verification plan, project-intelligence signals, and optional tenant audit into one typed verification bundle. Basis is stable by default; artifactId shifts across calls only when includeSessionHandoff or includeIssuesNext is set, because those inputs are session-scoped. Dedupe is safe when both flags are off.

ParametersJSON Schema
NameRequiredDescriptionDefault
exportNo
traceIdNo
projectIdNo
queryArgsNo
queryKindYes
queryTextYes
projectRefNo
issuesLimitNo
sessionLimitNo
includeIssuesNextNo
freshenTenantAuditNo
includeTenantAuditNo
includeSessionHandoffNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
_hintsYes
resultYes
exportedNo
toolNameYes
projectIdYes

TDQS

A4.2/5.0
Behavior5/5

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

Adds significant behavioral info beyond annotations: basis stability, artifactId shifting conditions, dedupe safety. No contradiction with readOnly/idempotent hints.

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, front-loaded with purpose, each sentence adding unique value. No 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?

Output schema exists, so return values need not be detailed. However, with 13 parameters and no schema descriptions, the description omits essential param semantics, leaving a major gap for tool usage.

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 13 parameters, description mentions only two flags (includeSessionHandoff, includeIssuesNext) but fails to explain crucial parameters like queryKind, queryText, projectId, etc.

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 composes a verification bundle, specifying verb 'compose' and resource 'verification bundle'. It differentiates from siblings by emphasizing artifact nature and safety.

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?

Provides specific guidance on when artifactId shifts (includeSessionHandoff, includeIssuesNext) and dedupe safety (both flags off). However, lacks explicit when-not-to-use or alternative tool mentions.

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

verification_stateverification_stateA
Read-onlyIdempotent

Reef 8 verification state view: summarize whether cached diagnostic runs still cover the current working-tree overlay, including file-scoped recent runs, watcher diagnostic state, files modified after successful checks, and suggested verification actions. With files, runs only count when project-wide or scoped to those files.

ParametersJSON Schema
NameRequiredDescriptionDefault
filesNo
limitNo
sourcesNo
projectIdNo
projectRefNo
cacheStalenessMsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
_hintsYes
statusYes
sourcesYes
watcherNo
toolNameYes
warningsYes
projectIdYes
recentRunsYes
projectRootYes
changedFilesYes
reefExecutionYes
suggestedActionsYes

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already indicate readOnly and idempotent, so the description adds value by explaining the behavioral nuance: 'With files, runs only count when project-wide or scoped to those files.' This clarifies how file filtering affects the result, going beyond the 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?

Two well-structured sentences, front-loaded with purpose, no redundant or extraneous information. Every sentence contributes to understanding.

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 read-only state-view tool with an output schema, the description is fairly complete. It explains the core summary and the file-scoping behavior. However, it lacks guidance on when to use this tool vs siblings like diagnostic_refresh, and does not mention any prerequisites or limitations.

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%, and the description only minimally addresses one parameter ('files') by describing its effect. The other five parameters (projectId, projectRef, sources, limit, cacheStalenessMs) receive no explanation, leaving the agent to infer their semantics from names alone.

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 it is a 'verification state view' that summarizes coverage of cached diagnostic runs over the working-tree overlay. It lists specific aspects like file-scoped recent runs, watcher diagnostic state, and suggested actions, which distinguishes it from sibling tools that produce artifacts or perform updates.

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 does not explicitly state when to use this tool versus alternatives like diagnostic_refresh or verification_bundle_artifact. It implies usage for checking coverage but provides no exclusions or comparative guidance, which is a gap given the many siblings.

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

workflow_packetworkflow_packetC
Read-onlyIdempotent

Workflow tool: generate a typed workflow packet from a project-scoped query answer and expose watch/surface metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
scopeNo
familyYes
followupNo
projectIdNo
queryArgsNo
queryKindYes
queryTextYes
watchModeNo
focusKindsNo
projectRefNo
focusItemIdsNo
refreshReasonNo
referencePrecedentsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
_hintsYes
resultYes
toolNameYes
projectIdYes

TDQS

C2.6/5.0
Behavior3/5

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

The description adds some context beyond annotations by mentioning 'expose watch/surface metadata'. Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is clear. However, the description does not detail what happens to the watch mode or the nature of exposed metadata.

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 single-sentence and front-loaded, but it is too brief for a complex tool with 13 parameters. It sacrifices necessary detail for brevity, making it less useful than a slightly longer, more informative description.

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?

Given the tool's high complexity (13 parameters, many enums, nested objects), the description is severely incomplete. It does not explain what a 'typed workflow packet' is, how watch mode works, or how to use the output schema. The description fails to provide enough context for an agent to use the tool correctly.

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 input schema has 0% description coverage, yet the description provides no information about any of the 13 parameters. It fails to explain what parameters like 'family', 'queryKind', or 'scope' mean or how to use them, leaving the agent without essential guidance.

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 identifies the tool's action (generate) and resource (typed workflow packet) and mentions key features (expose watch/surface metadata). However, it does not distinguish from sibling tools like 'context_packet' or 'verification_bundle_artifact', which may 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?

No guidance is provided on when to use this tool versus alternatives. The description implies it is for generating workflow packets from query answers, but does not specify preconditions, exclusions, or when not to use it.

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

working_tree_overlayworking_tree_overlayB

Advisory Reef mutation: snapshot working-tree file facts for explicit files, watcher-dirty paths, or non-fresh indexed paths. Persists file_snapshot facts with size, mtime, line count, sha256, or deleted state; it does not reparse AST, imports, routes, or schema.

ParametersJSON Schema
NameRequiredDescriptionDefault
filesNo
maxFilesNo
projectIdNo
projectRefNo
includeUnindexedNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
factsYes
_hintsYes
toolNameYes
warningsYes
projectIdYes
projectRootYes
deletedFilesYes
scannedFilesYes
skippedFilesYes

TDQS

B3.2/5.0
Behavior4/5

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

The description clearly states that this is an 'Advisory Reef mutation' and lists what facts are persisted (size, mtime, line count, sha256, deleted state) and what is NOT done (no AST, imports, routes, schema). This adds meaningful behavioral context beyond the annotations (which only provide flags), though it could mention whether the mutation is reversible or has 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.

Conciseness4/5

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

The description is concise (two sentences) and front-loads the purpose. However, it could be more structured to include parameter roles, which would improve usability without adding much length.

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 mutation tool with 5 parameters, 0% schema description coverage, and an output schema that is not described, the description is incomplete. It lacks parameter explanations, output format, prerequisites, and side-effect details, forcing the agent to rely on external knowledge.

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?

Schema description coverage is 0%, and the description does not explain any of the five parameters (projectId, projectRef, files, includeUnindexed, maxFiles). The mention of 'explicit files, watcher-dirty paths, or non-fresh indexed paths' alludes to filtering but does not map to the schema parameters. This is a critical gap.

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 uses a specific verb ('snapshot') and resource ('working-tree file facts'), clearly distinguishing it from siblings by stating what it does not do (AST, imports, routes, schema). It explicitly lists the fact types (size, mtime, etc.) and the scope (explicit files, watcher-dirty, non-fresh indexed).

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 file_facts or file_edit. There are no explicit when-to-use or when-not-to-use statements, leaving the agent to infer usage context 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.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 1 tool updatev0.4.3
    • Changedreef_ask5 fields changed
      • addedInput schema / properties / includeTrace
        Added value: +{
        +  "type": "boolean"
        +}
      • changedOutput schema / properties / answer / required
        Previous value: -[
        -  "summary",
        -  "confidence",
        -  "confidenceReasons",
        -  "decisionTrace",
        -  "nextQueries",
        -  "suggestedNextActions"
        -]New value: +[
        +  "summary",
        +  "confidence",
        +  "confidenceReasons",
        +  "nextQueries",
        +  "suggestedNextActions"
        +]
      • addedOutput schema / properties / limits / properties / includeTrace
        Added value: +{
        +  "type": "boolean"
        +}
      • changedOutput schema / properties / limits / required
        Previous value: -[
        -  "budgetTokens",
        -  "maxPrimaryContext",
        -  "maxRelatedContext",
        -  "maxOpenLoops",
        -  "evidenceMode",
        -  "maxEvidenceItemsPerSection"
        -]New value: +[
        +  "budgetTokens",
        +  "maxPrimaryContext",
        +  "maxRelatedContext",
        +  "maxOpenLoops",
        +  "evidenceMode",
        +  "maxEvidenceItemsPerSection",
        +  "includeTrace"
        +]
      • changedOutput schema / properties / queryPlan / required
        Previous value: -[
        -  "mode",
        -  "intent",
        -  "evidenceLanes",
        -  "graphSummary",
        -  "assumptions",
        -  "engineSteps",
        -  "calculations"
        -]New value: +[
        +  "mode",
        +  "intent",
        +  "evidenceLanes",
        +  "graphSummary"
        +]
  2. 5 tool updatesv0.4.2
    • Changedcontext_packet22 fields changed
      • changedOutput schema / properties / expandableTools / items / properties / toolName / enum
        Previous value: -[
        -  "task_preflight_artifact",
        -  "implementation_handoff_artifact",
        -  "review_bundle_artifact",
        -  "verification_bundle_artifact",
        -  "suggest",
        -  "investigate",
        -  "graph_neighbors",
        -  "graph_path",
        -  "flow_map",
        -  "change_plan",
        -  "tenant_leak_audit",
        -  "health_trend",
        -  "issues_next",
        -  "session_handoff",
        -  "recall_answers",
        -  "recall_tool_runs",
        -  "table_neighborhood",
        -  "route_context",
        -  "rpc_neighborhood",
        -  "agent_feedback",
        -  "agent_feedback_report",
        -  "route_trace",
        -  "schema_usage",
        -  "file_health",
        -  "auth_path",
        -  "imports_deps",
        -  "imports_impact",
        -  "imports_hotspots",
        -  "imports_cycles",
        -  "symbols_of",
        -  "exports_of",
        -  "db_ping",
        -  "db_columns",
        -  "db_fk",
        -  "db_rls",
        -  "db_rpc",
        -  "db_table_schema",
        -  "mako_help",
        -  "ask",
        -  "trace_file",
        -  "preflight_table",
        -  "cross_search",
        -  "trace_edge",
        -  "trace_error",
        -  "trace_table",
        -  "trace_rpc",
        -  "workflow_packet",
        -  "ast_find_pattern",
        -  "live_text_search",
        -  "lint_files",
        -  "typescript_diagnostics",
        -  "eslint_diagnostics",
        -  "oxlint_diagnostics",
        -  "biome_diagnostics",
        -  "git_precommit_check",
        -  "diagnostic_refresh",
        -  "db_reef_refresh",
        -  "db_review_comment",
        -  "db_review_comments",
        -  "repo_map",
        -  "runtime_telemetry_report",
        -  "project_index_status",
        -  "project_index_refresh",
        -  "context_packet",
        -  "tool_batch",
        -  "reef_ask",
        -  "finding_ack",
        -  "finding_ack_batch",
        -  "finding_acks_report",
        -  "project_findings",
        -  "file_findings",
        -  "file_preflight",
        -  "project_facts",
        -  "file_facts",
        -  "working_tree_overlay",
        -  "reef_overlay_diff",
        -  "reef_diff_impact",
        -  "reef_impact",
        -  "reef_instructions",
        -  "reef_learning_review",
        -  "list_reef_rules",
        -  "rule_pack_validate",
        -  "extract_rule_template",
        -  "project_diagnostic_runs",
        -  "reef_scout",
        -  "reef_inspect",
        -  "reef_where_used",
        -  "reef_verify",
        -  "project_open_loops",
        -  "verification_state",
        -  "project_conventions",
        -  "rule_memory",
        -  "evidence_confidence",
        -  "evidence_conflicts",
        -  "reef_known_issues",
        -  "reef_status",
        -  "reef_agent_status"
        -]New value: +[
        +  "task_preflight_artifact",
        +  "implementation_handoff_artifact",
        +  "review_bundle_artifact",
        +  "verification_bundle_artifact",
        +  "suggest",
        +  "investigate",
        +  "graph_neighbors",
        +  "graph_path",
        +  "flow_map",
        +  "change_plan",
        +  "tenant_leak_audit",
        +  "owasp_audit",
        +  "health_trend",
        +  "issues_next",
        +  "session_handoff",
        +  "recall_answers",
        +  "recall_tool_runs",
        +  "table_neighborhood",
        +  "route_context",
        +  "rpc_neighborhood",
        +  "agent_feedback",
        +  "agent_feedback_report",
        +  "route_trace",
        +  "schema_usage",
        +  "file_health",
        +  "auth_path",
        +  "imports_deps",
        +  "imports_impact",
        +  "imports_hotspots",
        +  "imports_cycles",
        +  "symbols_of",
        +  "exports_of",
        +  "db_ping",
        +  "db_columns",
        +  "db_fk",
        +  "db_rls",
        +  "db_rpc",
        +  "db_table_schema",
        +  "mako_help",
        +  "ask",
        +  "trace_file",
        +  "preflight_table",
        +  "cross_search",
        +  "trace_edge",
        +  "trace_error",
        +  "trace_table",
        +  "trace_rpc",
        +  "workflow_packet",
        +  "ast_find_pattern",
        +  "live_text_search",
        +  "lint_files",
        +  "typescript_diagnostics",
        +  "eslint_diagnostics",
        +  "oxlint_diagnostics",
        +  "biome_diagnostics",
        +  "git_precommit_check",
        +  "diagnostic_refresh",
        +  "db_reef_refresh",
        +  "db_review_comment",
        +  "db_review_comments",
        +  "repo_map",
        +  "runtime_telemetry_report",
        +  "project_index_status",
        +  "project_index_refresh",
        +  "context_packet",
        +  "tool_batch",
        +  "reef_ask",
        +  "finding_ack",
        +  "finding_ack_batch",
        +  "finding_acks_report",
        +  "project_findings",
        +  "file_findings",
        +  "file_preflight",
        +  "project_facts",
        +  "file_facts",
        +  "working_tree_overlay",
        +  "reef_overlay_diff",
        +  "reef_diff_impact",
        +  "reef_impact",
        +  "reef_instructions",
        +  "reef_learning_review",
        +  "list_reef_rules",
        +  "rule_pack_validate",
        +  "extract_rule_template",
        +  "project_diagnostic_runs",
        +  "reef_scout",
        +  "reef_inspect",
        +  "reef_where_used",
        +  "reef_verify",
        +  "project_open_loops",
        +  "verification_state",
        +  "project_conventions",
        +  "rule_memory",
        +  "evidence_confidence",
        +  "evidence_conflicts",
        +  "reef_known_issues",
        +  "reef_status",
        +  "reef_agent_status"
        +]
      • addedOutput schema / properties / graphSummary / properties / files / items / properties / pathEvidence
        Added value: +{
        +  "items": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "anchorFile": {
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "distance": {
        +        "minimum": 0,
        +        "type": "integer"
        +      },
        +      "path": {
        +        "items": {
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "minItems": 1,
        +        "type": "array"
        +      },
        +      "reason": {
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "relation": {
        +        "$ref": "#/properties/graphSummary/properties/files/items/properties/relation"
        +      },
        +      "source": {
        +        "$ref": "#/properties/primaryContext/items/properties/source"
        +      },
        +      "strategy": {
        +        "$ref": "#/properties/primaryContext/items/properties/strategy"
        +      },
        +      "targetFile": {
        +        "minLength": 1,
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "anchorFile",
        +      "targetFile",
        +      "relation",
        +      "distance",
        +      "path",
        +      "source",
        +      "strategy",
        +      "reason"
        +    ],
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / graphSummary / properties / files / items / properties / pathEvidenceCount
        Added value: +{
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • addedOutput schema / properties / limits / properties / candidatesOmittedByLimit
        Added value: +{
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • addedOutput schema / properties / limits / properties / omittedRequestedAnchors
        Added value: +{
        +  "items": {
        +    "$ref": "#/properties/retrievalDiagnostics/properties/retrievalPlan/properties/evidenceGaps/items/properties/anchors/items"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / limits / properties / providersSkippedDetail / items / $ref
        Added value: +"#/properties/retrievalDiagnostics/properties/providersSkippedDetail/items"
      • removedOutput schema / properties / limits / properties / providersSkippedDetail / items / additionalProperties
        Removed value: -false
      • removedOutput schema / properties / limits / properties / providersSkippedDetail / items / properties
        Removed value: -{
        -  "adaptive": {
        -    "type": "boolean"
        -  },
        -  "provider": {
        -    "minLength": 1,
        -    "type": "string"
        -  },
        -  "reason": {
        -    "minLength": 1,
        -    "type": "string"
        -  }
        -}
      • removedOutput schema / properties / limits / properties / providersSkippedDetail / items / required
        Removed value: -[
        -  "provider",
        -  "reason",
        -  "adaptive"
        -]
      • removedOutput schema / properties / limits / properties / providersSkippedDetail / items / type
        Removed value: -"object"
      • addedOutput schema / properties / limits / properties / rankedCandidateCount
        Added value: +{
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • addedOutput schema / properties / limits / properties / requestedAnchorsOmitted
        Added value: +{
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • addedOutput schema / properties / limits / properties / returnedTokenEstimate
        Added value: +{
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • addedOutput schema / properties / limits / properties / selectionLimitHit
        Added value: +{
        +  "type": "boolean"
        +}
      • addedOutput schema / properties / limits / properties / supportingSignalsOmitted
        Added value: +{
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • changedOutput schema / properties / limits / required
        Previous value: -[
        -  "budgetTokens",
        -  "tokenEstimateMethod",
        -  "maxPrimaryContext",
        -  "maxRelatedContext",
        -  "providersRun",
        -  "providersRunDetail",
        -  "providersSkipped",
        -  "providersSkippedDetail",
        -  "providersFailed",
        -  "candidatesConsidered",
        -  "candidatesReturned"
        -]New value: +[
        +  "budgetTokens",
        +  "returnedTokenEstimate",
        +  "tokenEstimateMethod",
        +  "maxPrimaryContext",
        +  "maxRelatedContext",
        +  "providersRun",
        +  "providersRunDetail",
        +  "providersSkipped",
        +  "providersSkippedDetail",
        +  "providersFailed",
        +  "candidatesConsidered",
        +  "rankedCandidateCount",
        +  "candidatesReturned",
        +  "selectionLimitHit",
        +  "candidatesOmittedByLimit",
        +  "requestedAnchorsOmitted",
        +  "omittedRequestedAnchors",
        +  "supportingSignalsOmitted"
        +]
      • addedOutput schema / properties / retrievalDiagnostics / properties / liveTextMisses / items / properties / queryKind
        Added value: +{
        +  "enum": [
        +    "quoted_text",
        +    "symbol"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / retrievalDiagnostics / properties / providerExecutionMode
        Added value: +{
        +  "const": "serial",
        +  "type": "string"
        +}
      • addedOutput schema / properties / retrievalDiagnostics / properties / providersSkippedDetail
        Added value: +{
        +  "items": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "adaptive": {
        +        "type": "boolean"
        +      },
        +      "provider": {
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "reason": {
        +        "minLength": 1,
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "provider",
        +      "reason",
        +      "adaptive"
        +    ],
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / retrievalDiagnostics / properties / retrievalPlan
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "confidence": {
        +      "maximum": 1,
        +      "minimum": 0,
        +      "type": "number"
        +    },
        +    "evidenceGaps": {
        +      "items": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "anchors": {
        +            "items": {
        +              "additionalProperties": false,
        +              "properties": {
        +                "candidateId": {
        +                  "minLength": 1,
        +                  "type": "string"
        +                },
        +                "kind": {
        +                  "$ref": "#/properties/primaryContext/items/properties/kind"
        +                },
        +                "path": {
        +                  "minLength": 1,
        +                  "type": "string"
        +                },
        +                "reason": {
        +                  "enum": [
        +                    "budget",
        +                    "selection_limit"
        +                  ],
        +                  "type": "string"
        +                },
        +                "score": {
        +                  "type": "number"
        +                },
        +                "value": {
        +                  "minLength": 1,
        +                  "type": "string"
        +                }
        +              },
        +              "required": [
        +                "kind",
        +                "value",
        +                "reason",
        +                "candidateId",
        +                "score"
        +              ],
        +              "type": "object"
        +            },
        +            "type": "array"
        +          },
        +          "kind": {
        +            "enum": [
        +              "request_coverage",
        +              "graph_evidence",
        +              "literal_evidence",
        +              "edit_localization",
        +              "provider_recall",
        +              "context_budget",
        +              "exact_line_verification"
        +            ],
        +            "type": "string"
        +          },
        +          "message": {
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "recommendedTools": {
        +            "items": {
        +              "$ref": "#/properties/expandableTools/items/properties/toolName"
        +            },
        +            "type": "array"
        +          },
        +          "severity": {
        +            "enum": [
        +              "blocking",
        +              "advisory"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "kind",
        +          "severity",
        +          "message",
        +          "recommendedTools"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "evidenceGate": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "advisoryReasons": {
        +          "items": {
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "type": "array"
        +        },
        +        "blockingReasons": {
        +          "items": {
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "type": "array"
        +        },
        +        "canAnswerFromPacket": {
        +          "type": "boolean"
        +        },
        +        "canEditFromPacket": {
        +          "type": "boolean"
        +        },
        +        "status": {
        +          "enum": [
        +            "satisfied",
        +            "follow_up_recommended",
        +            "follow_up_required"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "status",
        +        "canAnswerFromPacket",
        +        "canEditFromPacket",
        +        "blockingReasons",
        +        "advisoryReasons"
        +      ],
        +      "type": "object"
        +    },
        +    "level": {
        +      "enum": [
        +        "code_understanding",
        +        "issue_to_edit_localization",
        +        "broader_context_retrieval"
        +      ],
        +      "type": "string"
        +    },
        +    "nextStep": {
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "recommendedFollowUps": {
        +      "items": {
        +        "$ref": "#/properties/expandableTools/items"
        +      },
        +      "type": "array"
        +    },
        +    "recommendedTools": {
        +      "items": {
        +        "$ref": "#/properties/expandableTools/items/properties/toolName"
        +      },
        +      "type": "array"
        +    },
        +    "requiredEvidence": {
        +      "items": {
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "signals": {
        +      "items": {
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "strategy": {
        +      "enum": [
        +        "entity_lookup",
        +        "graph_expansion",
        +        "literal_search",
        +        "hybrid"
        +      ],
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "level",
        +    "strategy",
        +    "confidence",
        +    "signals",
        +    "evidenceGate",
        +    "evidenceGaps",
        +    "requiredEvidence",
        +    "recommendedTools",
        +    "recommendedFollowUps",
        +    "nextStep"
        +  ],
        +  "type": "object"
        +}
      • addedOutput schema / properties / retrievalDiagnostics / properties / totalProviderDurationMs
        Added value: +{
        +  "minimum": 0,
        +  "type": "number"
        +}
      • changedOutput schema / properties / retrievalDiagnostics / required
        Previous value: -[
        -  "providerRunCount",
        -  "providerCandidateCount",
        -  "zeroCandidateProviders",
        -  "failedProviders",
        -  "adaptiveSkippedProviders",
        -  "liveTextMisses",
        -  "recommendations"
        -]New value: +[
        +  "retrievalPlan",
        +  "providerRunCount",
        +  "providerCandidateCount",
        +  "providerExecutionMode",
        +  "totalProviderDurationMs",
        +  "zeroCandidateProviders",
        +  "failedProviders",
        +  "adaptiveSkippedProviders",
        +  "providersSkippedDetail",
        +  "liveTextMisses",
        +  "recommendations"
        +]
    • Changedmako_help3 fields changed
      • addedOutput schema / properties / retrievalPlanGuide
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": false,
        +      "properties": {
        +        "evidenceGapsPath": {
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "evidenceGate": {
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "expandableToolsPath": {
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "planPath": {
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "preferToolBatch": {
        +          "type": "boolean"
        +        },
        +        "recommendedFollowUpsPath": {
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "recommendedToolsPath": {
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "requiredEvidencePath": {
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "sourceStepId": {
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "strategyActions": {
        +          "items": {
        +            "additionalProperties": false,
        +            "properties": {
        +              "action": {
        +                "minLength": 1,
        +                "type": "string"
        +              },
        +              "strategy": {
        +                "enum": [
        +                  "entity_lookup",
        +                  "graph_expansion",
        +                  "literal_search",
        +                  "hybrid"
        +                ],
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "strategy",
        +              "action"
        +            ],
        +            "type": "object"
        +          },
        +          "type": "array"
        +        }
        +      },
        +      "required": [
        +        "sourceStepId",
        +        "planPath",
        +        "recommendedToolsPath",
        +        "recommendedFollowUpsPath",
        +        "expandableToolsPath",
        +        "requiredEvidencePath",
        +        "evidenceGapsPath",
        +        "preferToolBatch",
        +        "evidenceGate",
        +        "strategyActions"
        +      ],
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • changedOutput schema / properties / steps / items / properties / toolName / enum
        Previous value: -[
        -  "task_preflight_artifact",
        -  "implementation_handoff_artifact",
        -  "review_bundle_artifact",
        -  "verification_bundle_artifact",
        -  "suggest",
        -  "investigate",
        -  "graph_neighbors",
        -  "graph_path",
        -  "flow_map",
        -  "change_plan",
        -  "tenant_leak_audit",
        -  "health_trend",
        -  "issues_next",
        -  "session_handoff",
        -  "recall_answers",
        -  "recall_tool_runs",
        -  "table_neighborhood",
        -  "route_context",
        -  "rpc_neighborhood",
        -  "agent_feedback",
        -  "agent_feedback_report",
        -  "route_trace",
        -  "schema_usage",
        -  "file_health",
        -  "auth_path",
        -  "imports_deps",
        -  "imports_impact",
        -  "imports_hotspots",
        -  "imports_cycles",
        -  "symbols_of",
        -  "exports_of",
        -  "db_ping",
        -  "db_columns",
        -  "db_fk",
        -  "db_rls",
        -  "db_rpc",
        -  "db_table_schema",
        -  "mako_help",
        -  "ask",
        -  "trace_file",
        -  "preflight_table",
        -  "cross_search",
        -  "trace_edge",
        -  "trace_error",
        -  "trace_table",
        -  "trace_rpc",
        -  "workflow_packet",
        -  "ast_find_pattern",
        -  "live_text_search",
        -  "lint_files",
        -  "typescript_diagnostics",
        -  "eslint_diagnostics",
        -  "oxlint_diagnostics",
        -  "biome_diagnostics",
        -  "git_precommit_check",
        -  "diagnostic_refresh",
        -  "db_reef_refresh",
        -  "db_review_comment",
        -  "db_review_comments",
        -  "repo_map",
        -  "runtime_telemetry_report",
        -  "project_index_status",
        -  "project_index_refresh",
        -  "context_packet",
        -  "tool_batch",
        -  "reef_ask",
        -  "finding_ack",
        -  "finding_ack_batch",
        -  "finding_acks_report",
        -  "project_findings",
        -  "file_findings",
        -  "file_preflight",
        -  "project_facts",
        -  "file_facts",
        -  "working_tree_overlay",
        -  "reef_overlay_diff",
        -  "reef_diff_impact",
        -  "reef_impact",
        -  "reef_instructions",
        -  "reef_learning_review",
        -  "list_reef_rules",
        -  "rule_pack_validate",
        -  "extract_rule_template",
        -  "project_diagnostic_runs",
        -  "reef_scout",
        -  "reef_inspect",
        -  "reef_where_used",
        -  "reef_verify",
        -  "project_open_loops",
        -  "verification_state",
        -  "project_conventions",
        -  "rule_memory",
        -  "evidence_confidence",
        -  "evidence_conflicts",
        -  "reef_known_issues",
        -  "reef_status",
        -  "reef_agent_status"
        -]New value: +[
        +  "task_preflight_artifact",
        +  "implementation_handoff_artifact",
        +  "review_bundle_artifact",
        +  "verification_bundle_artifact",
        +  "suggest",
        +  "investigate",
        +  "graph_neighbors",
        +  "graph_path",
        +  "flow_map",
        +  "change_plan",
        +  "tenant_leak_audit",
        +  "owasp_audit",
        +  "health_trend",
        +  "issues_next",
        +  "session_handoff",
        +  "recall_answers",
        +  "recall_tool_runs",
        +  "table_neighborhood",
        +  "route_context",
        +  "rpc_neighborhood",
        +  "agent_feedback",
        +  "agent_feedback_report",
        +  "route_trace",
        +  "schema_usage",
        +  "file_health",
        +  "auth_path",
        +  "imports_deps",
        +  "imports_impact",
        +  "imports_hotspots",
        +  "imports_cycles",
        +  "symbols_of",
        +  "exports_of",
        +  "db_ping",
        +  "db_columns",
        +  "db_fk",
        +  "db_rls",
        +  "db_rpc",
        +  "db_table_schema",
        +  "mako_help",
        +  "ask",
        +  "trace_file",
        +  "preflight_table",
        +  "cross_search",
        +  "trace_edge",
        +  "trace_error",
        +  "trace_table",
        +  "trace_rpc",
        +  "workflow_packet",
        +  "ast_find_pattern",
        +  "live_text_search",
        +  "lint_files",
        +  "typescript_diagnostics",
        +  "eslint_diagnostics",
        +  "oxlint_diagnostics",
        +  "biome_diagnostics",
        +  "git_precommit_check",
        +  "diagnostic_refresh",
        +  "db_reef_refresh",
        +  "db_review_comment",
        +  "db_review_comments",
        +  "repo_map",
        +  "runtime_telemetry_report",
        +  "project_index_status",
        +  "project_index_refresh",
        +  "context_packet",
        +  "tool_batch",
        +  "reef_ask",
        +  "finding_ack",
        +  "finding_ack_batch",
        +  "finding_acks_report",
        +  "project_findings",
        +  "file_findings",
        +  "file_preflight",
        +  "project_facts",
        +  "file_facts",
        +  "working_tree_overlay",
        +  "reef_overlay_diff",
        +  "reef_diff_impact",
        +  "reef_impact",
        +  "reef_instructions",
        +  "reef_learning_review",
        +  "list_reef_rules",
        +  "rule_pack_validate",
        +  "extract_rule_template",
        +  "project_diagnostic_runs",
        +  "reef_scout",
        +  "reef_inspect",
        +  "reef_where_used",
        +  "reef_verify",
        +  "project_open_loops",
        +  "verification_state",
        +  "project_conventions",
        +  "rule_memory",
        +  "evidence_confidence",
        +  "evidence_conflicts",
        +  "reef_known_issues",
        +  "reef_status",
        +  "reef_agent_status"
        +]
      • changedOutput schema / required
        Previous value: -[
        -  "toolName",
        -  "task",
        -  "recipeId",
        -  "summary",
        -  "steps",
        -  "batchHint",
        -  "notes",
        -  "_hints"
        -]New value: +[
        +  "toolName",
        +  "task",
        +  "recipeId",
        +  "summary",
        +  "steps",
        +  "batchHint",
        +  "retrievalPlanGuide",
        +  "notes",
        +  "_hints"
        +]
    • Addedowasp_audit
    • Changedruntime_telemetry_report2 fields changed
      • addedOutput schema / properties / byReasonCode
        Added value: +{
        +  "items": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "count": {
        +        "minimum": 0,
        +        "type": "integer"
        +      },
        +      "reasonCode": {
        +        "minLength": 1,
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "reasonCode",
        +      "count"
        +    ],
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "toolName",
        -  "projectId",
        -  "eventsInWindow",
        -  "byDecisionKind",
        -  "byFamily",
        -  "byGrade",
        -  "events",
        -  "truncated",
        -  "warnings",
        -  "_hints"
        -]New value: +[
        +  "toolName",
        +  "projectId",
        +  "eventsInWindow",
        +  "byDecisionKind",
        +  "byFamily",
        +  "byGrade",
        +  "byReasonCode",
        +  "events",
        +  "truncated",
        +  "warnings",
        +  "_hints"
        +]
    • Changedtool_batch9 fields changed
      • addedInput schema / properties / maxConcurrency
        Added value: +{
        +  "maximum": 20,
        +  "minimum": 1,
        +  "type": "integer"
        +}
      • changedInput schema / properties / ops / items / properties / tool / enum
        Previous value: -[
        -  "task_preflight_artifact",
        -  "implementation_handoff_artifact",
        -  "review_bundle_artifact",
        -  "verification_bundle_artifact",
        -  "suggest",
        -  "investigate",
        -  "graph_neighbors",
        -  "graph_path",
        -  "flow_map",
        -  "change_plan",
        -  "tenant_leak_audit",
        -  "health_trend",
        -  "issues_next",
        -  "session_handoff",
        -  "recall_answers",
        -  "recall_tool_runs",
        -  "table_neighborhood",
        -  "route_context",
        -  "rpc_neighborhood",
        -  "agent_feedback_report",
        -  "route_trace",
        -  "schema_usage",
        -  "file_health",
        -  "auth_path",
        -  "imports_deps",
        -  "imports_impact",
        -  "imports_hotspots",
        -  "imports_cycles",
        -  "symbols_of",
        -  "exports_of",
        -  "db_ping",
        -  "db_columns",
        -  "db_fk",
        -  "db_rls",
        -  "db_rpc",
        -  "db_table_schema",
        -  "mako_help",
        -  "ask",
        -  "trace_file",
        -  "preflight_table",
        -  "cross_search",
        -  "trace_edge",
        -  "trace_error",
        -  "trace_table",
        -  "trace_rpc",
        -  "workflow_packet",
        -  "ast_find_pattern",
        -  "live_text_search",
        -  "repo_map",
        -  "runtime_telemetry_report",
        -  "project_index_status",
        -  "context_packet",
        -  "reef_ask",
        -  "finding_acks_report",
        -  "project_findings",
        -  "file_findings",
        -  "project_facts",
        -  "file_facts",
        -  "reef_overlay_diff",
        -  "reef_diff_impact",
        -  "reef_impact",
        -  "reef_instructions",
        -  "reef_learning_review",
        -  "list_reef_rules",
        -  "rule_pack_validate",
        -  "project_diagnostic_runs",
        -  "reef_scout",
        -  "reef_inspect",
        -  "reef_where_used",
        -  "reef_verify",
        -  "project_open_loops",
        -  "verification_state",
        -  "project_conventions",
        -  "rule_memory",
        -  "evidence_confidence",
        -  "evidence_conflicts",
        -  "reef_known_issues",
        -  "reef_status",
        -  "reef_agent_status",
        -  "db_review_comments"
        -]New value: +[
        +  "task_preflight_artifact",
        +  "implementation_handoff_artifact",
        +  "review_bundle_artifact",
        +  "verification_bundle_artifact",
        +  "suggest",
        +  "investigate",
        +  "graph_neighbors",
        +  "graph_path",
        +  "flow_map",
        +  "change_plan",
        +  "tenant_leak_audit",
        +  "owasp_audit",
        +  "health_trend",
        +  "issues_next",
        +  "session_handoff",
        +  "recall_answers",
        +  "recall_tool_runs",
        +  "table_neighborhood",
        +  "route_context",
        +  "rpc_neighborhood",
        +  "agent_feedback_report",
        +  "route_trace",
        +  "schema_usage",
        +  "file_health",
        +  "auth_path",
        +  "imports_deps",
        +  "imports_impact",
        +  "imports_hotspots",
        +  "imports_cycles",
        +  "symbols_of",
        +  "exports_of",
        +  "db_ping",
        +  "db_columns",
        +  "db_fk",
        +  "db_rls",
        +  "db_rpc",
        +  "db_table_schema",
        +  "mako_help",
        +  "ask",
        +  "trace_file",
        +  "preflight_table",
        +  "cross_search",
        +  "trace_edge",
        +  "trace_error",
        +  "trace_table",
        +  "trace_rpc",
        +  "workflow_packet",
        +  "ast_find_pattern",
        +  "live_text_search",
        +  "repo_map",
        +  "runtime_telemetry_report",
        +  "project_index_status",
        +  "context_packet",
        +  "reef_ask",
        +  "finding_acks_report",
        +  "project_findings",
        +  "file_findings",
        +  "project_facts",
        +  "file_facts",
        +  "reef_overlay_diff",
        +  "reef_diff_impact",
        +  "reef_impact",
        +  "reef_instructions",
        +  "reef_learning_review",
        +  "list_reef_rules",
        +  "rule_pack_validate",
        +  "project_diagnostic_runs",
        +  "reef_scout",
        +  "reef_inspect",
        +  "reef_where_used",
        +  "reef_verify",
        +  "project_open_loops",
        +  "verification_state",
        +  "project_conventions",
        +  "rule_memory",
        +  "evidence_confidence",
        +  "evidence_conflicts",
        +  "reef_known_issues",
        +  "reef_status",
        +  "reef_agent_status",
        +  "db_review_comments"
        +]
      • changedOutput schema / properties / results / items / properties / tool / enum
        Previous value: -[
        -  "task_preflight_artifact",
        -  "implementation_handoff_artifact",
        -  "review_bundle_artifact",
        -  "verification_bundle_artifact",
        -  "suggest",
        -  "investigate",
        -  "graph_neighbors",
        -  "graph_path",
        -  "flow_map",
        -  "change_plan",
        -  "tenant_leak_audit",
        -  "health_trend",
        -  "issues_next",
        -  "session_handoff",
        -  "recall_answers",
        -  "recall_tool_runs",
        -  "table_neighborhood",
        -  "route_context",
        -  "rpc_neighborhood",
        -  "agent_feedback_report",
        -  "route_trace",
        -  "schema_usage",
        -  "file_health",
        -  "auth_path",
        -  "imports_deps",
        -  "imports_impact",
        -  "imports_hotspots",
        -  "imports_cycles",
        -  "symbols_of",
        -  "exports_of",
        -  "db_ping",
        -  "db_columns",
        -  "db_fk",
        -  "db_rls",
        -  "db_rpc",
        -  "db_table_schema",
        -  "mako_help",
        -  "ask",
        -  "trace_file",
        -  "preflight_table",
        -  "cross_search",
        -  "trace_edge",
        -  "trace_error",
        -  "trace_table",
        -  "trace_rpc",
        -  "workflow_packet",
        -  "ast_find_pattern",
        -  "live_text_search",
        -  "repo_map",
        -  "runtime_telemetry_report",
        -  "project_index_status",
        -  "context_packet",
        -  "reef_ask",
        -  "finding_acks_report",
        -  "project_findings",
        -  "file_findings",
        -  "project_facts",
        -  "file_facts",
        -  "reef_overlay_diff",
        -  "reef_diff_impact",
        -  "reef_impact",
        -  "reef_instructions",
        -  "reef_learning_review",
        -  "list_reef_rules",
        -  "rule_pack_validate",
        -  "project_diagnostic_runs",
        -  "reef_scout",
        -  "reef_inspect",
        -  "reef_where_used",
        -  "reef_verify",
        -  "project_open_loops",
        -  "verification_state",
        -  "project_conventions",
        -  "rule_memory",
        -  "evidence_confidence",
        -  "evidence_conflicts",
        -  "reef_known_issues",
        -  "reef_status",
        -  "reef_agent_status",
        -  "db_review_comments"
        -]New value: +[
        +  "task_preflight_artifact",
        +  "implementation_handoff_artifact",
        +  "review_bundle_artifact",
        +  "verification_bundle_artifact",
        +  "suggest",
        +  "investigate",
        +  "graph_neighbors",
        +  "graph_path",
        +  "flow_map",
        +  "change_plan",
        +  "tenant_leak_audit",
        +  "owasp_audit",
        +  "health_trend",
        +  "issues_next",
        +  "session_handoff",
        +  "recall_answers",
        +  "recall_tool_runs",
        +  "table_neighborhood",
        +  "route_context",
        +  "rpc_neighborhood",
        +  "agent_feedback_report",
        +  "route_trace",
        +  "schema_usage",
        +  "file_health",
        +  "auth_path",
        +  "imports_deps",
        +  "imports_impact",
        +  "imports_hotspots",
        +  "imports_cycles",
        +  "symbols_of",
        +  "exports_of",
        +  "db_ping",
        +  "db_columns",
        +  "db_fk",
        +  "db_rls",
        +  "db_rpc",
        +  "db_table_schema",
        +  "mako_help",
        +  "ask",
        +  "trace_file",
        +  "preflight_table",
        +  "cross_search",
        +  "trace_edge",
        +  "trace_error",
        +  "trace_table",
        +  "trace_rpc",
        +  "workflow_packet",
        +  "ast_find_pattern",
        +  "live_text_search",
        +  "repo_map",
        +  "runtime_telemetry_report",
        +  "project_index_status",
        +  "context_packet",
        +  "reef_ask",
        +  "finding_acks_report",
        +  "project_findings",
        +  "file_findings",
        +  "project_facts",
        +  "file_facts",
        +  "reef_overlay_diff",
        +  "reef_diff_impact",
        +  "reef_impact",
        +  "reef_instructions",
        +  "reef_learning_review",
        +  "list_reef_rules",
        +  "rule_pack_validate",
        +  "project_diagnostic_runs",
        +  "reef_scout",
        +  "reef_inspect",
        +  "reef_where_used",
        +  "reef_verify",
        +  "project_open_loops",
        +  "verification_state",
        +  "project_conventions",
        +  "rule_memory",
        +  "evidence_confidence",
        +  "evidence_conflicts",
        +  "reef_known_issues",
        +  "reef_status",
        +  "reef_agent_status",
        +  "db_review_comments"
        +]
      • addedOutput schema / properties / summary / properties / concurrencyLimited
        Added value: +{
        +  "type": "boolean"
        +}
      • addedOutput schema / properties / summary / properties / executionMode
        Added value: +{
        +  "enum": [
        +    "parallel",
        +    "sequential"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / summary / properties / maxConcurrency
        Added value: +{
        +  "maximum": 20,
        +  "minimum": 1,
        +  "type": "integer"
        +}
      • addedOutput schema / properties / summary / properties / slowestOp
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": false,
        +      "properties": {
        +        "durationMs": {
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "label": {
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "ok": {
        +          "type": "boolean"
        +        },
        +        "tool": {
        +          "$ref": "#/properties/results/items/properties/tool"
        +        }
        +      },
        +      "required": [
        +        "label",
        +        "tool",
        +        "durationMs",
        +        "ok"
        +      ],
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / summary / properties / totalOpDurationMs
        Added value: +{
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • changedOutput schema / properties / summary / required
        Previous value: -[
        -  "requestedOps",
        -  "executedOps",
        -  "succeededOps",
        -  "failedOps",
        -  "rejectedOps",
        -  "durationMs"
        -]New value: +[
        +  "requestedOps",
        +  "executedOps",
        +  "succeededOps",
        +  "failedOps",
        +  "rejectedOps",
        +  "durationMs",
        +  "totalOpDurationMs",
        +  "slowestOp",
        +  "executionMode",
        +  "maxConcurrency",
        +  "concurrencyLimited"
        +]
  3. 10 tool updatesv0.4.0
    • Changedcontext_packet10 fields changed
      • addedOutput schema / properties / evidenceQuality
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "averageConfidence": {
        +      "maximum": 1,
        +      "minimum": 0,
        +      "type": "number"
        +    },
        +    "corroboratedContextCount": {
        +      "minimum": 0,
        +      "type": "integer"
        +    },
        +    "freshContextCount": {
        +      "minimum": 0,
        +      "type": "integer"
        +    },
        +    "freshness": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "dirtyContextCount": {
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "gateStatus": {
        +          "$ref": "#/properties/freshnessGate/properties/status"
        +        },
        +        "indexState": {
        +          "$ref": "#/properties/freshnessGate/properties/indexFreshness/properties/state"
        +        }
        +      },
        +      "required": [
        +        "gateStatus",
        +        "indexState",
        +        "dirtyContextCount"
        +      ],
        +      "type": "object"
        +    },
        +    "graph": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "anchorFileCount": {
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "connectedFileCount": {
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "edgeCount": {
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "requested": {
        +          "type": "boolean"
        +        },
        +        "returnedFileCount": {
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "status": {
        +          "enum": [
        +            "connected",
        +            "isolated",
        +            "missing",
        +            "not_requested"
        +          ],
        +          "type": "string"
        +        },
        +        "warningCount": {
        +          "minimum": 0,
        +          "type": "integer"
        +        }
        +      },
        +      "required": [
        +        "status",
        +        "requested",
        +        "anchorFileCount",
        +        "returnedFileCount",
        +        "edgeCount",
        +        "connectedFileCount",
        +        "warningCount"
        +      ],
        +      "type": "object"
        +    },
        +    "highConfidenceContextCount": {
        +      "minimum": 0,
        +      "type": "integer"
        +    },
        +    "label": {
        +      "enum": [
        +        "strong",
        +        "usable",
        +        "partial",
        +        "weak"
        +      ],
        +      "type": "string"
        +    },
        +    "liveOverlayContextCount": {
        +      "minimum": 0,
        +      "type": "integer"
        +    },
        +    "primaryContextCount": {
        +      "minimum": 0,
        +      "type": "integer"
        +    },
        +    "reasons": {
        +      "items": {
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "recommendedAction": {
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "relatedContextCount": {
        +      "minimum": 0,
        +      "type": "integer"
        +    },
        +    "requestCoverage": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "coveredCount": {
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "notCheckedCount": {
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "requestedCount": {
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "status": {
        +          "$ref": "#/properties/requestCoverage/properties/status"
        +        },
        +        "uncoveredCount": {
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "unresolvedCount": {
        +          "minimum": 0,
        +          "type": "integer"
        +        }
        +      },
        +      "required": [
        +        "status",
        +        "requestedCount",
        +        "coveredCount",
        +        "unresolvedCount",
        +        "uncoveredCount",
        +        "notCheckedCount"
        +      ],
        +      "type": "object"
        +    },
        +    "score": {
        +      "maximum": 1,
        +      "minimum": 0,
        +      "type": "number"
        +    },
        +    "staleContextCount": {
        +      "minimum": 0,
        +      "type": "integer"
        +    },
        +    "totalContextCount": {
        +      "minimum": 0,
        +      "type": "integer"
        +    },
        +    "unknownFreshnessCount": {
        +      "minimum": 0,
        +      "type": "integer"
        +    }
        +  },
        +  "required": [
        +    "label",
        +    "score",
        +    "reasons",
        +    "recommendedAction",
        +    "primaryContextCount",
        +    "relatedContextCount",
        +    "totalContextCount",
        +    "freshContextCount",
        +    "staleContextCount",
        +    "unknownFreshnessCount",
        +    "liveOverlayContextCount",
        +    "corroboratedContextCount",
        +    "highConfidenceContextCount",
        +    "averageConfidence",
        +    "freshness",
        +    "requestCoverage",
        +    "graph"
        +  ],
        +  "type": "object"
        +}
      • changedOutput schema / properties / expandableTools / items / properties / toolName / enum
        Previous value: -[
        -  "task_preflight_artifact",
        -  "implementation_handoff_artifact",
        -  "review_bundle_artifact",
        -  "verification_bundle_artifact",
        -  "suggest",
        -  "investigate",
        -  "graph_neighbors",
        -  "graph_path",
        -  "flow_map",
        -  "change_plan",
        -  "tenant_leak_audit",
        -  "health_trend",
        -  "issues_next",
        -  "session_handoff",
        -  "recall_answers",
        -  "recall_tool_runs",
        -  "table_neighborhood",
        -  "route_context",
        -  "rpc_neighborhood",
        -  "agent_feedback",
        -  "agent_feedback_report",
        -  "route_trace",
        -  "schema_usage",
        -  "file_health",
        -  "auth_path",
        -  "imports_deps",
        -  "imports_impact",
        -  "imports_hotspots",
        -  "imports_cycles",
        -  "symbols_of",
        -  "exports_of",
        -  "db_ping",
        -  "db_columns",
        -  "db_fk",
        -  "db_rls",
        -  "db_rpc",
        -  "db_table_schema",
        -  "mako_help",
        -  "ask",
        -  "trace_file",
        -  "preflight_table",
        -  "cross_search",
        -  "trace_edge",
        -  "trace_error",
        -  "trace_table",
        -  "trace_rpc",
        -  "workflow_packet",
        -  "ast_find_pattern",
        -  "live_text_search",
        -  "lint_files",
        -  "typescript_diagnostics",
        -  "eslint_diagnostics",
        -  "oxlint_diagnostics",
        -  "biome_diagnostics",
        -  "git_precommit_check",
        -  "diagnostic_refresh",
        -  "db_reef_refresh",
        -  "db_review_comment",
        -  "db_review_comments",
        -  "repo_map",
        -  "runtime_telemetry_report",
        -  "project_index_status",
        -  "project_index_refresh",
        -  "context_packet",
        -  "tool_batch",
        -  "finding_ack",
        -  "finding_ack_batch",
        -  "finding_acks_report",
        -  "project_findings",
        -  "file_findings",
        -  "file_preflight",
        -  "project_facts",
        -  "file_facts",
        -  "working_tree_overlay",
        -  "reef_overlay_diff",
        -  "reef_diff_impact",
        -  "reef_instructions",
        -  "list_reef_rules",
        -  "rule_pack_validate",
        -  "extract_rule_template",
        -  "project_diagnostic_runs",
        -  "reef_scout",
        -  "reef_inspect",
        -  "reef_where_used",
        -  "project_open_loops",
        -  "verification_state",
        -  "project_conventions",
        -  "rule_memory",
        -  "evidence_confidence",
        -  "evidence_conflicts",
        -  "reef_known_issues",
        -  "reef_agent_status"
        -]New value: +[
        +  "task_preflight_artifact",
        +  "implementation_handoff_artifact",
        +  "review_bundle_artifact",
        +  "verification_bundle_artifact",
        +  "suggest",
        +  "investigate",
        +  "graph_neighbors",
        +  "graph_path",
        +  "flow_map",
        +  "change_plan",
        +  "tenant_leak_audit",
        +  "health_trend",
        +  "issues_next",
        +  "session_handoff",
        +  "recall_answers",
        +  "recall_tool_runs",
        +  "table_neighborhood",
        +  "route_context",
        +  "rpc_neighborhood",
        +  "agent_feedback",
        +  "agent_feedback_report",
        +  "route_trace",
        +  "schema_usage",
        +  "file_health",
        +  "auth_path",
        +  "imports_deps",
        +  "imports_impact",
        +  "imports_hotspots",
        +  "imports_cycles",
        +  "symbols_of",
        +  "exports_of",
        +  "db_ping",
        +  "db_columns",
        +  "db_fk",
        +  "db_rls",
        +  "db_rpc",
        +  "db_table_schema",
        +  "mako_help",
        +  "ask",
        +  "trace_file",
        +  "preflight_table",
        +  "cross_search",
        +  "trace_edge",
        +  "trace_error",
        +  "trace_table",
        +  "trace_rpc",
        +  "workflow_packet",
        +  "ast_find_pattern",
        +  "live_text_search",
        +  "lint_files",
        +  "typescript_diagnostics",
        +  "eslint_diagnostics",
        +  "oxlint_diagnostics",
        +  "biome_diagnostics",
        +  "git_precommit_check",
        +  "diagnostic_refresh",
        +  "db_reef_refresh",
        +  "db_review_comment",
        +  "db_review_comments",
        +  "repo_map",
        +  "runtime_telemetry_report",
        +  "project_index_status",
        +  "project_index_refresh",
        +  "context_packet",
        +  "tool_batch",
        +  "reef_ask",
        +  "finding_ack",
        +  "finding_ack_batch",
        +  "finding_acks_report",
        +  "project_findings",
        +  "file_findings",
        +  "file_preflight",
        +  "project_facts",
        +  "file_facts",
        +  "working_tree_overlay",
        +  "reef_overlay_diff",
        +  "reef_diff_impact",
        +  "reef_impact",
        +  "reef_instructions",
        +  "reef_learning_review",
        +  "list_reef_rules",
        +  "rule_pack_validate",
        +  "extract_rule_template",
        +  "project_diagnostic_runs",
        +  "reef_scout",
        +  "reef_inspect",
        +  "reef_where_used",
        +  "reef_verify",
        +  "project_open_loops",
        +  "verification_state",
        +  "project_conventions",
        +  "rule_memory",
        +  "evidence_confidence",
        +  "evidence_conflicts",
        +  "reef_known_issues",
        +  "reef_status",
        +  "reef_agent_status"
        +]
      • addedOutput schema / properties / graphSummary
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "anchorFiles": {
        +      "items": {
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "bidirectionalFileCount": {
        +      "minimum": 0,
        +      "type": "integer"
        +    },
        +    "centralFileCount": {
        +      "minimum": 0,
        +      "type": "integer"
        +    },
        +    "dependencyFileCount": {
        +      "minimum": 0,
        +      "type": "integer"
        +    },
        +    "dependentFileCount": {
        +      "minimum": 0,
        +      "type": "integer"
        +    },
        +    "edgeCount": {
        +      "minimum": 0,
        +      "type": "integer"
        +    },
        +    "edges": {
        +      "items": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "from": {
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "importKind": {
        +            "type": "string"
        +          },
        +          "isTypeOnly": {
        +            "type": "boolean"
        +          },
        +          "line": {
        +            "exclusiveMinimum": 0,
        +            "type": "integer"
        +          },
        +          "relation": {
        +            "enum": [
        +              "anchor_dependency",
        +              "anchor_dependent",
        +              "anchor_link",
        +              "context_import"
        +            ],
        +            "type": "string"
        +          },
        +          "specifier": {
        +            "type": "string"
        +          },
        +          "to": {
        +            "minLength": 1,
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "from",
        +          "to",
        +          "relation",
        +          "specifier",
        +          "importKind",
        +          "isTypeOnly"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "files": {
        +      "items": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "confidence": {
        +            "maximum": 1,
        +            "minimum": 0,
        +            "type": "number"
        +          },
        +          "distance": {
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "filePath": {
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "reasons": {
        +            "items": {
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "type": "array"
        +          },
        +          "relation": {
        +            "enum": [
        +              "anchor",
        +              "dependency",
        +              "dependent",
        +              "bidirectional",
        +              "central",
        +              "unknown"
        +            ],
        +            "type": "string"
        +          },
        +          "score": {
        +            "type": "number"
        +          },
        +          "sourceCount": {
        +            "exclusiveMinimum": 0,
        +            "type": "integer"
        +          },
        +          "sources": {
        +            "items": {
        +              "$ref": "#/properties/primaryContext/items/properties/source"
        +            },
        +            "type": "array"
        +          },
        +          "strategies": {
        +            "items": {
        +              "$ref": "#/properties/primaryContext/items/properties/strategy"
        +            },
        +            "type": "array"
        +          }
        +        },
        +        "required": [
        +          "filePath",
        +          "relation",
        +          "sourceCount",
        +          "sources",
        +          "strategies",
        +          "score",
        +          "confidence",
        +          "reasons"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "returnedFileCount": {
        +      "minimum": 0,
        +      "type": "integer"
        +    },
        +    "truncated": {
        +      "type": "boolean"
        +    },
        +    "unknownRelationFileCount": {
        +      "minimum": 0,
        +      "type": "integer"
        +    },
        +    "warnings": {
        +      "items": {
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "anchorFiles",
        +    "returnedFileCount",
        +    "edgeCount",
        +    "dependencyFileCount",
        +    "dependentFileCount",
        +    "bidirectionalFileCount",
        +    "centralFileCount",
        +    "unknownRelationFileCount",
        +    "files",
        +    "edges",
        +    "truncated",
        +    "warnings"
        +  ],
        +  "type": "object"
        +}
      • addedOutput schema / properties / limits / properties / providersRunDetail
        Added value: +{
        +  "items": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "candidateCount": {
        +        "minimum": 0,
        +        "type": "integer"
        +      },
        +      "durationMs": {
        +        "minimum": 0,
        +        "type": "number"
        +      },
        +      "provider": {
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "status": {
        +        "$ref": "#/properties/retrievalDiagnostics/properties/slowestProvider/properties/status"
        +      }
        +    },
        +    "required": [
        +      "provider",
        +      "status",
        +      "candidateCount",
        +      "durationMs"
        +    ],
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / limits / properties / providersSkippedDetail
        Added value: +{
        +  "items": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "adaptive": {
        +        "type": "boolean"
        +      },
        +      "provider": {
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "reason": {
        +        "minLength": 1,
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "provider",
        +      "reason",
        +      "adaptive"
        +    ],
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • changedOutput schema / properties / limits / required
        Previous value: -[
        -  "budgetTokens",
        -  "tokenEstimateMethod",
        -  "maxPrimaryContext",
        -  "maxRelatedContext",
        -  "providersRun",
        -  "providersSkipped",
        -  "providersFailed",
        -  "candidatesConsidered",
        -  "candidatesReturned"
        -]New value: +[
        +  "budgetTokens",
        +  "tokenEstimateMethod",
        +  "maxPrimaryContext",
        +  "maxRelatedContext",
        +  "providersRun",
        +  "providersRunDetail",
        +  "providersSkipped",
        +  "providersSkippedDetail",
        +  "providersFailed",
        +  "candidatesConsidered",
        +  "candidatesReturned"
        +]
      • changedOutput schema / properties / primaryContext / items / properties / source / enum
        Previous value: -[
        -  "route_provider",
        -  "file_provider",
        -  "schema_provider",
        -  "symbol_provider",
        -  "import_graph_provider",
        -  "repo_map_provider",
        -  "hot_hint_index",
        -  "working_tree_overlay",
        -  "reef_convention"
        -]New value: +[
        +  "live_text_provider",
        +  "route_provider",
        +  "file_provider",
        +  "schema_provider",
        +  "symbol_provider",
        +  "import_graph_provider",
        +  "repo_map_provider",
        +  "hot_hint_index",
        +  "working_tree_overlay",
        +  "reef_convention"
        +]
      • addedOutput schema / properties / requestCoverage
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "byKind": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "database_object": {
        +          "$ref": "#/properties/requestCoverage/properties/byKind/properties/file"
        +        },
        +        "file": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "covered": {
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "notChecked": {
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "requested": {
        +              "minimum": 0,
        +              "type": "integer"
        +            },
        +            "uncovered": {
        +              "minimum": 0,
        +              "type": "integer"
        +            }
        +          },
        +          "required": [
        +            "requested",
        +            "covered",
        +            "uncovered",
        +            "notChecked"
        +          ],
        +          "type": "object"
        +        },
        +        "quoted_text": {
        +          "$ref": "#/properties/requestCoverage/properties/byKind/properties/file"
        +        },
        +        "route": {
        +          "$ref": "#/properties/requestCoverage/properties/byKind/properties/file"
        +        },
        +        "symbol": {
        +          "$ref": "#/properties/requestCoverage/properties/byKind/properties/file"
        +        }
        +      },
        +      "required": [
        +        "file",
        +        "symbol",
        +        "route",
        +        "database_object",
        +        "quoted_text"
        +      ],
        +      "type": "object"
        +    },
        +    "coveredCount": {
        +      "minimum": 0,
        +      "type": "integer"
        +    },
        +    "items": {
        +      "items": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "kind": {
        +            "enum": [
        +              "file",
        +              "symbol",
        +              "route",
        +              "database_object",
        +              "quoted_text"
        +            ],
        +            "type": "string"
        +          },
        +          "matchedBy": {
        +            "items": {
        +              "minLength": 1,
        +              "type": "string"
        +            },
        +            "type": "array"
        +          },
        +          "reason": {
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "status": {
        +            "enum": [
        +              "covered",
        +              "uncovered",
        +              "not_checked"
        +            ],
        +            "type": "string"
        +          },
        +          "value": {
        +            "minLength": 1,
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "kind",
        +          "value",
        +          "status",
        +          "matchedBy",
        +          "reason"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "notCheckedCount": {
        +      "minimum": 0,
        +      "type": "integer"
        +    },
        +    "recommendations": {
        +      "items": {
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "requestedCount": {
        +      "minimum": 0,
        +      "type": "integer"
        +    },
        +    "status": {
        +      "enum": [
        +        "complete",
        +        "partial",
        +        "missing",
        +        "not_requested"
        +      ],
        +      "type": "string"
        +    },
        +    "uncoveredCount": {
        +      "minimum": 0,
        +      "type": "integer"
        +    }
        +  },
        +  "required": [
        +    "status",
        +    "requestedCount",
        +    "coveredCount",
        +    "uncoveredCount",
        +    "notCheckedCount",
        +    "byKind",
        +    "items",
        +    "recommendations"
        +  ],
        +  "type": "object"
        +}
      • addedOutput schema / properties / retrievalDiagnostics
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "adaptiveSkippedProviders": {
        +      "items": {
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "failedProviders": {
        +      "items": {
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "liveTextMisses": {
        +      "items": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "query": {
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "scope": {
        +            "enum": [
        +              "project",
        +              "file"
        +            ],
        +            "type": "string"
        +          },
        +          "scopePath": {
        +            "minLength": 1,
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "query",
        +          "scope"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "providerCandidateCount": {
        +      "minimum": 0,
        +      "type": "integer"
        +    },
        +    "providerRunCount": {
        +      "minimum": 0,
        +      "type": "integer"
        +    },
        +    "recommendations": {
        +      "items": {
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "slowestProvider": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "candidateCount": {
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        "durationMs": {
        +          "minimum": 0,
        +          "type": "number"
        +        },
        +        "provider": {
        +          "minLength": 1,
        +          "type": "string"
        +        },
        +        "status": {
        +          "enum": [
        +            "success",
        +            "failed"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "provider",
        +        "status",
        +        "candidateCount",
        +        "durationMs"
        +      ],
        +      "type": "object"
        +    },
        +    "zeroCandidateProviders": {
        +      "items": {
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "providerRunCount",
        +    "providerCandidateCount",
        +    "zeroCandidateProviders",
        +    "failedProviders",
        +    "adaptiveSkippedProviders",
        +    "liveTextMisses",
        +    "recommendations"
        +  ],
        +  "type": "object"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "toolName",
        -  "projectId",
        -  "projectRoot",
        -  "request",
        -  "mode",
        -  "modePolicy",
        -  "intent",
        -  "primaryContext",
        -  "relatedContext",
        -  "activeFindings",
        -  "symbols",
        -  "routes",
        -  "databaseObjects",
        -  "risks",
        -  "scopedInstructions",
        -  "recommendedHarnessPattern",
        -  "expandableTools",
        -  "freshnessGate",
        -  "reefExecution",
        -  "limits",
        -  "warnings",
        -  "_hints"
        -]New value: +[
        +  "toolName",
        +  "projectId",
        +  "projectRoot",
        +  "request",
        +  "mode",
        +  "modePolicy",
        +  "intent",
        +  "primaryContext",
        +  "relatedContext",
        +  "activeFindings",
        +  "symbols",
        +  "routes",
        +  "databaseObjects",
        +  "graphSummary",
        +  "requestCoverage",
        +  "risks",
        +  "scopedInstructions",
        +  "recommendedHarnessPattern",
        +  "expandableTools",
        +  "freshnessGate",
        +  "evidenceQuality",
        +  "retrievalDiagnostics",
        +  "reefExecution",
        +  "limits",
        +  "warnings",
        +  "_hints"
        +]
    • Changeddb_rpc10 fields changed
      • addedInput schema / properties / includeSystemSchemas
        Added value: +{
        +  "type": "boolean"
        +}
      • addedInput schema / properties / limit
        Added value: +{
        +  "maximum": 1000,
        +  "minimum": 1,
        +  "type": "integer"
        +}
      • addedInput schema / properties / list
        Added value: +{
        +  "type": "boolean"
        +}
      • removedInput schema / required
        Removed value: -[
        -  "name"
        -]
      • addedOutput schema / properties / limit
        Added value: +{
        +  "minimum": 1,
        +  "type": "integer"
        +}
      • addedOutput schema / properties / mode
        Added value: +{
        +  "enum": [
        +    "lookup",
        +    "list"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / rpcs
        Added value: +{
        +  "items": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "argTypes": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "args": {
        +        "items": {
        +          "$ref": "#/properties/args/items"
        +        },
        +        "type": "array"
        +      },
        +      "kind": {
        +        "enum": [
        +          "function",
        +          "procedure"
        +        ],
        +        "type": "string"
        +      },
        +      "language": {
        +        "type": "string"
        +      },
        +      "name": {
        +        "type": "string"
        +      },
        +      "returns": {
        +        "type": "string"
        +      },
        +      "schema": {
        +        "type": "string"
        +      },
        +      "securityDefiner": {
        +        "type": "boolean"
        +      },
        +      "volatility": {
        +        "enum": [
        +          "immutable",
        +          "stable",
        +          "volatile"
        +        ],
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "name",
        +      "schema",
        +      "kind",
        +      "argTypes",
        +      "args",
        +      "returns",
        +      "language",
        +      "securityDefiner",
        +      "volatility"
        +    ],
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / totalReturned
        Added value: +{
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • addedOutput schema / properties / truncated
        Added value: +{
        +  "type": "boolean"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "toolName",
        -  "name",
        -  "schema",
        -  "args",
        -  "returns",
        -  "language",
        -  "securityDefiner",
        -  "volatility",
        -  "source",
        -  "_hints"
        -]New value: +[
        +  "toolName",
        +  "_hints"
        +]
    • Changedmako_help4 fields changed
      • addedInput schema / properties / focusDatabaseObjects
        Added value: +{
        +  "items": {
        +    "minLength": 1,
        +    "type": "string"
        +  },
        +  "maxItems": 20,
        +  "type": "array"
        +}
      • addedInput schema / properties / focusRoutes
        Added value: +{
        +  "items": {
        +    "minLength": 1,
        +    "type": "string"
        +  },
        +  "maxItems": 20,
        +  "type": "array"
        +}
      • addedInput schema / properties / focusSymbols
        Added value: +{
        +  "items": {
        +    "minLength": 1,
        +    "type": "string"
        +  },
        +  "maxItems": 20,
        +  "type": "array"
        +}
      • changedOutput schema / properties / steps / items / properties / toolName / enum
        Previous value: -[
        -  "task_preflight_artifact",
        -  "implementation_handoff_artifact",
        -  "review_bundle_artifact",
        -  "verification_bundle_artifact",
        -  "suggest",
        -  "investigate",
        -  "graph_neighbors",
        -  "graph_path",
        -  "flow_map",
        -  "change_plan",
        -  "tenant_leak_audit",
        -  "health_trend",
        -  "issues_next",
        -  "session_handoff",
        -  "recall_answers",
        -  "recall_tool_runs",
        -  "table_neighborhood",
        -  "route_context",
        -  "rpc_neighborhood",
        -  "agent_feedback",
        -  "agent_feedback_report",
        -  "route_trace",
        -  "schema_usage",
        -  "file_health",
        -  "auth_path",
        -  "imports_deps",
        -  "imports_impact",
        -  "imports_hotspots",
        -  "imports_cycles",
        -  "symbols_of",
        -  "exports_of",
        -  "db_ping",
        -  "db_columns",
        -  "db_fk",
        -  "db_rls",
        -  "db_rpc",
        -  "db_table_schema",
        -  "mako_help",
        -  "ask",
        -  "trace_file",
        -  "preflight_table",
        -  "cross_search",
        -  "trace_edge",
        -  "trace_error",
        -  "trace_table",
        -  "trace_rpc",
        -  "workflow_packet",
        -  "ast_find_pattern",
        -  "live_text_search",
        -  "lint_files",
        -  "typescript_diagnostics",
        -  "eslint_diagnostics",
        -  "oxlint_diagnostics",
        -  "biome_diagnostics",
        -  "git_precommit_check",
        -  "diagnostic_refresh",
        -  "db_reef_refresh",
        -  "db_review_comment",
        -  "db_review_comments",
        -  "repo_map",
        -  "runtime_telemetry_report",
        -  "project_index_status",
        -  "project_index_refresh",
        -  "context_packet",
        -  "tool_batch",
        -  "finding_ack",
        -  "finding_ack_batch",
        -  "finding_acks_report",
        -  "project_findings",
        -  "file_findings",
        -  "file_preflight",
        -  "project_facts",
        -  "file_facts",
        -  "working_tree_overlay",
        -  "reef_overlay_diff",
        -  "reef_diff_impact",
        -  "reef_instructions",
        -  "list_reef_rules",
        -  "rule_pack_validate",
        -  "extract_rule_template",
        -  "project_diagnostic_runs",
        -  "reef_scout",
        -  "reef_inspect",
        -  "reef_where_used",
        -  "project_open_loops",
        -  "verification_state",
        -  "project_conventions",
        -  "rule_memory",
        -  "evidence_confidence",
        -  "evidence_conflicts",
        -  "reef_known_issues",
        -  "reef_agent_status"
        -]New value: +[
        +  "task_preflight_artifact",
        +  "implementation_handoff_artifact",
        +  "review_bundle_artifact",
        +  "verification_bundle_artifact",
        +  "suggest",
        +  "investigate",
        +  "graph_neighbors",
        +  "graph_path",
        +  "flow_map",
        +  "change_plan",
        +  "tenant_leak_audit",
        +  "health_trend",
        +  "issues_next",
        +  "session_handoff",
        +  "recall_answers",
        +  "recall_tool_runs",
        +  "table_neighborhood",
        +  "route_context",
        +  "rpc_neighborhood",
        +  "agent_feedback",
        +  "agent_feedback_report",
        +  "route_trace",
        +  "schema_usage",
        +  "file_health",
        +  "auth_path",
        +  "imports_deps",
        +  "imports_impact",
        +  "imports_hotspots",
        +  "imports_cycles",
        +  "symbols_of",
        +  "exports_of",
        +  "db_ping",
        +  "db_columns",
        +  "db_fk",
        +  "db_rls",
        +  "db_rpc",
        +  "db_table_schema",
        +  "mako_help",
        +  "ask",
        +  "trace_file",
        +  "preflight_table",
        +  "cross_search",
        +  "trace_edge",
        +  "trace_error",
        +  "trace_table",
        +  "trace_rpc",
        +  "workflow_packet",
        +  "ast_find_pattern",
        +  "live_text_search",
        +  "lint_files",
        +  "typescript_diagnostics",
        +  "eslint_diagnostics",
        +  "oxlint_diagnostics",
        +  "biome_diagnostics",
        +  "git_precommit_check",
        +  "diagnostic_refresh",
        +  "db_reef_refresh",
        +  "db_review_comment",
        +  "db_review_comments",
        +  "repo_map",
        +  "runtime_telemetry_report",
        +  "project_index_status",
        +  "project_index_refresh",
        +  "context_packet",
        +  "tool_batch",
        +  "reef_ask",
        +  "finding_ack",
        +  "finding_ack_batch",
        +  "finding_acks_report",
        +  "project_findings",
        +  "file_findings",
        +  "file_preflight",
        +  "project_facts",
        +  "file_facts",
        +  "working_tree_overlay",
        +  "reef_overlay_diff",
        +  "reef_diff_impact",
        +  "reef_impact",
        +  "reef_instructions",
        +  "reef_learning_review",
        +  "list_reef_rules",
        +  "rule_pack_validate",
        +  "extract_rule_template",
        +  "project_diagnostic_runs",
        +  "reef_scout",
        +  "reef_inspect",
        +  "reef_where_used",
        +  "reef_verify",
        +  "project_open_loops",
        +  "verification_state",
        +  "project_conventions",
        +  "rule_memory",
        +  "evidence_confidence",
        +  "evidence_conflicts",
        +  "reef_known_issues",
        +  "reef_status",
        +  "reef_agent_status"
        +]
    • Addedreef_ask
    • Addedreef_impact
    • Addedreef_learning_review
    • Addedreef_status
    • Addedreef_verify
    • Changedrepo_map12 fields changed
      • addedInput schema / properties / focusDatabaseObjects
        Added value: +{
        +  "items": {
        +    "minLength": 1,
        +    "type": "string"
        +  },
        +  "maxItems": 64,
        +  "type": "array"
        +}
      • addedInput schema / properties / focusRoutes
        Added value: +{
        +  "items": {
        +    "minLength": 1,
        +    "type": "string"
        +  },
        +  "maxItems": 64,
        +  "type": "array"
        +}
      • addedInput schema / properties / focusSymbols
        Added value: +{
        +  "items": {
        +    "minLength": 1,
        +    "type": "string"
        +  },
        +  "maxItems": 64,
        +  "type": "array"
        +}
      • addedOutput schema / properties / files / items / properties / dependencyDistance
        Added value: +{
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • addedOutput schema / properties / files / items / properties / dependentDistance
        Added value: +{
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • addedOutput schema / properties / files / items / properties / focusDistance
        Added value: +{
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • addedOutput schema / properties / files / items / properties / focusRelation
        Added value: +{
        +  "enum": [
        +    "self",
        +    "dependency",
        +    "dependent",
        +    "bidirectional"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / files / items / properties / graphRank
        Added value: +{
        +  "minimum": 0,
        +  "type": "number"
        +}
      • addedOutput schema / properties / files / items / properties / graphRankDirection
        Added value: +{
        +  "enum": [
        +    "outbound",
        +    "inbound",
        +    "bidirectional"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / files / items / properties / graphRankMode
        Added value: +{
        +  "enum": [
        +    "global",
        +    "personalized"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / files / items / properties / graphRankScore
        Added value: +{
        +  "minimum": 0,
        +  "type": "number"
        +}
      • changedOutput schema / properties / files / items / required
        Previous value: -[
        -  "filePath",
        -  "score",
        -  "inboundCount",
        -  "outboundCount",
        -  "symbolsIncluded",
        -  "symbolsTotal",
        -  "truncatedSymbols"
        -]New value: +[
        +  "filePath",
        +  "graphRank",
        +  "graphRankScore",
        +  "graphRankMode",
        +  "graphRankDirection",
        +  "score",
        +  "inboundCount",
        +  "outboundCount",
        +  "symbolsIncluded",
        +  "symbolsTotal",
        +  "truncatedSymbols"
        +]
    • Changedtool_batch2 fields changed
      • changedInput schema / properties / ops / items / properties / tool / enum
        Previous value: -[
        -  "task_preflight_artifact",
        -  "implementation_handoff_artifact",
        -  "review_bundle_artifact",
        -  "verification_bundle_artifact",
        -  "suggest",
        -  "investigate",
        -  "graph_neighbors",
        -  "graph_path",
        -  "flow_map",
        -  "change_plan",
        -  "tenant_leak_audit",
        -  "health_trend",
        -  "issues_next",
        -  "session_handoff",
        -  "recall_answers",
        -  "recall_tool_runs",
        -  "table_neighborhood",
        -  "route_context",
        -  "rpc_neighborhood",
        -  "agent_feedback_report",
        -  "route_trace",
        -  "schema_usage",
        -  "file_health",
        -  "auth_path",
        -  "imports_deps",
        -  "imports_impact",
        -  "imports_hotspots",
        -  "imports_cycles",
        -  "symbols_of",
        -  "exports_of",
        -  "db_ping",
        -  "db_columns",
        -  "db_fk",
        -  "db_rls",
        -  "db_rpc",
        -  "db_table_schema",
        -  "mako_help",
        -  "ask",
        -  "trace_file",
        -  "preflight_table",
        -  "cross_search",
        -  "trace_edge",
        -  "trace_error",
        -  "trace_table",
        -  "trace_rpc",
        -  "workflow_packet",
        -  "ast_find_pattern",
        -  "live_text_search",
        -  "repo_map",
        -  "runtime_telemetry_report",
        -  "project_index_status",
        -  "context_packet",
        -  "finding_acks_report",
        -  "project_findings",
        -  "file_findings",
        -  "project_facts",
        -  "file_facts",
        -  "reef_overlay_diff",
        -  "reef_diff_impact",
        -  "reef_instructions",
        -  "list_reef_rules",
        -  "rule_pack_validate",
        -  "project_diagnostic_runs",
        -  "reef_scout",
        -  "reef_inspect",
        -  "reef_where_used",
        -  "project_open_loops",
        -  "verification_state",
        -  "project_conventions",
        -  "rule_memory",
        -  "evidence_confidence",
        -  "evidence_conflicts",
        -  "reef_known_issues",
        -  "reef_agent_status",
        -  "db_review_comments"
        -]New value: +[
        +  "task_preflight_artifact",
        +  "implementation_handoff_artifact",
        +  "review_bundle_artifact",
        +  "verification_bundle_artifact",
        +  "suggest",
        +  "investigate",
        +  "graph_neighbors",
        +  "graph_path",
        +  "flow_map",
        +  "change_plan",
        +  "tenant_leak_audit",
        +  "health_trend",
        +  "issues_next",
        +  "session_handoff",
        +  "recall_answers",
        +  "recall_tool_runs",
        +  "table_neighborhood",
        +  "route_context",
        +  "rpc_neighborhood",
        +  "agent_feedback_report",
        +  "route_trace",
        +  "schema_usage",
        +  "file_health",
        +  "auth_path",
        +  "imports_deps",
        +  "imports_impact",
        +  "imports_hotspots",
        +  "imports_cycles",
        +  "symbols_of",
        +  "exports_of",
        +  "db_ping",
        +  "db_columns",
        +  "db_fk",
        +  "db_rls",
        +  "db_rpc",
        +  "db_table_schema",
        +  "mako_help",
        +  "ask",
        +  "trace_file",
        +  "preflight_table",
        +  "cross_search",
        +  "trace_edge",
        +  "trace_error",
        +  "trace_table",
        +  "trace_rpc",
        +  "workflow_packet",
        +  "ast_find_pattern",
        +  "live_text_search",
        +  "repo_map",
        +  "runtime_telemetry_report",
        +  "project_index_status",
        +  "context_packet",
        +  "reef_ask",
        +  "finding_acks_report",
        +  "project_findings",
        +  "file_findings",
        +  "project_facts",
        +  "file_facts",
        +  "reef_overlay_diff",
        +  "reef_diff_impact",
        +  "reef_impact",
        +  "reef_instructions",
        +  "reef_learning_review",
        +  "list_reef_rules",
        +  "rule_pack_validate",
        +  "project_diagnostic_runs",
        +  "reef_scout",
        +  "reef_inspect",
        +  "reef_where_used",
        +  "reef_verify",
        +  "project_open_loops",
        +  "verification_state",
        +  "project_conventions",
        +  "rule_memory",
        +  "evidence_confidence",
        +  "evidence_conflicts",
        +  "reef_known_issues",
        +  "reef_status",
        +  "reef_agent_status",
        +  "db_review_comments"
        +]
      • changedOutput schema / properties / results / items / properties / tool / enum
        Previous value: -[
        -  "task_preflight_artifact",
        -  "implementation_handoff_artifact",
        -  "review_bundle_artifact",
        -  "verification_bundle_artifact",
        -  "suggest",
        -  "investigate",
        -  "graph_neighbors",
        -  "graph_path",
        -  "flow_map",
        -  "change_plan",
        -  "tenant_leak_audit",
        -  "health_trend",
        -  "issues_next",
        -  "session_handoff",
        -  "recall_answers",
        -  "recall_tool_runs",
        -  "table_neighborhood",
        -  "route_context",
        -  "rpc_neighborhood",
        -  "agent_feedback_report",
        -  "route_trace",
        -  "schema_usage",
        -  "file_health",
        -  "auth_path",
        -  "imports_deps",
        -  "imports_impact",
        -  "imports_hotspots",
        -  "imports_cycles",
        -  "symbols_of",
        -  "exports_of",
        -  "db_ping",
        -  "db_columns",
        -  "db_fk",
        -  "db_rls",
        -  "db_rpc",
        -  "db_table_schema",
        -  "mako_help",
        -  "ask",
        -  "trace_file",
        -  "preflight_table",
        -  "cross_search",
        -  "trace_edge",
        -  "trace_error",
        -  "trace_table",
        -  "trace_rpc",
        -  "workflow_packet",
        -  "ast_find_pattern",
        -  "live_text_search",
        -  "repo_map",
        -  "runtime_telemetry_report",
        -  "project_index_status",
        -  "context_packet",
        -  "finding_acks_report",
        -  "project_findings",
        -  "file_findings",
        -  "project_facts",
        -  "file_facts",
        -  "reef_overlay_diff",
        -  "reef_diff_impact",
        -  "reef_instructions",
        -  "list_reef_rules",
        -  "rule_pack_validate",
        -  "project_diagnostic_runs",
        -  "reef_scout",
        -  "reef_inspect",
        -  "reef_where_used",
        -  "project_open_loops",
        -  "verification_state",
        -  "project_conventions",
        -  "rule_memory",
        -  "evidence_confidence",
        -  "evidence_conflicts",
        -  "reef_known_issues",
        -  "reef_agent_status",
        -  "db_review_comments"
        -]New value: +[
        +  "task_preflight_artifact",
        +  "implementation_handoff_artifact",
        +  "review_bundle_artifact",
        +  "verification_bundle_artifact",
        +  "suggest",
        +  "investigate",
        +  "graph_neighbors",
        +  "graph_path",
        +  "flow_map",
        +  "change_plan",
        +  "tenant_leak_audit",
        +  "health_trend",
        +  "issues_next",
        +  "session_handoff",
        +  "recall_answers",
        +  "recall_tool_runs",
        +  "table_neighborhood",
        +  "route_context",
        +  "rpc_neighborhood",
        +  "agent_feedback_report",
        +  "route_trace",
        +  "schema_usage",
        +  "file_health",
        +  "auth_path",
        +  "imports_deps",
        +  "imports_impact",
        +  "imports_hotspots",
        +  "imports_cycles",
        +  "symbols_of",
        +  "exports_of",
        +  "db_ping",
        +  "db_columns",
        +  "db_fk",
        +  "db_rls",
        +  "db_rpc",
        +  "db_table_schema",
        +  "mako_help",
        +  "ask",
        +  "trace_file",
        +  "preflight_table",
        +  "cross_search",
        +  "trace_edge",
        +  "trace_error",
        +  "trace_table",
        +  "trace_rpc",
        +  "workflow_packet",
        +  "ast_find_pattern",
        +  "live_text_search",
        +  "repo_map",
        +  "runtime_telemetry_report",
        +  "project_index_status",
        +  "context_packet",
        +  "reef_ask",
        +  "finding_acks_report",
        +  "project_findings",
        +  "file_findings",
        +  "project_facts",
        +  "file_facts",
        +  "reef_overlay_diff",
        +  "reef_diff_impact",
        +  "reef_impact",
        +  "reef_instructions",
        +  "reef_learning_review",
        +  "list_reef_rules",
        +  "rule_pack_validate",
        +  "project_diagnostic_runs",
        +  "reef_scout",
        +  "reef_inspect",
        +  "reef_where_used",
        +  "reef_verify",
        +  "project_open_loops",
        +  "verification_state",
        +  "project_conventions",
        +  "rule_memory",
        +  "evidence_confidence",
        +  "evidence_conflicts",
        +  "reef_known_issues",
        +  "reef_status",
        +  "reef_agent_status",
        +  "db_review_comments"
        +]
  4. 99 tool updatesv0.2.5
    • Addedagent_feedback
    • Addedagent_feedback_report
    • Addedapply_patch
    • Addedask
    • Addedast_find_pattern
    • Addedauth_path
    • Addedbiome_diagnostics
    • Addedchange_plan
    • Addedcontext_packet
    • Addedcreate_file
    • Addedcross_search
    • Addeddb_columns
    • Addeddb_fk
    • Addeddb_ping
    • Addeddb_reef_refresh
    • Addeddb_review_comment
    • Addeddb_review_comments
    • Addeddb_rls
    • Addeddb_rpc
    • Addeddb_table_schema
    • Addeddelete_file
    • Addeddiagnostic_refresh
    • Addedeslint_diagnostics
    • Addedevidence_confidence
    • Addedevidence_conflicts
    • Addedexports_of
    • Addedextract_rule_template
    • Addedfile_edit
    • Addedfile_facts
    • Addedfile_findings
    • Addedfile_health
    • Addedfile_preflight
    • Addedfile_write
    • Addedfinding_ack
    • Addedfinding_ack_batch
    • Addedfinding_acks_report
    • Addedflow_map
    • Addedgit_precommit_check
    • Addedgraph_neighbors
    • Addedgraph_path
    • Addedhealth_trend
    • Addedimplementation_handoff_artifact
    • Addedimports_cycles
    • Addedimports_deps
    • Addedimports_hotspots
    • Addedimports_impact
    • Addedinvestigate
    • Addedissues_next
    • Addedlint_files
    • Addedlist_reef_rules
    • Addedlive_text_search
    • Addedmako_help
    • Addedoxlint_diagnostics
    • Addedpreflight_table
    • Addedproject_conventions
    • Addedproject_diagnostic_runs
    • Addedproject_facts
    • Addedproject_findings
    • Addedproject_index_refresh
    • Addedproject_index_status
    • Addedproject_open_loops
    • Addedrecall_answers
    • Addedrecall_tool_runs
    • Addedreef_agent_status
    • Addedreef_diff_impact
    • Addedreef_inspect
    • Addedreef_instructions
    • Addedreef_known_issues
    • Addedreef_overlay_diff
    • Addedreef_scout
    • Addedreef_where_used
    • Addedrepo_map
    • Addedreview_bundle_artifact
    • Addedroute_context
    • Addedroute_trace
    • Addedrpc_neighborhood
    • Addedrule_memory
    • Addedrule_pack_validate
    • Addedruntime_telemetry_report
    • Addedschema_usage
    • Addedsession_handoff
    • Addedshell_run
    • Addedsuggest
    • Addedsymbols_of
    • Addedtable_neighborhood
    • Addedtask_preflight_artifact
    • Addedtenant_leak_audit
    • Addedtool_batch
    • Addedtool_search
    • Addedtrace_edge
    • Addedtrace_error
    • Addedtrace_file
    • Addedtrace_rpc
    • Addedtrace_table
    • Addedtypescript_diagnostics
    • Addedverification_bundle_artifact
    • Addedverification_state
    • Addedworkflow_packet
    • Addedworking_tree_overlay
  5. 95 tool updatesv0.2.4
    • Removedagent_feedback
    • Removedagent_feedback_report
    • Removedapply_patch
    • Removedask
    • Removedast_find_pattern
    • Removedauth_path
    • Removedbiome_diagnostics
    • Removedchange_plan
    • Removedcontext_packet
    • Removedcreate_file
    • Removedcross_search
    • Removeddb_columns
    • Removeddb_fk
    • Removeddb_ping
    • Removeddb_reef_refresh
    • Removeddb_review_comment
    • Removeddb_review_comments
    • Removeddb_rls
    • Removeddb_rpc
    • Removeddb_table_schema
    • Removeddelete_file
    • Removeddiagnostic_refresh
    • Removedeslint_diagnostics
    • Removedevidence_confidence
    • Removedevidence_conflicts
    • Removedexports_of
    • Removedfile_edit
    • Removedfile_facts
    • Removedfile_findings
    • Removedfile_health
    • Removedfile_write
    • Removedfinding_ack
    • Removedfinding_ack_batch
    • Removedfinding_acks_report
    • Removedflow_map
    • Removedgit_precommit_check
    • Removedgraph_neighbors
    • Removedgraph_path
    • Removedhealth_trend
    • Removedimplementation_handoff_artifact
    • Removedimports_cycles
    • Removedimports_deps
    • Removedimports_hotspots
    • Removedimports_impact
    • Removedinvestigate
    • Removedissues_next
    • Removedlint_files
    • Removedlist_reef_rules
    • Removedlive_text_search
    • Removedoxlint_diagnostics
    • Removedpreflight_table
    • Removedproject_conventions
    • Removedproject_diagnostic_runs
    • Removedproject_facts
    • Removedproject_findings
    • Removedproject_index_refresh
    • Removedproject_index_status
    • Removedproject_open_loops
    • Removedrecall_answers
    • Removedrecall_tool_runs
    • Removedreef_agent_status
    • Removedreef_inspect
    • Removedreef_instructions
    • Removedreef_known_issues
    • Removedreef_overlay_diff
    • Removedreef_scout
    • Removedreef_where_used
    • Removedrepo_map
    • Removedreview_bundle_artifact
    • Removedroute_context
    • Removedroute_trace
    • Removedrpc_neighborhood
    • Removedrule_memory
    • Removedrule_pack_validate
    • Removedruntime_telemetry_report
    • Removedschema_usage
    • Removedsession_handoff
    • Removedshell_run
    • Removedsuggest
    • Removedsymbols_of
    • Removedtable_neighborhood
    • Removedtask_preflight_artifact
    • Removedtenant_leak_audit
    • Removedtool_batch
    • Removedtool_search
    • Removedtrace_edge
    • Removedtrace_error
    • Removedtrace_file
    • Removedtrace_rpc
    • Removedtrace_table
    • Removedtypescript_diagnostics
    • Removedverification_bundle_artifact
    • Removedverification_state
    • Removedworkflow_packet
    • Removedworking_tree_overlay
  6. 95 tool updatesv0.2.3
    • First observedagent_feedback
    • First observedagent_feedback_report
    • First observedapply_patch
    • First observedask
    • First observedast_find_pattern
    • First observedauth_path
    • First observedbiome_diagnostics
    • First observedchange_plan
    • First observedcontext_packet
    • First observedcreate_file
    • First observedcross_search
    • First observeddb_columns
    • First observeddb_fk
    • First observeddb_ping
    • First observeddb_reef_refresh
    • First observeddb_review_comment
    • First observeddb_review_comments
    • First observeddb_rls
    • First observeddb_rpc
    • First observeddb_table_schema
    • First observeddelete_file
    • First observeddiagnostic_refresh
    • First observedeslint_diagnostics
    • First observedevidence_confidence
    • First observedevidence_conflicts
    • First observedexports_of
    • First observedfile_edit
    • First observedfile_facts
    • First observedfile_findings
    • First observedfile_health
    • First observedfile_write
    • First observedfinding_ack
    • First observedfinding_ack_batch
    • First observedfinding_acks_report
    • First observedflow_map
    • First observedgit_precommit_check
    • First observedgraph_neighbors
    • First observedgraph_path
    • First observedhealth_trend
    • First observedimplementation_handoff_artifact
    • First observedimports_cycles
    • First observedimports_deps
    • First observedimports_hotspots
    • First observedimports_impact
    • First observedinvestigate
    • First observedissues_next
    • First observedlint_files
    • First observedlist_reef_rules
    • First observedlive_text_search
    • First observedoxlint_diagnostics
    • First observedpreflight_table
    • First observedproject_conventions
    • First observedproject_diagnostic_runs
    • First observedproject_facts
    • First observedproject_findings
    • First observedproject_index_refresh
    • First observedproject_index_status
    • First observedproject_open_loops
    • First observedrecall_answers
    • First observedrecall_tool_runs
    • First observedreef_agent_status
    • First observedreef_inspect
    • First observedreef_instructions
    • First observedreef_known_issues
    • First observedreef_overlay_diff
    • First observedreef_scout
    • First observedreef_where_used
    • First observedrepo_map
    • First observedreview_bundle_artifact
    • First observedroute_context
    • First observedroute_trace
    • First observedrpc_neighborhood
    • First observedrule_memory
    • First observedrule_pack_validate
    • First observedruntime_telemetry_report
    • First observedschema_usage
    • First observedsession_handoff
    • First observedshell_run
    • First observedsuggest
    • First observedsymbols_of
    • First observedtable_neighborhood
    • First observedtask_preflight_artifact
    • First observedtenant_leak_audit
    • First observedtool_batch
    • First observedtool_search
    • First observedtrace_edge
    • First observedtrace_error
    • First observedtrace_file
    • First observedtrace_rpc
    • First observedtrace_table
    • First observedtypescript_diagnostics
    • First observedverification_bundle_artifact
    • First observedverification_state
    • First observedworkflow_packet
    • First observedworking_tree_overlay

TDQS

B3.4/5.0
Disambiguation4/5

The tool set is large but each tool's description clearly distinguishes its purpose. However, the sheer number of tools with overlapping categories (e.g., multiple reef_* tools for inspection, multiple trace_* tools) could still cause misselection in an agent, even with detailed descriptions.

Naming Consistency5/5

All tool names follow a consistent snake_case pattern, typically comprising a noun or verb followed by descriptive terms (e.g., `agent_feedback`, `apply_patch`, `db_table_schema`). The naming convention is uniform and predictable.

Tool Count2/5

95 tools is an extreme number for an MCP server. While each tool may serve a specific purpose, the volume overwhelms the agent's ability to efficiently select among them. Most servers have fewer than 20 tools, making this count far above typical.

Completeness5/5

The tool surface is extremely comprehensive, covering the full lifecycle of code investigation, editing, database introspection, linting, verification, and feedback. There are no obvious gaps in the stated domain of a development agent.

Maintenance

ActivityStale
ResponsivenessSyncing

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

  • A
    license
    B
    quality
    D
    maintenance
    Local-first codebase context engine that parses code into a ranked dependency graph and serves it to AI tools via MCP for deep structural understanding.
    5
    27
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    A local-first codebase intelligence layer for AI coding agents, providing a persistent, queryable model of a repository via an MCP server and CLI to enable structure queries instead of reading many files.
    Apache 2.0
  • A
    license
    Not graded
    quality
    A
    maintenance
    Local repository intelligence MCP server that builds a reusable graph of code structure for AI coding agents, providing 34 network-free tools for understanding, searching, and analyzing repositories without data leaving the machine.
    357
    MIT
  • F
    license
    Not graded
    quality
    A
    maintenance
    Provides a local-first code indexing and search engine for coding agents via MCP, enabling precise codebase queries, symbol lookup, and freshness-aware retrieval.
    -

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/drhalto/agentmako'

If you have feedback or need assistance with the MCP directory API, please join our Discord server