hw-native-sys
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@hw-native-sysbootstrap a session for compiler work"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
hw-native-sys MCP server
A local Model Context Protocol (MCP) server for full-stack compiler development across the hw-native-sys workspace. It combines operations (git health, code search, running named tasks) with a knowledge layer (architecture docs, task routing, an abstraction index, pass pipeline info, cross-repo status) so an agent — or you — can get oriented on pypto → PTOAS → pto-isa → simpler → pypto-lib in one or two calls instead of grepping five repos by hand.
This doc is the full reference: setup, every tool/resource/prompt, the config files behind them, how the knowledge index is built and kept honest, and how to extend the server yourself.
Repositories it operates over
Repo | Role |
| Compiler framework: Python DSL → IR → passes → codegen |
| PTO assembler/optimizer: |
| Virtual tile ISA: C++ headers, CPU/NPU backends |
| PTO2 runtime: task graph execution on AICore/AICPU |
| Model zoo and golden validation harness |
| Enriched planning notes, retrospectives, cross-repo status (secondary tier — not canonical) |
| Top-level design/architecture proposals (design tier — non-canonical, forward-looking) |
| OSU-style PyTorch/HCCL bandwidth micro-benchmarks (NPU) |
| Umbrella: agent skills, runbooks, task-submit doc |
| Docker images and build scripts for the pypto stack (this server's sim images) |
| Personal collective benchmark harness (pypto vs simpler vs HCCL) |
| This MCP server |
Related MCP server: Nabu + Nisaba
Setup
cd /home/georgios/workspace/hw-native-sys/mcp-hw-native-sys
python3 -m venv .venv
source .venv/bin/activate
pip install -e .Requires Python ≥3.10, the mcp package (installed via the above), and rg (ripgrep) on PATH for search_code.
Workspace root resolution
The server needs to know where the sibling repos live. In order of precedence:
HW_NATIVE_SYS_ROOTenv var, if set.config/repos.json's"workspace_root"field (checked in as"..", i.e. one directory up frommcp-hw-native-sys/— this is what makes the server work out of the box for the standard checkout layout).Fallback:
project_root().parents[1].
You generally don't need to set HW_NATIVE_SYS_ROOT unless you're running the server from a copy that isn't in its usual place relative to the sibling repos.
Quick local run (stdio, manual)
source .venv/bin/activate
export HW_NATIVE_SYS_ROOT=/home/georgios/workspace/hw-native-sys # optional, see above
hw-native-sys-mcpClaude Code integration
pypto-tooling/.mcp.json (the umbrella repo) already registers this server under the name hw-native-sys, pointing at this repo's .venv:
{
"mcpServers": {
"hw-native-sys": {
"command": "/home/georgios/workspace/hw-native-sys/mcp-hw-native-sys/.venv/bin/hw-native-sys-mcp"
}
}
}Any Claude Code session started with pypto-tooling or mcp-hw-native-sys (or a parent directory) as the working directory picks this up automatically — tools appear as mcp__hw-native-sys__<tool_name>. No env var needed since config/repos.json's relative workspace_root resolves correctly from the checked-in .venv location.
Cursor / VS Code MCP integration
Register a stdio MCP server manually:
command:
/home/georgios/workspace/hw-native-sys/mcp-hw-native-sys/.venv/bin/hw-native-sys-mcpenv:
HW_NATIVE_SYS_ROOT=/home/georgios/workspace/hw-native-sys(optional, see workspace root resolution above)
Recommended daily workflow
Call the
start_compiler_workprompt (orstart_distributed_work/start_ascend_work/start_npu_verifydepending on the task) — this gives you the exact next steps.Call
bootstrap_session(task_type=...)— one call returns route metadata (read_plan), repo health, and active-program hints together.Follow
read_plan: read canonical docs first, enriched docs second. Useread_doc(path, section=...)to pull a single markdown section out of a large note instead of the whole file.Use
explain_pass/explain_abstraction/search_abstractions/trace_contract/trace_in_stackto pin down stack concepts before writing code.Call
program_statusfor open PRs/blockers, andcollective_statusif the work touches collective communication ops.Implement.
Run
verify_ladder(changed_paths)to get the minimal verify set:suggested_tasks(pytest) plusstatic_checks— when a changed path is a C/C++ file in a C++ repo,static_checksis["clang-tidy"]and clang-tidy on the changed files is required before committing (see thetools/clang_tidy_workflowresource for the compile-db prerequisite and per-repo commands).Run
agent_verify_tasksviarun_task. Never rundeveloper_verify_tasks(NPU/hardware-gated) yourself — those are for the human developer.
Build & test policy (NPU-or-sim-Docker)
The server never builds/tests directly on a local repo unless NPUs are
reachable. Every heavy (build/test/package) task is routed on
npu-smi availability:
NPU reachable → the host
commandruns as configured (host builds allowed).No NPU →
run_taskre-routes the task into the repo's sim Docker image (mounted worktree + in-container install) and reports the redirect in the result'snote. Images:pypto3-hw-native-sys:sim(pypto/pto-isa),simpler-hw-native-sys:sim,pypto-lib-hw-native-sys:sim— built frompypto-docker/Dockerfile.*sim.ubuntu22.04.No NPU + image missing → the task is refused with the exact
docker buildcommand to create the image first.No sim image for the repo (e.g. PTOAS) → refused with guidance.
run_commandrefuses ad-hoc build/test commands (cmake/make/ninja/pip install/pytest/…) when no NPU is reachable; read-only commands are unaffected. Tasks whose command already runs in a container are markedsim_docker: trueand bypass routing.
See content/tools/sim_docker_workflow.md (MCP resource tools/sim_docker_workflow)
for the full loop, and pypto-3.0-notes/pr_plans/00-branch-and-pr-standards.md
§ Sim Docker for the canonical iteration loop.
Tools
Operations (mcp_hwnative_sys/server.py)
Tool | Purpose |
| Repos, paths, and architecture metadata |
| Branch, dirty state, ahead/behind upstream, last commit, |
| Ripgrep across one/many/all repos. |
| Named tasks configured for a repo (from |
| Run a named task in a repo, with |
| Ad-hoc shell command in a repo's root; destructive patterns ( |
| Show the exact command + metadata for one named task (repo-first: |
| Structured commit list (sha, author, date, message) for a repo |
|
|
| Read an arbitrary source file from a repo (paginated via |
| Single-call session bootstrap: route + |
| Generate a self-contained bash script for the PR gate (rebase → pre-commit → sim-Docker tests → squash → force-push). Validates preconditions but never executes git/docker itself |
Knowledge (mcp_hwnative_sys/knowledge.py and friends)
Tool | Purpose |
| All valid |
| Read-first docs (canonical + enriched), rules, entrypoints, and verify tasks for a |
| Enumerate all task routes, MCP resources, notes topics, and bootstrap prompts in one call |
| Read a workspace doc with tier labeling ( |
| Concept card for an IR node, pass, codegen stage, ISA instruction, PTOAS op, or Ascend hardware concept. Reports |
| Keyword search across the full abstraction index (name, layer, kind, tags, |
| Pass-pipeline card: order, phase, neighbors, verify tasks (from the |
| Structured open PRs, blockers, and plan cross-index from |
| Collective-comm feature parity status (merged/planned/gap) from the parity matrix in |
| Minimal suggested verify tasks for a list of changed file paths (longest-matching-prefix rules) |
| Code entrypoints for a repo and optional sub-area |
| Locate a symbol or path in the |
| Enriched cross-layer trace: stack location + contract triangle + cross-layer verify tasks + active-PR links |
| Self-audit: missing paths, stale enriched docs (>30 days since |
| Read-only NPU/CANN/HCCL environment diagnosis (devices, |
| Generate a markdown handoff for a human developer to run NPU/hardware verification in a container |
| Summarize a |
MCP resources
Fixed URIs, read via an MCP resource client (or by finding the matching path via read_doc/list_knowledge_topics):
Prefix | Example URIs | Content |
|
| Multi-repo roles, compilation pipeline |
|
| pypto subsystem overviews |
|
| Sibling-repo overviews |
|
| Model zoo / harness layer |
|
| HCCL bandwidth benchmarking |
|
| Agent-facing rules and the task-routing index |
|
| Ascend hardware/platform reference |
|
| End-to-end worked examples |
|
| MCP-owned task workflows (sim-Docker loop, mandatory clang-tidy step, PR gate) |
| see notes topics below | Enriched notes (secondary tier) |
Doc tiers (returned by read_doc/route_task): canonical (sibling repo docs — authoritative) > enriched (pypto-3.0-notes — secondary, check last_verified) > design (pypto_top_level_documents — forward-looking proposals, non-canonical) > mcp-owned (content/ — this server's own decision-tree docs) > ephemeral (pr_plans/, pull_requests/ — living/scratch, refused by read_doc, use program_status/collective_status instead).
Notes topics (notes/{topic}, resource or read_doc)
abstractions_master, codegen_infrastructure, dependency_triangle, distributed_work_policy, host_collectives, kernel_orchestration, machine_hierarchy, moe, multi_level_runtime_ring, notes_simpler, pass_infrastructure, ptoas_abstractions, ptoisa_abstractions, pypto_abstractions, pypto_lib_attention, pypto_lib_building_blocks, pypto_lib_distributed_support, pypto_lib_models, pypto_lib_status, runtime_arch_index, runtime_async, runtime_design, serving_implementation_plan, sharded_tensor, simpler_abstractions, simpler_distributed_runtime_design, stack_availability, tensor_layout, tensor_valid_shape, tpush_tpop_isa_design
MCP prompts
Prompt | Params | Use when |
|
| General compiler work — any new session should start here or with one of the below |
|
| Collectives, L3 runtime, distributed codegen, large-scale inference |
|
| Ascend hardware architecture, performance tuning, HCCL |
| — | Developer-only: hand off to real-NPU container verification (agent must not run this itself — see the prompt body for the exact gate) |
| — | Closing loop: verify_ladder → agent_verify_tasks → clang-tidy (if C++ changed) → generate_verify_handoff for the NPU-gated remainder |
Each prompt returns a short markdown playbook naming the exact tool-call sequence for that kind of work.
Task types (route_task / bootstrap_session / list_task_types)
task_type | Covers |
| Any new session — multi-repo roles and compilation pipeline |
| New IR nodes, types, or structural changes |
| Pass pipeline additions or modifications |
| InCore codegen to |
| Orchestration codegen to PTO2 runtime C++ (AICPU path) |
| Distributed ops, collectives, multi-rank |
| Composite collectives, ring vs. mesh algorithms |
| Host builtin collectives program (barrier, broadcast, reduce_scatter, allgather) |
| Distributed codegen backend |
|
|
| pypto-lib models, golden harness, inference paths |
| What building blocks/ops/models exist in pypto-lib and their distributed support |
| PTO assembler and optimizer ( |
| Virtual tile ISA headers and backends |
|
|
| Model zoo, kernels, golden validation harness |
| Compile/runtime profiling for training/inference tuning |
| Ascend chip architecture: AIC/AIV, memory hierarchy, A2A3 vs. A5 |
| HCCL, comm windows, CANN container verify, distributed execution |
| Performance tuning: block_dim, swimlanes, PMU, arch-specific backend handlers |
| Developer NPU verification handoff — container checkout, HCCL STs, record SHA |
| PyTorch/HCCL collective + p2p bandwidth benchmarking via |
route_task returns agent_verify_tasks (safe for an agent to run, e.g. sim-Docker UTs) separately from developer_verify_tasks (NPU/hardware-gated — an agent must never run these; they're for the human developer, typically via generate_verify_handoff).
Host collectives (plan 33)
Agent | Task |
Sim UT gate |
|
NPU ST (developer) |
|
Read hw-native-sys://agent/distributed_work_policy and hw-native-sys://notes/host_collectives before resuming fork work in this area.
Configuration files
File | Purpose | Curation |
| Workspace root, repo paths, named tasks, | Hand-maintained |
| Task routes, resources, notes topics | Hand-maintained |
| Per-repo code entrypoints, by area | Hand-maintained |
| Hand-curated compiler/stack concept cards | Hand-maintained — always wins over generated cards on name collision |
| Ascend hardware, arch, HCCL concept cards | Hand-maintained, merged into the same abstraction index as |
| ~140 pto-isa instruction cards (tile-local + comm) | Generated by |
| ~500 PTOAS IR op cards | Generated by |
| Default pipeline pass order, phase, verify tasks | Generated by |
| Branch → active program hints (route, verify, blockers) | Hand-maintained |
| Structured PR status | Generated by |
| Structured collective-comm parity matrix | Generated by |
| MCP-owned decision trees (platform, alignment, HCCL) | Hand-maintained |
All generated files are checked into git (so a fresh checkout works without a build step) but are meant to be periodically regenerated — see below. None of the generator scripts ever write to the sibling repos or to pypto-3.0-notes; they only read from them.
Provenance: curated vs. generated abstraction cards
load_abstractions() merges four sources: pto_isa_generated.json and ptoas_generated.json first (broad, mechanical coverage), then abstractions.json and ascend_abstractions.json last — so any hand-curated card always wins outright on a name collision. explain_abstraction reports which one you got via its source field (curated or generated). Generated cards additionally carry generated_from (the exact source file scraped) so you can tell where a summary came from.
Why this split exists: pto-isa and PTOAS have far more instructions/ops (~140 and ~500 respectively) than anyone has hand-written cards for (~15 combined, as of writing). Rather than leave the long tail undocumented, the generators mechanically extract what pto-isa/PTOAS already document about themselves (structured manifest.yaml entries, TableGen let summary fields) — lower-quality than hand curation, but far better than nothing, and it never silently overrides a hand-written card.
Maintaining the knowledge config
Run these after upstream changes to the scraped sources (pass pipeline, pto-isa manifest, PTOAS .td files, PR/plan status, or the collective status matrix):
# Verify every path referenced by knowledge.json/abstractions/entrypoints actually exists
python tools/verify_knowledge_config.py
# Rebuild passes_index.json (from pypto's pass_manager.py) + suggest new abstraction
# candidates (printed to stdout only -- never auto-merged into abstractions.json)
python tools/build_knowledge_index.py
# Rebuild pto_isa_generated.json from pto-isa/docs/isa/manifest.yaml + comm/README.md
python tools/build_pto_isa_index.py
# Rebuild ptoas_generated.json from PTOAS's PTOOps.td / VPTOOps.td
python tools/build_ptoas_index.py
# Sync status_prs.md -> program_status.json for agents
python tools/sync_status_to_json.py
# Sync current_status.md's parity matrix -> collective_status.json
python tools/sync_collective_status_to_json.pyCaveat on build_knowledge_index.py: it only rebuilds passes_index.json when re-run explicitly — load_passes_index() does not invalidate the on-disk cache on its own (unlike load_abstractions(), which is mtime-keyed). If you rebuild it and pypto_pass_count comes back as 0 with a warning, that means pypto/python/pypto/ir/pass_manager.py upstream no longer matches the scraper's expected ("Name", lambda: passes.foo()) shape — check whether the pass pipeline has since moved to a different registration mechanism before assuming the scraper is simply stale. Don't blindly overwrite a healthy checked-in cache with a broken re-scrape — diff it first; if the rebuild produces materially less data than what's committed, something upstream changed and needs a matching fix in passes_index.py, not a cache overwrite.
Self-auditing: knowledge_health
Call knowledge_health any time you want a health check on the knowledge layer itself, without a manual audit:
missing_paths— any route/resource/abstraction path that no longer exists on disk.stale_enriched— enriched docs whoselast_verified(frompypto-3.0-notes/NOTES_FRESHNESS.md) is more than 30 days old.coverage.pto_isa_indexed/coverage.ptoas_indexed— how many generated cards currently exist, so index drift (e.g. after a pto-isa/PTOAS refactor) is visible without re-running the multi-agent audit that originally found this gap.pypto_pass_count/pypto_passes_index_warning— whether the pass-pipeline scrape is currently healthy (see caveat above). Explicitly scoped to pypto — no other repo's pass pipeline is scraped, so don't read this as a cross-repo figure.ascend_issues,last_index_build,ascend_route_count— misc corpus checks.
Task profile (operations)
Balanced profile: fast daily tasks (git, lint) plus heavier tasks (docker, profiling, hardware tests). Warnings are surfaced by list_tasks, explain_task, and run_task. Destructive patterns (git reset --hard, git clean -fdx, rm -rf /, rm -rf ~) are blocked at the run_command/run_task layer regardless of which repo task config requests them.
Example agent prompts
"Invoke
start_compiler_workwith area=codegen_orchand follow the bootstrap.""
route_taskforhost_collectives_program— sim Docker UT vs NPU ST split.""
explain_abstractionforhost_collectives_program.""
explain_abstractionforBackendHandler910B— when is GM pipe buffer required?""
explain_abstractionforTSCATTER— note it covers both the local-tile and collective-comm meaning, merged from two sources.""
route_taskascend_runtime— HCCL windows and container flags.""
ascend_env_checkthengenerate_verify_handofffor branch feat/foo.""
search_abstractionshccl window.""
explain_abstractionforIterArgCarryAnalyzer.""
trace_in_stackforpypto/src/codegen/pto/pto_codegen.cpp.""
search_abstractionsfor allreduce.""
collective_statuswith axis=Dynamic NR— what's the parity gap across ops?""
knowledge_health— any stale or missing docs, or coverage gaps?"
Prerequisite notes
Simulator/CPU tests: Python deps and build toolchain.
Hardware tasks: Ascend runtime/device environment.
Docker tasks: daemon available; can be heavy on disk/network.
Profiling: start with
profiling_smokebeforeprofiling_full.
Extending this server
Every tool follows the same shape: a plain, unit-testable _impl(...) function (in mcp_hwnative_sys/<module>.py) plus a thin @mcp.tool()-decorated wrapper that calls it.
Put the real logic in a module-level
def foo_impl(...) -> dict[str, Any]— no MCP/pydantic types inside, so it can be imported and called directly from tests.Register it in
register_knowledge(mcp)(inknowledge.py) or directly inserver.py, usingAnnotated[T, Field(description=...)]for every parameter — the description is what the calling agent sees, so make it concrete (include example values). Prefer a local import inside the tool function body for the impl module (e.g.from mcp_hwnative_sys.foo import foo_impl) to avoid import cycles, matching the existing convention forexplain_pass,trace_contract,verify_ladder,collective_status, etc.Raise plain
ValueError/RuntimeError/FileNotFoundErrorfor user-facing errors — there's no custom exception hierarchy.Add a test in
tests/test_<module>.py: plainpytestfunctions (no classes),from __future__ import annotations,monkeypatch.setattr(<module>, "workspace_root", lambda: tmp_path)(or the relevant path function) to sandbox filesystem-touching code, plus one smoke test against the real workspace. If the tool lives intools/(a maintenance script, not part of the installed package), import it in tests via asys.path.insert(0, str(TOOLS_DIR))at the top of the test file, matchingtest_build_pto_isa_index.py/test_build_ptoas_index.py.Run
pytest tests/frommcp-hw-native-sys/(use the project's own.venv:.venv/bin/python -m pytest tests/).If your tool scrapes a source that could drift (like the pto-isa/PTOAS generators or the pass-pipeline scraper), prefer writing to a new generated JSON file that gets layered in at load time, rather than writing into a hand-curated config — that way hand edits are never at risk of being silently overwritten by a bad scrape, and regenerating is always safe to re-run.
Known caveats
pypto/python/pypto/ir/pass_manager.pyhas moved to building its pipeline via a runtime C++PassPipelineobject; the static regex-based pass scraper inpasses_index.pycan no longer recover pass names by re-scraping live (the checked-inpasses_index.jsoncache still has real, valid data — only a freshbuild_passes_index()call is affected). Fixing this properly means dynamically instantiating pypto's pass manager instead of regex-scraping — not yet done.Some
notes/*topics are defined both inresourcesandnotes_topics;register_knowledgededuplicates them at registration time (theresourcesentry, with its per-topicmax_chars, wins).
Available Tools
29 toolsascend_env_checkA
Read-only Ascend/CANN environment check: devices, HCCL preload, Docker hints.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavior; it does state 'read-only', which is a key safety trait. However, it doesn't describe what the output contains beyond the hints, or any prerequisites/errors. The output schema covers return format, but behavioral context like side-effect freedom is minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence, front-loaded with the key phrase 'Read-only', and every word adds meaning. It doesn't waste space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters and an output schema exists, the description provides the essential purpose and read-only guarantee. It could mention when to run it, but the scope is fairly obvious from the name and sibling context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters, so the description doesn't need to explain parameter details. It adds context by listing the areas the check covers, which gives meaning beyond an empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses 'read-only Ascend/CANN environment check' which clearly identifies the operation as a query and specifies the resource. It lists concrete items checked (devices, HCCL preload, Docker hints), differentiating it from sibling health/status tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this is a read-only environment inspection tool but does not explicitly state when to choose it over sibling tools like repository_health or collective_status. There's no stated alternative or exclusion, so usage context is implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bootstrap_sessionB
Single-call session bootstrap: route metadata, read_plan, health, program hints.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | Optional free-text context (e.g. symbol, feature, or PR title) used to seed abstraction search | |
| task_type | Yes | Task type key — use list_task_types() to see valid values, e.g. "distributed_codegen", "ascend_arch", "npu_verify_handoff" | |
| include_health | No | When True (default) include repository health summary (branch, dirty state) in the response |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden of disclosing behavior. It indicates the tool is a one-shot session initializer and lists the data returned, but it does not state whether this is read-only or has side effects, nor does it describe any caveats like caching or resource intensity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, front-loaded with the key concept 'Single-call session bootstrap' and immediately enumerates the included elements. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 full parameter descriptions, the description adequately covers return values and parameters. However, it lacks explicit usage context and behavioral transparency, making it slightly incomplete for an agent deciding whether to invoke this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers all three parameters with detailed descriptions, and the schema description coverage is 100%. The description itself does not add parameter-specific details but does mention the aggregates (route metadata, health, program hints) that correspond to the tool's output, which indirectly relates to parameters like include_health.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('bootstrap') and names the resource ('session'), and enumerates the included components (route metadata, read_plan, health, program hints), making it clear what the tool does. However, it could more explicitly state the outcome of bootstrapping or how it differs from calling these components separately.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this is a consolidated single-call alternative to several sibling tools, but it provides no explicit 'when to use' or 'use instead of' guidance. There is no mention of scenarios where this tool is preferred over route_task, read_plan, or repository_health individually.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
collective_statusA
Collective-comm feature parity status (merged/planned/gap) from the parity matrix in pypto-3.0-notes/distributed/current_status.md. Read-only -- never writes to the source doc.
| Name | Required | Description | Default |
|---|---|---|---|
| op | No | Optional collective op filter, e.g. "AllReduce" or "All-to-All" (substring match). | |
| axis | No | Optional feature axis filter, e.g. "Dynamic NR" or "Simplex native kernel" (substring match). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does disclose a key behavioral trait: it is read-only and never writes to the source doc. However, it does not mention error behavior, response format, or how filters interact with the status matrix, leaving some behavioral aspects opaque.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that conveys the tool's subject, source, and read-only nature without waste. Every part earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having no annotations, the description provides the source document path, the nature of the data (merged/planned/gap), and the read-only guarantee. An output schema exists, so return-value details are not the description's responsibility. This is complete for a low-complexity status query tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema describes both parameters fully with examples and substring-match semantics, yielding 100% schema description coverage. The description adds no additional parameter meaning, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool's purpose: returning collective-comm feature parity status (merged/planned/gap) from a specific source file. It lacks an explicit action verb like 'get' or 'list', but the resource and scope are unmistakable and distinguish it from sibling tools like program_status or read_doc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the tool name and description (query collective-comm parity status), but there is no explicit statement of when to prefer this over alternatives, nor any exclusions. The read-only note is a mild usage caveat, but no clear contextual guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
explain_abstractionA
Explain a stack abstraction: IR/passes/codegen/ISA/runtime or Ascend hardware (AIC, HCCL, etc.).
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Abstraction name or alias, e.g. "AIC", "HCCLWindow", "Ascend910B", "cube". Use search_abstractions() to discover names. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It does disclose the scope of abstractions covered, which adds useful context. However, it does not mention potential side effects (likely none as an explain tool), output format, or any limitations, though these are partially mitigated by the presence of an output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one sentence, front-loaded with the action and resource, and includes concrete examples. It is highly concise with no fluff, earning a top score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one well-documented parameter) and an output schema, the description is mostly sufficient. However, the overlap with sibling tool 'explain_pass' is unresolved: since 'passes' are explicitly listed, it's unclear when to pick 'explain_abstraction' over 'explain_pass'. This missing differentiation affects completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides 100% coverage for the single 'name' parameter with a detailed description and examples, so the baseline is 3. The tool description itself adds no extra parameter meaning, but the schema already handles it well, so no further deduction is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Explain' and the resource 'stack abstraction', listing concrete categories (IR/passes/codegen/ISA/runtime or Ascend hardware) with examples. This distinguishes it from sibling tools like 'explain_pass' by covering a broader scope while still being specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 does not mention exclusions, preconditions, or scenarios where a different tool (e.g., 'explain_pass') would be more appropriate. The schema parameter description hints at using 'search_abstractions()' first, but the main description lacks usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
explain_passA
Explain a pass in the Default pipeline: order, phase, neighbors, verify tasks.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Pass name from the Default pipeline, e.g. LowerCompositeOps. Case-insensitive fallback is applied. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the transparency burden. It conveys that the tool is explanatory and scoped to the Default pipeline, and lists the facets it reports, but it does not disclose error behavior, output format, or side effects beyond what the verb 'explain' implies. The lack of a read-only flag or edge-case notes leaves some gaps, but the read-only nature is strongly inferred.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that states the verb, resource, and covered aspects with no wasted words. It is maximally concise while preserving necessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool with an output schema (not shown), the description covers the essential context: what it explains, the scope (Default pipeline), and the specific dimensions it covers. It lacks explicit usage guidelines, but given the tool's simplicity and the presence of an output schema, it is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides 100% coverage for the single parameter 'name' with a clear description and example. The tool description adds no additional parameter-level detail beyond what the schema already provides, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Explain' and identifies the resource as 'a pass in the Default pipeline', then enumerates the covered aspects (order, phase, neighbors, verify tasks). This clearly differentiates it from sibling tools like explain_task or explain_abstraction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool ('explain a pass in the Default pipeline') but does not explicitly state when it should be preferred over alternatives or provide exclusions. There is no mention of sibling tools or criteria for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
explain_taskB
Show the exact command and metadata configured for a named task.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | Repository name from list_repositories(). Required — always specify to avoid querying the wrong repo. | |
| task | Yes | Named task key to inspect, e.g. unit_tests_fast |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden of signaling safety. The verb "Show" implies a read-only inspection and does not suggest mutation or execution. However, it does not explicitly state that the task is not executed or that no side effects occur, which would be valuable for a tool with no annotation support.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that immediately states the tool's purpose. There is no filler or repetition of schema/annotation content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a simple two-parameter inspection tool with a complete input schema and an output schema present. The description sufficiently identifies what the tool returns: the exact command and metadata for a named task. It could add a note about non-execution, but overall the definition is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema already documents repo and task well, including the instruction to always specify repo. The tool description adds contextual framing but no additional parameter-level detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses a specific verb and resource: "Show the exact command and metadata configured for a named task." It clearly indicates inspection of task configuration. It does not explicitly differentiate from siblings like list_tasks or explain_pass, but the "exact command and metadata" phrasing makes the intent fairly distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool instead of siblings such as list_tasks, run_task, or explain_pass. The context is clear only in a general sense, but there are no exclusions or alternatives mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_entrypointsB
Find code entrypoints for a repo and optional area (e.g. pypto, codegen_orch).
| Name | Required | Description | Default |
|---|---|---|---|
| area | No | Optional sub-area key within the repo, e.g. "codegen_orch". Leave empty to list all areas for the repo. | |
| repo | Yes | Repository name from list_repositories(), e.g. "pypto", "simpler" |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits but only says 'Find', implying a read-only operation. It does not explain what the tool returns, how the optional area affects results, or any error behavior. The description adds minimal context beyond the purpose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is front-loaded with the primary action and resource. It contains no redundant words, and every element contributes to understanding the tool's scope, making it highly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists and the input schema fully documents parameters, the description is adequate for a simple lookup tool. It could benefit from a brief usage note, but the schema fills in the gaps, making the description reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% parameter description coverage, including the instruction that 'repo' comes from list_repositories() and that 'area' can be left empty to list all areas. The tool description merely repeats the optional area concept with the same examples, adding little beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific action ('Find') and resource ('code entrypoints'), scoped by 'repo' and optional 'area'. It distinguishes the tool from siblings like search_code and list_repositories, though it does not explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidelines are provided in the description. It does not indicate when to prefer this tool over alternatives such as search_code, nor does it mention prerequisites like retrieving the repo name from list_repositories(). The only usage hint appears in the schema parameter description, not in the main description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gate_pr_scriptB
Generate a bash script for the safe rebase->pre-commit->sim-Docker-tests->squash->push gate workflow.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | Repository name, e.g. "pypto" | |
| skip_tests | No | Skip sim Docker tests | |
| test_paths | No | List of pytest test files/dirs (repo-relative), e.g. ["tests/st/distributed/collectives/test_allreduce.py"] | |
| base_branch | No | Branch to rebase onto | main |
| push_remote | No | Remote to force-push to | origin |
| extra_test_args | No | Extra pytest arguments appended after test paths, e.g. '-k allreduce -v' | |
| skip_pre_commit | No | Skip pre-commit checks |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the full burden. It says 'generate a bash script' but doesn't disclose whether the tool executes the script, writes a file, or prints to stdout; doesn't mention side effects, permissions, or the meaning of 'safe.'
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The entire description is one clear sentence, front-loading the action and outcome. It's concise without unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite the workflow complexity (7 flags, multiple stages), the description only lists stages without explaining output format, behavior when flags are off, or what 'safe' means. With schema covering parameters and an output schema presumably present, it's adequate but leaves gaps about the script generation behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All seven parameters have descriptive schema entries, providing 100% coverage. The tool description names the workflow stages but doesn't map them to specific parameters; schema descriptions already cover semantics like 'Skip sim Docker tests' and 'Branch to rebase onto.'
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Generate' and identifies the resource as 'a bash script' for the 'rebase->pre-commit->sim-Docker-tests->squash->push gate workflow,' clearly distinguishing it from execution-oriented siblings like run_command or run_task.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance is provided. It doesn't mention when to use this instead of run_command or explain_task, nor any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_verify_handoffA
Generate markdown handoff for developer NPU verification in a container.
| Name | Required | Description | Default |
|---|---|---|---|
| sha | No | Git SHA to record in the handoff. Leave empty to use a placeholder (fill after checkout with git rev-parse HEAD). | |
| repo | Yes | Repository name to verify, e.g. "pypto" | |
| branch | Yes | Branch name to check out on the NPU host | |
| platform | No | Target Ascend platform family for test flags, e.g. "a2a3" (Ascend910B) or "a3" (Ascend910C) | a2a3 |
| task_type | No | Route key for developer_verify_tasks. Default "npu_verify_handoff" covers the standard NPU gate. | npu_verify_handoff |
| device_ids | No | Comma-separated NPU device IDs to pass to pytest (e.g. "0,1") | 0,1 |
| fork_remote | No | Git remote name on the NPU host that has the branch to verify | fork-gbisbas |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It does not state whether the tool writes to a file, prints to stdout, modifies container state, or requires specific permissions. The phrase 'in a container' is vague about 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
One concise, front-loaded sentence communicates the core function without waste. It is appropriately sized for the tool's simple primary purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The output schema exists, covering return values, but the description lacks behavioral context and usage guidance. For a tool with 7 parameters, this single-sentence description is minimal but not entirely inadequate; it provides the essential purpose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description does not add any extra meaning to parameters; it only mentions the overall purpose. No additional detail beyond the schema is provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Generate markdown handoff'), the resource ('developer NPU verification'), and the context ('in a container'). This distinguishes it from siblings, as no other sibling tool is about generating handoffs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for creating a handoff for developer NPU verification, but it does not provide explicit guidance on when to use this tool vs alternatives, nor does it mention any exclusions or prerequisites like container readiness.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
git_diffA
Return the git diff for a repository (stat + optional patch). Prefer stat_only=True for orientation.
| Name | Required | Description | Default |
|---|---|---|---|
| ref | No | Diff target ref or range. Examples: "HEAD~1" (last commit), "main...HEAD" (branch diff), "abc123" | HEAD~1 |
| path | No | Repo-relative file path to limit the diff scope (optional). Leave empty for the full diff. | |
| repo | Yes | Repository name from list_repositories(), e.g. "pypto" | |
| stat_only | No | When True return only file-level statistics (no patch text). Useful for large diffs. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry behavioral disclosure. It hints at potentially large diffs via the stat_only recommendation and describes output, but does not explicitly state that the operation is read-only, mention error conditions, or explain repo requirements—though 'git diff' strongly implies non-mutating behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the primary function ('Return the git diff for a repository') and includes a valuable usage tip without any filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, full schema coverage, and presence of an output schema, the description is sufficient for core understanding. It lacks explicit alternative tool guidance, but the purpose and a key usage recommendation are clear, making it complete for this complexity level.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema descriptions cover 100% of parameters, providing a baseline of 3. The description adds meaningful guidance beyond the schema by recommending stat_only=True for orientation, which gives contextual purpose that the schema's 'useful for large diffs' does not fully convey.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns the git diff for a repository, specifying both stat and optional patch. It distinguishes from siblings like git_log and read_file by naming a specific git operation and its output scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers a concrete usage recommendation ('Prefer stat_only=True for orientation'), providing context for when to use this parameter. However, it does not explicitly compare with alternative tools or state exclusions, so it falls short of full alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
git_logA
Return the last N commits for a repository as structured data (sha, author, date, message).
| Name | Required | Description | Default |
|---|---|---|---|
| n | No | Number of commits to return (1–100) | |
| ref | No | Branch, tag, or SHA to start from (default: HEAD) | HEAD |
| repo | Yes | Repository name from list_repositories(), e.g. "pypto" |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that the tool returns structured data with specific fields (sha, author, date, message), which is helpful. It implies read-only behavior via 'Return' but does not explicitly state it. No side effects or limits are mentioned, but for a simple read operation this is adequate. No contradiction with annotations since none exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence that front-loads the purpose. Every phrase is meaningful, with no filler or redundancy. It is appropriately concise for the tool's simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The output schema exists, so return values are covered elsewhere. The description explains the core function clearly. Minor gaps like default ref behavior and maximum N are handled in the input schema. Given the tool's low complexity, the description is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all parameters (n, ref, repo) have descriptions. The description adds no additional meaning beyond the schema; it only restates that N commits are returned, which aligns with the schema. Baseline of 3 applies because the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Return') and clearly specifies the resource ('last N commits for a repository') and output format ('structured data (sha, author, date, message)'). This distinguishes it from siblings like git_diff (which focuses on changes) and repository_health (which assesses health).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives. It does not mention exclusions, prerequisites, or contextual hints like 'use for recent history instead of git_diff'. The description is purely functional and lacks usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
knowledge_healthA
Check knowledge config health: missing paths, stale enriched docs, Ascend corpus, index build time.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavior. It does add value by listing specific aspects it checks (missing paths, stale enriched docs, Ascend corpus, index build time), giving insight into its scope. However, it does not mention return format, side effects, or whether it performs any mutations, leaving some behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The entire description is a single sentence, front-loaded with the primary purpose ('Check knowledge config health') followed by a concise list of specific checks. Every word contributes to understanding the tool, with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simple nature (no parameters) and the existence of an output schema, the description covers the essential context: what the tool checks and its health-related domain. It could be slightly stronger by explicitly stating that it returns a health report, but the output schema mitigates that need. Overall, it is sufficiently complete for an agent to select and invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so the baseline is 4. The description adds no parameter-specific information because none are needed, and the schema already fully covers parameter semantics with an empty object. The description meaningfully explains what the tool does, which is more relevant than parameter details in this case.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Check' followed by the resource 'knowledge config health', and enumerates distinct checks (missing paths, stale enriched docs, Ascend corpus, index build time). This distinguishes it from sibling health tools like repository_health or collective_status, which focus on other domains.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Check knowledge config health' clearly indicates the tool's context of use: when an agent needs to assess the state of knowledge configuration. It does not explicitly name alternatives or exclusions, but the specificity of the checks (e.g., Ascend corpus, index build time) implies this is the appropriate tool for knowledge-related health investigations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_knowledge_topicsA
List available task routes, MCP resources, notes topics, and bootstrap prompts.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. The verb 'List' strongly implies a read-only operation, and the description explicitly states the categories of information returned. It does not disclose any side effects or edge cases, but for a simple list tool, the behavior is transparent enough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that states the verb and the four key objects. No unnecessary words or repetition; every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is low-complexity with no parameters and an output schema that defines return values. The description covers all the tool's purpose and scope, making it complete for an agent to select and invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the schema provides no information. The description adds meaning by specifying what will be listed, though it does not need to explain parameter syntax. Given the baseline of 4 for 0-parameter tools, this is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'List' and enumerates four distinct types of resources (task routes, MCP resources, notes topics, and bootstrap prompts), clearly distinguishing it from sibling tools like list_tasks or list_repositories.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for retrieving an overview of knowledge topics, but it provides no explicit guidance on when to prefer this tool over alternatives like list_tasks or knowledge_health. The usage context is clear from the description, but no alternatives or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_repositoriesA
List configured repositories, their paths, and architecture metadata.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden for behavior. It clearly conveys that this is a listing/read operation and indicates what will be returned, which is adequate for a simple tool. It does not explicitly state that it is read-only, mention side effects, or describe error cases, but for listing repositories the operation is self-evident.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that immediately states the action and the output content. There is no fluff or redundant wording, and all words earn their place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-parameter list tool with an output schema available, the description covers the essential purpose and expected results. It does not mention scope or filtering, but given the tool's simplicity and the presence of an output schema, nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and schema coverage is 100% vacuously, so the baseline for parameter semantics is 4. The description adds no parameter-specific detail, but none is needed since the input schema declares no properties.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('List') and resource ('configured repositories'), and specifies the returned information: paths and architecture metadata. It is unambiguous about its core function. However, it does not explicitly distinguish itself from sibling tools like repository_health, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives. It neither mentions prerequisites nor names siblings such as repository_health or list_tasks that might seem related. An agent must infer usage purely from the name and description, which is acceptable but leaves gaps.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_tasksA
List available named tasks for a repository, including metadata and warnings.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | Repository name from list_repositories(), e.g. "pypto", "simpler" | |
| include_command | No | When True (default) include the shell command string in each task entry |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must convey behavior. The verb 'list' implies a read-only operation, and the description mentions output contents (metadata, warnings), but it does not explicitly state side-effect-free behavior, error conditions, or permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One concise sentence with the verb and object front-loaded. No filler, every word contributes.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values need not be explained. The description covers purpose and scope adequately for a simple list operation, but it could be slightly more explicit about when to use it relative to run_task or explain_task.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with both parameters well-documented (repo example, include_command default and meaning). The description adds no additional param semantics, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('list') with a clear resource ('available named tasks for a repository') and indicates content ('including metadata and warnings'). This clearly distinguishes it from sibling tools like run_task or explain_task.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The schema provides a prerequisite (repo from list_repositories()) which gives clear context on when to call. However, the description itself does not explicitly mention alternative tools or when not to use it, so it lacks full exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_task_typesA
Return all valid task_type values with one-line descriptions for use with bootstrap_session and route_task.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It clearly states this is a 'Return' operation (read-only in nature) and adds context by indicating it returns one-line descriptions and is intended for specific tools. Given the simplicity of the tool (no parameters), this is sufficient transparency, though it doesn't explicitly state 'does not modify state'—inferred from 'list'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the action and resource, followed by the purpose. Every word earns its place—no fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (0 parameters) and the existence of an output schema, the description is complete. It conveys the tool's purpose, scope, and immediate use case, leaving no significant gaps for an agent to misinterpret.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4. The description adds meaning by explaining the output and its intended usage, which indirectly explains why no parameters are needed (it returns all valid values globally).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Return') and a clear resource ('all valid task_type values') with a stated purpose ('for use with bootstrap_session and route_task'). It distinguishes itself from sibling tools like list_tasks by focusing on task_type values specifically and naming the intended consumer tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'for use with bootstrap_session and route_task' provides clear context for when to invoke this tool, implying it should be used before those operations to obtain valid task types. No explicit exclusions or alternatives are mentioned, but the purpose is evident from the context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
program_statusA
Structured PR/plan status from status_prs.md (open PRs, blockers, plan cross-index).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It reveals the source file and output contents, implying a read-only operation, but does not explicitly state that it reads without side effects, nor mention error behavior if the file 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, immediately front-loaded with the purpose, and includes relevant details in parentheses. Every word earns its place with no waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool with an output schema, the description sufficiently explains what the tool returns and from where. Minor gap: it does not mention what happens if status_prs.md is absent or how the output schema is structured, but the output schema is provided separately.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the schema is empty. The description adds context about the output source and content, which is sufficient. The baseline for 0 params is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool provides structured PR/plan status from status_prs.md, listing specific content (open PRs, blockers, plan cross-index). It identifies a specific resource and content, but does not explicitly differentiate from sibling tools like collective_status or repository_health.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is implied: if you need PR/plan status from status_prs.md, this tool is appropriate. However, there is no explicit when-to-use vs alternatives, no exclusions, or named sibling tools for comparison.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_docA
Read a workspace document with tier labeling. Optional section extracts a markdown heading.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Document path. Paths starting with "content/" are MCP-owned (project-relative). All others are workspace-relative (e.g. "pypto-3.0-notes/arch.md"). Use list_knowledge_topics() to discover registered paths. | |
| section | No | Extract a specific markdown section by exact heading text (case-sensitive). Leave empty to read from the top. Use read_doc with a bad section name to see the TOC. | |
| max_chars | No | Maximum characters to return (500–50000) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility for behavioral disclosure. It mentions 'tier labeling' and section extraction, but does not describe error behavior (e.g., invalid section), permission requirements, side effects, or return format. The schema does provide some behavior cues (e.g., bad section shows TOC), but the description itself is too sparse to be transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences, front-loading the primary action ('Read a workspace document'). Every word adds value; no filler or redundant information. Ideal conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of a detailed input schema and an output schema, the description is mostly sufficient for a straightforward read tool. It lacks an explicit tie to the broader workflow (e.g., when to use tier labeling), but the schema compensates by covering path discovery and error behavior. The main gap is the absence of a clear 'when to use' context, but the tool is simple enough that a 4 is warranted.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and quite detailed for all three parameters (path semantics, section extraction behavior, max_chars bounds). The description only adds a small clarifying clause ('extracts a markdown heading') which is largely redundant with the schema. Baseline of 3 is appropriate because the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Read a workspace document') with a distinctive feature ('tier labeling') and an optional section-extraction capability. This clearly differentiates it from sibling tools like read_file, which reads arbitrary files, and list_knowledge_topics, which discovers paths.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: use this to read workspace documents. The schema's path description mentions using list_knowledge_topics to discover paths, which is a usage hint, but the main description does not explicitly state when to prefer read_doc over alternatives (e.g., read_file, search_code) 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.
read_fileA
Read an arbitrary source file from a repository without shelling out.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Repo-relative file path, e.g. src/ir/pass_manager.py or python/pypto/ir/ops.py | |
| repo | Yes | Repository name from list_repositories(), e.g. "pypto" | |
| offset | No | Zero-indexed line to start reading from (for pagination) | |
| max_lines | No | Maximum lines to return (1–2000) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency burden. It discloses a meaningful behavioral trait: the tool reads files directly instead of shelling out, avoiding command execution side effects. It also states 'arbitrary' to indicate broad file access, though it does not discuss pagination 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single well-structured sentence, front-loaded with the action and resource, and no wasted words. Every phrase ('arbitrary', 'without shelling out') adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a straightforward file-read tool with a detailed input schema and an output schema, the description is sufficient to understand primary use. It could more explicitly differentiate from document-reading and search siblings, but the current wording is not misleading and covers the essential context for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema descriptions cover 100% of the parameters with examples, defaults, and constraints, so the description adds little beyond the schema. It provides context (source file, repository) but no field-level semantic detail beyond what the schema already offers.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Read'), a concrete resource ('arbitrary source file'), and a scope ('from a repository'). The qualifier 'without shelling out' distinguishes it from shell-based tools like run_command, making the purpose immediately clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies appropriate use for direct, non-shell file reads and excludes shell execution as a mechanism. However, it does not explicitly name sibling alternatives (e.g., read_doc for documentation or search_code for searching), so it stops short of full alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
repository_healthA
Get branch, dirty state, and ahead/behind for every configured repo.
| Name | Required | Description | Default |
|---|---|---|---|
| include_clean | No | When True (default) all repos are returned; set False to show only dirty repos |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that the tool returns three specific data points per repo, which is helpful, but it does not explicitly state that it is a read-only operation or mention any prerequisites, edge cases, or side effects. This is a moderate level of transparency for a simple health check tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of 13 words that directly states the action and the data returned, with no filler, repetition, or unnecessary detail. It is an example of concise, front-loaded writing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (1 parameter, output schema present, read-only purpose), the description adequately states its primary function. It doesn't cover use-case guidance or explicit safety notes, but these are also addressed in other dimensions. The essential behavior is complete for a tool of this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the only parameter (include_clean), which has its own description. The tool description does not add any parameter-specific meaning beyond what the schema already provides, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Get' and names concrete resources: branch, dirty state, and ahead/behind. It clarifies scope with 'every configured repo,' making it clearly distinct from sibling tools like list_repositories (which likely only lists names) or git_log/git_diff (which focus on log/diff).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance is given about when to use this tool versus alternatives, nor are exclusions or alternative tool names mentioned. However, the description implies a use case (querying overall git status of all repos), so usage is implied rather than absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
route_taskB
Return read-first docs, rules, entrypoints, and verify tasks for a compiler workflow.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | Optional free-text context (e.g. symbol or feature name) passed through to the routing output | |
| task_type | Yes | Task type key — use list_task_types() to enumerate valid values, e.g. "distributed_codegen", "ascend_arch" |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It does imply a read-only operation via 'Return', but it does not explicitly state whether the tool modifies any state, how errors are handled, or what the output structure looks like. This is a significant gap for a routing tool that might have side effects or require specific preconditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence that communicates the core output without any filler or redundancy. It is front-loaded with the key action and resources, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is sufficient for a basic understanding but lacks important context such as how task_type influences the returned artifacts, what 'read-first' means in practice, and when a user would invoke this tool instead of directly reading docs or listing tasks. An output schema exists, so return values need not be detailed, but the purpose and workflow integration remain underspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with both parameters (task_type and detail) adequately documented in the input schema. The description itself does not add any parameter semantics beyond the schema, so the baseline of 3 applies. The task_type parameter's cross-reference to list_task_types() in the schema already provides helpful context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Return') and resource types ('read-first docs, rules, entrypoints, and verify tasks') for a compiler workflow. This unique combination distinguishes it from sibling tools like read_doc, list_tasks, find_entrypoints, and verify_ladder, which each handle one of these outputs individually.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as list_task_types, run_task, or explain_task. It does not mention any conditions, prerequisites, or exclusions, leaving the agent to infer appropriate usage from the name and schema alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_commandA
Run an ad-hoc shell command in a repository. Prefer run_task for known tasks or git_log/git_diff/read_file for read-only operations.
When no NPU is reachable, build/test commands (cmake, make, ninja, pip install, pytest, …) are refused — those must run inside the sim Docker images, never on the local repo. Read-only commands are unaffected.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | Repository name from list_repositories(). The command runs with cwd set to that repo's root. | |
| command | Yes | Shell command to execute via bash. Destructive patterns (git reset --hard, rm -rf /) are blocked. | |
| timeout_seconds | No | Execution timeout in seconds (1–7200) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses a key behavioral trait: build/test commands are refused without an NPU, while read-only commands are unaffected. It also notes destructive patterns are blocked (in the schema). This adds meaningful context beyond the basic purpose, though it doesn't fully detail output or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured with a one-sentence purpose up front, followed by a second paragraph of specific behavioral constraints. Every sentence earns its place with no filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (arbitrary shell command execution) and the existence of an output schema and full parameter schema, the description is quite complete. It covers usage alternatives, key restrictions, and the NPU-specific behavior. It could elaborate slightly on return values, but the output schema mitigates that gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description enriches parameter understanding by clarifying the 'command' parameter's constraints (e.g., refusal of build/test commands under no-NPU conditions) and the 'repo' parameter's cwd behavior. This adds value beyond the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb+resource: 'Run an ad-hoc shell command in a repository.' It clearly distinguishes from siblings by explicitly recommending run_task for known tasks and git_log/git_diff/read_file for read-only operations, establishing this tool as the fallback for arbitrary commands.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit usage guidance: 'Prefer run_task for known tasks or git_log/git_diff/read_file for read-only operations.' It also warns that build/test commands are refused when no NPU is reachable, giving 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.
run_taskA
Run a configured task in a repository.
Build/test tasks are routed by NPU availability: with NPUs reachable they run on the host (allowed by policy); without NPUs they are re-routed into the sim Docker image for the repo (see _SIM_RUN), or refused with guidance when the repo has no sim image (e.g. PTOAS).
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | Repository name from list_repositories(), e.g. "pypto" | |
| task | Yes | Named task key from list_tasks(). Use list_tasks(repo) to see available tasks and their metadata. | |
| extra_args | No | Extra arguments appended verbatim to the task command string, e.g. '--verbose -k test_foo' | |
| timeout_seconds | No | Execution timeout in seconds (1–7200). Long-running tasks may need 1800+. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency burden. It reveals non-obvious conditional behavior: host execution when NPUs are available, sim Docker re-routing otherwise, and refusal with guidance when no sim image exists. This is valuable, though it omits potential side effects like file modifications or stdout/stderr behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two paragraphs and front-loaded with the core purpose, followed by important routing details. It is concise and each sentence contributes, though the internal reference 'see _SIM_RUN' is slightly opaque.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex task runner with no annotations, it covers the critical routing logic and refusal cases, and references list_repositories()/list_tasks() for parameter semantics. Output schema handles return-value documentation, but the description lacks explicit sibling differentiation and discussion of failure modes beyond no-sim-image.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with detailed parameter descriptions (e.g., extra_args appended verbatim, timeout range 1–7200). The description adds no parameter-level meaning beyond what the schema already provides, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Run a configured task in a repository' with a specific verb and resource, and the routing details further specify it executes build/test tasks. This distinguishes it from arbitrary command running (run_command) and other sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides contextual behavior (NPU-based routing) but does not explicitly state when to prefer this tool over alternatives like run_command or route_task, nor does it offer exclusions or clear use-case boundaries beyond those implicit in 'configured task'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_abstractionsA
Search the abstraction index by keyword. Results are ranked by relevance (exact name > name-contains > tag > layer/kind).
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Keyword to search across abstraction names, layers, kinds, tags, and related fields | |
| fields | No | "summary" returns name+layer+one_liner; "full" adds tags, arch_families, repos | summary |
| max_results | No | Maximum results to return (1–100) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the ranking order, which is a useful behavioral trait. However, it does not explicitly state the operation is read-only or describe any potential side effects, though that is implied for a search tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core action and the ranking rule. Every sentence is informative and concise, with zero waste or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity search tool with an output schema available, the description covers the main purpose and ranking detail adequately. The only gap is that it does not mention usage context relative to sibling tools, but given the simplicity and schema support, it remains complete enough for invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The schema already explains `query`, `fields` (summary/full), and `max_results` (1-100). The description adds no additional parameter semantics beyond what the schema provides, so a 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Search the abstraction index by keyword,' identifying the specific verb and resource. It distinguishes from sibling tools like `search_code` by targeting the abstraction index, and the ranking criteria (exact name > name-contains > tag > layer/kind) further clarifies scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied as a keyword search for abstractions, but there is no explicit guidance on when to use this tool over alternatives like `search_code` or `read_doc`. No exclusions or alternative references are provided, so it lacks direct 'when vs. when-not' guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_codeB
Search code across repos. mode=locations (default) omits line text; mode=context includes context.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | "locations" (default) returns file+line number only; "context" also returns the matched line text and context_lines surrounding lines | locations |
| repo | No | Repo to search: "all" searches every configured repo; otherwise a single name or comma-separated list, e.g. "pypto,simpler" | all |
| query | Yes | Search term. Treated as a fixed string unless use_regex=True | |
| file_glob | No | Filename glob filter, e.g. "*.py", "*.cc", "**/*.mlir". Default "*" matches all files. | * |
| use_regex | No | Treat query as a regular expression (ripgrep syntax). Default False uses fixed-string matching. | |
| max_results | No | Maximum number of match lines to return (1–2000) | |
| context_lines | No | Lines of context to include around each match. Only used when mode=context. | |
| group_by_file | No | When True, include a files[] list sorted by match count |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of disclosure. It does explain the mode behavior (locations omits line text, context includes it), but repeats information already in the schema. It does not mention other behavioral traits such as default repo scope, regex handling, or result limits, which are only in the schema. The added value beyond structured fields is minimal but not misleading.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the tool's purpose and a concise summary of the mode options. Every sentence serves a purpose and there is no redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the rich input schema (100% coverage) and the presence of an output schema, the description is adequate for a straightforward search tool. However, it lacks any mention of how this tool relates to sibling tools like search_abstractions, leaving a minor gap in contextual understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description repeats the mode parameter's behavior without adding any new meaning or context for the other seven parameters, so it does not improve on the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches code across repositories, using a specific verb and resource. It is immediately understandable, but does not explicitly distinguish from the sibling tool 'search_abstractions', so it lacks sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 search_abstractions. It only states what the tool does, not the conditions or contexts that would make it the preferred choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
summarize_profileA
Summarize a pypto-profiling campaign directory (results.json, anomalies).
| Name | Required | Description | Default |
|---|---|---|---|
| run_dir | Yes | Path to a profiling campaign directory containing results.json. Accepts workspace-relative or absolute paths. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose safety and side effects. It only says 'Summarize' without clarifying whether it is read-only, what operations it performs on the directory, or how results are presented. This leaves the agent without key 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, front-loaded with the verb 'Summarize', and contains no filler. It is appropriately sized for a simple tool with one parameter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity and the presence of an output schema, the description covers the core purpose and parameter. However, it lacks behavioral transparency and explicit usage guidance, making it minimally adequate but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already thoroughly documents the single parameter 'run_dir', including path types. The description adds that the directory contains results.json and anomalies, which aligns with the schema but does not extend it significantly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'summarize' and names the resource 'pypto-profiling campaign directory', with concrete contents (results.json, anomalies). This clearly distinguishes it from sibling tools focused on code, tasks, and repositories.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The tool's purpose clearly implies when to use it (whenever a profiling campaign summary is needed), and no sibling offers a similar function. However, it does not explicitly state when not to use it or mention alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trace_contractA
Full cross-layer trace: stack location + contract triangle + cross-layer verify tasks + active-PR links.
This is the enriched trace. Use trace_in_stack for a lightweight stack-location-only lookup.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol_or_path | Yes | Symbol name or path to trace through the stack (e.g. "LowerHostTensorCollectives", "pypto/src/codegen/distributed/foo.cc"). Matched against abstraction cards, path-prefix rules, and contract artifacts. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the tool's behavioral scope well: it is an 'enriched' cross-layer trace that produces multiple categories of results, and it contrasts its heavier behavior with a lightweight sibling. It stops short of explicitly stating whether the operation is read-only or has side effects, rate limits, or failure modes, but for a trace/lookup tool the risk is low and the added context is substantial.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three short, information-dense sentences. The first sentence states the core behavior and output scope, and the next two provide differentiation and usage direction. There is no filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description's enumeration of return categories is valuable and mostly complete: it tells the agent what the trace covers and when to use it. The only missing context is explicit caveats such as read-only status, potential cost/complexity of running a full cross-layer trace, and what happens when no matching contract is found. These are minor for a single-parameter lookup tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter symbol_or_path is already well-described in the schema with examples and matching semantics. The description adds no additional parameter-level details, but with high schema description coverage the baseline of 3 is appropriate; the schema does the necessary work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with 'Full cross-layer trace' and enumerates specific outputs: stack location, contract triangle, cross-layer verify tasks, and active-PR links. It also explicitly differentiates from the sibling trace_in_stack, calling this the 'enriched trace' versus a 'lightweight stack-location-only lookup.' An agent can immediately understand what this tool does and how it differs from the closest alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives direct usage guidance: use this tool when the enriched cross-layer trace is needed, and use trace_in_stack for a lightweight stack-location-only lookup. This explicit when/when-not pairing with a named alternative is exactly what an agent needs to choose correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trace_in_stackA
Lightweight stack location: matched abstraction card or path-prefix pipeline stage only.
No contract artifacts or PR links. Use trace_contract for the enriched cross-layer trace.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol_or_path | Yes | Symbol name or file path to locate in the pypto→PTOAS→pto-isa→simpler stack. Path prefix matching is used for file paths; abstraction card matching for concept names. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral disclosure burden. It reveals the tool is lightweight, limited to abstraction card or path-prefix matching, and excludes contract artifacts and PR links—useful behavioral context. However, it does not state read-only nature, outcome when no match is found, or operational details of the matching modes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero waste. The first sentence fronts the core behavior and scope; the second states the exclusions and points to the alternative. Excellent structure for quick agent parsing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with an output schema and a clear sibling list, the description covers the essential boundaries: what is matched, what is excluded, and where to go for richer traces. It lacks a positive 'use this when' statement, but the negative scoping and sibling pointer make the tool usable without further inference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already fully describes the parameter with 100% coverage, including path-prefix matching for file paths and abstraction card matching for concept names. The description restates the same concepts without adding new meaning, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific scope: lightweight stack location via abstraction card or path-prefix pipeline matching. It clearly differentiates from sibling trace_contract by explicitly noting what it does not include (contract artifacts, PR links). The verb is somewhat implicit, but the resource and limitations are clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly names trace_contract as the alternative for enriched cross-layer traces and notes exclusions ('No contract artifacts or PR links'), which informs when not to use this tool. It does not give a positive condition like 'use when you only need lightweight location', but the contrast is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
verify_ladderA
Suggest minimal verify tasks for a set of changed file paths.
Returns static_checks (e.g. ["clang-tidy"]) when a changed path
is a C/C++ file in a C++ repo — run those before the pytest tasks
(see tools/clang_tidy_workflow).
| Name | Required | Description | Default |
|---|---|---|---|
| changed_paths | Yes | List of changed file paths (workspace-relative or repo-prefixed), e.g. ["pypto/src/codegen/pto/foo.cc", "simpler/src/common/comm/bar.cc"]. Used to derive minimal verify task set. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description discloses the conditional return of static_checks and the ordering relative to pytest tasks. However, it doesn't state whether the tool executes anything (though 'Suggest' implies non-execution) or describe behavior for non-C/C++ paths, leaving some gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences convey purpose, a conditional, an example, and a cross-reference without redundancy. Each clause adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with a rich schema and an output schema, the description adequately covers the main use case and key conditional logic. It could mention the empty-list case, but the output schema likely covers return structure, making this sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides a thorough description of changed_paths, including examples and purpose, covering 100% of the parameter. The tool description adds no additional parameter detail beyond referring to 'changed file paths', so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Suggest' and the resource 'minimal verify tasks' scoped to 'changed file paths', distinguishing it from generic task-listing siblings. The conditional return detail further clarifies its specialized behavior.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides a clear when-to-use condition: for changed paths, and specifically instructs to run static_checks before pytest tasks for C/C++ files. It references tools/clang_tidy_workflow for additional context, though it doesn't explicitly name alternatives.
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 tool update
v0.2.0- Changed
explain_task1 field changed- changed
Input schema / requiredPrevious value: -[ - "task", - "repo" -]New value: +[ + "repo", + "task" +]
29 tool updates
v0.1.0- First observed
ascend_env_check - First observed
bootstrap_session - First observed
collective_status - First observed
explain_abstraction - First observed
explain_pass - First observed
explain_task - First observed
find_entrypoints - First observed
gate_pr_script - First observed
generate_verify_handoff - First observed
git_diff - First observed
git_log - First observed
knowledge_health - First observed
list_knowledge_topics - First observed
list_repositories - First observed
list_task_types - First observed
list_tasks - First observed
program_status - First observed
read_doc - First observed
read_file - First observed
repository_health - First observed
route_task - First observed
run_command - First observed
run_task - First observed
search_abstractions - First observed
search_code - First observed
summarize_profile - First observed
trace_contract - First observed
trace_in_stack - First observed
verify_ladder
TDQS
Most tools target distinct resources and actions, with clear separation between code search vs abstraction search, run_task vs run_command, and list_tasks vs explain_task. A few close pairs like trace_contract and trace_in_stack could cause confusion, but their descriptions provide sufficient differentiation.
All tool names use snake_case and mostly follow a verb_noun pattern (list_repositories, run_task, explain_pass). Some state-oriented tools like repository_health and collective_status deviate from the verb-first pattern, but the naming remains readable and predictable across the set.
With 29 tools, the server exceeds the 25-tool threshold for a heavy surface. While the hardware/development domain is broad, several tools could be consolidated (e.g., trace_contract and trace_in_stack, or the various status tools), making the count feel inflated.
The toolset covers environment checks, repository operations, task execution, code search, knowledge/abstraction documentation, status tracking, verification workflows, and session bootstrap. Minor gaps exist (e.g., no direct file write or update tool), but the core workflows are well-supported.
Maintenance
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
Ask a codebase what calls what: search, blast radius, paths between symbols, and diffs.
Deterministic context layer for your codebase: change impact, blast radius, answers with receipts.
Your team's shipping standards, org map and delivery metrics, inside your coding agent.
1Cross-agent artifact workspace with provenance across Claude Code, Codex, Cursor, LangGraph.
Related MCP Servers
FlicenseNot gradedqualityNot gradedmaintenanceEnables building and querying code knowledge graphs for project analysis, with tools for exploring code relationships, managing workflows, and automating development tasks. Integrates with Git and GitHub for branch management and pull request creation.426-- AlicenseNot gradedqualityBmaintenanceProvides semantic code intelligence tools (search, structural views) and a workspace TUI interface for LLM agents to efficiently navigate codebases, manage context, and maintain architectural patterns across Python, Java, C++, and Perl projects.4MIT
- AlicenseAqualityAmaintenanceLocal-first code intelligence MCP server with hybrid BM25 + ONNX vector search, symbol-level impact analysis, diff-aware PR review with risk scoring, and persistent memory tied to git state.3644878MIT
- AlicenseNot gradedqualityBmaintenanceProvides AI coding assistants with deep, semantic understanding of local codebases via AST-aware chunking, cross-repo symbol graphs, and architectural memory, enabling context-aware code search and dependency tracing.10MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/georgebisbas/mcp-hw-native-sys'
If you have feedback or need assistance with the MCP directory API, please join our Discord server