delimit
OfficialDelimit is a comprehensive API governance, project management, and AI assistant toolkit that unifies Claude Code, Codex, Cursor, and Gemini CLI with persistent context, multi-model deliberation, and broad developer tooling.
API Governance & Contract Management (Free)
Lint OpenAPI/Swagger specs for breaking changes and policy violations (
delimit_lint)Diff two specs, classify semver bumps (MAJOR/MINOR/PATCH/NONE), and generate migration guides in 7 templates (developer, changelog, PR comment, Slack, etc.)
Enforce custom governance policies with configurable severity levels
Extract OpenAPI specs from FastAPI, Express, or NestJS source code
Ledger & Task Tracking (Free)
Append-only, hash-chained ledger for tracking tasks, bugs, features, and strategy items across sessions
Filter by status, priority, or type; get quick project context summaries
List all registered projects/ventures
Security & Scanning
Scan for vulnerabilities, hardcoded secrets, dangerous patterns, and
.envfiles in gitAudit dependencies for known CVEs
Project discovery: detect frameworks, OpenAPI specs, security issues, and test coverage
Multi-Model Deliberation (Pro)
Orchestrate real AI-to-AI debate (Grok 4, Gemini, Codex) until unanimous consensus
Manage model configurations and credentials
Memory & Vault (Pro)
Store and semantically search conversation memory across sessions
Encrypted vault for secrets and persistent context with health/snapshot tools
Deployment & Release Management (Pro)
Governed pipeline: plan, build (Docker), publish, rollback, and check status
Automate site deployments (Vercel) and npm package publishing with version bumping and git tagging
Generate release plans from git history, audit/sync public surfaces (GitHub, npm, site meta)
Governance Workflow (Pro)
Create, run, and verify governed tasks with risk levels and gate checks
Collect and verify compliance evidence bundles; analyze downstream API change impact
Observability & Cost Management (Pro)
Query live metrics (CPU, memory, disk via /proc or Prometheus), search logs (journalctl, Elasticsearch, Loki), and check system health
Analyze project costs, find optimization opportunities, and manage spending alerts
Code & Project Generation
Generate code templates (component, page, API) and scaffold new projects (Next.js, API, library)
Design & UI
Extract design tokens from CSS/SCSS/Tailwind/Figma; generate React/Next.js components and Tailwind configs
Validate responsive design patterns; catalog component libraries; generate Storybook stories
Run visual regression tests (Playwright) and WCAG accessibility checks
Testing & Documentation
Generate test skeletons (Jest/Pytest/Vitest), run smoke tests
Generate API reference docs from docstrings/JSDoc and validate documentation quality
Data Management
Validate JSON/CSV/SQLite files, check migration status (Alembic, Django, Prisma, Knex), back up data with timestamps
Intel / Research
Register, freeze, and query datasets and research snapshots with provenance metadata
Utilities
Monitor GitHub issues, diagnose setup issues, manage Pro license activation, and get tool-specific help
Supported formats: OpenAPI 3.0/3.1, Swagger 2.0 (YAML/JSON), GitHub Actions CI/CD integration, MCP (Model Context Protocol) for AI assistants.
Allows for zero-spec extraction to generate OpenAPI specifications directly from Express.js source code.
Allows for zero-spec extraction to generate OpenAPI specifications directly from FastAPI source code.
Integrates with GitHub Actions to monitor pull requests for breaking API changes, automatically posting comments with migration guides and severity ratings.
Allows for zero-spec extraction to generate OpenAPI specifications directly from NestJS source code.
Performs automatic Semantic Versioning classification (Major, Minor, Patch) based on detected breaking changes in API specifications.
Provides API governance tools including linting and diffing for Swagger 2.0 specifications.
Supports API governance, linting, and policy enforcement for OpenAPI specifications and custom governance rules defined in YAML format.
</> Delimit
The merge gate for AI-written code, with signed, replayable attestation.
Wrap any AI coding assistant (Claude Code, Codex, Cursor, Gemini CLI) with a governance chain that runs your gates, records what changed, and signs a replayable receipt for every merge.
$ delimit wrap -- claude "fix the flaky test in tests/api.spec.ts"
✓ repo_diagnose
✓ security_audit 0 critical · 0 secrets
✓ test_smoke 165/165
✓ changed_files 1
✓ attestation signed att_a05050eb8e13277e
delimit.attestation.v1 · HMAC-SHA256
replay → https://delimit.ai/att/att_a05050eb8e13277eEvery wrapped run emits a delimit.attestation.v1 bundle: repo head before/after, changed files, gate results, HMAC-SHA256 signature, and a replay URL. Advisory by default; flip to enforcing when you're ready.
Fastest path to value: delimit check
Zero-config PR safety gate. No init, no setup, no account, no keys — run it on any repo and it applies deterministic checks (breaking API changes + leaked secrets) to your staged or modified files.
npx delimit-cli check$ delimit check
Delimit Check
Policy: default | Base: HEAD | Specs: 1
+ api/openapi.yaml — clean
PASSED — no breaking changes, no leaked secretsWhen a check finds a breaking change or a leaked secret, it prints the offending file and the issue and exits non-zero — so it drops straight into a pre-commit hook or CI step.
Common options:
delimit check --staged # only check staged files
delimit check --base main # compare against a git ref (default HEAD)
delimit check --fix # show migration guidance for violations
delimit check --record # write a content-pinned record of this check--record writes a content-pinned record of the check to .delimit/records/check-<ts>.json (or a path you name). That record is the precursor to the signed, replayable Seal attestation — the same evidence shape, pinned to the exact content you checked.
Related MCP server: EX MCP Server
Worked examples
Real, reproducible merge-gate runs against public API specs:
OpenAI OpenAPI: a year of AI frontier evolution under a cross-vendor merge gate — OpenAI (openai/openai-openapi)
Stripe v1 OpenAPI: 57 days under a merge gate — Stripe (stripe/openapi)
Anthropic API: 76 days under a cross-vendor merge gate — Anthropic (anthropics/anthropic-sdk-python)
Twilio v2010 OpenAPI: 55 days under a merge gate — Twilio (twilio/twilio-oai)
Docusign eSignature v2.1 OpenAPI: 46 days under a merge gate — Docusign (docusign/OpenAPI-Specifications)
Supabase Auth OpenAPI: 57 days under a merge gate — Supabase Auth (supabase/auth)
cal.com v2 OpenAPI: 60 days under a merge gate — cal.com (calcom/cal.com)
EU TED v3 procurement API: $ref'd component-schema drift under a merge gate — European Commission (TED v3 Public API)
Cross-agent handoff: one artifact, four CLIs — Cross-CLI session handoff (worked example)
delimit-mcp-server (self-attestation): same merge gate, third artifact class — delimit-mcp-server (self-attestation)
See the full index at delimit.ai/reports. For the schema and signing methodology behind every report, see delimit.ai/methodology/mcp-attestation.
Golden Path — your first 10 minutes
The merge gate for AI-written code, end to end: lint a spec, see exactly what breaks, classify the bump, settle the hard calls with multiple models, and walk away with a signed, replayable attestation. Then keep the context that survives across sessions and models.
1. Install
npx delimit-cli scan # discovery: finds your OpenAPI specs, frameworks, security issues, tests
npx delimit-cli init # wire up the merge-gate config (--preset strict | default | relaxed)scan (delimit_scan) reports what Delimit can do for this repo. init (delimit_init) drops in the policy preset and merge-gate config. No account, no keys.
2. The merge gate, end to end
Lint the spec change (the gate). Baseline vs. proposed, with policy applied — one pass/fail verdict.
npx delimit-cli lint old.yaml new.yaml # tool: delimit_lintSee exactly what breaks. Pure structural diff — added/removed/modified endpoints, schemas, params, no policy.
npx delimit-cli diff old.yaml new.yaml # tool: delimit_diffClassify the bump. Deterministic MAJOR/MINOR/PATCH/NONE — same input, same answer, every time.
delimit_semver → MAJOR/MINOR/PATCH/NONE + next version string
delimit_impact → blast radius: scans your dependency manifest for downstream callers (informational)Settle the hard calls. When the gate verdict is a judgment call, put it to multiple models and let them debate to consensus.
npx delimit-cli deliberate "Is dropping the deprecated v1 /users field a safe MINOR?"
# tool: delimit_deliberate — 3 hosted runs after `delimit signin` (free account), then bring your own keysCapture the signed, replayable attestation. After a gate event (deploy / security / test / audit), record the evidence bundle and verify it any time.
delimit_evidence_collect → signed evidence bundle for the audit trail (Pro)
delimit_evidence_verify → confirm a bundle hasn't been tampered with (Pro)
delimit_seal_verify → check a Delimit Seal receipt against its bundled (Free)
Layer-0 constitution — offline-verifiableEvery receipt is offline-verifiable: npx delimit-cli seal-verify <receipt.json>, or open its delimit.ai/att/<id> replay URL.
3. Context that survives sessions and models
Decisions, constraints, and tasks persist across sessions and across AI assistants — switch from Claude Code to Codex, Cursor, or Gemini CLI without losing the thread.
Memory — persist and recall the why, not just the diff.
npx delimit-cli remember "v1 /users field is frozen until Q3 — downstream billing depends on it"
# tool: delimit_memory_store
npx delimit-cli recall billing # local recall over your saved memories (Free)For semantic recall by meaning across sessions, the assistant calls delimit_memory_search (Pro) directly.
Ledger — one task list, shared across every assistant and session.
delimit_ledger_add → record a task/bug/feature/strategic item
delimit_ledger_context → session-start: top open items by priority (what's queued)
delimit_ledger_done → close with a note (auto-captures a PR URL as ship proof)That's the loop: gate the change, sign the proof, keep the context. Run it once on a real spec and you've used the whole merge gate.
Think and Build
Beyond the merge gate, Delimit orchestrates multi-model deliberation and autonomous builds. delimit think dispatches a strategic question to Claude, Codex, Gemini, and Grok; delimit build activates a background daemon that executes ledger tasks through the gate chain. delimit vault manages local secrets (AES-256).
Works across any configuration, from a single model on a budget to a full panel.
Try it in 2 minutes
npx delimit-cli doctor # 14 prescriptive checks — tells you exactly what to fix
npx delimit-cli status # Visual dashboard of your entire governance setup
npx delimit-cli simulate # Dry-run: see what would be blocked before you commit
npx delimit-cli scan # Instant health grade for your API spec
npx delimit-cli try owner/repo # Try governance on any GitHub repoNo API keys. No account. No config files.
Pick your first win
Protect my API — catch breaking changes before merge:
npx delimit-cli try
# Creates a sample API, introduces breaking changes, shows what gets blocked.
# Saves a governance report to delimit-report.mdWatch for drift — detect spec changes without review:
npx delimit-cli init # Sets up governance + drift baseline
# Weekly drift checks run automatically via GitHub ActionRun PR copilot — governance gates on every pull request:
# .github/workflows/api-governance.yml
- uses: delimit-ai/delimit-action@v1
with:
spec: api/openapi.yaml
# Posts gate status, violations, and remediation in PR commentsWhat's New
Gate every AI-assisted invocation. Ship the receipts.
delimit wrap— pipeclaude -p,cursor,aider,codex, or any AI-assisted CLI through a signed governance gate. Snapshots the git diff before/after, runs lint + tests, HMAC-signs anatt_*attestation, emits a public replay URL. Advisory by default;--enforceblocks CI on policy violations;--max-time <s>is a kill switch that tags the attestation as aliability_incidentand prints a cross-model handoff command.delimit trust-page— renders a directory of attestations into a static HTML trust page + JSON Feed 1.1 feed. Single file, no framework, offline-renderable. Deploy anywhere.delimit ai-sbom— aggregates attestations into a CycloneDX 1.6 bill-of-materials with AI-specific fields (detected models per vendor, tool-call surface, policy gate counts). Pipe straight into procurement.Cross-model by construction —
wrapis agnostic to the producer. Same attestation schema whether the pipe upstream is Claude Code, Cursor, Aider, Codex, or Gemini CLI. Switch producers without losing the audit chain.
# Gate any AI-assisted CLI
delimit wrap -- claude -p "add tests for payments"
# → att_7d556843c84fb881 signed, replay: https://delimit.ai/att/att_7d556843c84fb881
# Kill switch + handoff after 60s wall-clock
delimit wrap --max-time 60 -- cursor edit "refactor auth middleware"
# → if killed: kind=liability_incident
# → suggested: delimit wrap -- claude -p "refactor auth middleware"
# Render accumulated attestations as a public trust page
delimit trust-page -o ./trust
# → ./trust/index.html (+ feed.json)
# Build a CycloneDX-AI bill of materials
delimit ai-sbom -o ./ai-sbom.json
# → components: 4 models detected, 187 gates runEarlier releases
The highest state of AI governance — earlier features still active.
delimit doctor-- 14 prescriptive diagnostics. Every failure prints the exact command to fix it.--cifor pipelines,--fixfor auto-repair.delimit simulate-- policy dry-run. See what would be blocked before you commit. Theterraform planfor API governance.delimit status-- visual terminal dashboard. Policy, specs, hooks, CI, MCP, models, memory, ledger, evidence, git branch.--watchfor live refresh.delimit report-- governance report.--since 7d --format md|html|json. Audit-friendly output for PRs and compliance.Memory hardening -- SHA-256 integrity hash + source model tag on every
remember. Cross-model trust, verified on everyrecall.Tag-based publishing -- automated gateway sync, no more version drift between source and npm bundle.
Multi-Model Deliberation
Run your question through 4 AI models simultaneously. They debate each other until unanimous agreement.
delimit deliberate "Should we build rate limiting in-house or use a managed service?" Round 1 (independent):
Claude: Build in-house. Redis sliding window is 50 lines.
Gemini: Build. You already have Redis.
Codex: Agree — but add circuit breaker for Redis failures.
Grok: Build. Managed service costs $200/mo for 50 lines of code.
Round 2 (deliberation):
All models: AGREE
UNANIMOUS CONSENSUS (2 rounds, confidence 94/100)
Build rate limiting in-house with Redis + circuit breaker.3 free deliberations, then BYOK for unlimited. Works with Grok, Gemini, Claude, GPT-4o.
v4.18
MCP Registry record published on every release -- the official registry entry now tracks the npm version automatically. Publisher pinned and checksum-verified; the tag gate asserts that both
server.jsonversion fields match the package version.Tool descriptions -- 16 previously undocumented parameters documented from their signatures; 26 Pro-gated tools state the prerequisite and the unlicensed-call response.
Release guards -- bundle-classification guard no longer flakes on SIGPIPE.
v4.17
Cross-model continuity on fresh installs --
delimit_soul_capture/delimit_revivework without any internal modules via the publicsession_continuitymodule; captured souls carry deterministic provenance (venture, transcript identity, capture key) for reliable resume across model switches. Existing soul files load unchanged.Security audit -- fewer false positives on test fixtures and documentation dummies; suppressed findings are reported, never silently dropped.
v4.16
Fail-closed bundle allowlist -- the npm package ships only explicitly reviewed gateway files; two CI guards block any unclassified or non-allowlisted file from entering the tarball.
Session-end auto-capture installs in the settings shape Claude Code expects, so end-of-session handoff fires instead of being silently dropped.
Always-on commit-author audit workflow catches identity drift on the repo.
v4.1
TUI -- terminal-native Ventures panel, real
delimit thinkanddelimit buildcommandsSecurity hardening -- notify.py stubbed in npm, axios pinned against supply chain attacks
Free tier restructure -- deliberations use Gemini Flash + GPT-4o-mini (cost: <$20/mo)
Zero-config onboarding -- auto-detect framework, scan, and first evidence in one command
Auto-approve tools --
delimit setupconfigures permissions for Claude Code, Codex, and Gemini CLI
v4.0
Toolcard Delta Cache -- SHA256 schema hashing, delta-only transmission, saves tokens
Session Phoenix -- cross-model session resurrection with soul capture
Handoff Receipts -- structured acknowledgment protocol between agents
Cross-Model Audit -- 3 lenses (security, correctness, governance) with deterministic synthesis
4-model deliberation -- Claude + Grok + Gemini + Codex debate until consensus
Universal Swarm Triggers -- "Think and Build", "Keep building", "Ask Delimit"
Full governance toolkit -- lint, diff, policy, evidence, drift, attestation, and swarm orchestration exposed as MCP tools and CLI subcommands
GitHub Action
Zero-config -- auto-detects your OpenAPI spec:
- uses: delimit-ai/delimit-action@v1Or with full configuration:
name: API Contract Check
on: pull_request
jobs:
delimit:
runs-on: ubuntu-latest
permissions:
pull-requests: write
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: delimit-ai/delimit-action@v1
with:
spec: api/openapi.yamlThat's it. Delimit auto-fetches the base branch spec, diffs it, and posts a PR comment with breaking changes, semver classification, migration guides, and governance gate results.
View on GitHub Marketplace | See a live demo (23 breaking changes)
Example PR comment
Breaking Changes Detected
Change
Path
Severity
endpoint_removed
DELETE /pets/{petId}error
type_changed
/pets:GET:200[].id(string -> integer)warning
enum_value_removed
/pets:GET:200[].statuswarning
Semver: MAJOR (1.0.0 -> 2.0.0)
Migration Guide: 3 steps to update your integration
Governance Gates
Gate
Status
Chain
API Lint
Pass/Fail
lint -> semver -> gov_evaluate
Policy Compliance
Pass/Fail
policy -> evidence_collect
Security Audit
Pass
security_audit -> evidence_collect
Deploy Readiness
Ready/Blocked
deploy_plan -> security_audit
Adopt with minimum privilege
You don't have to trust a large tool surface on day one. The safe on-ramp:
Phase 1 — read-only governance (free, no account). Start with the tools that
only read your repo and write reports: delimit_lint, delimit_diff,
delimit_semver, delimit_policy, delimit_explain, delimit_scan, and
delimit_seal_verify. If your MCP client supports per-tool allowlists, grant
exactly those. Nothing in this set executes, deploys, or posts anywhere.
Phase 2 — opt into side effects deliberately. Tools that write evidence
bundles, open PR comments, or run deploys (delimit_security_audit,
delimit_deploy_*, agent orchestration) are tier-gated; enable them once
phase 1 has earned its keep in your CI.
Pin the Action to a commit SHA. @v1 is a floating tag. For
supply-chain-sensitive pipelines, pin the exact commit and bump on review:
- uses: delimit-ai/delimit-action@<commit-sha> # gh api repos/delimit-ai/delimit-action/git/refs/tags/v1Keep BYOK keys out of plaintext config. If you bring your own model keys
for deliberation, store them with delimit_secret_store (encrypted vault,
access-logged via delimit_secret_access_log) rather than in dotfiles.
Our own releases ship under the same discipline: every release carries a
signed, replayable Seal receipt (see the latest
release assets —
verify with npx delimit-cli seal-verify <receipt.json> or at its
delimit.ai/att/<id> replay URL), plus SLSA provenance on npm.
CLI commands
npx delimit-cli scan # Instant spec health grade + recommendations
npx delimit-cli pr owner/repo#123 # Review any GitHub PR for breaking changes
npx delimit-cli quickstart # Clone demo project + guided walkthrough
npx delimit-cli try # Zero-risk demo — saves governance report
npx delimit-cli demo # Self-contained governance demo
npx delimit-cli init # Guided wizard with compliance templates
npx delimit-cli init --preset strict # Initialize with strict policy
npx delimit-cli setup # Install into all AI assistants
npx delimit-cli setup --dry-run # Preview changes first
npx delimit-cli lint api/openapi.yaml # Check for breaking changes
npx delimit-cli diff old.yaml new.yaml # Compare two specs
npx delimit-cli explain old.yaml new.yaml # Generate migration guide
npx delimit-cli check # Pre-commit governance check
npx delimit-cli check --staged --fix # Check staged files + show guidance
npx delimit-cli hooks install # Install git pre-commit hook
npx delimit-cli hooks install --pre-push # Also add pre-push hook
npx delimit-cli ci # Generate GitHub Action workflow
npx delimit-cli ci --strict --dry-run # Preview strict workflow
npx delimit-cli remember "Redis uses JWT 15min" # Save a persistent memory
npx delimit-cli recall redis # Search memories
npx delimit-cli recall # Show recent memories
npx delimit-cli recall --tag deploy --all # Filter by tag, show all
npx delimit-cli recall --export # Export as markdown
npx delimit-cli forget abc123 # Delete a memory by ID
npx delimit-cli models # Configure deliberation API keys (BYOK wizard)
npx delimit-cli models --status # Show current model config
npx delimit-cli status # Compact dashboard of your Delimit setup
npx delimit-cli doctor # Check setup health
npx delimit-cli uninstall --dry-run # Preview removal
npx delimit-cli wrap -- claude -p "..." # Gate any AI-assisted CLI + signed attestation
npx delimit-cli wrap --max-time 60 -- codex "..."# With kill switch + handoff on timeout
npx delimit-cli trust-page -o ./trust # Render attestations into a static trust page
npx delimit-cli ai-sbom -o ./ai-sbom.json # Build a CycloneDX-AI bill of materialsWhat the MCP toolkit adds
When installed into your AI coding assistant, Delimit provides tools across two tiers:
Free (no account needed)
API governance -- lint, diff, policy enforcement, semver classification
Persistent ledger -- track tasks across sessions, shared between all AI assistants
Zero-spec extraction -- generate OpenAPI specs from FastAPI, Express, or NestJS source
Project scan -- auto-detect specs, frameworks, security issues, and tests
Quickstart -- guided first-run that proves value in 60 seconds
Pro
Multi-model deliberation -- AI models debate until they agree (free: Gemini Flash + GPT-4o-mini; BYOK: any models)
Security audit -- dependency scanning, secret detection, SAST analysis
Test verification -- confirms tests ran, measures coverage, generates new tests
Memory & vault -- persistent context and encrypted secrets across sessions
Evidence collection -- governance audit trail for compliance
Deploy pipeline -- governed build, publish, and rollback
OS layer -- agent identity, execution plans, approval gates
What It Detects
28 change types (17 breaking, 11 non-breaking) -- deterministic rules, not AI inference. Same input always produces the same result.
Breaking Changes
# | Change Type | Example |
1 |
|
|
2 |
|
|
3 |
| New required header on |
4 |
|
|
5 |
|
|
6 |
| Request body now requires |
7 |
|
|
8 |
|
|
9 |
|
|
10 |
|
|
11 |
| Query param |
12 |
|
|
13 |
| Response |
14 |
| OAuth2 security scheme removed |
15 |
|
|
16 |
|
|
17 |
|
|
Non-Breaking Changes
# | Change Type | Example |
18 |
| New |
19 |
|
|
20 |
| Optional |
21 |
|
|
22 |
| Optional |
23 |
|
|
24 |
| Updated description for |
25 |
| API key security scheme added |
26 |
|
|
27 |
| Default value for |
28 |
| Required field |
Policy presets
npx delimit-cli init --preset strict # All violations are errors
npx delimit-cli init --preset default # Balanced (default)
npx delimit-cli init --preset relaxed # All violations are warningsOr write custom rules in .delimit/policies.yml:
rules:
- id: freeze_v1
name: Freeze V1 API
change_types: [endpoint_removed, method_removed, field_removed]
severity: error
action: forbid
conditions:
path_pattern: "^/v1/.*"
message: "V1 API is frozen. Changes must be made in V2."Supported formats
OpenAPI 3.0 and 3.1
Swagger 2.0
YAML and JSON
FAQ
How does this compare to Obsidian Mind?
Obsidian Mind is a great Obsidian vault template for Claude Code users who want persistent memory via markdown files. Delimit takes a different approach: it's an MCP server that works across Claude Code, Codex, Gemini CLI, and Cursor. Your memory, ledger, and governance travel with you when you switch models. Delimit also adds API governance (28-type breaking change detection), CI gates, git hooks, and policy enforcement that Obsidian Mind doesn't cover. Use Obsidian Mind if you're all-in on Claude + Obsidian. Use Delimit if you switch between models or need governance.
Does this work without Claude Code?
Yes. Delimit works with Claude Code, Codex (OpenAI), Gemini CLI (Google), and Cursor. The remember/recall commands work standalone with zero config. The MCP server integrates with any client that supports the Model Context Protocol.
Is this free?
The free tier includes API governance, persistent memory, zero-spec extraction, project scanning, and 3 multi-model deliberations. Pro ($10/mo) adds unlimited deliberation, security audit, test verification, deploy pipeline, and agent orchestration. Premium ($50-100/mo) adds priority support and team features. Enterprise is custom: see delimit.ai/pricing.
Telemetry & cloud sync
Short version: none by default. Nothing leaves your machine unless you explicitly configure it.
What's always local (source of truth):
~/.delimit/events/events-YYYY-MM-DD.jsonl— per-tool-call events (tool name, timestamp, status, model id, session id, trace id). No source code, no prompts, no responses.~/.delimit/ledger/— your ledger items, work orders, deliberation transcripts.~/.delimit/attestations/—delimit wrapoutput bundles.
What's OPT-IN (requires you to provide your own Supabase project credentials):
gateway/ai/supabase_sync.pymirrors the local event + ledger + work-order + deliberation rows into a Supabase project you own so you can view them inapp.delimit.ai. It only activates if you setSUPABASE_URL+SUPABASE_SERVICE_ROLE_KEYenvironment variables OR provide~/.delimit/secrets/supabase.jsonwith those credentials. No URL or key is hardcoded in the published package (verify withgrep -r aqbdqxnhzqzswdxifksc $(npm root -g)/delimit-cli/— zero hits).Data scope when enabled: metadata only (tool names, timestamps, IDs, statuses, venture tags). Never source code, prompts, or model responses.
Kill switch:
Set DELIMIT_DISABLE_CLOUD_SYNC=1 in your environment to force all sync operations to no-op even if credentials are present. Local files continue to work normally.
# Disable cloud sync for a single invocation
DELIMIT_DISABLE_CLOUD_SYNC=1 delimit lint api/openapi.yaml
# Disable for the shell session
export DELIMIT_DISABLE_CLOUD_SYNC=1Webhook notifications:
gateway/ai/notify.py emits governance events to a webhook endpoint only if you configure DELIMIT_WEBHOOK_URL explicitly. Unset by default.
If you spot another code path that could phone home without disclosure, file an issue. This section is maintained as ship-truth, not aspirational.
Links
delimit.ai -- homepage
Dashboard -- governance console
Docs -- full documentation
GitHub Action -- Marketplace listing
Quickstart -- try it in 2 minutes
npm -- CLI package
Pricing -- free tier + Pro
MIT License
Available Tools
210 toolsdelimit_activateA
Activate Delimit and run a readiness checklist.
When to use: as the post-install confirmation that everything is wired up — license, MCP, governance, tests, permissions, premium. When NOT to use: for diagnostic-style debugging of an already activated install (use delimit_diagnose) or first-run discovery (delimit_quickstart).
Sibling contrast: delimit_diagnose investigates issues; delimit_quickstart is the 60-second guided first run; this is the activation + readiness checklist.
Side effects: applies the license key when provided; auto-configures AI-assistant permissions when auto_permissions=True (writes .claude/settings.json). Skipped checks (premium on free tier, no test framework) do not count against the score.
| Name | Required | Description | Default |
|---|---|---|---|
| license_key | No | Optional license key (e.g. DELIMIT-XXXX-XXXX-XXXX). Empty = free-tier readiness only. | |
| project_path | No | Project directory to check. Default "." (cwd). | . |
| auto_permissions | No | Auto-configure AI assistant permissions (default True). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Discloses side effects: applies license key, auto-configures permissions (writes settings.json). Notes skipped checks don't affect score. Could mention reversibility but still strong.
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?
Five sentences, well-organized with clear sections. Front-loaded with main purpose. 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?
Covers activation, readiness checklist, side effects, and sibling distinction. Output schema exists so return values are handled. Complete for an activation 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 parameters are already well-documented. Description adds context about free-tier readiness for license_key but doesn't provide new semantic meaning beyond 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?
Describes the tool as 'Activate Delimit and run a readiness checklist.' Clearly distinguishes from siblings by contrasting with delimit_diagnose (diagnostic debugging) and delimit_quickstart (first-run discovery).
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 (post-install confirmation) and when not to use (diagnostic debugging, first-run discovery). Provides sibling contrast for alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_agent_checkA
Check if a model is allowed to perform an action under agent policy.
When to use: as a per-action gate before executing sensitive operations from a non-orchestrator model — verify it has the required permission. When NOT to use: to set / inspect policies overall (use delimit_agent_policy) or for runtime governance evaluation (delimit_gov_evaluate).
Sibling contrast: delimit_agent_policy manages the policy; delimit_gov_evaluate is the runtime governance gate; this is a per-action permission check.
Side effects: read-only on the policy store. Calls ai.agent_policy.check_agent_permission.
| Name | Required | Description | Default |
|---|---|---|---|
| model | Yes | AI model name — "claude", "codex", "gemini", "cursor". Required. | |
| action | Yes | Action to check (e.g. "ledger_write", "deploy"). Required. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses side effects ('read-only on the policy store') and the underlying call. No annotations exist, so the description carries full burden. It covers the main behavioral trait (read-only) but could mention return value or error handling; however, output schema likely covers that.
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, well-structured with clear sections (purpose, when to use, when not to use, sibling contrast, side effects). Every sentence adds value, front-loaded with key 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 two-parameter tool with an output schema, the description covers purpose, usage guidelines, side effects, and sibling differentiation comprehensively. No gaps for the complexity level.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema describes both parameters (model, action) with clear descriptions, and coverage is 100%. The description does not add extra 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 the tool's purpose: 'Check if a model is allowed to perform an action under agent policy.' It uses specific verb-resource pairing and contrasts with siblings (delimit_agent_policy, delimit_gov_evaluate), making its role distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use ('as a per-action gate before executing sensitive operations from a non-orchestrator model') and when not to use (setting policies or runtime governance), with alternative tool names provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_agent_completeA
Close a dispatched agent task by recording the outcome.
When to use: at the end of an engineering subagent's work, to record the result summary and the files touched on the dispatch record. This is the closing step of the dispatch lifecycle (delimit_agent_dispatch -> [subagent runs] -> this). Without calling this, the task remains "dispatched" in the ledger and dashboards will count it as in-flight. When NOT to use: to hand off ownership to a different model (use delimit_agent_handoff), to dispatch a fresh task (delimit_agent_dispatch), or to read task status without closing (delimit_agent_status). Also: do not call repeatedly on the same task_id — the backend treats a second complete as an error.
Sibling contrast: delimit_agent_handoff transfers active ownership to another model (task stays open); this closes ownership entirely. delimit_agent_status is the read-only sibling.
Side effects: writes a completion record via
ai.agent_dispatch.complete_task — the task's status flips from
"dispatched" to "completed", result and files_changed are
persisted, and an audit log entry is appended. files_changed
is coerced from a comma string to a list. No license gate on
this lifecycle surface. No notification — pair
with delimit_notify if the operator needs to be told.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | Task id from delimit_agent_dispatch. Required. | |
| result | No | Summary of what was done. | |
| files_changed | No | Comma-separated paths of modified files. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully carries the burden. It details side effects: writes a completion record, flips status from 'dispatched' to 'completed', persists result and files_changed, appends an audit log, and coerces files_changed from comma string to list. It also notes no license gate and no notification.
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 well-structured with a one-line summary, usage sections, sibling contrast, and side effects. While slightly long, every sentence provides essential information. No waste, but could be trimmed slightly.
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 (3 params, 1 required, 100% schema coverage, has output schema, no annotations), the description covers lifecycle, errors, side effects, and usage context. It fully compensates for the lack of annotations and provides a complete picture.
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 adds meaning beyond the schema: task_id is from delimit_agent_dispatch, result is a summary, files_changed is comma-separated paths, and it mentions coercion. This adds value without redundancy.
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: 'Close a dispatched agent task by recording the outcome.' It uses specific verbs (close, recording) and identifies the resource (dispatched agent task). It also distinguishes from siblings explicitly, naming delimit_agent_handoff and delimit_agent_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?
The description provides explicit 'When to use' and 'When NOT to use' sections, including alternatives like handoff, dispatch, and status. It also warns against repeated calls on the same task_id, giving clear guidance on correct invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_agent_dashboardA
View the multi-agent orchestration dashboard.
When to use: as a one-shot read of all agent activity grouped by assignee/status — useful for orchestrator status reporting. When NOT to use: for a single task's status (use delimit_agent_status) or to dispatch new work (delimit_agent_dispatch).
Sibling contrast: delimit_agent_status returns raw records; this returns an aggregated dashboard view.
Side effects: read-only. Calls ai.agent_dispatch.get_agent_dashboard.
Args: None.
Returns: Dict with grouped tasks, handoff history, linked ledger items, recent audit trail, next_steps.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully covers transparency: states it's read-only, names the underlying function call (ai.agent_dispatch.get_agent_dashboard), and outlines the return structure. 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?
Well-structured with labeled sections (main purpose, when to use/not use, sibling contrast, side effects, args, returns). Every sentence 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?
For a zero-parameter, read-only dashboard tool, the description covers purpose, usage, side effects, underlying function, and return structure. An output schema exists but description adds enough context for invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has zero parameters, schema coverage 100%. The description explicitly states 'Args: None', making it clear. Baseline for no params is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool is for viewing a multi-agent orchestration dashboard, and distinguishes it from sibling tools (delimit_agent_status returns raw records vs. aggregated view). The verb 'View' and resource 'multi-agent orchestration dashboard' are specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit 'When to use' and 'When NOT to use' sections provide clear guidance, including alternatives (delimit_agent_status for single task status, delimit_agent_dispatch for dispatching work). Sibling contrast further clarifies.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_agent_dispatchA
Record an engineering-task dispatch with full audit trail.
When to use: as the PLANNING + AUDIT surface when the orchestrator decides to delegate parallelizable engineering work to a subagent. Per the operating model (2026-05-01 revision), actual execution is performed by the Agent tool with subagent_type=engineering; this tool records the intent, assignee, constraints, and eventual outcome so the dispatch is replayable from the ledger. When NOT to use: as an autonomous queue processor expecting auto-execution — this records dispatch but does NOT run the work. Real autonomous queue execution is deferred to a future capability (LED-193 daemon) with strict sandboxing + founder- approval semantics. Also do not use for conversational tasks, sub-5-minute work, or work where no function exists yet.
Sibling contrast: delimit_agent_status reads dispatched task state; delimit_agent_handoff transfers a recorded task to a different model; delimit_agent_complete closes the task with results. Compared to delimit_ledger_add, this is the engineering- work surface with assignee, tools_needed, and constraints schema; ledger items are free-form.
Side effects: writes a new task record to disk via
ai.agent_dispatch.dispatch_task (a JSON record in the agent
tasks file plus an audit log entry). String list inputs
(tools_needed, constraints) are coerced from comma strings
to lists. NO subagent is spawned by this call — the caller is
responsible for invoking the Agent tool separately. This lifecycle
surface is not license-gated in the current build.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Short task title. Required. | |
| description | No | Longer task description. | |
| assignee | No | Target model — "claude", "codex", "gemini", or "any". Default "any". | any |
| priority | No | One of "P0" (immediate), "P1" (default), "P2". | P1 |
| tools_needed | No | Comma-separated MCP tools the work will need. | |
| constraints | No | Comma-separated constraints (e.g. "no force push"). | |
| context | No | Background info to seed the executor. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully discloses side effects (writes to disk, string coercion), explicitly states NO subagent spawning, and notes lack of license gating. Comprehensive coverage.
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?
Well-structured with clear sections, front-loaded purpose. Slightly verbose but each sentence adds necessary detail. Could be trimmed slightly without losing 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?
Given 7 parameters, full schema coverage, output schema present, and many sibling tools, the description covers all needed aspects: purpose, usage, behavior, parameter nuance, side effects.
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. Description adds value by noting coercion for string lists and clarifying assignee defaults beyond schema descriptions. Minor extra 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 tool records engineering-task dispatch with audit trail. Distinguishes from siblings by specifying it is for planning/audit surface, not execution.
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 provides 'When to use' and 'When NOT to use' sections, plus sibling contrast. Guides the agent on proper context and alternatives like delimit_agent_status and delimit_agent_complete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_agent_handoffA
Hand off an agent task to a different AI model.
When to use: when an executor is blocked or when cross-model review is required and the next model needs the task's context. When NOT to use: to close out the task (delimit_agent_complete) or create a new one (delimit_agent_dispatch).
Sibling contrast: delimit_agent_complete ends the task; this transfers it to another model.
Side effects: writes a handoff record via ai.agent_dispatch.handoff_task; updates assignee on the task.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | Existing task id from delimit_agent_dispatch. Required. | |
| to_model | Yes | Target model — "claude", "codex", "gemini", etc. Required. | |
| context | No | Notes for the next model. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses side effects: 'writes a handoff record' and 'updates assignee on the task.' This is good but does not cover potential error states or idempotency. Nonetheless, it is transparent about key behaviors.
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 well-structured with a one-sentence summary, followed by clear bullet-like sections for when to use, when not to use, sibling contrast, and side effects. Every sentence 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 presence of an output schema (which explains return values) and the detailed description covering purpose, usage, and side effects, the description is complete for this tool's complexity. No gaps are apparent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description does not add significant extra meaning beyond what the schema already provides for each parameter (task_id, to_model, context).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action ('Hand off an agent task to a different AI model') and distinguishes it from siblings in the 'Sibling contrast' section, specifically contrasting with delimit_agent_complete.
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' and 'When NOT to use' conditions are provided, naming specific alternatives (delimit_agent_complete, delimit_agent_dispatch) and contexts (blocked executor, cross-model review). This gives unambiguous guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
_delimit_agent_implA
Manage the agent-task lifecycle — dispatches to one of four actions.
When to use: as the single MCP-registered agent surface (delimit_agent) when the caller wants to pick the lifecycle action by name in one call rather than choosing a specific delimit_agent_* alias. The lifecycle is dispatch (record intent) -> status (read) -> handoff (transfer to another model) -> complete (close). When NOT to use: from internal code paths — prefer the specific alias (delimit_agent_dispatch, delimit_agent_status, delimit_agent_complete, delimit_agent_handoff) so the action's docstring and arg schema show up at the right call site. Do NOT use action="dispatch" expecting a subagent to run — it RECORDS the dispatch, it does not execute it (see Side effects). The related delimit_agent_link / _policy / _check / _dashboard tools share the prefix but are SEPARATE tools, not actions here — passing their names as action= returns an "Unknown action" error.
Sibling contrast: delimit_agent_dispatch / _status / _complete / _handoff are thin aliases that call straight into this implementation with a fixed action; they exist so each action's docstring lives at the right name. This is the dispatch core for those four. Versus delimit_ledger_add: the ledger holds free-form work items; this surface carries engineering-dispatch schema (assignee, tools_needed, constraints) and a per-task audit trail.
Side effects: action="status" is READ-ONLY (loads the task store, no writes). action="dispatch" / "complete" / "handoff" WRITE to the agent task store and append to its audit log. CRITICAL: action="dispatch" records intent only — it persists a task plus a formatted agent_prompt and does NOT spawn or run a subagent. Per the operating model, actual execution is the caller's responsibility via the Agent tool (subagent_type=engineering); this is the planning + audit surface. Dispatch additionally enforces deterministic guards before writing: a kill switch (refuses if ~/.delimit/pause_dispatch exists), a dead- letter circuit breaker (auto-pauses once too many tasks remain un-acknowledged), a ghost-title reject, and a shipped-LED anti- duplicate gate (refuses + auto-closes a task whose LED is already merged to main). assignee="any" is resolved to a concrete model via the task-type router. Every return is wrapped via _with_next_steps. Errors are deterministic ({"error": ...}): an unknown action short- circuits before any backend call.
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | Which lifecycle operation to perform. One of "dispatch", "status", "complete", "handoff". Default "status". Any other value returns a deterministic {"error": "Unknown action ..."}. | status |
| title | No | Task title (action="dispatch" only). Required — the backend rejects empty titles. | |
| description | No | Longer task description (action="dispatch" only). | |
| assignee | No | Target model "claude"/"codex"/"gemini"/"any" (action="dispatch" only). Default "any", resolved to a concrete model by the router. Invalid values are rejected. | any |
| priority | No | "P0"/"P1"/"P2" (action="dispatch" only). Default "P1"; invalid values are rejected. | P1 |
| tools_needed | No | Comma-separated MCP tools the work will need (action="dispatch" only). Coerced to a list. | |
| constraints | No | Comma-separated constraints, e.g. "no force push" (action="dispatch" only). Coerced to a list. | |
| context | No | Background to seed the executor (action="dispatch") OR notes for the next model (action="handoff"). Unused by status/complete. | |
| task_id | No | Task id, e.g. "AGT-A1B2C3D4". Used by status, complete, handoff. Optional for status (empty lists all active tasks); required and validated for complete/handoff. | |
| result | No | Summary of what was done (action="complete" only). | |
| files_changed | No | Comma-separated modified file paths (action="complete" only). Coerced to a list. | |
| to_model | No | Target model for the transfer (action="handoff" only). Required; validated against the allowed models. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but the description fully discloses side effects: status is read-only, other actions write and audit, dispatch only records intent. It details deterministic guards (kill switch, circuit breaker, ghost-title reject) and error format. This exceeds the burden typically expected.
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 front-loaded with the core summary, then well-structured into usage guidelines and side effects. While verbose with guard details, every part earns its place given the tool's complexity. Slight verbosity keeps it from a 5.
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 12 parameters, 4 actions, multiple guards, and an output schema, the description covers the lifecycle, per-action parameter usage, side effects, error handling, and sibling relationships. No gaps remain.
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 contextual nuance: which parameters apply to which actions, how 'context' differs for dispatch vs handoff, 'task_id' optional for status but required for complete/handoff. This adds meaningful 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?
The description clearly states it manages the agent-task lifecycle and dispatches to one of four actions. It distinguishes from siblings by naming thin aliases and contrasting with other delimit tools like delimit_ledger_add.
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 (single MCP surface for lifecycle actions) and when not to use (internal code paths preferring specific aliases). It warns about misconception that 'dispatch' executes, and clarifies separate tools that share the prefix.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_agent_linkA
Link an agent task to a ledger item so the dashboard shows the relationship.
When to use: after delimit_agent_dispatch creates a task and you want the dashboard to show which ledger item it's working on. When NOT to use: to dispatch a new task (delimit_agent_dispatch) or close out a task (delimit_agent_complete).
Sibling contrast: delimit_agent_dispatch creates; delimit_ledger_link links between two ledger items; this links a task to a ledger item.
Side effects: writes the link via ai.agent_dispatch.link_ledger_item.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | Agent task id (AGT-xxx). Required. | |
| ledger_item_id | Yes | Ledger item id (LED-xxx or STR-xxx). Required. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but description discloses side effect of writing a link. Lacks details on idempotency or error conditions, but sufficient given tool simplicity.
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?
Well-structured with purpose, when to use/not, sibling contrast, and side effects. No unnecessary words. 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?
Covers purpose, usage, side effects, and sibling contrast. Output schema exists so return details not needed. Could mention prerequisite that items exist, but overall complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameters are well-documented there. Description does not add additional meaning beyond what's in 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 the tool links an agent task to a ledger item, with specific verb and resources. It distinguishes from sibling tools like delimit_agent_dispatch and delimit_ledger_link.
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 (after dispatch to show relationship) and when not to use (for new dispatch or close). Provides clear sibling contrast.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_agent_policyA
Set or view per-model governance permissions.
When to use: to inspect or modify the access policy that gates each AI model's operations on the ledger, memory, evidence, deploy, and secrets. When NOT to use: for runtime governance evaluation (use delimit_gov_evaluate) or session policy (delimit_project_config).
Sibling contrast: delimit_gov_evaluate evaluates one action; this configures the per-model policy that those evaluations use.
Side effects: providing any of ledger/memory/deploy/evidence/ secrets/custom_constraints writes via ai.agent_policy.set_agent_policy. Empty/no-changes is read-only.
Access levels for ledger/memory/evidence: "read-only", "read-write", "none". Boolean flags for deploy/secrets: "true" or "false".
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | AI model name — "claude", "codex", "gemini", "cursor". Empty = list all. | |
| ledger | No | Ledger access level. | |
| memory | No | Memory access level. | |
| deploy | No | Allow deploys ("true"/"false"). | |
| evidence | No | Evidence access level. | |
| secrets | No | Allow secret access ("true"/"false"). | |
| custom_constraints | No | Comma-separated constraints, e.g. "no-deploy,no-publish". |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Given no annotations, the description carries full burden. It discloses side effects (writes via ai.agent_policy.set_agent_policy, empty/no-changes is read-only) and explains access level values. However, it does not mention rate limits, auth requirements, or output format, but for a config 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 well-structured with clear sections (purpose, when to use, when not to use, sibling contrast, side effects, parameter details). It is front-loaded with the main purpose and concise without 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 purpose, usage, side effects, and parameter semantics. With an output schema present, return values need not be detailed. The description adequately addresses the tool's complexity and provides sufficient context 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%, so baseline is 3. The description adds value by grouping parameters (ledger/memory/evidence as access levels with 'read-only', 'read-write', 'none'; deploy/secrets as boolean flags; custom_constraints as comma-separated) and clarifying allowed values 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 'Set or view per-model governance permissions' with a specific verb and resource. It distinguishes itself from sibling tools like delimit_gov_evaluate and delimit_project_config by explaining their 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?
Explicitly states when to use (inspect or modify per-model policy) and when not to use (runtime evaluation or session policy), with specific alternative tool names (delimit_gov_evaluate, delimit_project_config).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_agent_statusA
Check status of dispatched agent tasks.
When to use: to monitor open/closed agent tasks, either a single task_id or all tasks when task_id is empty. When NOT to use: to dispatch a new task (delimit_agent_dispatch) or to mark one done (delimit_agent_complete).
Sibling contrast: delimit_agent_dashboard surfaces an aggregate view; this returns raw status records.
Side effects: read-only. Calls ai.agent_dispatch.get_agent_status.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | No | Specific task id (e.g. "AGT-A1B2C3D4") or empty to list all. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
States read-only nature and underlying function call. No annotations exist, so description carries the burden; it adequately covers safety but lacks detail on error conditions or rate limits. Still strong given the tool's simplicity.
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?
Very concise and well-structured: purpose sentence, usage sections, sibling contrast, side effects. Every sentence earns its place with zero 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 (one optional param, output schema present), the description covers all necessary aspects: purpose, usage, exclusions, side effects. Complete for its 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 baseline is 3. The description repeats the schema's parameter description (task_id optional, empty for all) without adding new semantics. No enhancement over 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?
Clearly states 'Check status of dispatched agent tasks' with a specific verb and resource. Distinguishes from sibling delimit_agent_dashboard by contrasting raw status records vs aggregate view.
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 provides when to use (monitor open/closed tasks) and when NOT to use (dispatch or complete tasks), naming specific sibling tools as alternatives. The sibling contrast further clarifies differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_auditA
Cross-model code audit — 3 models, 3 lenses, synthesized (Pro).
When to use: for high-confidence review of a code change, where agreement across models is the signal and disagreements surface tradeoffs. When NOT to use: for raw multi-model debate (use delimit_deliberate) or single-model review (delimit_review).
Sibling contrast: delimit_review is single-prompt multi-model; delimit_deliberate is full debate; this is structured cross-lens audit (security / correctness / governance).
Side effects: gated by require_premium. Calls models via ai.cross_model_audit.audit. No ledger write — caller decides what to do with findings.
| Name | Required | Description | Default |
|---|---|---|---|
| target | No | File path, git diff output, or code snippet to audit. Required. | |
| target_type | No | "file" (default — reads file), "diff" (git diff text), or "snippet" (inline code). | file |
| lenses | No | Comma-separated lenses — "security", "correctness", "governance". Empty = all three. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses side effects: gated by require_premium, calls ai.cross_model_audit.audit, and no ledger write. This is good coverage, though it could additionally mention output format or cost implications. Still, it provides significant transparency beyond 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 well-structured with clear headings (When to use, When NOT to use, Sibling contrast, Side effects). Every sentence serves a purpose, no redundancy, and it is front-loaded with 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's complexity (3 params, output schema exists, no annotations), the description covers purpose, usage, alternatives, and key side effects. It does not explain the output format in plain language (but schema covers it) and omits potential costs, but the level of detail is sufficient for confident agent invocation. Minor room for improvement.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 3 parameters are described in the schema with 100% coverage. The description adds context about the three lenses (security, correctness, governance) and the cross-model nature, but does not materially extend the schema's semantics. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's verb (audit) and resource (code change), specifying it uses 3 models and 3 lenses (security, correctness, governance). It distinguishes itself from siblings delimit_review and delimit_deliberate by highlighting the cross-model structured audit approach.
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 provides 'When to use' and 'When NOT to use' with concrete alternatives (delimit_deliberate for debate, delimit_review for single-model review). The 'Sibling contrast' section further clarifies the differentiation, leaving no ambiguity for the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_build_loopA
Execute one iteration of a governed continuous loop (LED-239).
When to use: to advance the autonomous build / social / deploy loop one step, either interactively or from a daemon. When NOT to use: for status only (use delimit_loop_status) or to configure (delimit_loop_config).
Sibling contrast: delimit_loop_status reads; delimit_loop_config sets policy; this drives one iteration.
Side effects: depends on loop_type. cycle/build dispatches swarm work; social drafts replies; deploy runs gates and publishes. All loops write to the loop_engine's session record.
Loop types:
cycle (recommended): unified think -> build -> deploy in one call.
build: picks feat/fix/task items from ledger, dispatches via swarm.
social (think): scans Reddit/X/HN, drafts replies.
deploy: runs deploy gates, publishes, verifies.
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | "init" to start a session, "run" (default) to execute one iteration. | run |
| session_id | No | Optional session id to continue. | |
| loop_type | No | "cycle", "build" (default), "social", or "deploy". | build |
| cycle_mode | No | For loop_type="cycle" — "sense" (think+strategy), "execute" (build+deploy), or "full" (all). Default "full". | full |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 details side effects for each loop_type (e.g., cycle dispatches swarm work, social drafts replies, deploy runs gates) and mentions writing to the session record. However, it does not discuss idempotency, error behavior, or permission requirements, which would elevate it to a 5.
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 well-structured with clear headings for usage, side effects, and loop types. It is concise—every sentence adds value—and front-loaded with the tool's 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 complexity (4 parameters, no annotations, output schema exists), the description is thorough. It covers when to use, side effects, and loop type details. The output schema likely explains return values, so the description does not need to repeat that.
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 the semantics of loop_type and cycle_mode beyond the schema's simple type descriptions, such as what each loop type does and the cycle_mode options. This complements the schema well.
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 'execute[s] one iteration of a governed continuous loop'. It specifies the verb 'execute', the resource 'governed continuous loop', and distinguishes from siblings like delimit_loop_status and delimit_loop_config. The inclusion of loop types adds further clarity.
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 provides when to use ('advance the autonomous build / social / deploy loop one step') and when NOT to use (for status use delimit_loop_status, for configuration use delimit_loop_config). Also contrasts with sibling tools, offering clear guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_build_loop_daemonA
Background auto-pull daemon for governed build/social/deploy loops (Pro).
When to use: to spawn a long-running daemon that ticks the governed loop every N seconds — the orchestrating Claude session tails ~/.delimit/logs/loop_daemon_.jsonl for triage. When NOT to use: for one-shot iteration (use delimit_build_loop) or to read loop metrics (delimit_loop_status).
Sibling contrast: delimit_build_loop is one iteration; this is the long-running daemon.
Side effects: action="start" spawns a daemon thread that calls run_governed_iteration / run_social_iteration on a cadence. action="stop" halts. Each tick logs returned task_id to a JSONL. Respects delimit_loop_config safeguards (cost_cap, error_threshold, max_iterations, status=paused/stopped) via loop_status before each tick. Gated by require_premium.
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | "start", "stop", or "status" (default). | status |
| session_id | No | Session to run. Required for all actions. | |
| interval_seconds | No | Tick interval. Default 900 (15 min). Used on start. | |
| loop_type | No | "build" (default), "social", or "deploy". Used on start. | build |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries full burden. It discloses side effects (daemon thread spawn/halt, JSONL logging, config safeguards, premium gating). While comprehensive, it lacks details on error handling or concurrency behavior, but overall adds valuable 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 well-organized with clear sections (purpose, when to use, when not, sibling contrast, side effects). Every sentence is informative and free of fluff, making it easy for an AI 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 the tool's complexity (daemon lifecycle, multiple parameters, safeguards) and the presence of an output schema for return values, the description covers all necessary aspects: spawning, stopping, logging, and respecting configuration. It is self-contained for 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 100%, so baseline is 3. The description adds marginal context (e.g., default interval of 15 minutes, loop_type options) but does not significantly enhance understanding beyond the schema's own descriptions. The side effects section links action values to behavior, which is helpful but not novel.
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 as a 'Background auto-pull daemon' for governed loops, which is specific and distinct from the one-shot 'delimit_build_loop' sibling. It uses strong verbs ('spawns', 'ticks') and defines the resource (governed build/social/deploy 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?
Explicit 'When to use' and 'When NOT to use' sections are provided, with direct alternatives: 'delimit_build_loop' for one-shot and 'delimit_loop_status' for metrics. Sibling contrast further clarifies the choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_changelogA
Generate a changelog from git + ledger (git mode) or spec diff (spec mode).
When to use: as part of the deploy gate chain to produce a release note, or to prepend a CHANGELOG.md entry for a tagged release. When NOT to use: for ad-hoc human prose explanation of a spec change (use delimit_explain) or release planning (delimit_release_plan).
Sibling contrast: delimit_explain renders human prose for one diff; delimit_release_plan plans services and versions; this generates a formal changelog entry.
Two modes:
Git mode (pass repo_path): reads git log since last tag, categorizes commits (feat/fix/refactor/docs/test/ci), pulls completed ledger items, formats as Markdown. Works for ANY repo.
Spec mode (pass old_spec + new_spec): compares two OpenAPI specs and produces an API changelog.
Side effects: read-only on git/spec inputs. Writes to output_file when provided. If output_file is "CHANGELOG.md", PREPENDS the entry rather than overwriting — preserving prior history.
| Name | Required | Description | Default |
|---|---|---|---|
| old_spec | No | Old OpenAPI spec path (spec mode). | |
| new_spec | No | New OpenAPI spec path (spec mode). | |
| format | No | "markdown" (default), "json", "keepachangelog", "github-release". | markdown |
| version | No | Version label (e.g. "4.1.0"). | |
| repo_path | No | Repo path (git mode). | |
| since_tag | No | Git tag to diff from. Empty = auto-detect latest tag. | |
| include_ledger | No | Include completed ledger items (git mode). Default True. | |
| output_file | No | Write the rendered changelog here. If "CHANGELOG.md", prepends the entry. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so description fully bears the burden. It details read-only nature on inputs, side effects of writing to output_file, and the special prepend behavior for 'CHANGELOG.md'. It also describes the two modes and their 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?
Well-structured with clear sections: when to use, when not to use, sibling contrast, two modes. Each sentence adds value, no fluff. Front-loaded with 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 8 parameters, two modes, and absence of annotations, the description is thorough. It explains mode selection, parameters, side effects, and contrasts with related tools. The output schema exists but description doesn't need to explain return values.
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% (all 8 parameters described). The description adds value by linking parameters to modes (e.g., repo_path for git mode, old_spec/new_spec for spec mode) and clarifying the prepend behavior for output_file. This goes 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 generates a changelog from git+ledger (git mode) or spec diff (spec mode). It distinguishes itself from siblings like delimit_explain (human prose) and delimit_release_plan (release planning).
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 (part of deploy gate chain, producing release notes, prepending CHANGELOG.md) and when NOT to use (ad-hoc explanations, release planning) with alternative tools named. This provides clear guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_collision_checkA
Detect / prevent multi-model file edit collisions (LED-129).
When to use: in cross-model workflows — claim a file before editing, release after committing — to prevent simultaneous conflicting edits between Claude / Codex / Gemini. When NOT to use: for single-model sessions or general filesystem locking outside the multi-model swarm.
Sibling contrast: delimit_swarm tracks ventures and personas; this tracks per-file edit ownership.
Side effects: action="claim" / "release" mutate the lock state. action="check" is read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | "check" (default), "claim", or "release". | check |
| file_path | No | File to claim/release (required for claim/release). | |
| model | No | AI model name — "claude", "codex", "gemini". | |
| task_id | No | Optional task id for tracking. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses side effects: claim/release mutate lock state, check is read-only. No annotations provided, so description fully handles behavioral disclosure with 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?
Concise three-section structure (purpose, usage, side effects) with no wasted words. Front-loaded with core purpose. Every sentence 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?
Given moderate complexity (4 params, no annotations, output schema exists), description covers purpose, usage, side effects, and sibling contrast. Output format not needed due to 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 description adds little beyond what schema already provides. Description repeats schema text for file_path but does not significantly enhance parameter 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?
Clearly states the tool detects/prevents multi-model file edit collisions, with specific verb and resource. Explicitly differentiates from sibling delimit_swarm by stating it tracks per-file edit ownership.
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 'When to use' (cross-model workflows, claim before edit, release after commit) and 'When NOT to use' (single-model sessions, general filesystem locking). Clear guidance on context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_config_exportA
Export the current governance config as a shareable JSON bundle.
When to use: to package a project's delimit.yml + GitHub Action workflow into a portable JSON config for sharing or import. When NOT to use: to read live policy (use delimit_gov_policy) or initialize a new project (delimit_init).
Sibling contrast: delimit_config_import is the round-trip counterpart; this exports.
Side effects: read-only on the project. Sanitizes project_path via _sanitize_path. Returns the bundle in the response — no file write.
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | No | Path to project root. Default "." (cwd). | . |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses that the tool is read-only ('read-only on the project'), sanitizes the project path via _sanitize_path, and returns the bundle in response without writing to a file. While it could mention error handling or additional side effects, it provides key behavioral traits.
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 well-structured with clear sections, concise sentences, and no redundancy. Every sentence adds value, and the main purpose is front-loaded. It achieves maximum efficiency in communication.
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 parameter, good schema coverage, and an output schema, the description covers all necessary aspects: purpose, usage, side effects, and return behavior. It is complete for an agent to select and invoke the tool 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 sole parameter, project_path, is well-described in the schema with a default and explanation. Schema coverage is 100%, so the description adds minimal additional meaning beyond what the schema provides. No further elaboration is given, so 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's purpose: 'Export the current governance config as a shareable JSON bundle.' It also distinguishes from siblings by explicitly naming delimit_config_import as the round-trip counterpart and delimit_gov_policy for reading live policy, providing clear differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes dedicated 'When to use' and 'When NOT to use' sections, giving explicit scenarios: use for packaging config for sharing/import, not for reading live policy or initializing a project. It also contrasts with sibling tools, providing comprehensive usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_config_importA
Import a governance config from a JSON bundle into a project.
When to use: to apply a previously-exported config bundle from another project — the round-trip counterpart to delimit_config_export. When NOT to use: to initialize a fresh project (use delimit_init) or load an existing config (delimit_project_config action="load").
Sibling contrast: delimit_config_export produces; this consumes.
Side effects: writes the policy file under project_path. With write_workflow=True, also writes the GitHub Action workflow file if present in the bundle. Sanitizes project_path via _sanitize_path.
| Name | Required | Description | Default |
|---|---|---|---|
| config_json | Yes | The JSON config bundle string (from delimit_config_export). Required. | |
| project_path | No | Target project root. Default "." (cwd). | . |
| write_workflow | No | Also write the GitHub Action workflow if present. Default False. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses side effects: writes policy file, optionally writes workflow file, sanitizes project_path. However, it does not specify overwrite behavior, permissions needed, or error cases, slightly reducing completeness.
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, well-structured with separate sections for core action, usage guidance, and side effects. Every sentence adds value without 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 complexity (3 params, output schema exists, no annotations), the description covers purpose, usage, side effects, and sibling relationships. It lacks details on error handling and prerequisites, but output schema covers return values. Overall, fairly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds context about config_json origin and write_workflow purpose, but does not significantly enhance parameter meaning 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 imports a governance config from a JSON bundle into a project, using a specific verb and resource. It distinguishes from siblings by mentioning the round-trip counterpart (delimit_config_export) and contrasting with init and project_config loading.
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' and 'When NOT to use' sections provide clear guidance, naming alternative tools for different scenarios (delimit_init, delimit_project_config). The sibling contrast further clarifies the tool's role.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_content_publishA
Manually trigger a content publish (tweet or YouTube video) (Pro).
When to use: to fire off the next queued tweet or video on demand, bypassing the autonomous content loop. When NOT to use: to inspect the queue (use delimit_content_schedule) or modify it (delimit_content_queue).
Sibling contrast: delimit_content_schedule reads; delimit_content_queue mutates queue; this performs a single publish step.
Side effects: writes to the social/YouTube backends — for tweet, posts the next queued tweet; for youtube, generates and uploads.
| Name | Required | Description | Default |
|---|---|---|---|
| content_type | No | "tweet" (default) to post next queued tweet, or "youtube" to generate + upload the next video. | tweet |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses side effects: writes to backends, posts tweet, generates/upload video. This informs the agent of mutating behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise, well-structured with labeled sections. Every sentence adds value. Front-loaded with main 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?
For a simple tool with one parameter and an output schema, the description covers purpose, usage, side effects, and sibling relationships. Complete enough for correct selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the description adds no additional parameter meaning beyond what the schema already provides. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the action ('manually trigger a content publish') and resource ('tweet or YouTube video'). Distinguishes from siblings by naming delimit_content_schedule and delimit_content_queue.
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' and 'When NOT to use' sections, plus sibling contrast listing specific alternatives. Guidance is direct and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_content_queueA
Manage the tweet and video content queues.
When to use: to view, seed, or add to the autonomous content queues that delimit_content_publish drains. When NOT to use: to publish (use delimit_content_publish) or read upcoming schedule (delimit_content_schedule).
Sibling contrast: delimit_content_publish drains; delimit_content_schedule reads; this mutates the queue.
Side effects: action="seed" populates queue with defaults; action="add" appends items. action="status" is read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | "status" (default), "seed", or "add". | status |
| items | No | For "add" — newline-separated tweet texts. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses behavioral traits such as side effects for each action (seed populates, add appends, status read-only) and states that the tool mutates the queue. While no annotations exist, the description covers key behaviors, though could mention potential limits or additional side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise, using short bullet points under clear headings. Every sentence adds value without redundancy, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema (not shown but indicated), the description does not need to cover return values. It fully covers purpose, usage, side effects, and sibling contrasts, making it a complete and self-contained description 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?
The input schema covers both parameters with 100% coverage, but the description adds valuable behavioral context by mapping each action value to its side effect. This enhances understanding beyond the schema's raw 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 explicitly states the tool manages tweet and video content queues, and distinguishes it from siblings by noting that delimit_content_publish drains and delimit_content_schedule reads, while this tool mutates. The verb 'manage' plus specific actions (view, seed, add) make the purpose very clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit when-to-use (view, seed, add) and when-not-to-use (publish or read schedule) guidance, including specific sibling tool names for alternatives. This leaves no ambiguity about context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_content_scheduleA
View the upcoming content schedule (queued + pending + recent).
When to use: to inspect what's queued (tweets, videos) and what has shipped recently before adding more or triggering a publish. When NOT to use: to actually publish (use delimit_content_publish) or to manage the content queue (delimit_content_queue).
Sibling contrast: delimit_content_queue mutates queue state; this reads the resulting schedule.
Side effects: read-only. Calls ai.content_engine.get_content_schedule.
Args: None.
Returns: Dict with queued tweets, pending videos, recent activity, next_steps.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite no annotations, the description declares 'Side effects: read-only' and names the internal function call. It provides a clear return structure overview, ensuring the agent understands the tool is safe and non-mutating.
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 concisely structured with clear sections (description, when to use/not use, sibling contrast, side effects, args, returns). Every sentence 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 zero parameters and an output schema, the description fully covers the tool's purpose, usage guidelines, behavioral notes, and return structure, making it complete and self-sufficient.
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?
No parameters exist, and the description explicitly states 'Args: None.' Schema coverage is 100% trivially, and the description adds no unnecessary detail, fulfilling the baseline with perfect clarity.
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 'View the upcoming content schedule (queued + pending + recent)' with a specific verb and resource. It explicitly distinguishes from siblings by stating what it is not for (publish, manage queue) and names the alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit when-to-use ('inspect what's queued...') and when-not-to-use ('to actually publish' or 'manage the content queue') scenarios, and contrasts sibling behavior ('delimit_content_queue mutates queue state; this reads').
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_context_branchA
Manage mutable working branches of a venture's context (STR-048).
When to use: when exploring an alternative direction for a venture — a "what if we pivoted?" thread — and you want a write-isolated branch of the venture context rather than mutating the main line. Sub-actions: "list" inventories branches, "create" mints a new branch, "merge" folds a branch back into main. When NOT to use: for immutable point-in-time evidence (use delimit_context_snapshot — that creates a frozen capture; this is for mutable working areas), to read context data (use delimit_context_read), or for git branch operations on a code repo (use git directly).
Sibling contrast: delimit_context_snapshot is read-only history capture; this manages active, writeable branches. Compared to git branches, this operates on the venture context filesystem (ai.context_fs), not the code repo.
Side effects: depends on action. "list" is read-only. "create" writes a new branch namespace under the venture in ai.context_fs. "merge" mutates the venture's main namespace with the branch's contents, then closes the branch. None of these touch the code repository or any git state. No license gate, no notification, no ledger write.
| Name | Required | Description | Default |
|---|---|---|---|
| venture | Yes | Venture namespace key. Required. | |
| action | No | Branch sub-action, one of "list", "create", "merge". Default "list". | list |
| branch_name | No | Branch name (required for create / merge). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but the description details side effects for each action: 'list' is read-only, 'create' writes new branch namespace, 'merge' mutates main namespace and closes branch. States no code repo, git state, license gate, notification, or ledger write.
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?
Well-structured with clear sections (when to use, not to use, sibling contrast, side effects). Every sentence 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?
Given tool complexity (multiple actions, 3 params, existing output schema), the description covers usage, side effects, and contrasts completely. No missing aspects.
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 3. Description adds behavioral context for actions but does not provide additional parameter details beyond 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 manages mutable working branches of a venture's context, using specific verbs like 'manage' and resource description. It distinguishes from siblings like delimit_context_snapshot (read-only) and delimit_context_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?
Explicitly provides 'When to use' (exploring alternative directions, write-isolated) and 'When NOT to use' (immutable evidence, reading context, git operations). Contrasts with delimit_context_snapshot and git directly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
_delimit_context_implA
Unified context-filesystem entry point — dispatches to one of six actions.
Manages a venture-scoped, versioned context filesystem under ~/.delimit/context// so plans, decisions, and artifacts survive across sessions and across models. This is the cross-model- continuity store: write once, read from any later session or any other assistant.
When to use: as the single MCP-registered context surface (delimit_context) when the caller wants to pick the action by name in one call rather than choosing a specific delimit_context_* alias. When NOT to use: from internal code paths — prefer the specific alias (delimit_context_read, delimit_context_write, delimit_context_snapshot, etc.) so each action's docstring, args, and side-effect notes show up at the right call site. For ephemeral, conversation-scoped memory use delimit_memory_store / delimit_memory_search instead — those are NOT venture-namespaced or versioned.
Sibling contrast: each delimit_context_ wrapper below is a thin alias over this implementation; they exist so the action's docstring lives at the right name. This is the dispatch core. The context FS is venture-scoped and versioned (snapshot/branch); delimit_memory_* is conversation-scoped and unversioned. Snapshot vs branch: snapshot is an immutable point-in-time copy (history/ rollback), branch is a mutable write-isolated fork that can be merged back into main. Neither touches git or any code repository.
Side effects: all six actions are free-tier (no require_premium gate in this dispatcher). Each routes to a distinct context-FS backend function and is wrapped via _with_next_steps for orchestrator hints. Per action:
"list" — read-only enumeration of /artifacts/*. Returns [] (no error) if the venture or artifacts dir does not exist.
"read" — read-only load of one artifact. Returns {"error": ...} if the named artifact is absent.
"init" — WRITES. Creates the venture directory, the memory/plans/artifacts/snapshots/branches subdirs, and manifest.json if absent. Idempotent.
"write" — WRITES/overwrites /artifacts/.json and bumps the manifest version counter. Overwrites silently if the artifact name already exists.
"snapshot" — WRITES. Copies the venture's artifacts/ and memory/ into a timestamped (optionally labeled) snapshot dir plus a snapshot manifest. Does NOT bump the version counter.
"branch" — depends on branch_action. "list" is read-only. "create" WRITES a new branch fork (copy of artifacts/ + memory/) and errors if the branch already exists. "merge" MUTATES the venture's main artifacts/ and memory/ with the branch's files, then DELETES the branch dir and bumps the version counter; errors if the branch is not found. Errors are deterministic ({"error": "..."}): an unknown top-level action, an unknown branch_action, or a missing branch_name on create/merge all short-circuit before the backend call.
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | Which context operation to perform. One of "init", "read", "write", "list", "snapshot", "branch". Default "list". Other values return a deterministic error. | list |
| venture | No | Venture/project namespace key — selects the ~/.delimit/context/<venture>/ tree. Used by every action. Default "default". | default |
| name | No | Artifact name, used as the <name>.json file key. Required for action="read" and action="write". Ignored by other actions. | |
| content | No | Artifact text body. Used only when action="write". | |
| artifact_type | No | Type hint stored on the artifact — "text", "json", "code", or "plan". Used only when action="write". Default "text". Affects the stored type hint, not the storage format. | text |
| label | No | Optional human-readable snapshot label, appended to the timestamp in the snapshot dir name. Used only when action="snapshot". | |
| branch_action | No | Branch sub-action — "list", "create", or "merge". Used only when action="branch". Default "list". | list |
| branch_name | No | Branch name. Required when action="branch" with branch_action="create" or "merge"; ignored for "list". |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description fully covers side effects per action: read-only vs write ops, idempotency, silent overwrite, deterministic errors, and destructive merge behavior (deletes branch).
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?
Well-structured with sections, but could be slightly more concise; the side-effect per-action list is thorough but 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?
Given 8 parameters, no annotations, and complex dispatch logic, the description is comprehensive, covering all actions, errors, and comparisons with sibling/memory tools. Output schema exists, so return details are not 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 coverage is 100%, but the description adds practical context like conditional dependencies (branch_action requires branch_name) and default behaviors, beyond the schema's type/default fields.
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 is a 'unified context-filesystem entry point' that dispatches to six actions, and distinguishes itself from sibling aliases like delimit_context_read, delimit_context_write, etc., by being the dispatch core.
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' and 'When NOT to use' sections, compares to memory tools, and suggests preferring specific aliases for internal code paths.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_context_initA
Initialize a context filesystem namespace for a venture (STR-048).
When to use: once per venture, the first time you want to persist cross-session/cross-model context (plans, decisions, code snippets). When NOT to use: for single-session memory (use delimit_memory_store) or to read existing artifacts (use delimit_context_read).
Sibling contrast: delimit_memory_* is conversation-scoped; the context FS is venture-scoped and versioned (snapshot/branch).
Side effects: creates the venture directory and metadata files via ai.context_fs.init_context. Idempotent — safe to call repeatedly.
| Name | Required | Description | Default |
|---|---|---|---|
| venture | No | Venture/project namespace key. Default "default". | default |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite no annotations, the description discloses side effects (creates venture directory and metadata files) and idempotency. It adds behavioral context beyond the schema, though it could mention error handling or output format, but output schema exists.
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: a single-sentence function statement followed by clearly labeled sections (When to use, When NOT to use, Sibling contrast, Side effects). Every sentence 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?
Given the tool's simplicity (1 optional parameter, no required), high schema coverage, and presence of output schema, the description covers purpose, usage, side effects, and idempotency. No gaps.
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% for the only parameter 'venture', so the baseline is 3. The description does not add meaning beyond the schema (it essentially repeats the schema's description). With high coverage, this is acceptable.
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 initializes a context filesystem namespace for a venture, using specific verb and resource. It distinguishes from siblings by contrasting scope (venture vs conversation) and versioning (snapshot/branch).
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 ('once per venture, the first time you want to persist cross-session/cross-model context') and when not to use, providing specific alternative tools (delimit_memory_store for single-session memory; delimit_context_read for reading artifacts). Also contrasts with sibling memory tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_context_listA
List all artifacts in a venture's context filesystem (STR-048).
When to use: to inventory what artifacts have been written for a venture before reading or branching. When NOT to use: to read an artifact's content (use delimit_context_read) or to scan memories (delimit_memory_recent).
Sibling contrast: delimit_context_read returns one artifact's content; this returns metadata for all of them.
Side effects: read-only. Calls ai.context_fs to enumerate artifacts.
| Name | Required | Description | Default |
|---|---|---|---|
| venture | Yes | Venture namespace key. Required. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses side effects as read-only and the internal call to ai.context_fs. With no annotations, the description does a fair job, though it could mention permissions or error handling. Still, it transparently describes behavior beyond basic purpose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with structured sections (purpose, when to use, when not to, sibling contrast, side effects). Every sentence adds unique value, and there is no redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, output schema present), the description covers all essential aspects: purpose, usage context, alternatives, side effects, and basic behavior. It is fully sufficient for an agent to correctly select and invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a single required parameter 'venture' described as 'Venture namespace key. Required.' The description does not add additional semantic detail beyond what the schema already provides, which is adequate but not enhanced.
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 'List all artifacts in a venture's context filesystem' with a specific verb and resource. It distinguishes from siblings like delimit_context_read (reads content) and delimit_memory_recent (scans memories), leaving no ambiguity about the tool's function.
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 ('to inventory what artifacts have been written') and when-NOT-to-use sections directly name alternative tools (delimit_context_read, delimit_memory_recent), providing clear decision guidance for the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_context_readA
Read an artifact from a venture's context filesystem (STR-048).
When to use: to fetch a specific previously-written artifact by name within a venture namespace. When NOT to use: for venture-wide listing (use delimit_context_list) or memory search (delimit_memory_search).
Sibling contrast: delimit_context_list returns names only; this returns a single artifact's content.
Side effects: read-only. Calls ai.context_fs to load the artifact.
| Name | Required | Description | Default |
|---|---|---|---|
| venture | Yes | Venture namespace key. Required. | |
| name | Yes | Artifact name. Required. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Declares side effects as read-only and mentions underlying call (ai.context_fs). Since no annotations provided, the description fully covers behavioral traits.
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?
Very concise and well-structured: one-line purpose, then clear sections for when to use, when not to use, sibling contrast, and side effects. Every sentence 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?
Fully covers purpose, usage, side effects, and sibling contrast. With output schema present (as per context signals), no need to describe return values. Complete for a simple read operation.
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 already provides 100% coverage with descriptions for both parameters. The description reinforces parameter usage but adds no new semantic details 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?
Clearly states the tool reads a specific artifact from a venture's context filesystem by name. Distinguishes from siblings like delimit_context_list (returns names only) and delimit_memory_search.
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 (fetch a specific artifact) and when not to use (venture-wide listing or memory search), naming alternatives (delimit_context_list, delimit_memory_search).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_context_snapshotA
Capture a point-in-time snapshot of a venture's context (STR-048).
When to use: before a risky model handoff, doctrine edit, or refactor — so you can roll back the context if it goes sideways. When NOT to use: for individual artifact persistence (use delimit_context_write) or one-time conversation memory (delimit_memory_store).
Sibling contrast: delimit_context_branch creates a divergent line of work; this captures the current state as an immutable point.
Side effects: writes a snapshot record under the venture namespace via ai.context_fs.
| Name | Required | Description | Default |
|---|---|---|---|
| venture | Yes | Venture namespace key. Required. | |
| label | No | Optional human-readable label for the snapshot. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden; it states side effect: 'writes a snapshot record under the venture namespace via ai.context_fs' and that the snapshot is an immutable point, sufficiently 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?
Efficiently organized: purpose, when to use, when not, sibling contrast, side effects. 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 (2 params, clear schema), the description provides sufficient context for usage, side effects, and differentiation. Output schema exists, so return value details are 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?
Schema description coverage is 100%, both parameters have clear descriptions. The tool description does not add additional meaning beyond the schema, so baseline 3.
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 'Capture a point-in-time snapshot of a venture's context' with a specific verb and resource, and explicitly contrasts with 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?
Provides explicit when to use (before risky handoff/edit/refactor), when NOT to use (individual artifact persistence or one-time memory), and alternative tools (delimit_context_write, delimit_memory_store).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_context_writeA
Write an artifact to a venture's context filesystem (STR-048).
When to use: to persist a plan, decision record, or code artifact that other models or future sessions will need. When NOT to use: for ephemeral conversation context (use delimit_memory_store) or to snapshot all artifacts at once (use delimit_context_snapshot).
Sibling contrast: delimit_context_read fetches one artifact; delimit_context_list inventories the venture; this writes one.
Side effects: writes the artifact under the venture namespace via ai.context_fs (file creation under ~/.delimit/context//).
| Name | Required | Description | Default |
|---|---|---|---|
| venture | Yes | Venture namespace key. Required. | |
| name | Yes | Artifact name (used as the file key). Required. | |
| content | Yes | Artifact text. Required. | |
| artifact_type | No | Type hint, one of "text", "json", "code", "plan". Default "text". Affects render hints, not storage format. | text |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but description discloses side effect (file creation under ~/.delimit/context/<venture>/) and notes that artifact_type only affects render hints. Could mention overwrite behavior or size limits for a 5.
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?
Every sentence serves a purpose: action, when-to, when-not-to, sibling contrast, side effects. No extraneous words; front-loaded with 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?
Covers purpose, usage, side effects, and sibling differentiation. Output schema exists but is not shown; description does not need to return values. Missing concurrency or error details, but sufficient for a write 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 3. Description adds value by explaining that artifact_type affects render hints but not storage format, and implies name is the file key. Adequately complements 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 specific verb 'Write' and resource 'artifact to a venture's context filesystem', clearly distinguishing from siblings like delimit_context_read, delimit_context_list, and delimit_context_snapshot.
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 (persist plans/decisions/code for future sessions) and when not to (ephemeral context, snapshot all), with named alternatives: delimit_memory_store and delimit_context_snapshot.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_controlA
Aggregate all governance lanes into one queue; approve/reject approvals (LED-1709).
When to use: as the shared queue the CLI and web dashboard both render — attestations, approvals, sensing (STR-), ops (LED-) — and to approve/reject founder-approval items from that same surface. When NOT to use: to act on attestation/sensing/ops items; approve/reject are approval-class only in Phase 1 (mutate those via their owning tool).
Sibling contrast: delimit_agent_dashboard is dispatch-only, delimit_ledger_context is one-venture-only, delimit_notify_inbox is inbox-only; this unifies all four into one lane-aware view.
Side effects: list/get are READ-ONLY. approve/reject append the same
founder_directive_completed ack the email "ship it" loop writes to the
EXISTING store (~/.delimit/inbox_routing.jsonl); reject stamps
disposition="rejected". No new store; idempotent re-approve no-ops.
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | "list" (default), "get", "approve", or "reject". list/get are read-only; approve/reject act ONLY on approval-class items and mirror the email "ship it" ack loop. | list |
| class_filter | No | Lane filter: "" (all), "attestation", "approval", "sensing", or "ops". | |
| state_filter | No | State filter, e.g. "open", "pending", "awaiting_approval", "done". "" = all. | |
| item_id | No | Required for "get", "approve", "reject": the normalized item id (e.g. "att_…", "STR-437", "LED-1709", "WO-…", "DIR-…"). | |
| limit | No | Max items for action="list" (default 100). | |
| note | No | Optional note recorded as the ack result for action="approve"/"reject". |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite no annotations, the description fully discloses behavioral traits: list/get are read-only, approve/reject append to an existing store, reject stamps disposition='rejected', idempotent re-approve no-ops, and no new store created. This covers safety, side effects, and idempotency comprehensively.
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 well-structured with sections for purpose, when to use, when not, sibling contrast, and side effects. It is slightly verbose but every sentence contributes meaningful information. Front-loaded with 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's complexity (multiple action types, lane unification) and the presence of an output schema, the description is complete. It covers purpose, usage boundaries, side effects, and differentiation from siblings. No obvious gaps in required information for agent invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds value by clarifying that approve/reject act only on approval-class items and that item_id is required for specific actions, reinforcing schema descriptions. It does not fully redundantly document each parameter but provides useful context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool aggregates governance lanes into a shared queue and can approve/reject approvals. It specifies the verb+resource ('aggregate', 'approve/reject') and distinguishes itself from siblings like delimit_agent_dashboard, delimit_ledger_context, and delimit_notify_inbox.
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' and 'When NOT to use' sections provide clear guidance. It specifies that the tool is for the shared queue and approval-class actions only, and directs mutation of other items to their owning tools, which is excellent for agent decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_corp_dashboardA
One-call corp status — replaces the 6-call session-start ritual (LED-189).
When to use: at session start as the unified status snapshot — daemons, self-repair, social/inbox activity, ledger pending, agent queue, latest session, plus a synthesized one-line summary. When NOT to use: for a single subsystem's status (use delimit_daemon_status, delimit_obs_status, etc.) — those are finer-grained.
Sibling contrast: delimit_obs_status is system health; delimit_gov_health is governance engine; this is the corp-wide rollup that composes all of them.
Side effects: read-only across all subsystems. Each sub-section is failure-isolated — a partial failure returns {"error": "..."} for that key only and never crashes the whole call. Gateway-only — not shipped in the npm bundle.
Args: None.
Returns: Dict with daemon status, self_repair status, social/inbox activity, ledger_pending, agent_queue, latest_session, plus a synthesized one-line summary and next_steps. On npm-bundle installs returns {"status": "not_available", "error": ..., "hint": ...} instead.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but description fully covers behavioral traits: read-only, failure-isolated partial errors, and npm-bundle behavior. Contradiction-free.
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?
Well-structured with clear sections, no unnecessary words, info dense yet readable.
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 annotations but output schema exists, description covers return dict contents, failure modes, and npm-bundle edge case—fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With zero parameters and 100% schema coverage, baseline is 4. Description states 'Args: None' which matches.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool provides a unified 'corp status' snapshot, replacing a ritual. It uses specific verbs and distinguishes from sibling tools like delimit_obs_status and delimit_gov_health.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit 'When to use' and 'When NOT to use' sections, with concrete alternatives (delimit_daemon_status, etc.) and sibling contrast, providing excellent guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_cost_alertA
Manage cost alert rules (CRUD on spending thresholds) (Pro).
When to use: to configure ongoing spend thresholds and notifications that fire when costs exceed a configured ceiling. When NOT to use: for one-shot cost analysis (use delimit_cost_analyze) or finding optimisations (delimit_cost_optimize).
Sibling contrast: delimit_cost_analyze finds drivers; delimit_cost_optimize finds reductions; this manages the alerting layer.
Side effects: action="create"/"delete"/"toggle" write to the file-based alert store. action="list" is read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | One of "list" (default), "create", "delete", "toggle". | list |
| name | No | Alert name. Required for create. | |
| threshold | No | Cost threshold in USD. Required for create. | |
| alert_id | No | Existing alert id. Required for delete/toggle. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description discloses side effects (write operations for create/delete/toggle, read-only for list) but lacks details on other behaviors like reversibility or failure modes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise and well-structured with separate sections for usage and side effects; no unnecessary words, but could be slightly more compact.
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, usage, side effects, and sibling differentiation. Output schema exists so return values not needed. Lacks some detail on action behavior specifics but sufficient for a CRUD 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 baseline is 3. Description adds no extra parameter meaning 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?
Clearly states it manages cost alert rules with CRUD operations. Distinguishes from siblings explicitly by specifying when to use and when not, and provides sibling contrast.
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 (configure ongoing spend thresholds) and when not (one-shot analysis or optimizations), referencing specific sibling tools as alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_cost_analyzeA
Analyze a project for cost drivers (Dockerfile, deps, cloud) (Pro).
When to use: when investigating spend on a project — scans Dockerfile, dependency manifests, and cloud configs for cost signals. When NOT to use: to enact cost reductions (use delimit_cost_optimize) or to manage alert rules (delimit_cost_alert).
Sibling contrast: delimit_cost_optimize finds reduction opportunities; this surfaces drivers (where the cost is).
Side effects: read-only on the target. Gated by require_premium. Calls backends.tools_data.cost_analyze.
| Name | Required | Description | Default |
|---|---|---|---|
| target | No | Project or infrastructure path to analyze. Default "." (cwd). | . |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It declares read-only side effects, gating by require_premium, and backend call. Lacks specifics like rate limits or response size, but output schema covers return 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?
Well-structured with sections (when to use, not to use, sibling contrast, side effects). Every sentence is informative and 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 simple tool with one parameter and output schema, the description covers usage, behavior, and context adequately. No gaps identified.
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% for the single parameter 'target', including description. Description adds no extra meaning beyond 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 states the tool analyzes projects for cost drivers, listing specific scans (Dockerfile, deps, cloud configs). It distinguishes itself from siblings delimit_cost_optimize and delimit_cost_alert.
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 'When to use' (investigating spend) and 'When NOT to use' (enacting reductions or managing alerts), with clear references to alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_cost_controlsA
Manage MCP rate limits and session cost controls.
When to use: to inspect or adjust per-tool hourly rate limits and the session cost cap that throttle Delimit's call surface. When NOT to use: for project-cost analysis (use delimit_cost_analyze) or alert configuration (delimit_cost_alert).
Sibling contrast: delimit_cost_analyze inspects spend in your project; this manages our own per-session call quotas.
Side effects: action="set" / "reset" mutate the rate-limiter state. action="status" / "quota" are read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | One of "status" (default), "quota", "set", "reset". | status |
| tool_name | No | Tool name. Required for "quota" and "set" with limit. | |
| limit | No | New hourly call limit (used with action="set"). | |
| cost_cap | No | New session cost cap in USD (used with action="set"). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Lists side effects: actions 'set' and 'reset' mutate state, 'status' and 'quota' are read-only. Since no annotations exist, description carries full burden; it covers the key behavioral distinction among actions.
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?
Well-structured with clear sections (purpose, when to use, when not, sibling contrast, side effects). Every sentence adds value; no redundant 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?
Covers purpose, usage, side effects, and sibling differentiation. No annotations provided, but description sufficiently guides selection and invocation. Output schema exists but isn't needed to explain returns.
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. Description mentions actions and that tool_name is required for certain actions, but adds minimal extra meaning 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?
Clearly states 'Manage MCP rate limits and session cost controls' with specific verb and resource. Differentiates from siblings like delimit_cost_analyze and delimit_cost_alert.
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 provides when to use (inspect/adjust), when not to use (project-cost analysis, alert configuration), and names alternative tools (delimit_cost_analyze, delimit_cost_alert).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_cost_optimizeA
Find cost optimization opportunities in a project (Pro).
When to use: after delimit_cost_analyze surfaces drivers, to get concrete suggestions: unused deps, oversized images, uncompressed assets. When NOT to use: to inventory current spend (delimit_cost_analyze) or manage threshold alerts (delimit_cost_alert).
Sibling contrast: delimit_cost_analyze identifies sources of cost; this proposes reductions.
Side effects: read-only on the target. Gated by require_premium. Calls backends.tools_data.cost_optimize.
| Name | Required | Description | Default |
|---|---|---|---|
| target | No | Project or infrastructure path to analyze. Default "." (cwd). | . |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses read-only nature and premium gating. No annotations exist, so description bears full burden. Could mention the output structure, but the presence of an output schema reduces need.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise paragraphs with front-loaded purpose, clear usage guidance, and behavioral notes. Every sentence 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?
Covers purpose, usage, side effects, and gating. With an output schema, return values are implicitly handled. One could argue it's complete 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?
Single parameter 'target' has full schema coverage with default and description. The description does not add extra meaning beyond schema, which is acceptable for a simple 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 the tool finds cost optimization opportunities, specifies the context (after delimit_cost_analyze), and distinguishes from siblings like delimit_cost_alert. The verb-resource pair is specific and actionable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly provides when-to-use and when-not-to-use guidance with concrete sibling tool names. The sibling contrast further clarifies differentiation, making it easy for an agent to decide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_daemon_classifyA
Classify a ledger item's risk tier and suggested automation tool.
When to use: to preview what the autonomous daemon would do with a given ledger item (or the next automatable one). When NOT to use: to actually run an iteration (use delimit_daemon_run) or check daemon health (delimit_daemon_status).
Sibling contrast: delimit_daemon_status reads health; delimit_daemon_run executes; this previews the classification.
Side effects: read-only. Calls ai.daemon.classify_item / get_next_automatable_item / get_open_ledger_items.
| Name | Required | Description | Default |
|---|---|---|---|
| item_id | No | Specific ledger item id to classify. Empty = pick the next automatable item from the open ledger. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It declares read-only side effects and lists underlying API calls, providing good but not exhaustive 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?
Description is very concise, front-loads purpose, then usage guidelines, sibling contrast, and side effects in a clear, structured format.
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, usage, side effects, and sibling differentiation. Output schema exists, so return values need not be explained. Minor gap: does not elaborate on risk tier or tool details, but these are likely in 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?
Schema coverage is 100%, and description repeats similar info about item_id meaning without adding new details beyond what schema already specifies.
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 'Classify' and resource 'ledger item's risk tier and suggested automation tool'. It explicitly distinguishes from siblings by stating it previews daemon action versus run or 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?
Provides explicit when to use (preview classification), when NOT to use (run or check health), and direct alternatives (delimit_daemon_run, delimit_daemon_status).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_daemon_runA
Advance the autonomous daemon by N iterations (Pro).
When to use: to manually advance the daemon loop one or more iterations, e.g. for testing or scheduled cron-style execution. When NOT to use: for inspection only (use delimit_daemon_status) or to classify an item (delimit_daemon_classify).
Sibling contrast: delimit_daemon_status reads; delimit_daemon_classify decides; this drives the loop.
Side effects: in dry_run mode, logs actions without executing them. In live mode, executes the daemon's automatable actions. Calls ai.daemon.run_loop with a 5-second interval between iterations.
| Name | Required | Description | Default |
|---|---|---|---|
| iterations | No | Number of iterations. 0 = infinite. Default 1. | |
| dry_run | No | If True (default), log actions but do not execute. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears the burden. It describes side effects: dry_run vs live mode, the internal call to ai.daemon.run_loop, and the 5-second interval. This is good but could mention permissions or the nature of 'automatable actions'.
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 brief and effectively front-loaded. Each sentence provides essential information without redundancy. Three short paragraphs and a bullet-like list cover purpose, usage, and side effects efficiently.
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 two simple parameters and an output schema, the description covers purpose, usage, differentiation, and side effects. It mentions the 5-second interval, which is valuable. Minor gaps: no mention of error cases or permission requirements, but overall sufficient for agent 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 100%, so baseline 3 applies. The description does not add significant new information about parameters beyond what the schema already provides (defaults, infinite loop). It mentions dry_run in side effects but doesn't enhance parameter understanding.
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: 'Advance the autonomous daemon by N iterations (Pro).' It specifies the verb and resource, and distinguishes from siblings (delimit_daemon_status, delimit_daemon_classify).
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 (testing, cron-style execution) and when not to use (inspection, classification), with direct references to alternative tools. Sibling contrast is clearly explained.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_daemon_statusA
Report the autonomous daemon's status (loops, items, actions).
When to use: to inspect what the autonomous daemon has been doing recently and whether it's healthy. When NOT to use: to start a run (use delimit_daemon_run) or classify a pending item (delimit_daemon_classify).
Sibling contrast: delimit_daemon_run advances iterations; this reads runtime state.
Side effects: read-only. Calls ai.daemon.get_daemon_status.
Args: None.
Returns: Dict with loop counts, items processed, recent actions, next_steps.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses read-only side effects, the internal function called (ai.daemon.get_daemon_status), and the return value structure. It lacks details on authentication or rate limits, but for a read-only status check this is sufficient. Score 4 due to minor omissions.
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 well-structured with clear section headings (When to use, When NOT to use, Sibling contrast, Side effects, Args, Returns). It is concise, with no redundant sentences, and front-loads the primary purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters and an output schema exists, the description sufficiently explains the return value (loop counts, items processed, recent actions, next_steps). It covers all necessary aspects for an agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters (input schema is empty). The description explicitly states 'Args: None.' with 100% schema coverage, meeting the baseline of 4 for zero parameters. The return value description adds context beyond 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 verb 'Report' and the resource 'autonomous daemon's status', and specifies the contents (loops, items, actions). It also contrasts with sibling tools delimit_daemon_run and delimit_daemon_classify, providing explicit differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly provides 'When to use' and 'When NOT to use' sections, naming alternative tools (delimit_daemon_run and delimit_daemon_classify) for the excluded cases. This gives clear guidance on selecting the correct tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_data_backupA
Back up SQLite and JSON data files to ~/.delimit/backups/.
When to use: before a risky migration or refactor that touches SQLite or JSON data, to capture a timestamped restore point. When NOT to use: to validate data integrity (use delimit_data_validate) or apply migrations (delimit_data_migrate).
Sibling contrast: delimit_data_validate inspects integrity; delimit_data_migrate runs migrations; this captures a backup.
Side effects: writes timestamped copies of SQLite + JSON files under ~/.delimit/backups/ via backends.tools_data.data_backup.
| Name | Required | Description | Default |
|---|---|---|---|
| target | No | Directory or file to back up. Default "." (cwd). | . |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses the side effect: writing timestamped copies to a specific directory via a backend function. Could mention if it overwrites or is safe to run multiple times, but overall good transparency given no annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise yet comprehensive: two sentences for the main action, followed by structured bullet points for usage context. 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?
For a single-parameter tool with complete schema and existing output schema, the description covers purpose, when to use, and side effects, making it fully 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?
The single parameter 'target' is fully described in the schema. The description adds no extra semantics beyond the schema's explanation of the default and 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 explicitly states the tool backs up SQLite and JSON data files to a specific directory, distinguishing it from sibling tools that validate or migrate data.
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 clear guidance on when to use (before risky migrations/refactors) and when not to use (for validation or migration), and names alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_data_migrateA
Inspect migration files (alembic / Django / Prisma / Knex) for status.
When to use: to audit pending and applied migrations before a deploy, or as a CI gate. When NOT to use: to actually apply migrations (this tool only inspects status) or back up data first (delimit_data_backup).
Sibling contrast: delimit_data_validate exercises data files; delimit_data_backup captures restore points; this reads migration status only.
Side effects: read-only inspection. Calls backends.tools_data.data_migrate.
| Name | Required | Description | Default |
|---|---|---|---|
| target | No | Project path to scan for migration files. Default "." (cwd). | . |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. States 'Side effects: read-only inspection.' and 'Calls backends.tools_data.data_migrate.' Clearly indicates no destructive actions. Lacks details on permissions, error handling, or output format, but output schema may cover that.
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 and well-organized: one-sentence purpose, then bullet-like sections for usage, contrast, and side effects. No unnecessary words, every sentence 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?
Covers purpose, usage guidelines, side effects, and parameter meaning. With an output schema, return values do not need to be described. Slightly lacking in detailing what the inspection output looks like, but overall sufficient for a simple read-only 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?
Input schema has 100% coverage for the single parameter 'target', with description 'Project path to scan for migration files. Default "." (cwd).' The description does not add additional semantic value 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?
Starts with 'Inspect migration files (alembic / Django / Prisma / Knex) for status.' Clearly states verb (inspect) and resource (migration files) with specific types. Distinguishes from siblings by contrasting with delimit_data_validate and delimit_data_backup.
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 provides when to use ('audit pending and applied migrations before a deploy, or as a CI gate'), when not to use ('to actually apply migrations' or 'back up data first'), and mentions alternative tool (delimit_data_backup). Includes sibling contrast.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_data_validateA
Validate data files: JSON parse, CSV shape, SQLite integrity.
When to use: as a smoke check before relying on data files (CI pipelines, before migrations) to catch corruption early. When NOT to use: for migration status (use delimit_data_migrate) or backups (delimit_data_backup).
Sibling contrast: delimit_data_migrate inspects migration files; this exercises the data files themselves.
Side effects: read-only on the target. Calls backends.tools_data.data_validate.
| Name | Required | Description | Default |
|---|---|---|---|
| target | No | Directory or file path with data files. Default "." (cwd). | . |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses 'Side effects: read-only on the target' and mentions the backend call, addressing the key behavioral trait. Output schema covers return values.
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: 3 sentence blocks covering purpose, usage guidelines, sibling contrast, and side effects. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given one optional parameter, no required fields, and presence of output schema, description fully covers purpose, when/how to use, and read-only behavior. Complete for this tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema covers the single parameter with description and default. Description adds context ('Directory or file path') but doesn't add meaning beyond schema. Baseline 3 due to 100% schema 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?
Description clearly states 'Validate data files: JSON parse, CSV shape, SQLite integrity.' It specifies the resource (data files) and actions (validate, parse, check integrity), distinguishing from siblings like delimit_data_migrate.
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 provides 'When to use' (smoke check before relying on data files) and 'When NOT to use' (for migration status or backups), naming alternatives delimit_data_migrate and delimit_data_backup.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_deliberateA
Run multi-model consensus via AI-to-AI deliberation (Pro).
When to use: for foundational decisions (pricing, naming, public-facing copy framing, doctrine edits), external PR diffs, or any decision where cross-model contradiction-detection adds value. When NOT to use: for routine implementation choices (orchestrate in-thread or via subagent dispatch) — deliberation is for cross-checked confabulation, not capability.
Sibling contrast: delimit_models manages which providers can be called; this runs the actual panel. delimit_security_deliberate is the security-class variant.
Side effects: writes transcripts under save_path when provided. Models are called via configured providers; Free tier uses 3 builtin slots, Pro/Premium uses BYOK from ~/.delimit/models.json. Strategic / social scopes enforce a 3-model minimum and may invoke Grok as a tiebreaker.
| Name | Required | Description | Default |
|---|---|---|---|
| question | Yes | The question to reach consensus on. Required. | |
| context | No | Background context shared to all models. | |
| mode | No | "dialogue" (short turns) or "debate" (long essays). Default "dialogue". | dialogue |
| max_rounds | No | Max rounds. Default 3 for debate, 6 for dialogue. | |
| save_path | No | Optional file path to save the full transcript. | |
| scope | No | Optional scope override — "strategic", "social", or "operational". Empty = engine classifies from keywords. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite no annotations, the description thoroughly discloses behavioral traits: side effects (writes transcripts), model invocation details (configured providers, tier differences, BYOK for Pro/Premium), scope enforcements (3-model minimum, Grok tiebreaker), and modes (dialogue vs debate). This covers all necessary behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concisely structured with front-loaded purpose, clear 'when to use/when not to use' sections, sibling contrast, and side effects list. Every sentence adds value without 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 complexity (multi-model deliberation, tiers, scopes), the description covers usage guidelines, behavioral side effects, tier differences, parameter details, and sibling context. With an output schema present, return values are not needed, making the description complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
While input schema coverage is 100%, the description adds meaning beyond schema by explaining mode types ('dialogue' short turns, 'debate' long essays), default rounds per mode, scope override values ('strategic', 'social', 'operational'), and that empty scope triggers classification. This enriches parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Run multi-model consensus via AI-to-AI deliberation (Pro)' and specifies use cases like foundational decisions, pricing, naming, public-facing copy. It distinguishes from sibling tools delimit_models and delimit_security_deliberate, making the purpose specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly outlines when to use (foundational decisions, cross-model contradiction-detection) and when not to use (routine implementation choices). It also contrasts with sibling tools, providing clear context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_deliberation_statusA
Check deliberation usage and mode (hosted free tier vs BYOK).
When to use: before invoking delimit_deliberate, to confirm whether you are still inside the hosted free-tier quota or running BYOK (bring-your-own-keys), and to read the signed-in OAuth state. When NOT to use: to run an actual panel (use delimit_deliberate) or to manage provider keys (delimit_models).
Sibling contrast: delimit_deliberate runs the panel; delimit_models manages provider keys; this is the lightweight pre-flight status check.
Side effects: read-only. Calls ai.deliberation.get_deliberation_status which reads ~/.delimit state.
LED-2092: hosted access now requires a delimit.ai account.
Args: None.
Returns: Dict with: oauth_required, oauth_signed_in, lifetime_used, lifetime_remaining, daily_cap_remaining, signin_url, plus the legacy hosted_used / hosted_remaining / hosted_limit fields retained for backward compatibility with scripted callers.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses read-only nature, calls ai.deliberation.get_deliberation_status, reads ~/.delimit state. No annotations provided; description fully covers behavioral traits.
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?
Well-structured with clear sections, front-loaded purpose, and concise. Every sentence 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?
Complete description including output schema details. Covers all aspects for a status check 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?
No parameters; description states 'Args: None.' Schema coverage is 100% (empty). With zero params, 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 it checks deliberation usage and mode, distinguishing it from siblings: delimit_deliberate runs the panel, delimit_models manages keys.
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' and 'When NOT to use' sections, plus sibling contrast. It specifies use before delimit_deliberate to check quota and OAuth state.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_deploy_buildA
Build container images for an app at a specific git ref (Pro).
When to use: as the second step of the deploy chain after delimit_deploy_plan has succeeded and you need SHA-tagged container images locally before delimit_deploy_publish pushes them to the registry. The full chain is plan -> build -> publish -> verify -> (rollback on failure). When NOT to use: to push existing images to a registry (use delimit_deploy_publish), to deploy a site (delimit_deploy_site), to publish an npm package (delimit_deploy_npm), or to start the full chain (delimit_deploy_plan).
Sibling contrast: deploy_plan plans, this builds local images, deploy_publish pushes to the registry, deploy_verify checks rollout health, deploy_rollback reverts. Compared to delimit_deploy_site (static-site deploy) and delimit_deploy_npm (npm publish), this is the container path.
Side effects: gated by require_premium — unlicensed callers receive a license payload and no build runs. On a licensed call, invokes backends.deploy_bridge.build which shells out to the local container builder (e.g. docker buildx) — this consumes local disk for image layers and CPU for the build. No network push at this step (that is delivery_publish). The response is routed through _with_next_steps.
| Name | Required | Description | Default |
|---|---|---|---|
| app | No | Application name (project key in the deploy backend). | |
| git_ref | No | Git ref (branch/tag/SHA). Default None = backend HEAD. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description transparently discloses side effects: license gating (require_premium), local disk and CPU consumption via docker buildx, and no network push. It also mentions response routing. Lacks details on error behavior or build timeouts, but otherwise 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?
The description is well-organized into logical sections (purpose, when to use, when not to use, sibling contrast, side effects). It is front-loaded with the core purpose. While comprehensive, it could be slightly more concise; the sibling contrast section, though helpful, is somewhat lengthy.
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 (build step with side effects) and the presence of an output schema (mentioned in context), the description adequately covers purpose, usage, side effects, and relationships to siblings. It does not detail the output format but that is handled by the output schema. Minor gaps: no mention of required permissions or error recovery.
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?
Both parameters (app and git_ref) are fully described in the schema (100% coverage). The description adds only boilerplate context (e.g., 'git ref (Pro)') but does not provide additional semantic guidance beyond what the schema already offers.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Build container images for an app at a specific git ref', identifies the resource (container images), and distinguishes from siblings by positioning itself as the second step in the deploy chain. The title implies this is the build step, and the description reinforces that.
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' and 'When NOT to use' sections provide clear context for when this tool is appropriate, including the full chain (plan -> build -> publish -> verify -> rollback) and specific sibling alternatives for when not to use (e.g., delimit_deploy_publish, delimit_deploy_site).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
_delimit_deploy_implA
Unified deployment entry point — dispatches to one of eight actions (Pro).
When to use: as the single MCP-registered deploy surface (delimit_deploy) when the caller wants to pick the deploy operation by name in one call rather than choosing a specific delimit_deploy_* alias. Covers the full container chain (plan -> build -> publish -> verify -> rollback), the deploy-state read (status), and the two non-container ship paths (site / npm). When NOT to use: from internal code paths or when you want the operation's behavior and gate to surface at the right name — prefer the specific alias (delimit_deploy_plan, delimit_deploy_build, delimit_deploy_publish, delimit_deploy_verify, delimit_deploy_rollback, delimit_deploy_status, delimit_deploy_site, delimit_deploy_npm). For a pure runtime health check use delimit_obs_status; for a pre-deploy smoke test use delimit_test_smoke; for release-tracking metadata use delimit_release_status.
Sibling contrast: each delimit_deploy_ wrapper is a thin alias over this implementation (they exist so the action's docstring lives at the right name). This is the dispatch core. The "plan" action additionally shares logic with delimit_deploy_plan via the internal _deploy_plan_chain helper.
Side effects: ALL actions are gated by require_premium — unlicensed callers receive a license payload and no backend call is made. Errors are deterministic: an unrecognized action returns {"error": "Unknown action ''. Valid: ..."} before any gate or backend call. Per action:
"plan": delegates to _deploy_plan_chain (gate key "deploy_plan"). Read-mostly but ORCHESTRATES a chain: a worktree-sanity precheck, then delimit_security_audit (FAIL-CLOSED — halts with status="blocked" on audit error or any critical finding without producing a plan), then the deploy-bridge plan, then a best-effort delimit_gov_evaluate. Produces no deploy artifact itself.
"build": gate "deploy_build". WRITES locally — shells out to the container builder (consumes local disk/CPU for image layers). No network push at this step.
"publish": gate "deploy_publish". NETWORK WRITE — pushes previously built images to the configured container registry.
"verify": gate "deploy_verify". Read-only network PROBES (HTTP health checks, container/dependency inspection) of a deployed revision. May return partial results on backends without health endpoints.
"rollback": gate "deploy_rollback". MUTATES the running environment to point at to_sha (reversal-only).
"status": gate "deploy_status". READ-ONLY query of the deploy state store. No write, no probe.
"site": project_path is path-sanitized FIRST (an escape returns {"error": ...} before the gate). gate "deploy_site". LOCAL git ops (add/commit/push) + a NETWORK Vercel build trigger.
"npm": gate "deploy_npm". A PRODUCTION DEPLOY — bumps package.json (LOCAL write), runs prepublishOnly, npm pack, then npm publish (a publicly-visible NETWORK write, effectively not undoable). dry_run=True suppresses only the final publish; the bump and pack still run. Every result is wrapped via _with_next_steps for orchestrator hints.
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | Which deploy operation to perform. One of "plan", "build", "npm", "publish", "site", "status", "verify", "rollback". Default "status". Case/space-insensitive (lowered + stripped). Other values return a deterministic {"error": ...}. | status |
| app | No | Application name / project key in the deploy backend. Used by "plan", "build", "publish", "verify", "rollback", "status". Required for a real container operation. (Ignored by "site" and "npm".) | |
| env | No | Target environment, typically "staging" or "production". Used by "plan", "verify", "rollback", "status". | |
| git_ref | No | Git ref (branch/tag/SHA). Used by "plan", "build", "publish", "verify". Default None = backend HEAD; drives the image tag for "build". | |
| to_sha | No | SHA to roll back to. Used by "rollback" only. None lets the backend select the previous deployed SHA. | |
| project_path | No | Path to the project. Used by "site" and "npm". Default "." (cwd). For "site" it is sanitized and must not escape the workspace root; for "npm" it must contain a package.json. | . |
| message | No | Git commit message. Used by "site" only. | |
| bump | No | Semver bump "patch" (default) / "minor" / "major". Used by "npm" only. | patch |
| tag | No | npm dist-tag. Used by "npm" only. Default "latest"; use "next" or a custom tag to avoid auto-installing the new version for existing users. | latest |
| dry_run | No | If True, run the npm chain without the final publish. Used by "npm" only. Default False. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It thoroughly discloses behaviors: actions gated by require_premium, deterministic error for unknown actions, detailed per-action side effects (read-mostly, local writes, network writes, mutations, etc.), error handling, and dry_run suppression behavior. This is 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 very long and detailed, with multiple paragraphs and bullet-like sections. It is well-structured with headers, but could be more concise. Some per-action details might be better placed in separate docs. However, for a complex dispatch tool, brevity is difficult; it earns a 3.
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 (10 parameters, 8 actions, no annotations, output schema exists), the description is remarkably complete. It covers all actions, side effects, parameter usage by action, error handling, and output wrapping. Every necessary aspect for correct selection and invocation is 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?
Input schema has 100% description coverage for all 10 parameters. The description adds contextual value beyond schema, such as case-insensitive action matching, dry_run behavior (suppresses only final publish), and which parameters are ignored per action. However, much parameter usage is already in schema, so baseline 3; extra context earns a 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 it is a 'unified deployment entry point' that dispatches to eight deploy actions. It specifies the verb (dispatches) and resource (deploy operations), and distinguishes from sibling aliases and related tools like delimit_obs_status, delimit_test_smoke, and delimit_release_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?
Explicitly states when to use ('as the single MCP-registered deploy surface when the caller wants to pick the deploy operation by name') and when NOT to use ('from internal code paths or when you want the operation's behavior and gate to surface at the right name'), with specific alternatives listed (e.g., 'prefer the specific alias'). Also contrasts with non-deploy tools for health checks, smoke tests, and release tracking.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_deploy_npmA
Publish an npm package: version bump, pack, and push to registry (Pro).
When to use: to ship a new version of an npm-published package
(delimit-cli, a venture SDK, etc.). This is a PRODUCTION DEPLOY
— every successful publish reaches real users, so it must be
preceded by the deploy gate chain (delimit_security_audit ->
delimit_test_smoke -> delimit_changelog -> delimit_deploy_plan)
and explicit founder approval per the customer-protection rule.
When NOT to use: to deploy a site (use delimit_deploy_site), to
push container images (delimit_deploy_publish), to dry-run
locally (npm pack --dry-run is faster), or to test the chain
without publishing — for that, pass dry_run=True here.
Sibling contrast: delimit_deploy_site ships UI / static; this
ships npm tarballs to the registry. Compared to running npm publish by hand, this wraps the chain with a bump,
governance gate, and is the auditable surface that other tools
can chain against.
Side effects: gated by require_premium — unlicensed callers
receive a license payload and no publish runs. On a licensed
call, invokes backends.tools_infra.deploy_npm which runs the
npm publish chain: (1) bumps the version in package.json
(LOCAL write to the source tree), (2) runs the project's
prepublishOnly hook if present (which may build or sync
artifacts — note the 2026-05-08 v4.5.12 prepublish regression),
(3) runs npm pack and (4) npm publish to the configured
registry — a NETWORK write that is publicly visible and
NOT undoable except by an unpublish (heavily restricted by
npm). dry_run=True suppresses step (4) only — the version
bump and pack still happen so the chain can be exercised.
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | No | Path to the npm project root. Default "." (cwd). | . |
| bump | No | Semver bump — "patch" (default), "minor", or "major". | patch |
| tag | No | npm dist-tag for the publish. Default "latest". | latest |
| dry_run | No | If True, run the chain without publishing. Default False. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description fully addresses behavior: license check, local version bump, prepublishOnly hook, pack, network publish, irreversibility, and dry_run effects. Mentions a known regression.
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?
Well-structured with headings and bullet points, front-loaded purpose, and minimal redundancy. Slightly long but each sentence 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?
Given complexity (4 params, output schema present, no annotations), description thoroughly covers all aspects: purpose, usage guidelines, behavioral side effects, parameter effects, and output 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% with descriptions, so baseline is 3. Description adds context about dry_run suppressing only publish step, but does not significantly extend beyond 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?
Clearly states 'Publish an npm package: version bump, pack, and push to registry' with specific verb and resource. Distinguishes from siblings like delimit_deploy_site and delimit_deploy_publish.
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 defines when to use (ship new npm package version), when not to use (deploy site, push containers, dry-run locally), and provides alternatives. Also specifies prerequisite chain and founder approval requirement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_deploy_planA
Generate a deploy plan with security preflight (Pro).
When to use: as the first step in the deploy chain. The plan enumerates build steps and bakes in a security audit + governance evaluation before any artifact is produced. When NOT to use: to actually build images (use delimit_deploy_build) or to ship code (use delimit_deploy_publish).
Sibling contrast: this is the planning gate; delimit_deploy_build and delimit_deploy_publish are the execution steps that follow.
Side effects: auto-chains delimit_security_audit (fail-closed on critical findings), then delimit_gov_evaluate, then the underlying deploy_plan handler. Halts and returns status="blocked" on any critical security finding without producing a plan.
| Name | Required | Description | Default |
|---|---|---|---|
| app | No | Application name (project key in the deploy backend). Required. | |
| env | No | Target environment, typically "staging" or "production". | |
| git_ref | No | Git ref (branch/tag/SHA). Optional; defaults to the backend's notion of HEAD when omitted. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description fully shoulders the burden of behavioral disclosure. It clearly describes side effects: auto-chaining of delimit_security_audit and delimit_gov_evaluate, with fail-closed behavior on critical findings (halting and returning status='blocked'). This provides essential behavioral transparency beyond basic read/write intent.
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 well-structured with clear headings for usage guidelines, sibling contrast, and side effects. It is concise—every sentence adds value—and front-loads the core purpose. No redundant or 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 moderate complexity (3 params, auto-chaining behavior, output schema present), the description covers all necessary context: when to use, side effects, and failure modes. The presence of an output schema reduces the need to describe return values, and the description adequately addresses the tool's role in the deployment pipeline.
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 each parameter already has a clear description. The tool description does not add additional parameter details beyond what the schema provides, but the schema descriptions are sufficient. A score of 3 is appropriate as the description does not degrade understanding but adds no extra value for parameters.
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: 'Generate a deploy plan with security preflight (Pro).' It specifies a concrete action (generate a deploy plan) and a key differentiator (security preflight). It also explicitly contrasts with sibling tools delimit_deploy_build and delimit_deploy_publish, making its distinct role unmistakable.
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 on when to use ('as the first step in the deploy chain') and when not to use ('to actually build images' or 'to ship code'). It names specific alternatives (delimit_deploy_build, delimit_deploy_publish), enabling the agent to make an informed choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_deploy_publishA
Publish previously built images to the registry (Pro).
When to use: after delimit_deploy_build has produced images locally. When NOT to use: to build images (delimit_deploy_build) or to start the deploy chain (delimit_deploy_plan).
Sibling contrast: deploy_build produces local images; this pushes them to the registry; deploy_verify confirms rollout health.
Side effects: gated by require_premium. Calls backends.deploy_bridge.publish, which performs network writes to the configured container registry.
| Name | Required | Description | Default |
|---|---|---|---|
| app | No | Application name (project key in the deploy backend). | |
| git_ref | No | Git ref the images were built at. Default None. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but description details side effects: premium gating, network writes to container registry via backend. Lacks mention of reversibility but still strong.
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?
Structured with headings (When to use, When NOT to use, Sibling contrast, Side effects). Every sentence adds value; no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, prerequisites, exclusions, sibling differentiation, side effects. Output schema exists, so return values are handled externally. Complete for agent 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 covers both parameters fully (100%). Description only repeats schema text without adding new context about usage or defaults. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description starts with clear 'Publish previously built images to the registry (Pro).' Then distinguishes from siblings deploy_build and deploy_verify, making the purpose unambiguous.
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 (after delimit_deploy_build) and when not to (building images or starting deploy chain). Also names sibling alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_deploy_rollbackA
Roll back an environment to a previous SHA (Pro).
When to use: when delimit_deploy_verify shows a regression and you need to revert the running deployment to a known-good revision. When NOT to use: to deploy a new version forward (delimit_deploy_plan -> _build -> _publish) — rollback is reversal-only.
Sibling contrast: delimit_deploy_publish moves an env forward; this moves it back to a prior to_sha.
Side effects: gated by require_premium. Calls backends.deploy_bridge.rollback which mutates the running environment to point at to_sha.
| Name | Required | Description | Default |
|---|---|---|---|
| app | No | Application name. | |
| env | No | Target environment. | |
| to_sha | No | Target SHA to roll back to. If None, the backend selects the previous deployed SHA. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses side effects: requires premium, mutates environment via backend call. Lacks details on error conditions or authorization beyond premium, but adequate for a mutation tool without annotations.
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?
Very concise with clear sections (purpose, when to use, when not, sibling contrast, side effects). 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 aspects given presence of output schema (not needing return value explanation). Could include more on failure modes or idempotency, but sufficient for a rollback operation.
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 3. Description adds no new meaning beyond schema; 'to_sha' is already described. No extra guidance on parameter usage.
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 'Roll back an environment to a previous SHA' and distinguishes from sibling delimit_deploy_publish, which moves forward. Specific verb and 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?
Explicitly describes when to use (after delimit_deploy_verify shows regression) and when NOT to use (for deploying new version). Also contrasts with sibling tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_deploy_siteA
Ship a static / Next.js site via git push to the Vercel pipeline (Pro).
When to use: to deploy UI / site changes (typically delimit-ui or a venture marketing site) — this performs the commit, push, and triggers the Vercel build that produces the production deployment. Pair with delimit_deploy_verify on the resulting deploy URL to confirm rollout health. When NOT to use: to publish an npm package (use delimit_deploy_npm), to push container images (delimit_deploy_publish / delimit_deploy_build), or to roll back (delimit_deploy_rollback).
Sibling contrast: delimit_deploy_publish ships container
images; delimit_deploy_npm publishes packages; this is the
static-site / Vercel flavour. Compared to running git push
by hand, this wraps the push with sanitisation, governance
hooks, and (for delimit-ui) automatic ChatOps env-var
injection from CHATOPS_AUTH_TOKEN.
Side effects: gated by require_premium — unlicensed callers
receive a license payload and no deploy runs. project_path is
sanitised via _sanitize_path; paths escaping the workspace root
short-circuit with an error. On a licensed call, invokes
backends.tools_infra.deploy_site which performs LOCAL git
operations (add, commit, push) and triggers a NETWORK deploy
(Vercel build webhook). For the delimit-ui project, automatically
injects ChatOps env vars from the CHATOPS_AUTH_TOKEN environment
variable into the build context. No rollback — use
delimit_deploy_rollback if the deploy regresses.
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | No | Path to the site project. Default "." (cwd). Sanitized — must not escape the workspace root. | . |
| message | No | Git commit message for the deploy commit. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but description discloses all key behaviors: license gating, path sanitization, local git operations, network trigger, ChatOps env injection, and that no rollback is included.
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?
Well-structured with clear sections (purpose, when to use, siblings, side effects). Slightly verbose but front-loaded. Could be more 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 annotations and moderate complexity, description covers all necessary context: purpose, usage, side effects, alternatives, and safety checks. It is complete for an agent to use 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 has 100% coverage with descriptions. Description adds no new meaning beyond schema: path sanitization detail is already in schema description. 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 ships static/Next.js sites via git push to Vercel, with specific verb and resource. It distinguishes from sibling deploy tools (npm, publish, rollback).
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 (deploy UI/site changes) and when NOT to use, listing alternatives. Also pairs with delimit_deploy_verify for post-deploy health check.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_deploy_statusA
Read the current rollout metadata for an app/env (Pro).
When to use: to inspect the currently deployed SHA, rollout state, and any in-progress deploy without actually probing the running app. Useful for "what is live right now?" questions and for the deploy dashboard. When NOT to use: for active runtime health probes (use delimit_deploy_verify), for steady-state observability metrics (delimit_obs_metrics / delimit_obs_status), or to deploy a change (delimit_deploy_plan / delimit_deploy_build).
Sibling contrast: delimit_deploy_verify exercises the running app via probes; this reads deploy-system metadata only. delimit_release_status is the sibling on the release-tracking side (versions, history). Compared to a registry inspection, this reports rollout state, not just image presence.
Side effects: read-only against the deploy backend and gated by require_premium — unlicensed callers receive a license payload and no query runs. On a licensed call, invokes backends.deploy_bridge.status which queries the deploy state store. No write, no probe, no notification. Response routed through _with_next_steps.
| Name | Required | Description | Default |
|---|---|---|---|
| app | No | Application name. | |
| env | No | Target environment. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite no annotations, the description details read-only nature, license gating, backend call, and no side effects. It could be slightly more explicit about the output format but overall covers behavior 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?
Well-structured with clear sections, but slightly verbose. The main point is front-loaded, and every sentence adds value, though some redundancy exists between 'When to use' and 'Sibling contrast'.
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 2 simple params, no annotations, and an output schema, the description covers purpose, usage, behavioral details, and licensing; sufficient for correct tool selection.
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 description adds minimal meaning beyond the schema. It reinforces the app/env context but does not provide additional constraints or format hints.
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 rollout metadata for an app/env, with a specific verb and resource. It distinguishes from siblings like delimit_deploy_verify (runtime probes) and delimit_release_status (release 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?
Explicit 'When to use' and 'When NOT to use' sections with specific alternative tool names, providing clear guidance on when to choose this tool over others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_deploy_verifyA
Probe a freshly-deployed revision's health — experimental (Pro).
When to use: immediately after delimit_deploy_publish has rolled out a new revision, to confirm the new SHA is actually healthy before declaring the deploy done and closing out the chain (delimit_deploy_verify -> delimit_evidence_collect -> delimit_ledger_done -> delimit_notify). If this returns unhealthy, the next step is delimit_deploy_rollback. When NOT to use: for steady-state runtime health checks (use delimit_obs_status / delimit_obs_metrics), to read deploy-system metadata only (delimit_deploy_status), or for a smoke test before deploy (delimit_test_smoke).
Sibling contrast: delimit_deploy_status reads deploy-system metadata only; this actively probes the running deployment. delimit_obs_status is the steady-state observability surface; this is post-deploy-only.
Side effects: gated by require_premium — unlicensed callers receive a license payload and no probe runs. On a licensed call, invokes backends.deploy_bridge.verify which performs network health checks against the deployed app (HTTP probes, container inspection, dependency reachability). No write. Marked EXPERIMENTAL — health logic may return partial results on backends without health endpoints; do not treat as authoritative for runtime SLOs.
| Name | Required | Description | Default |
|---|---|---|---|
| app | No | Application name. | |
| env | No | Target environment ("staging" or "production"). | |
| git_ref | No | Optional git ref the deploy targets. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully discloses side effects: license gating, premium requirement, network health checks, no writes, and experimental status with potential partial results. This exceeds basic behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with clear sections (purpose, when to use, not to use, sibling contrast, side effects). Front-loaded with core action. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema, the description does not need to explain return values. It covers usage context, side effects, experimental status, and alternatives comprehensively for a health probe 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 already describes each parameter. The description does not add new semantic details beyond what the schema provides, so 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 clearly states the tool probes a freshly-deployed revision's health, with specific verb and resource. It distinguishes itself from siblings like delimit_deploy_status and delimit_obs_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?
Explicitly states when to use (immediately after delimit_deploy_publish), when not to use (steady-state checks, metadata reads, pre-deploy smoke tests), and provides specific sibling alternatives and next steps for unhealthy results.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_design_component_libraryA
Scan a project for React/Vue/Svelte components and emit a catalog.
When to use: to inventory a project's UI components for review, docs, or design-system curation. When NOT to use: to generate a single component (delimit_design_generate_component) or stories (delimit_story_generate).
Sibling contrast: delimit_design_generate_component creates one; this lists what already exists.
Side effects: read-only scan via backends.ui_bridge.design_component_library. Writes nothing.
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | Yes | Project path to scan. Required. | |
| output_format | No | One of "json" (default) or "markdown". | json |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that it is a read-only scan with no writes, and mentions the backend used. Since no annotations are provided, this is crucial. However, it does not detail the exact return format beyond "catalog" or mention any performance/error behavior. Still, it is sufficiently transparent for a scanning tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise and well-structured with four short, clear sections: main action, when to use, when not to use, sibling contrast, and side effects. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema, the description does not need to explain return values. It adequately covers purpose, usage, side effects, and sibling differentiation. The only minor gap is not specifying file extension or prerequisites, but it is overall complete for this tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the input schema already fully describes both parameters (project_path and output_format). The tool description does not add any extra semantic meaning beyond what is in the schema, so it meets the baseline of 3.
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 scans a project for React/Vue/Svelte components and emits a catalog, which is a specific verb and resource. It distinguishes from siblings like delimit_design_generate_component (which creates one component) and delimit_story_generate (which generates stories).
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 provides when to use (inventory UI components for review, docs, design-system curation) and when NOT to use (to generate a single component or stories). Also names specific sibling alternatives, offering clear guidance on tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_design_extract_tokensA
Extract design tokens from a project's CSS/SCSS/Tailwind config.
When to use: to inventory or generate design tokens before creating a Tailwind config or component scaffold. When NOT to use: to scaffold a component (use delimit_design_generate_component) or generate tailwind config (delimit_design_generate_tailwind).
Sibling contrast: delimit_design_generate_tailwind builds a config from these tokens; this extracts them.
Side effects: read-only scan of local CSS/Tailwind. Figma API integration auto-activates when a Figma token is found in FIGMA_TOKEN env var, ~/.delimit/secrets/figma.json, or via delimit_secret_store. Calls backends.ui_bridge.design_extract_tokens. Coerces token_types via _coerce_list_arg.
| Name | Required | Description | Default |
|---|---|---|---|
| figma_file_key | No | Optional Figma file key (uses Figma API if a token is available). | |
| token_types | No | Token types — "colors", "typography", "spacing", "breakpoints". Comma string or list. None = all. | |
| project_path | No | Project directory to scan. Default = cwd. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Details side effects: read-only scan, auto-activation of Figma API based on token presence, calls backend function, and coercion of token_types via _coerce_list_arg. Since no annotations exist, the description fully discloses 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 concise with four main sections: action, when to use, when not to use, and side effects. Every sentence adds value, and the most important information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema (context indicates true), the description does not need to explain return values. It covers purpose, usage, and side effects adequately. Minor gap: no mention of error handling or empty results, but the output schema likely addresses this.
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 token_types values and coercion, but does not significantly extend meaning beyond the schema for figma_file_key or project_path.
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 'Extract design tokens from a project's CSS/SCSS/Tailwind config.' This is a specific verb (extract) and resource (design tokens from specific file types), and it later distinguishes from sibling tools like delimit_design_generate_tailwind.
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 provides 'When to use' and 'When NOT to use' sections, naming alternatives such as delimit_design_generate_component and delimit_design_generate_tailwind. Also includes a 'Sibling contrast' paragraph for differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_design_generate_componentA
Generate a React/Next.js component skeleton with Tailwind support.
When to use: to scaffold a new component (.tsx) with props interface and Tailwind class structure. When NOT to use: to generate stories for an existing component (use delimit_story_generate) or extract design tokens (delimit_design_extract_tokens).
Sibling contrast: delimit_story_generate adds stories to a component; this creates the component itself.
Side effects: writes a new component file (.tsx) under output_path or components//.tsx via backends.ui_bridge.design_generate_component. Detects Tailwind config inside project_path.
| Name | Required | Description | Default |
|---|---|---|---|
| component_name | Yes | Component name (PascalCase). Required. | |
| figma_node_id | No | Optional Figma node ID (reserved for future use). | |
| output_path | No | Output file path. Default = components/<Name>/<Name>.tsx. | |
| project_path | No | Project root for Tailwind detection. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses side effects: writes a .tsx file, default path, and Tailwind config detection. Could mention potential overwrite behavior, but overall 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?
Description is concise, front-loaded with purpose, and well-structured with clear sections for usage, contrast, and side effects. No redundant sentences.
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 complexity, presence of output schema (not shown but indicated), and coverage of purpose and side effects, the description is fairly complete. Lacks error handling info but adequate for selection.
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 baseline 3. Description adds little beyond schema, e.g., mentioning 'props interface' but not elaborating parameter specifics.
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 generates a React/Next.js component skeleton with Tailwind support, distinguishing it from sibling tools like delimit_story_generate and delimit_design_extract_tokens.
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 (scaffold new component) and when not to use (generate stories or extract tokens), with references to alternative tools. Also provides sibling contrast.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_design_generate_tailwindA
Read an existing tailwind.config or generate one from detected CSS tokens.
When to use: to bootstrap a Tailwind config from existing CSS tokens, or to inspect an existing config in a project. When NOT to use: to extract general design tokens (use delimit_design_extract_tokens) or generate a component (delimit_design_generate_component).
Sibling contrast: delimit_design_extract_tokens scans CSS; this writes a tailwind config from those tokens.
Side effects: writes tailwind.config.js if missing, otherwise reads the existing one. Calls backends.ui_bridge.design_generate_tailwind.
| Name | Required | Description | Default |
|---|---|---|---|
| figma_file_key | No | Optional Figma file key (reserved for future use). | |
| output_path | No | Output file path for generated config. | |
| project_path | No | Project root to scan for existing config or CSS tokens. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses side effects: writes tailwind.config.js if missing, otherwise reads existing. This is clear and honest about the tool's mutating behavior, satisfying the transparency requirement.
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 well-structured: purpose, usage guidelines, sibling contrast, side effects. Every sentence adds value with no redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (read or write a file) and presence of an output schema, the description is complete. It covers behavior, side effects, usage conditions, and distinguishes from siblings. No missing information for correct agent invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description does not add extra parameter-level meaning beyond the schema's own parameter descriptions. It adequately explains the overall purpose but no additional semantic value for individual parameters.
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 existing tailwind config or generates one from CSS tokens. It explicitly names the resource (tailwind.config) and action (read/generate), and distinguishes itself from siblings like delimit_design_extract_tokens and delimit_design_generate_component.
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 when-to-use (bootstrap config from CSS tokens or inspect existing config) and when-not-to-use (extract general tokens or generate components) with specific alternative tool names. This clearly helps the agent decide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_design_validate_responsiveA
Validate responsive design patterns via static CSS analysis.
When to use: as a CI check after editing UI/CSS, to flag missing media queries, fixed widths, or non-mobile-first patterns. When NOT to use: for accessibility audits (use delimit_story_accessibility) or component scaffolding (delimit_design_generate_component).
Sibling contrast: delimit_story_accessibility checks WCAG; this checks responsive patterns.
Side effects: read-only static analysis of CSS files. Calls backends.ui_bridge.design_validate_responsive. Coerces check_types from comma string to list via _coerce_list_arg.
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | Yes | Project path to validate. Required. | |
| check_types | No | Specific checks ("breakpoints", "containers", "fluid-type", etc.) as comma string or list. None = all. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Discloses read-only nature ('read-only static analysis'), implementation detail (calls backends.ui_bridge.design_validate_responsive), and parameter coercion (_coerce_list_arg). Adds valuable 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?
Description is well-structured with clear sections (purpose, when to use, when not, sibling contrast, side effects). Every sentence adds value; no fluff. Appropriately sized for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 2 parameters (1 required), high schema coverage, and output schema present, description covers all necessary context: intended usage, exclusions, side effects, parameter handling. Complete and sufficient for correct tool invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%. Description adds meaning: explains check_types can be comma string or list, default behavior (None = all), and coercion to list. This goes beyond the schema definition.
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 'Validate responsive design patterns via static CSS analysis.' and contrasts with sibling delimit_story_accessibility. Verb+resource+scope are specific and distinguish from 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?
Explicitly states when to use (CI check after editing UI/CSS) and when not to use (accessibility audits via delimit_story_accessibility, component scaffolding via delimit_design_generate_component). Provides clear context and alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_diagnoseA
Comprehensive health check of the Delimit installation (delimit doctor).
When to use: as the universal first-step diagnostic when something isn't working — covers MCP connectivity, deps, governance state, AI assistants, permissions, API keys, network, version, daemons, disk. When NOT to use: for repo-level health (use delimit_repo_diagnose) or first-run discovery (delimit_quickstart).
Sibling contrast: delimit_repo_diagnose checks one repo; this checks the Delimit installation as a whole.
Side effects: in normal mode, fixes some configuration drift (writes a doctor-manifest.json so later --undo can revert). dry_run=True is read-only and previews changes. undo=True reverts changes from the last doctor run using the saved manifest.
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | No | Project to diagnose. Default "." (cwd). | . |
| dry_run | No | If True, preview changes without executing. | |
| undo | No | If True, revert changes from the last run. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses side effects: normal mode fixes configuration drift and writes a manifest, dry_run is read-only, and undo reverts changes. This is good, but could be more explicit about permissions or data scope.
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?
Well-structured with clear labeled sections (When to use, When NOT to use, Sibling contrast, Side effects). Every sentence adds value without redundancy. Length is appropriate for the 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 that an output schema exists, the description adequately covers purpose, usage, side effects, and parameter behavior. It mentions the areas checked (MCP connectivity, deps, governance, etc.), providing a complete picture 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%, giving baseline 3. The description adds value by explaining the effects of dry_run and undo in the 'Side effects' section, and noting the default for project_path. This goes 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 it is a comprehensive health check of the Delimit installation ('delimit doctor'), using a specific verb and resource. It distinguishes itself from sibling tools like delimit_repo_diagnose (repo-level) and delimit_quickstart (first-run), making its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly provides when to use (universal first-step diagnostic for installation-wide issues) and when NOT to use (repo-level health or first-run discovery), including specific alternative tool names. This gives clear, actionable guidance for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_diffA
Diff two OpenAPI specs and list all changes (pure diff, no policy).
When to use: when you only need the structural change set (added / removed / modified endpoints, schemas, parameters) without any policy verdict. When NOT to use: as a CI gate — for pass/fail use delimit_lint, for a shareable HTML report use delimit_diff_report.
Sibling contrast: delimit_lint adds policy + governance; this is the underlying change list. delimit_diff_report wraps both in a presentable report.
Side effects: read-only. Calls backends.gateway_core.run_diff.
| Name | Required | Description | Default |
|---|---|---|---|
| old_spec | Yes | Path to the baseline OpenAPI spec file. Required. | |
| new_spec | Yes | Path to the proposed OpenAPI spec file. Required. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
States 'Side effects: read-only' and mentions the backend call. Since no annotations exist, the description carries full burden. It is clear and honest, but could add more detail on error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with sections: purpose, usage guidelines, sibling contrast, side effects. Every sentence adds value and is front-loaded. 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?
With only two simple parameters, complete schema coverage, and an output schema, the description fully covers the tool's behavior, usage boundaries, and side effects. Nothing 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?
Schema coverage is 100% and both parameters are already described in the input schema. The description does not add additional semantics beyond what the schema 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?
The description clearly states 'Diff two OpenAPI specs and list all changes (pure diff, no policy).' It uses a specific verb and resource, and distinguishes from siblings like delimit_lint and delimit_diff_report.
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' and 'When NOT to use' sections with alternative tools (delimit_lint for CI gate, delimit_diff_report for HTML report). Also provides sibling contrast.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_diff_reportA
Generate a shareable API diff report with full analysis.
When to use: when a team needs a shareable artifact (API review, PR comment, compliance record) — runs diff + policy + semver + spec health + migration guide. When NOT to use: for a CI gate verdict (use delimit_lint) or raw diff data (delimit_diff).
Sibling contrast: delimit_lint enforces; delimit_diff is raw; this is the presentable composite report.
Side effects: read-only on inputs. When output_file is provided, writes the rendered HTML/JSON to disk. The HTML has inline CSS — no external dependencies, opens in any browser.
| Name | Required | Description | Default |
|---|---|---|---|
| old_spec | Yes | Baseline OpenAPI spec path. | |
| new_spec | Yes | Proposed OpenAPI spec path. | |
| output_format | No | "html" (default) or "json". | html |
| output_file | No | Optional path to write the report to disk. | |
| policy_file | No | Optional .delimit/policies.yml path. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that the tool is read-only on inputs and only writes to disk when output_file is provided, plus details about HTML output. With no annotations, this covers key behavioral traits well, though rate limits or auth requirements not 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?
Very concise and well-structured with clear sections (purpose, when to use/not, sibling contrast, side effects). No redundant sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema, the description covers all necessary context: usage, side effects, input spec types, and report contents. Complete for agent 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 100%, so the schema already documents all parameters. The description adds minimal extra semantics beyond the schema, but the side effects note provides useful context for output_file. Adequate for baseline.
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 generates a shareable API diff report with full analysis, and explicitly distinguishes from siblings delimit_lint and delimit_diff, which serve 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?
Provides explicit 'When to use' and 'When NOT to use' guidance, including specific alternative tools (delimit_lint for CI gate, delimit_diff for raw data), making it easy for the agent to select correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_digestA
Generate a structured daily digest of loop activity (LED-966).
When to use: for the founder daily summary — signals, deliberations, ledger movement, swarm dispatch, health. When NOT to use: for raw notifications (use delimit_notify) or inbox routing (delimit_notify_inbox).
Sibling contrast: delimit_notify is per-event; this is a windowed rollup digest.
Side effects: action="run" always writes markdown + json to ~/.delimit/digest/ (the founder can read directly, no email dependency). When send_email=True, emails via the notify pipeline, BUT delivery requires DELIMIT_DIGEST_EMAIL=true in the env (pipeline gate). action="latest" is read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | "run" (default) or "latest". | run |
| window_hours | No | Lookback window. Default 24. | |
| send_email | No | If True, attempt to email the digest. Requires DELIMIT_DIGEST_EMAIL=true env to actually send. | |
| to | No | Email recipient. Empty = DELIMIT_SMTP_TO. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It clearly discloses side effects: writes markdown/json to ~/.delimit/digest/ for action='run', email delivery gate via env variable, and that action='latest' is read-only. This fully informs the agent of behavioral traits.
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 well-structured with clear sections (what, when to use, when not to use, sibling contrast, side effects). Every sentence 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 presence of an output schema, the description does not need to explain return values. It covers purpose, usage guidelines, side effects, and parameter behavior thoroughly. For a 4-parameter tool with no required parameters, this is complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, providing baseline of 3. The description adds value by explaining the side effects of action values and the email pipeline gate related to send_email and to parameters, which goes 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's purpose: 'Generate a structured daily digest of loop activity (LED-966)'. It uses a specific verb and resource, and distinguishes itself from siblings like delimit_notify (per-event vs windowed rollup).
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 provides when-to-use (founder daily summary) and when-not-to-use (raw notifications, inbox routing) with alternative tool names. Also contrasts with sibling delimit_notify, aiding selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_docs_generateA
Generate a markdown API reference from source docstrings/JSDoc.
When to use: to produce a starter API reference doc from existing in-source documentation, organized per source file. When NOT to use: for doc-quality validation (use delimit_docs_validate) — generation does not validate.
Sibling contrast: delimit_docs_validate inspects existing docs; this writes a fresh API reference.
Side effects: writes a markdown reference file via backends.ui_bridge.docs_generate.
| Name | Required | Description | Default |
|---|---|---|---|
| target | No | Project path. Default "." (cwd). | . |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but description discloses side effects: 'writes a markdown reference file via backends.ui_bridge.docs_generate.' It also clarifies that generation does not validate. Slightly lacks details on overwrite behavior or file location, but overall 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?
Five concise sentences with clear sections (overall purpose, when to use, when not, sibling contrast, side effects). No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given simple tool with one parameter, no required fields, and presence of output schema, the description sufficiently covers purpose, usage, and side effects. No missing critical 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?
Only one parameter 'target' with description in schema (100% coverage). The description does not add 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 'Generate a markdown API reference from source docstrings/JSDoc.' It specifies the verb (generate), resource (markdown API reference), and distinguishes from sibling delimit_docs_validate.
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 provides 'When to use' and 'When NOT to use' sections, contrasting with delimit_docs_validate for doc-quality validation. Also mentions sibling contrast.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_docs_validateA
Validate documentation quality and completeness.
When to use: as a CI gate to surface missing READMEs, undocumented public functions, and broken internal markdown links. When NOT to use: to generate fresh API reference (use delimit_docs_generate).
Sibling contrast: delimit_docs_generate writes; this validates existing docs.
Side effects: read-only inspection. Calls backends.ui_bridge.docs_validate.
| Name | Required | Description | Default |
|---|---|---|---|
| target | No | Project path. Default "." (cwd). | . |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so description carries full burden. It states 'read-only inspection' and mentions the backend call, revealing nondestructive behavior. Could add more detail on output format but output schema exists, so 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?
Extremely concise: two sentences plus structured sections (when to use, when NOT, sibling contrast, side effects). Every section earns its place 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 one optional parameter, existing output schema, and no annotations, the description covers usage guidelines, side effects, sibling distinction, and internal call. It is complete for a simple validation 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?
Only one parameter (target) with full schema description (100% coverage). The description does not add new context beyond what the schema provides; 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 explicitly states it validates documentation quality and completeness, listing specific examples (missing READMEs, undocumented functions, broken links) and directly contrasts with sibling delimit_docs_generate which writes. The verb 'validate' and resource 'docs' are clear and specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use (CI gate for surfacing issues) and when-not-to-use (avoid for generating API reference, recommending delimit_docs_generate). Also includes sibling contrast, making usage context very clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_drift_checkA
Check for API spec drift since last governance review.
When to use: as a scheduled (cron) compliance monitor — detects spec changes without lint, stale baseline, or missing policy. When NOT to use: for one-shot lint (use delimit_lint) or to read historical drift (delimit_drift_history).
Sibling contrast: delimit_lint is enforcement; delimit_drift_history reads past drift records; this is the periodic monitor.
Side effects: read-only on spec + governance state. Calls ai.drift_monitor.check_drift.
| Name | Required | Description | Default |
|---|---|---|---|
| spec_path | No | OpenAPI spec path. Empty = auto-detect. | |
| project_path | No | Project root. Default "." (cwd). | . |
| staleness_days | No | Alert if baseline older than this. Default 7. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but description states side effects are read-only on spec and governance state, and mentions underlying API call. Lacks detail on return format or error conditions, but sufficient for a non-destructive 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?
Description is concise and well-structured with clear sections for purpose, usage, exclusions, sibling contrast, and side effects. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (3 optional params, output schema exists), the description covers purpose, usage, side effects, and alternatives adequately for an agent to select and invoke 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 description coverage is 100% with descriptions and defaults. Description adds minimal extra meaning beyond 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 for API spec drift since last governance review. It uses a specific verb (check) and resource (drift). It also distinguishes from siblings by explicitly contrasting with delimit_lint and delimit_drift_history.
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: when to use (scheduled cron compliance monitor) and when not (one-shot lint or historical drift). Names alternatives: delimit_lint and delimit_drift_history.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_drift_historyA
List recent drift-check results from the drift monitor.
When to use: to investigate when API spec drift was last detected and what changed. When NOT to use: to perform a fresh drift check (use delimit_drift_check).
Sibling contrast: delimit_drift_check runs a check; this reads historical results.
Side effects: read-only. Calls ai.drift_monitor.get_drift_history.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max entries to return. Default 20. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Transparently states 'read-only' and discloses the underlying API call (ai.drift_monitor.get_drift_history). Since no annotations are provided, the description carries the full burden; while it could mention rate limits or caching, the key behavioral trait is 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?
The description is concise and front-loaded with the core action. Uses bullet points effectively for usage guidance and side effects. Minor redundancy between 'When NOT to use' and sibling contrast but overall 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?
For a simple list tool with one optional parameter and an output schema, the description covers purpose, usage scenarios, alternatives, and behavior comprehensively, leaving no obvious gaps.
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?
There is only one parameter (limit) with schema description coverage of 100%. The description does not add additional meaning beyond the schema's explanation of 'Max entries to return. Default 20.' 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 clearly states the tool lists recent drift-check results from the drift monitor, with a specific verb ('list') and resource ('drift-check results'). It distinguishes from the sibling tool delimit_drift_check by noting it reads historical results rather than running a check.
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 provides when to use (investigate last detected drift and changes) and when not to use (perform a fresh drift check), with a named alternative tool (delimit_drift_check). This gives clear guidance for an AI agent to select the correct tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_evidence_collectA
Collect evidence artifacts for governance (Pro).
When to use: after a deploy, security audit, test run, or other gate event — to capture an evidence bundle that delimit_evidence_verify can later attest. When NOT to use: to verify an existing bundle (use delimit_evidence_verify) or query the contract ledger (delimit_ledger).
Sibling contrast: delimit_evidence_verify verifies; delimit_ledger queries the chain; this collects new evidence.
Side effects: gated by require_premium. Writes a new evidence bundle via backends.repo_bridge.evidence_collect.
| Name | Required | Description | Default |
|---|---|---|---|
| target | No | Repository or task path. Default "." (cwd). | . |
| evidence_type | No | Type of evidence — e.g. "deploy", "security", "test", "audit". Stored in bundle metadata. Empty = generic. | |
| asset_meta | No | Optional JSON string with asset provenance metadata (for evidence_type='asset'). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Even without annotations, the description fully discloses behavioral traits: it writes a new evidence bundle, is gated by require_premium (implying a paywall/mutation), and explains the backend. 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?
Concise, well-structured with sections for purpose, usage, contrast, and side effects. Every sentence 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 optional params, output schema present), the description covers workflow context, usage guards, and side effects. It is complete for an AI agent to select 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%, so the description does not need to add much. It does not elaborate beyond schema, but the baseline of 3 is appropriate as the schema already documents parameters well.
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 'collect' and resource 'evidence artifacts for governance'. It clearly distinguishes from sibling tools delimit_evidence_verify and delimit_ledger by their functions.
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 'When to use' scenarios (deploy, security audit, test run, gate events) and 'When NOT to use' with alternative tool names, plus a sibling contrast section. This is exemplary usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_evidence_verifyA
Verify the integrity of an evidence bundle (Pro).
When to use: to attest that a previously-collected evidence bundle has not been tampered with — typical use is during replay or audit. When NOT to use: to capture new evidence (use delimit_evidence_collect) or to query the contract ledger (delimit_ledger).
Sibling contrast: delimit_evidence_collect captures; this verifies a captured bundle's hash chain integrity.
Side effects: read-only on the evidence store; gated by require_premium. Calls backends.repo_bridge.evidence_verify.
| Name | Required | Description | Default |
|---|---|---|---|
| bundle_id | No | Evidence bundle id. Either this or bundle_path must be provided. | |
| bundle_path | No | Path to a bundle file on disk. Either this or bundle_id must be provided. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses side effects ('read-only on the evidence store'), access gating ('gated by require_premium'), and backend calls. However, it lacks details on the verification process (e.g., what happens on tamper detection) and any potential error states. Without annotations, it carries full burden but does a solid job.
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 (6 lines) and well-structured with clear sections: purpose, when to use/not use, sibling contrast, and side effects. Every sentence 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?
For a verification tool with an output schema, the description adequately covers purpose, usage, side effects, and sibling relationships. It leaves no major gaps given the existing schema and tool complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description does not add extra meaning beyond the schema's parameter descriptions. It mentions bundle_id and bundle_path in the usage context but does not clarify semantics like format 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 tool's purpose: 'Verify the integrity of an evidence bundle.' It specifies the verb (verify), the resource (evidence bundle), and distinguishes it from siblings like delimit_evidence_collect and delimit_ledger, ensuring the agent knows exactly what the tool does and how it differs.
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 ('replay or audit') and when not to use ('to capture new evidence' or 'to query the contract ledger'), with specific alternatives provided (delimit_evidence_collect, delimit_ledger). This gives clear guidance for the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_executorA
Run approved work orders from the dashboard inbox (Pro) (Worker Pool v2).
When to use: as the autonomous executor for human-approved work orders, or to inspect/pause the executor. When NOT to use: to dispatch new agent work (use delimit_agent_dispatch) or close out a work order (delimit_work_orders complete).
Sibling contrast: delimit_work_orders reads/closes the work order artifact; this is the run surface that turns approved orders into real GitHub side effects.
Side effects: action="run" / "poll" with live=True fire whitelisted state-changing actions: gh_issue_create, gh_pr_comment, gh_issue_comment. Every invocation is logged to ~/.delimit/workers/audit/executor.jsonl. Touch ~/.delimit/pause_executor to halt the autonomous path at the next tick.
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | "run" (one), "poll" (scan + run all approved), "status" (default), "pause", "resume". | status |
| wo_id | No | Work order id. Required for action="run". | |
| live | No | When False (default), dry-run — describe what would happen without firing. | |
| executed_by | No | Identifier for the audit log (e.g. "dashboard", "cron"). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully discloses side effects: 'action="run" / "poll" with live=True fire whitelisted state-changing actions...'. It also details logging to a specific file and the mechanism to pause execution.
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 well-structured with clear sections: main purpose, when to use/not use, sibling contrast, and side effects. Every sentence provides essential information without 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 4 parameters, no required, high schema coverage, and the existence of an output schema, the description is thorough. It covers purpose, usage guidelines, behavioral traits, and safety mechanisms (dry-run, logging, pause), fully equipping an agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the input schema already documents all 4 parameters. The description adds context beyond the schema, such as the audit log identifier purpose for 'executed_by' and the dry-run behavior for 'live'. This extra value justifies a 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Run approved work orders from the dashboard inbox (Pro) (Worker Pool v2).' It also distinguishes from a sibling tool: 'delimit_work_orders reads/closes the work order artifact; this is the run surface that turns approved orders into real GitHub side effects.'
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 ('as the autonomous executor for human-approved work orders, or to inspect/pause the executor') and when not to use ('to dispatch new agent work (use delimit_agent_dispatch) or close out a work order (delimit_work_orders complete)'). Provides clear sibling contrast.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_explainA
Render a human-readable explanation of API changes (7 templates).
When to use: to produce migration notes, PR comments, changelog entries, or Slack-friendly summaries from a spec diff. When NOT to use: for raw change data (use delimit_diff) or a shareable HTML report (delimit_diff_report).
Sibling contrast: delimit_diff returns structured change data; delimit_diff_report renders an HTML report; this renders a template-driven text explanation.
Side effects: read-only. Calls backends.gateway_core.run_explain.
| Name | Required | Description | Default |
|---|---|---|---|
| old_spec | Yes | Path to the baseline OpenAPI spec file. Required. | |
| new_spec | Yes | Path to the proposed OpenAPI spec file. Required. | |
| template | No | One of "developer" (default), "team_lead", "product", "migration", "changelog", "pr_comment", "slack". | developer |
| old_version | No | Previous version string for context. | |
| new_version | No | New version string for context. | |
| api_name | No | API/service name for context. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Describes side effects as 'read-only' and mentions the backend call backends.gateway_core.run_explain. No annotations exist, so the description adequately covers behavioral traits. Could add more about idempotency or rate limits, but current detail 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?
The description is concise with three clear sections: purpose, when/when-not to use, and side effects. Every sentence earns its place without 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 output schema exists, the tool definition is complete. All parameters have descriptions, usage guidance is explicit, and side effects are disclosed. No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 6 parameters are described in the input schema (100% coverage). The description adds value by explaining template options and the purpose of old_version/new_version/api_name as context fields, going beyond schema labels.
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 'Render a human-readable explanation of API changes' with specific use cases like migration notes and PR comments. It distinguishes from siblings by contrasting with delimit_diff and delimit_diff_report.
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 (produce explanations) and when NOT to use (raw change data or HTML report), with sibling tool names given as alternatives. This provides clear guidance for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_external_pr_checkA
Pre-PR duplicate guard for external repos — call BEFORE drafting.
When to use: as the first step before drafting any PR against a repo you don't own. Fail-closed by design. When NOT to use: for internal repos or to evaluate a non-PR action (use delimit_gov_evaluate).
Sibling contrast: delimit_gov_evaluate(action="external_pr") wraps this with policy evaluation; this is the underlying duplicate check.
Side effects: read-only network call. Calls backends.governance_bridge.external_pr_check which shells out to gh CLI. Any open PR or PR merged in the last 30 days yields verdict="duplicate" — caller stops drafting.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | External GitHub repo, e.g. "goharbor/harbor". Required. | |
| author | No | GitHub username to filter by (recommended). Empty = all. | |
| state | No | "open", "closed", "merged", or "all" (default). | all |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully discloses side effects ('read-only network call'), implementation detail ('shells out to gh CLI'), and behavior ('any open PR or PR merged in last 30 days yields verdict=duplicate'). Also mentions 'fail-closed by design'.
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 well-structured with clear sections (purpose, when to use, when not, sibling contrast, side effects). Every sentence is informative and 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 full schema coverage and the presence of an output schema, the description is complete. It covers purpose, usage, side effects, and even hints at the output format ('verdict=duplicate'). No gaps.
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 clear descriptions for all three parameters (repo, author, state). The description adds no extra parameter semantics beyond what the schema 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?
The description clearly states the tool's purpose as a 'Pre-PR duplicate guard for external repos' and distinguishes it from the sibling 'delimit_gov_evaluate' which wraps this function with policy evaluation. The verb 'guard' and resource 'duplicate check' are specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly provides when to use ('first step before drafting any PR against a repo you don't own') and when not to use ('internal repos or non-PR action'), along with an alternative tool ('delimit_gov_evaluate'). This is thorough guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_generate_scaffoldA
Lay out a fresh project tree with framework-conformant skeleton.
When to use: at project zero, when starting a new Next.js app, API service, or library and you want the standard directory tree, package.json/pyproject.toml, lint config, and entry-point files all written in one call. Typical follow-up is delimit_init to set up governance scaffolding in the new project root. When NOT to use: to add files to an existing project (use delimit_generate_template for single-file scaffolds), to duplicate an existing project (use the shell), or to add a package to an existing project (use the project's own package manager directly).
Sibling contrast: delimit_generate_template writes a single
file into an existing project; this writes a NEW project tree.
Compared to create-next-app / cookiecutter, this routes the
scaffold through the Delimit bridge so the resulting project
can later be wired into delimit_init governance with no manual
cleanup.
Side effects: writes MANY new files and directories under a new
name/ root via backends.generate_bridge.scaffold. packages
is coerced from a comma string to a list via _coerce_list_arg
(malformed values short-circuit). No license gate. No ledger
write, no notification. The backend determines collision
behaviour if name/ already exists — call against a fresh
target.
| Name | Required | Description | Default |
|---|---|---|---|
| project_type | Yes | Project flavour, e.g. "nextjs", "api", "library". Required. | |
| name | Yes | Project name (becomes the root directory). Required. | |
| packages | No | Packages to include — either a comma string or list. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully carries the burden of behavioral disclosure. It details side effects: writes many new files, coerces packages from comma string to list, no license gate, no ledger write, no notification, and backend-determined collision behavior. This is thorough, though it could explicitly state that it's a write operation (implicitly 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?
The description is well-structured with clear sections (purpose, when to use, when not to use, sibling contrast, side effects) and is concise at around 100 words. Each sentence adds value without 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 complexity (project scaffold with side effects) and the presence of an output schema (so return details are covered), the description provides sufficient context: side effects, error conditions (malformed packages), collision behavior, and prerequisites. It is complete for 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 100%, but the description adds meaningful context beyond the schema: explains the coercion of the `packages` parameter from comma string to list and that malformed values short-circuit, and clarifies that `name` becomes the root directory. This adds value.
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 tool's purpose: 'Lay out a fresh project tree with framework-conformant skeleton.' It clearly identifies the verb (lay out) and resource (fresh project tree), and distinguishes from sibling tools like delimit_generate_template by specifying that this writes a new project tree rather than a single file into an existing 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?
The description provides explicit when-to-use guidance (project zero, new app/service/library) and when-not-to-use guidance (adding files to existing project, duplicating, adding packages). It lists alternative tools (delimit_generate_template, shell, package manager) and mentions a typical follow-up (delimit_init).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_generate_templateA
Write a single file from a code template into an existing project.
When to use: when an existing project needs one more piece — a component, a page, an API handler — and you want the framework-conformant skeleton (imports, exports, default structure) rather than hand-writing the boilerplate. Pair with delimit_test_generate to scaffold the matching test file. When NOT to use: to lay out a fresh project (use delimit_generate_scaffold), to design a UI component with tokens (delimit_design_generate_component), or to bulk-generate many files (call this once per file, or write a custom script).
Sibling contrast: delimit_generate_scaffold lays out a complete project tree; this writes a single file. Compared to delimit_design_generate_component, this is framework-only and does not consume design tokens. Compared to delimit_test_generate, this writes source, not tests.
Side effects: writes ONE file to disk under target/ via
backends.generate_bridge.template. target is sanitised via
_sanitize_path — paths escaping the workspace short-circuit
with an error. features is coerced from a comma string to a
list via _coerce_list_arg. No license gate, no ledger write, no
notification. If a file with the same name already exists, the
backend determines overwrite vs. error — call with care on
populated directories.
| Name | Required | Description | Default |
|---|---|---|---|
| template_type | Yes | Template flavour, e.g. "component", "page", "api". Required. | |
| name | Yes | Name for the generated code (file stem). Required. | |
| framework | No | Target framework key, e.g. "react", "nextjs", "fastapi". | nextjs |
| features | No | Optional feature flags as a comma string or list. | |
| target | No | Output directory. Default "." (cwd). Sanitized to remain inside the workspace. | . |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses side effects (writes one file, path sanitization, feature coercion, overwrite uncertainty). Since no annotations are provided, this description fully addresses behavioral transparency without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections and no redundant sentences. It is slightly lengthy but every section serves a purpose (usage, contrasts, side effects).
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 annotations and full schema coverage, the description covers all necessary aspects: purpose, usage, behavior, parameter dynamics, and side effects. It is complete for an agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
While schema coverage is 100%, the description adds meaningful context about parameter behavior (e.g., target is sanitized, features coerced from comma string). This provides additional value beyond the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence clearly states the verb and resource: 'Write a single file from a code template into an existing project.' The description further distinguishes this tool from siblings by specifying it writes a single file, not a full scaffold or design component.
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 'When to use' and 'When NOT to use' sections, along with sibling tool comparisons. This gives the agent clear guidance on when to select this tool over alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_github_scanA
Scan GitHub for adoption leads, competitive intel, repo health (Pro).
When to use: at the configured cadence — pulse (own repo health), hunter (engagement signals, hourly), deep (full ecosystem, daily). When NOT to use: to monitor one issue (use delimit_sensor_github_issue) or pull issues (delimit_tracker_sync).
Sibling contrast: delimit_sensor_github_issue is single-issue; delimit_tracker_sync ingests issues to ledger; this is the broad GitHub corpus scanner.
Side effects: read-only network. With chain rule below, the orchestrator should call delimit_ledger_add for high-score findings and delimit_notify for pain threads.
IMPORTANT -- TOOL CHAINING RULE: After scanning, the AI MUST process high-score findings:
Auto-ledger high-score findings via delimit_ledger_add
Pain threads with existing_feature relevance via delimit_notify Never just return findings and stop. Always chain to the next action.
| Name | Required | Description | Default |
|---|---|---|---|
| cadence | No | "pulse" (default), "hunter", or "deep". | pulse |
| limit | No | Max results per search query. Default 20. Max 30. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses 'Side effects: read-only network' and details a required tool chaining rule after scanning, which gives clear behavioral expectations for the AI 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 well-structured with clear sections (purpose, usage, siblings, side effects, tool chain). It is somewhat verbose but every sentence adds value, and the most important information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (multi-cadence scanning, post-processing requirements) and presence of an output schema, the description covers all necessary context: purpose, when/not to use, sibling differentiation, side effects, and mandatory chaining instructions.
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 clear descriptions for both parameters (cadence and limit). The description does not add substantial new meaning beyond the schema, but it does mention cadence values briefly. 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 clearly states the tool's purpose: 'Scan GitHub for adoption leads, competitive intel, repo health'. It uses a specific verb (scan) and resource (GitHub), and differentiates from siblings by naming delimit_sensor_github_issue and delimit_tracker_sync.
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 when-to-use guidance (at configured cadence: pulse, hunter, deep) and when-NOT-to-use (monitor one issue or pull issues), with references to alternative tools. The sibling contrast section further clarifies usage boundaries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_gov_evaluateA
Evaluate whether a proposed action triggers governance gating (Pro).
When to use: BEFORE performing any action whose policy class is uncertain — deploy, external PR submission, schema change, npm publish, force-push, force-update of a floating tag, account switch, ruleset edit. This is the canonical pre-action check the orchestrator and CI hooks call; the response is the gate verdict. When NOT to use: to read the policy rules themselves (use delimit_gov_policy), to materialize a tracked task from a "gating required" verdict (delimit_gov_new_task), or to check engine health (delimit_gov_health). Also: do not call after starting the action — the verdict is decision-time and a retroactive call has no gating effect.
Sibling contrast: delimit_gov_policy returns the rules; this evaluates a candidate action against them. delimit_external_pr_check handles the specialised external-PR duplicate path; this is the general action evaluator. delimit_gov_new_task is what you call AFTER this returns "gating required" to mint a tracked task.
Side effects: read-only on policy storage and gated by
require_premium — unlicensed callers receive a license payload
and no evaluation runs. On a licensed call, invokes
backends.governance_bridge.evaluate_trigger which loads the
active policy and returns a verdict; no task is created, no
ledger write, no evidence file. Inputs are coerced before the
backend call: a string context is wrapped as {"text": ...}
via _coerce_dict_arg; a malformed context short-circuits with
an error response.
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | Proposed action name to evaluate (e.g. "external_pr", "deploy"). Empty string returns an error. | |
| context | No | Optional dict with action-specific context (e.g. target repo, author). Strings are auto-coerced to {"text": ...} via _coerce_dict_arg. | |
| repo | No | Filesystem path to the repository. Default "." (cwd). | . |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully discloses side effects: read-only, gated by require_premium, no ledger writes or task creation. It also explains input coercion (_coerce_dict_arg) and short-circuit behavior for malformed context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (use, not use, sibling contrast, side effects). It is slightly long but every sentence adds value, and it is front-loaded with 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 presence of an output schema and full parameter descriptions, the description is very complete. It covers all essential aspects: purpose, timing, exclusions, side effects, license behavior, and input validation.
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 already covers all 3 parameters with descriptions (100% coverage), but the description adds meaningful details: auto-coercion of string context to dict, and that empty action returns an error. 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 evaluates whether a proposed action triggers governance gating, using a specific verb and resource. It distinguishes from sibling tools like delimit_gov_policy (returns rules) and delimit_gov_new_task (creates task after verdict).
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 lists when to use (before uncertain actions like deploy, PR submission) and when not to use (read policy, create tracked task, check health). It also warns against retroactive calls and provides sibling alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_gov_healthA
Report whether the governance kernel and policy are reachable.
When to use: at session start as part of the standard orchestrator ritual (delimit_revive + delimit_ledger_context + this + inbox daemon), or as a CI smoke check before a gated deploy. Confirms the governance backend is reachable and the policy kernel is loaded so downstream gates will fail-closed correctly rather than silently no-op. When NOT to use: to evaluate whether a specific candidate action requires gating (use delimit_gov_evaluate), to read the rules themselves (delimit_gov_policy), or to check per-repo task state (delimit_gov_status).
Sibling contrast: delimit_gov_status reports per-repo workload (open tasks, recent decisions); this reports the engine layer itself (kernel boot status, policy load, backend integration). If a deploy gate is failing, run this first to rule out "engine down" before debugging policy logic.
Side effects: read-only and not license-gated. Invokes backends.governance_bridge.health and wraps the response through _with_next_steps. No ledger write, no notification, no evidence file. Safe to call on every session start without rate concern.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | No | Filesystem path to the repository. Default "." (cwd). | . |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully discloses behavioral traits: read-only, no side effects, safe to call frequently, invokes internal health check, no ledger write or notifications. This compensates for missing annotations.
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 well-structured with clear sections (purpose, when to use, when not, sibling contrast, side effects). Every sentence is informative without redundancy, achieving conciseness without sacrificing 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 the tool's simplicity (one parameter, output schema exists), the description covers all needed aspects: purpose, usage context, behaviors, and constraints. No gaps remain for effective agent invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single optional parameter (repo). The description does not add additional semantics beyond the schema, which is acceptable but not value-added. 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 clearly states the tool reports whether governance kernel and policy are reachable, with specific verb and resource. It distinguishes from siblings by contrasting with delimit_gov_evaluate, delimit_gov_policy, and delimit_gov_status, making the purpose unambiguous.
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 provides when to use (session start ritual, CI smoke check) and when NOT to use (for specific gating, reading rules, per-repo task state), including alternative tools. This guides the agent effectively.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
_delimit_gov_implA
Unified governance entry point — dispatches to one of seven actions.
When to use: as the single MCP-registered governance surface (delimit_gov) when the caller wants to pick the action by name in one call rather than choosing a specific delimit_gov_* alias. When NOT to use: from internal code paths — prefer the specific alias (delimit_gov_health, delimit_gov_evaluate, etc.) for clarity and so docstrings and license gates show up at the right call site.
Sibling contrast: each delimit_gov_ wrapper above is a thin alias over this implementation; they exist so the action's docstring lives at the right name. This is the dispatch core.
Side effects: action="health" / "status" are read-only and not
gated. action="policy" / "evaluate" / "new_task" / "run" / "verify"
are gated by require_premium — unlicensed callers receive a
license payload and no backend call is made. Each gated action
routes to a distinct backends.governance_bridge function (health,
status, policy, evaluate_trigger, new_task, run_task, verify) and
the result is wrapped via _with_next_steps for orchestrator hints.
Errors are deterministic ({"error": ...}); inputs that cannot be
coerced (e.g. malformed context for evaluate) short-circuit
before the backend call.
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | Which governance operation to perform. One of "health", "status", "policy", "evaluate", "new_task", "run", "verify". Default "health". Other values return a deterministic error. | health |
| repo | No | Repository path. Default "." (cwd). | . |
| eval_action | No | The proposed action name to evaluate (used only when action="evaluate"). Empty string is rejected by the backend. | |
| context | No | Additional context (used only when action="evaluate"). Strings are auto-coerced to {"text": ...} via _coerce_dict_arg; dicts are passed through. None is allowed. | |
| title | No | Task title (used only when action="new_task"). Required for new_task. | |
| scope | No | Task scope (used only when action="new_task"). Required for new_task. | |
| risk_level | No | Risk level low/medium/high/critical (used only when action="new_task"). Default "medium". | medium |
| task_id | No | Task ID (used only when action="run" or action="verify"). Required for those actions. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
In absence of annotations, the description fully discloses side effects (read-only vs gated actions), error determinism, short-circuit behavior, and backend routing with premium licensing.
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?
Well-structured with clear sections, each sentence adds value, though length is justified by 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 8 parameters, 7 actions, no annotations, and presence of output schema, the description covers all aspects: action mapping, licensing, error behavior, and parameter usage conditions.
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 each parameter's usage condition already described; description adds grouping context but does not significantly enhance beyond 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 that this is a unified governance entry point dispatching to seven actions, and distinguishes itself from sibling aliases by explaining they are thin wrappers.
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 use (single MCP surface, pick action by name) and when not to use (internal code paths, prefer specific alias), with clear alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_gov_new_taskA
Create a governance-classed task with risk tier and scope (Pro).
When to use: immediately after delimit_gov_evaluate returns a "gating required" verdict and you need a tracked, audit-bearing record before performing the gated work. The three-step pipeline is delimit_gov_new_task -> delimit_gov_run -> delimit_gov_verify; this is step one. When NOT to use: for free-form work tracking (use delimit_ledger_add), to perform the work itself (delimit_gov_run), or to verify a completed task (delimit_gov_verify).
Sibling contrast: delimit_ledger_add tracks general work items with no policy gating; this creates a governance-classed task with a risk tier and scope record that the run/verify steps operate on. delimit_gov_evaluate returns a verdict only; this materializes that verdict into a tracked task.
Side effects: gated by require_premium — unlicensed callers receive a license payload, no task created. On a licensed call, invokes backends.governance_bridge.new_task which writes a new task record keyed by a generated task_id into the governance task store; the record carries title, scope, risk_level, repo path, and creation timestamp. The response is routed through _with_next_steps so the returned dict carries orchestrator hints.
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | Short task title. Required (empty string is rejected). | |
| scope | No | Description of what the task covers. Required. | |
| risk_level | No | One of "low", "medium", "high", "critical". Default "medium". Drives later approval requirements. | medium |
| repo | No | Filesystem path to the repository. Default "." (cwd). | . |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite no annotations, the description thoroughly explains side effects: licensing gating (require_premium), backend invocation, writing a task record with specific fields, and response routing. It also notes the record carries title, scope, risk_level, repo path, and timestamp. This is full disclosure 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 well-structured with clear sections (purpose, when to use, when not, side effects). It is longer than minimal but every sentence adds value, providing necessary context without 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 output schema exists and parameter descriptions are complete, the description covers the pipeline context, licensing, and side effects. It is sufficiently complete for an agent to understand the tool's role and effects, though the output schema details are not repeated (not required).
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 for the pipeline but does not significantly enhance parameter meaning beyond what the schema already describes (e.g., 'scope: Description of what the task covers'). It meets the baseline without exceeding.
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 begins with 'Create a governance-classed task with risk tier and scope (Pro).' This provides a specific verb (create), resource (governance-classed task), and key differentiating attributes (risk tier, scope). It distinguishes from siblings like delimit_ledger_add and delimit_gov_evaluate, earning a 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?
The description includes explicit 'When to use' and 'When NOT to use' sections, stating the exact condition (after delimit_gov_evaluate returns 'gating required') and listing alternatives for free-form work (delimit_ledger_add) and other pipeline steps (delimit_gov_run, delimit_gov_verify). This provides comprehensive guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_gov_policyA
Read the active governance policy for a repository (Pro).
When to use: when an agent or operator needs to inspect the live policy rules being enforced for a repo (risk thresholds, gates). When NOT to use: to mutate policy — this tool is read-only.
Sibling contrast: delimit_gov_evaluate runs an action against the policy; this returns the policy itself.
Side effects: read-only on policy storage; gated by require_premium (returns a license payload if the caller is unlicensed).
| Name | Required | Description | Default |
|---|---|---|---|
| repo | No | Filesystem path to the repository. Default "." (cwd). | . |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It explicitly states read-only, mentions side effects (read-only on policy storage, gated by require_premium returning license payload if unlicensed). This is comprehensive for behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very concise and well-structured with clear sections. Every sentence adds value: purpose, usage guidelines, sibling contrast, side effects. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (single parameter, read-only), the description covers purpose, usage, side effects, and contrasts with sibling. Output schema exists, so return values are covered. Complete for an agent to select 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%, so baseline is 3. The description adds context about 'repository (Pro)' but does not elaborate on the 'repo' parameter beyond what schema provides (filesystem path). Thus minimal added value.
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 'Read the active governance policy for a repository (Pro)' with a specific verb and resource. Contrasts with sibling delimit_gov_evaluate, differentiating that this returns the policy itself while the other runs an action against it.
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' and 'When NOT to use' sections guide the agent. Clearly states to not mutate policy, as the tool is read-only. Provides sibling contrast for alternative tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_gov_runA
Execute a previously created governance task under policy (Pro).
When to use: as step two of the three-step governance pipeline, after delimit_gov_new_task has minted a task_id and before delimit_gov_verify closes it out. Call when you are ready to perform the gated work and want the policy engine to record the execution. When NOT to use: to evaluate a candidate action (use delimit_gov_evaluate), to mint a task (delimit_gov_new_task), or to attest a completed task (delimit_gov_verify).
Sibling contrast: delimit_gov_new_task creates the task record but does no work; this records the execution against an existing task_id; delimit_gov_verify attests the run output afterwards. The full pipeline is new_task -> run -> verify.
Side effects: gated by require_premium — unlicensed callers receive a license payload, no execution recorded. On a licensed call, invokes backends.governance_bridge.run_task which appends a run record to the task identified by task_id (status transition, timestamp, repo). The response is routed through _with_next_steps so the returned dict carries orchestrator hints. Note this tool records the run event; it does NOT itself perform the underlying work — the caller is expected to do that.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | No | Identifier returned by delimit_gov_new_task. Required. | |
| repo | No | Filesystem path to the repository. Default "." (cwd). | . |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses side effects: gated by require_premium, appends a run record (status transition, timestamp, repo), and routes response through _with_next_steps for orchestrator hints. Also clarifies the tool does not perform the underlying work itself. With no annotations, the description carries full behavioral burden and meets it thoroughly.
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 well-structured with clear sections: purpose, when to use/when not, sibling contrast, and side effects. Every sentence adds necessary information without 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 role in a pipeline, 2 parameters, and an existing output schema, the description fully covers the context: pipeline step, licensing gate, side effects, and what the tool does not do. No gaps.
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 both parameters are described in the schema. The description adds context by clarifying that task_id is required despite not being marked as required in the schema, and explains the repo default. This adds 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?
The description states 'Execute a previously created governance task under policy (Pro)' with a clear verb and resource. It distinguishes itself from siblings like delimit_gov_new_task and delimit_gov_verify by specifying its role as step two of a three-step pipeline.
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 (after delimit_gov_new_task, before delimit_gov_verify) and when not to use (for evaluate, mint, or verify). Provides sibling contrast and the full pipeline sequence.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_gov_statusA
Report governance state (open tasks, decisions) for a repo.
When to use: when you need a snapshot of governance activity for a given repo — what tasks are open, what was recently decided. When NOT to use: for engine-level health (use delimit_gov_health) or to evaluate a new action (use delimit_gov_evaluate).
Sibling contrast: delimit_gov_health reports the engine; this reports the workload (per-repo task and decision state).
Side effects: read-only. Calls backends.governance_bridge.status.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | No | Filesystem path to the repository. Default "." (cwd). | . |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description alone must disclose behavior. It explicitly states 'Side effects: read-only' and names the backend call. This is clear and useful, though it does not describe output format or pagination.
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?
Very concise with front-loaded purpose, then clear usage sections, sibling contrast, and side effects. Every sentence adds value without 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 output schema exists, description need not explain returns. It covers purpose, usage, side effects, and sibling differentiation completely for a simple 1-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%; the input schema already defines the 'repo' parameter well. The description only reiterates 'for a given repo' without adding new semantics or constraints. 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 starts with 'Report governance state (open tasks, decisions) for a repo,' using a specific verb and resource. It clearly distinguishes itself from sibling delimit_gov_health by stating that this tool reports per-repo workload, while health reports the engine.
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' and 'When NOT to use' sections with direct alternatives (delimit_gov_health, delimit_gov_evaluate). Also provides sibling contrast in a dedicated line.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_gov_verifyA
Attest that a governance task completed under policy (Pro).
When to use: as step three (closing step) of the governance pipeline, immediately after delimit_gov_run has recorded the execution. This is the call that flips a task from "ran" to "verified" and produces the attestation entry used by downstream audit consumers. When NOT to use: to mint a task (delimit_gov_new_task) or to record the execution itself (delimit_gov_run). Verify is closing only — it does not run work and does not create tasks.
Sibling contrast: delimit_gov_new_task creates; delimit_gov_run records execution; this attests the outputs satisfy policy. Compared to delimit_evidence_verify (which checks an evidence file), this attests against the policy engine, not a static file.
Side effects: gated by require_premium — unlicensed callers receive a license payload, no verification recorded. On a licensed call, invokes backends.governance_bridge.verify which writes a verification record against the task_id (verdict, timestamp, repo, policy snapshot). The response is routed through _with_next_steps. Does not perform additional work — only validates and records the verdict.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | No | Identifier from delimit_gov_new_task / delimit_gov_run. Required. | |
| repo | No | Filesystem path to the repository. Default "." (cwd). | . |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description fully discloses side effects: require_premium gating, writes verification record (verdict, timestamp, repo, policy snapshot), and that it does not perform additional work. 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?
Well-structured with clear headings and front-loaded purpose. Slightly lengthy due to detailed side effects, but every sentence earns its place. No redundant 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 tool's role in a governance pipeline, the description covers prerequisites (pipeline step, license), side effects, and contrast with alternatives. Output schema exists, so no need to describe return 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 100%, so baseline is 3. Description does not add extra meaning beyond what the schema already provides for task_id and repo.
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?
Starts with a specific verb+resource: 'Attest that a governance task completed under policy'. Clearly distinguishes from siblings like delimit_gov_new_task, delimit_gov_run, and delimit_evidence_verify.
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' and 'When NOT to use' sections. Names alternatives and provides contrast with sibling tools, including a sibling outside the gov family (delimit_evidence_verify).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_handoff_acknowledgeA
Acknowledge a pending handoff receipt before starting work.
When to use: at session start when delimit_handoff_list shows a pending receipt — the receiving agent must acknowledge before starting work. When NOT to use: to create a handoff (use delimit_handoff_create) or list receipts (delimit_handoff_list).
Sibling contrast: delimit_handoff_create writes; delimit_handoff_list reads; this closes the loop on a specific receipt.
Side effects: writes an acknowledgement record via ai.handoff_receipts.acknowledge_receipt; flips the receipt status from pending to acknowledged.
| Name | Required | Description | Default |
|---|---|---|---|
| receipt_id | No | Receipt id to acknowledge. Required (empty string returns an error payload). | |
| notes | No | Optional notes from the receiving agent. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It explicitly states side effects: writes an acknowledgement record and flips receipt status from pending to acknowledged.
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?
Efficiently structured with clear sections (purpose, usage, side effects). No unnecessary words, every sentence 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?
Given the tool's complexity, the description covers purpose, usage context, parameters, side effects, and sibling differentiation. Output schema exists, so return values are 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?
Schema description coverage is 100%, so baseline 3. The description does not add significant extra meaning beyond what the input schema already provides for the two parameters.
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 ('Acknowledge') and the resource ('pending handoff receipt'), and distinguishes from siblings by noting that this tool closes the loop on a specific receipt, not create or 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?
Explicit 'When to use' and 'When NOT to use' sections with specific tool alternatives (delimit_handoff_create, delimit_handoff_list), plus a sibling contrast summary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_handoff_createA
Create a handoff receipt when transitioning between agents.
When to use: at the end of a session or before passing work to another model — documents what was done, what's pending, and what the next agent should do first. When NOT to use: for general session summary (use delimit_session_handoff) or to acknowledge a receipt (delimit_handoff_acknowledge).
Sibling contrast: delimit_session_handoff is venture-scoped summary; delimit_soul_capture is richer cross-model state; this is the structured per-agent handoff with explicit completed/ not-completed/blockers/scope fields.
Side effects: writes a new handoff receipt via ai.handoff_receipts.create_receipt. The receiving agent should later call delimit_handoff_acknowledge.
| Name | Required | Description | Default |
|---|---|---|---|
| task_description | No | What the task was (one line). | |
| completed | No | Comma-separated completed items. | |
| not_completed | No | Comma-separated items not completed (with reasons). | |
| assumptions | No | Comma-separated assumptions made. | |
| blockers | No | Comma-separated blockers encountered. | |
| files_modified | No | JSON list of {path, change_type, summary} dicts, or empty to auto-detect. | |
| in_scope | No | Comma-separated in-scope items. | |
| out_of_scope | No | Comma-separated explicitly excluded items. | |
| next_action | No | First thing the receiving agent should do. | |
| priority | No | P0 / P1 (default) / P2. | P1 |
| to_model | No | Target model name or "any" (default). | any |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses side effects ('writes a new handoff receipt via ai.handoff_receipts.create_receipt') and expected follow-up (receiving agent should call delimit_handoff_acknowledge). No annotations provided, so description carries full burden. Lacks specifics on authorization or impacts on other systems, but adequate for a creation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise, well-structured with clear sections (when to use, when not, sibling contrast, side effects). Every sentence 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?
Given 11 optional parameters, no annotations, and an output schema (not shown), the description covers usage, exclusions, side effects, and sibling distinctions well. Does not explain return values, but output schema covers that. Minor gap: no mention of default behavior when no params provided, but defaults are in 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 coverage is 100%, so the input schema already describes each parameter. The description only mentions fields like completed/not_completed/blockers/scope in passing, adding no new semantic depth. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Create a handoff receipt when transitioning between agents.' It also explicitly distinguishes from siblings (delimit_session_handoff, delimit_soul_capture) by highlighting structural differences.
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 when-to-use ('at the end of a session or before passing work to another model') and when-not-to-use ('use delimit_session_handoff for general summary, delimit_handoff_acknowledge to acknowledge'). Also contrasts with siblings via bullet points.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_handoff_listA
List session handoff receipts.
When to use: at session start to see what previous sessions left pending, or to audit acknowledged handoffs. When NOT to use: to create a handoff (use delimit_handoff_create) or acknowledge one (delimit_handoff_acknowledge).
Sibling contrast: delimit_handoff_create writes; delimit_handoff_acknowledge closes; this reads the receipt list.
Side effects: read-only. Calls ai.handoff_receipts.get_receipts.
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | "pending" (default), "acknowledged", or "all". | pending |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
States 'Side effects: read-only' and even mentions the underlying API call 'ai.handoff_receipts.get_receipts', which provides transparency beyond the lack of annotations.
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?
Very concise and well-structured: purpose first, then usage guidelines, sibling contrast, and side effects. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the context (output schema exists, parameters fully described in schema), the description covers all essential aspects: purpose, usage, side effects, and parameter guidance. No gaps.
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 parameter descriptions (status with default and possible values). Description adds no extra semantic 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?
The description clearly states the verb 'List' and the resource 'session handoff receipts'. It distinguishes itself from siblings by contrasting with create and acknowledge 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 mentions when to use (at session start to see pending handoffs, audit acknowledged ones) and when not to use (create or acknowledge), with specific sibling tool names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_handoff_preflightA
Validate cross-agent handoff invariants before switching coding agents (LED-1710).
When to use: before a session hands off to a different coding agent
(claude -> antigravity -> codex -> gemini) or an Auto-Phoenix revive,
to confirm the next agent will NOT inherit corrupted state — a
core.bare=true repo, a junk test@*/empty git identity, leaked
GIT_* env vars that misdirect git subprocesses, a stale
<gitdir>/index.lock, or a missing/stale ~/.delimit/.last_capture
stamp (next agent starts blind). When NOT to use: to capture or
restore session context (use delimit_soul_capture / delimit_revive —
this only INSPECTS), or for general repo health (delimit_repo_diagnose).
Sibling contrast: delimit_revive restores prior context (read+write); delimit_gov_health reports the policy-kernel layer; this is a narrow read-only pre-handoff gate over git + env + capture stamp returning a fail-closed verdict. Phase-1 VALIDATOR only: NOT wired into any live handoff path; auto-remediation is held for a later phase.
Side effects: READ-ONLY — inspects git config + the process env + the
.last_capture file via a hermetic git env. NO writes, env mutation,
git config changes, network, ledger, or notification; it cannot itself
corrupt the state it checks.
Verdict: ok=False if ANY critical check fails (fail-closed).
Critical: git_identity, not_bare. Warn: no_git_env_leak,
no_stale_index_lock, handoff_freshness. Each check is
{name, ok, severity, detail, remediation}.
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | No | Repository path to inspect. Empty resolves via the gateway resolver, then cwd. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but description fully discloses it is READ-ONLY, inspects specific files/env, has no side effects, and details the verdict structure and checks.
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?
Well-structured with clear sections, though slightly verbose. Every sentence adds value, but could be more 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?
Complete for a pre-flight tool: describes checks, verdict, side effects, and usage context. Output schema exists to provide further detail on return structure.
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 (project_path) with 100% schema coverage; description does not add extra 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?
Clearly states it validates cross-agent handoff invariants before switching coding agents. Distinguishes from siblings like delimit_revive, delimit_gov_health, and delimit_repo_diagnose.
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 provides 'When to use' and 'When NOT to use' sections with alternatives and context (Phase-1, not wired into live handoff).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_heartbeat_checkA
Walk the heartbeat directory and report which scheduled services are stale (LED-1412).
When to use: as part of the session-start ritual to surface silent
daemon staleness before it becomes a customer-visible incident. The
2026-05-15 incident — delimit-reddit-proxy.service inactive for 13
days, all reddit scans 429-failing silently, founder noticing only
via "3 day old posts" — is the failure mode this prevents. Each
scheduled task writes ~/.delimit/heartbeats/<service>.json after
every run; this tool walks the dir and classifies each service.
When NOT to use: for one-off liveness checks (just read the file
yourself) or for full-host metrics (delimit_obs_status). Phase 2
will add an external deadman ping for full-host outages —
heartbeats here are local-only.
Sibling contrast: delimit_obs_status reports composed runtime observability metrics; this reports per-service liveness based on last_run timestamps written by each daemon. delimit_gov_health reports the kernel layer.
Side effects: read-only on the heartbeat directory. No network, no write, no ledger, no notification.
Classification (most-severe-first):
parse_error: heartbeat file unreadable
failed: status='failed' in the record
stale: last_run older than service-specific threshold
degraded: status='degraded' in the record
never_seen: configured service has no heartbeat file yet
unknown_age: heartbeat exists but timestamp won't parse
ok: status='ok' AND last_run within threshold
Per-service thresholds default to sensible values (reddit/social-loop
2h, inbox 30min, daily timers 36h). Override via
<dir>/_thresholds.json — JSON map of {service_name: seconds}.
| Name | Required | Description | Default |
|---|---|---|---|
| heartbeat_dir | No | Override the heartbeat directory. Default: $DELIMIT_HEARTBEAT_DIR env var or ~/.delimit/heartbeats/. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses side effects ('read-only on the heartbeat directory. No network, no write, no ledger, no notification') and lists classification categories (parse_error, failed, stale, etc.). No annotations provided, but description fully covers behavioral traits.
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?
Well-structured with front-loaded purpose, clear sections for usage, side effects, and classification. Though verbose, it is efficiently organized and each section 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?
Complete given single parameter and presence of output schema. Covers all relevant aspects: input, behavior, classifications, thresholds, override mechanism, and future plans.
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% (one parameter with description). The description adds context about default directory lookup (env var, fallback path) that enriches the schema's description, earning above baseline.
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 'Walk the heartbeat directory and report which scheduled services are stale', specifying the verb (walk/report) and resource (heartbeat directory). It distinguishes from siblings like delimit_obs_status and delimit_gov_health by contrasting the scope of liveness vs observability vs system health.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly specifies when to use ('as part of the session-start ritual') and when not to use ('for one-off liveness checks' or 'full-host metrics'), naming alternative tools. Also mentions future phase for external deadman ping.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_helpA
Get help for a Delimit tool — purpose, parameters, examples.
When to use: when an agent or operator needs a quick reminder of a tool's interface, or wants the workflow overview. When NOT to use: for the full version/environment status (use delimit_version) or governance health (delimit_gov_health).
Sibling contrast: delimit_version reports server info; this returns per-tool descriptions from the TOOL_HELP table.
Side effects: read-only. Looks up an in-memory help table.
| Name | Required | Description | Default |
|---|---|---|---|
| tool_name | No | Tool name (e.g. "lint", "gov_health"). Empty returns the workflows overview. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description bears full burden. Clearly states side effect (read-only) and data source (in-memory help table). 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?
Five well-structured sentences covering purpose, when-to-use, when-not-to-use, sibling contrast, and side effects. No unnecessary 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?
Given the tool's simplicity (1 optional param, output schema present), description provides complete guidance: purpose, usage boundaries, side effects, and data source. Output schema handles return value description.
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 schema description already details the parameter (tool_name with examples and default behavior). Description adds no further parameter value, 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?
Description clearly states verb ('Get help') and resource ('Delimit tool'), with scope covered (purpose, parameters, examples). Distinguishes from siblings like delimit_version and delimit_gov_health.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use (quick reminder of tool interface or workflow overview) and when NOT to use (version/status, governance health). Provides sibling contrast for decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_impactA
Analyze downstream impact of an API change (informational only).
When to use: when assessing blast radius for a planned API change, by inspecting a dependency manifest for callers of the named API. When NOT to use: to make a gate decision (use delimit_lint or delimit_gov_evaluate for pass/fail) — this returns information.
Sibling contrast: delimit_lint returns pass/fail; this returns a blast-radius report.
Side effects: read-only. Calls backends.gateway_core.run_impact.
| Name | Required | Description | Default |
|---|---|---|---|
| api_name | Yes | The API name that changed. Required. | |
| dependency_file | No | Optional path to a dependency manifest file (package.json, requirements.txt, go.mod) to scan for callers. Default None = backend default path. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses read-only side effects and the backend call (backends.gateway_core.run_impact). Lacks mention of authentication or rate limits, but with no annotations, this is transparent enough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences efficiently covering purpose, usage, sibling contrast, and side effects. Front-loaded with key action. No superfluous 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 output schema exists, description sufficiently covers purpose, usage, and side effects. Sibling contrast and backend call reference enrich 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 covers both parameters at 100%. Description adds context about dependency manifest scanning and clarifies default behavior for dependency_file (backend default path).
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 tool analyzes downstream impact of an API change, is informational only, and distinguishes from siblings like delimit_lint which returns pass/fail.
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 (assessing blast radius for a planned API change) and when not to use (for gate decisions), with named alternatives (delimit_lint, delimit_gov_evaluate).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_inbox_daemonA
Control the inbox polling daemon for email governance (Pro).
When to use: at session start (per orchestrator session ritual) to ensure the daemon is up; or to stop/inspect it. When NOT to use: to read inbound items (use delimit_notify_inbox) or send notifications (delimit_notify).
Sibling contrast: delimit_notify_inbox reads; this controls the daemon process that fills the inbox.
Side effects: action="start" / "stop" mutate daemon process state. The daemon polls pro@delimit.ai every 5 minutes, classifies emails, forwards owner-action items, and handles draft approvals via email replies. Auto-posting is disabled — approved drafts are emailed for manual posting. Backing module is gateway-only and surfaces a graceful "not_available" payload when called from the npm bundle.
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | "start" (begin polling), "stop" (halt polling), "status" (default — show daemon state). | status |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description fully covers behavioral traits. It details side effects (start/stop mutate daemon state), daemon polling interval (5 minutes), classification, forwarding, draft approval handling, auto-posting being disabled, and gateway-only backing module behavior. This is comprehensive and exceeds minimal 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 well-structured with clear sections: purpose, usage guidelines, sibling contrast, side effects, and daemon behavior. Each sentence adds value, though the initial 'Pro' qualification is slightly redundant. Overall, it is concise 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?
Given the tool has one optional parameter, no annotations, and an output schema, the description provides complete context: purpose, usage guidelines, behavioral details, and daemon internals. The output schema exists and is not described, which is acceptable per rubric. The description fully compensates for lack of annotations.
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 parameter 'action' that has a clear description and default. The description mentions action values in the side effects section but does not add substantial meaning beyond the schema. Baseline of 3 is appropriate as schema already documents the parameter 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 clearly states 'Control the inbox polling daemon for email governance (Pro).' It specifies the verb 'control' and the resource 'inbox polling daemon.' It distinguishes from sibling 'delimit_notify_inbox' which reads inbox items, establishing a clear, distinct 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?
Explicit 'When to use' and 'When NOT to use' sections are provided. Use is advised at session start or to stop/inspect; explicitly warns against using for reading inbound items (directing to delimit_notify_inbox) or sending notifications (delimit_notify). This provides clear, actionable guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_initA
Initialize Delimit governance scaffolding for a project.
When to use: once per project, the first time you adopt Delimit — creates .delimit/policies.yml, ledger directory, and (optionally) a project .claude/settings.json with a reasonable allowlist. When NOT to use: to load an existing config (use delimit_project_config action="load") or to discover Delimit's capabilities for a project (delimit_scan).
Sibling contrast: delimit_project_config manages the config after init; delimit_scan inspects what could be governed; this is the one-time initializer.
Side effects: creates .delimit/policies.yml + ledger dir; chmod 755 on .delimit/, chmod 600 on .delimit/secrets/*; writes a project .claude/settings.json with an Edit/Write/Bash allowlist if missing. Pass no_permissions=True to skip the permission step.
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | No | Project root directory. Default "." (cwd). | . |
| preset | No | Policy preset — "strict", "default", "relaxed". | default |
| no_permissions | No | Skip filesystem permission auto-config (LED-269). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Lists side effects: creates .delimit/policies.yml, ledger dir, and optional settings.json, plus chmod operations. Also mentions no_permissions parameter to skip permission step. Since no annotations exist, the description fully covers behavioral traits.
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?
Well-structured with labeled sections, front-loaded key info, no wasted sentences.
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, usage, side effects, parameters, and sibling contrast. Output schema exists so return value explanation is optional. Complete for a one-time initialization 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 linking no_permissions to permission side effect, but doesn't add new meaning beyond schema descriptions for project_path and preset. Slight value uplift.
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 initializes Delimit governance scaffolding, lists files created, and distinguishes from siblings by explicitly naming delimit_project_config and delimit_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?
Provides explicit 'when to use' (once per project, first time) and 'when NOT to use' (load config or discover capabilities), along with alternative tool names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_intel_dataset_freezeA
Freeze a dataset to make it immutable for replay integrity.
When to use: when a dataset is about to be referenced as evidence or signed attestation, and you want to lock its content forever. When NOT to use: to delete a dataset (the registry is append-only) or to inspect what's frozen (use delimit_intel_dataset_list).
Sibling contrast: delimit_intel_dataset_list inventories; delimit_intel_dataset_register writes; this locks against further writes.
Side effects: writes a frozen marker to the registry via backends.tools_data.intel_dataset_freeze. Subsequent writes to this dataset id will be rejected.
| Name | Required | Description | Default |
|---|---|---|---|
| dataset_id | Yes | Dataset identifier from the registry. Required. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations are provided, the description fully discloses side effects: writes a frozen marker and causes subsequent writes to be rejected. While it could mention prerequisites like dataset existence, the provided behavior is clear and 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?
The description is concise with a clear structure: purpose, usage guidelines, sibling contrast, and side effects. Every sentence adds value and is 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 the tool has only one parameter and an output schema, the description covers purpose, usage, side effects, and sibling differentiation comprehensively. No missing information that would hinder correct 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 100% description coverage, so the baseline is 3. The description does not add extra meaning beyond the schema for the single parameter dataset_id, which is already well documented in 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 verb 'freeze' and the resource 'dataset', and explains the purpose of making it immutable for replay integrity. It also distinguishes from siblings by contrasting with delimit_intel_dataset_list and delimit_intel_dataset_register.
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 provides when-to-use (evidence or signed attestation) and when-not-to-use (delete or inspect), including alternative tool recommendations. This offers strong guidance for correct invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_intel_dataset_listA
List all datasets in the intel registry.
When to use: to inventory datasets currently registered for intel queries. When NOT to use: to register a new dataset (use delimit_intel_dataset_register) or to freeze one (delimit_intel_dataset_freeze).
Sibling contrast: delimit_intel_dataset_register writes; delimit_intel_dataset_freeze locks; this reads metadata.
Side effects: read-only. Calls backends.tools_data.intel_dataset_list.
Args: None.
Returns: Dict with the dataset registry and next_steps.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since annotations are absent, the description carries full responsibility. It states 'read-only' and mentions the specific backend call (backends.tools_data.intel_dataset_list). While it covers read-only behavior, it omits potential details like rate limits, authorization requirements, or edge cases. Still, it provides essential 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 well-structured with labeled sections (When to use, When NOT to use, Sibling contrast, Side effects, Args, Returns). Every sentence adds meaningful information without redundancy. It is front-loaded with the core purpose and is efficiently short.
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 all necessary aspects for a simple list tool: purpose, usage guidelines, behavioral constraints (read-only), parameter documentation, and return type ('Dict with the dataset registry and next_steps'). The presence of an output schema further reduces the need for additional return value details. It is fully 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?
The input schema has no parameters (0 params), and schema coverage is 100% (trivially). The description explicitly states 'Args: None.' This clarifies the lack of parameters, meeting the baseline expectation for zero-parameter tools.
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, specific verb+resource: 'List all datasets in the intel registry.' It distinguishes this tool from siblings by explicitly naming the two related tools (delimit_intel_dataset_register, delimit_intel_dataset_freeze) and contrasting their behaviors.
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 'When to use' and 'When NOT to use' sections, including concrete alternative tool names (register, freeze) and the exact context (inventory currently registered datasets). This gives the agent clear decision boundaries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_intel_dataset_registerA
Register a new dataset in the file-based intel registry.
When to use: at the start of an intel collection effort, to declare a named dataset that future ingest calls will write to. When NOT to use: to write data into an existing dataset (use delimit_intel_snapshot_ingest) or to inventory datasets (delimit_intel_dataset_list).
Sibling contrast: delimit_intel_dataset_list inventories; delimit_intel_dataset_freeze locks; this creates.
Side effects: writes a registry entry via backends.tools_data.intel_dataset_register. Coerces schema from a JSON string to a dict via _coerce_dict_arg.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Dataset name (key). Required. | |
| schema | No | Optional JSON schema as dict or JSON string. | |
| description | No | Human-readable description for the registry. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses side effects: 'writes a registry entry via backends.tools_data.intel_dataset_register' and schema coercion via '_coerce_dict_arg'. With no annotations, this adds good transparency. Minor omission: no mention of whether duplicate names are allowed or overwritten.
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: 4 sentences covering purpose, usage, contrasts, and side effects. Front-loaded with primary action. 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 purpose, usage, and side effects. Output schema exists, so return values need no explanation. Might benefit from mentioning prerequisite (e.g., registry existence) or error cases, but not essential for a simple registration 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 value only for the schema parameter (coercion detail). Not enough to raise to 4, but not lacking.
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 'Register a new dataset in the file-based intel registry.' It uses a specific verb (Register) and resource (dataset), and distinguishes from siblings by explicitly contrasting with list and freeze 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 provides when to use ('at the start of an intel collection effort') and when not to use ('to write data into an existing dataset' or 'to inventory datasets'), with clear alternatives (delimit_intel_snapshot_ingest, delimit_intel_dataset_list).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_intel_queryA
Search saved intel snapshots by keyword, date, or dataset.
When to use: to surface ingested intel matching a query, optionally scoped to one dataset. When NOT to use: to ingest new data (use delimit_intel_snapshot_ingest) or list datasets (delimit_intel_dataset_list).
Sibling contrast: delimit_intel_snapshot_ingest writes; this reads back filtered snapshots.
Side effects: read-only. Calls backends.tools_data.intel_query. Coerces parameters from JSON string to dict via _coerce_dict_arg.
| Name | Required | Description | Default |
|---|---|---|---|
| dataset_id | No | Optional dataset to scope the query to. | |
| query | No | Keyword search string. Empty = all. | |
| parameters | No | Optional dict with date_from, date_to, limit. Accepted as JSON string and coerced. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description discloses side effects ('read-only'), internal backend call, and parameter coercion. With no annotations provided, the description fully informs the agent about behavioral traits and implementation 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?
Structured with clear sections (purpose, when to use, when not, sibling contrast, side effects, implementation). Front-loaded, every sentence adds value, 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 presence of output schema and only 3 optional parameters, the description covers all essential aspects: usage boundaries, side effects, and internal mechanics. No gaps identified for this read-only search 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?
Input schema already describes all 3 parameters with 100% coverage. Description adds little beyond reinforcing the search dimensions (keyword, date, dataset). The coercion detail is minor; overall, description does not significantly enhance parameter semantics 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 'Search saved intel snapshots by keyword, date, or dataset.' It specifies the resource (intel snapshots) and action (search), and distinguishes from sibling tools like delimit_intel_snapshot_ingest.
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 provides when to use (to surface ingested intel matching a query, optionally scoped to one dataset) and when NOT to use (to ingest new data or list datasets), with specific sibling names. This leaves no ambiguity for the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_intel_snapshot_ingestA
Store a research snapshot with provenance in the intel store.
When to use: to ingest research / signal data with provenance (source, author) for later replay or attestation. When NOT to use: to register a dataset (use delimit_intel_dataset_register) or query existing snapshots (delimit_intel_query).
Sibling contrast: delimit_intel_dataset_register declares; delimit_intel_query reads; this writes new snapshots.
Side effects: writes a snapshot record via backends.tools_data.intel_snapshot_ingest. Coerces data and provenance from JSON strings to dicts via _coerce_dict_arg.
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | Snapshot data (JSON-serializable dict or JSON string). Required. | |
| provenance | No | Optional provenance metadata (source, author, etc.). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must carry full burden. Discloses side effects (writes snapshot record) and internal coercion behavior (_coerce_dict_arg). Could add more detail on idempotency or error handling, but current detail is above average.
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?
Structured into clear, labeled sections: purpose, when to use, when not to use, sibling contrast, side effects. No redundant sentences; 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?
With output schema present and only 2 parameters, description covers purpose, usage, side effects, and input behavior. Sufficient for agent to use correctly without additional clarification 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 coverage is 100%, but description adds value by explaining coercion from JSON strings to dicts, which is not in schema descriptions. Enhances understanding of flexibility for both parameters.
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 verb 'store'/'ingest' and resource 'research snapshot with provenance'. Explicitly contrasts with sibling tools: 'delimit_intel_dataset_register declares; delimit_intel_query reads; this writes new snapshots.'
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 'When to use' (ingest research/signal data) and 'When NOT to use' (register dataset or query), with direct references to alternative tools. Excellent guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_ledgerA
Query the append-only contract ledger (hash-chained JSONL).
When to use: to read or audit the cryptographically-chained contract ledger that records signed governance events. When NOT to use: for the project work ledger (use delimit_ledger_list / delimit_ledger_query) — the contract ledger is a different, hash-chained store.
Sibling contrast: delimit_ledger_list reads work items; delimit_audit reads audit logs; this reads the hash-chained contract ledger and can verify integrity.
Side effects: read-only. Calls backends.gateway_core.query_ledger.
| Name | Required | Description | Default |
|---|---|---|---|
| ledger_path | Yes | Path to the ledger JSONL file (e.g. .delimit/ledger/operations.jsonl). Required. | |
| api_name | No | Optional filter by API name. | |
| repository | No | Optional filter by repository. | |
| validate_chain | No | If True, verify the hash chain integrity in addition to filtering. Default False. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries full burden. It states 'read-only' and 'Calls backends.gateway_core.query_ledger,' which is good. It also mentions integrity verification. However, it does not cover potential rate limits or authorization requirements, 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?
Well-structured: main purpose first, then usage guidelines, sibling contrast, and side effects. No unnecessary words; every sentence 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?
Given the complexity and presence of an output schema, the description covers all needed aspects: purpose, usage boundaries, side effects, parameter hints, and integrity check. It is complete for a query tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline 3. The description adds little beyond the schema; it mentions 'filter by API name' and integrity verification related to validate_chain. The added value is minimal, hence a 3.
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 this tool queries the append-only contract ledger (hash-chained JSONL). It differentiates from sibling tools like delimit_ledger_list (reads work items) and delimit_audit (reads audit logs), making its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use (read/audit contract ledger) and when NOT to use (project work ledger, use delimit_ledger_list/query). Also provides sibling contrast, helping the agent choose correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_ledger_addA
Add a new item to a project's ledger.
When to use: to capture work that should outlive the current session — tasks, bugs, features, decisions, strategy items. When NOT to use: for governance-classed work (use delimit_gov_new_task) or quick conversation memory (delimit_memory_store).
Sibling contrast: delimit_ledger_update changes; delimit_ledger_done closes; this creates.
Side effects: writes a new ledger entry via ai.ledger_manager.add_item. Coerces tags / acceptance_criteria / tools_needed from comma strings to lists via _coerce_list_arg.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | What needs to be done. Required. | |
| venture | No | Project name or path. Empty = auto-detect from cwd. | |
| ledger | No | "ops" (tasks, bugs, features) or "strategy" (decisions, direction). | ops |
| item_type | No | task, fix, feat, strategy, consensus. | task |
| priority | No | P0 (urgent), P1 (important), P2 (nice to have). | P1 |
| description | No | Details. | |
| source | No | Where this came from (session, consensus, focus-group, etc). | session |
| tags | No | Labels/tags (e.g. ["deploy-ready", "ship"] or "deploy-ready,ship"). | |
| acceptance_criteria | No | List of testable "done when" conditions (e.g. "tests pass", "coverage > 80%"). | |
| context | No | Background info an AI agent needs to work on this item. | |
| tools_needed | No | Delimit tools needed (e.g. "delimit_lint", "delimit_test_coverage"). | |
| estimated_complexity | No | small, medium, or large. | |
| worked_by | No | Which AI model is working on this. Auto-detected if empty. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses side effects: writes via ai.ledger_manager.add_item and coerces comma strings to lists for certain parameters. This goes beyond basic operation description, though it omits details like error behavior or idempotency. Still, it provides meaningful 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 well-structured with clear sections (action, use cases, sibling contrast, side effects) and is front-loaded with the primary action. It is not overly verbose, though it could be slightly more concise. Overall, it balances completeness and brevity effectively.
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 (13 parameters) and the presence of an output schema (context signals indicate has output schema: true), the description does not need to detail return values. It covers purpose, usage guidelines, and behavioral traits. It lacks details on error handling or prerequisites, but it is sufficient for the agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers 100% of parameters, so baseline is 3. The description adds value by noting that tags, acceptance_criteria, and tools_needed are coerced from comma strings to lists, but it does not explain other parameters beyond schema descriptions. This is adequate but not exceptional.
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: 'Add a new item to a project's ledger.' It further distinguishes from sibling tools by specifying when to use (capture work that outlives the session) and when not to use (governance-classed work or quick memory). It explicitly contrasts with delimit_ledger_update and delimit_ledger_done, providing a clear identity.
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 'When to use' and 'When NOT to use' sections, naming specific alternatives (delimit_gov_new_task, delimit_memory_store). It also gives a sibling contrast explaining how this create operation differs from update and close. This gives the agent precise guidance on tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_ledger_auto_cancel_staleA
Auto-archive open ledger items dormant past the stale-TTL threshold.
When to use: as nightly automation / scripted cleanup to retire items that have gone quiet past a strict threshold (default 60 days). When NOT to use: to merely surface stale candidates without applying (use delimit_ledger_groom which is propose-only and uses a softer 30-day default), to inspect ledger health (use delimit_ledger_health), or to auto-close items mirrored from external repos (delimit_ledger_auto_close_external).
Sibling contrast: delimit_ledger_groom proposes archives with a softer threshold and never applies; delimit_ledger_auto_close_external targets externally-mirrored items; delimit_ledger_bulk is the underlying bulk-action surface; this composes the stale-detector with bulk_action(archive) on a stricter dormancy threshold.
Side effects: with dry_run=False, archives matching items via bulk_action(archive). Items are never hard-deleted — the JSONL append-only log retains the full record. With dry_run=True (default), returns the plan only.
LED-1145 Phase 2 #4.
| Name | Required | Description | Default |
|---|---|---|---|
| venture | No | Project name or path. Auto-detects if empty. | |
| threshold_days | No | dormancy threshold in days. 0 = read default (60 from STALE_TTL_DEFAULT_DAYS or DELIMIT_STALE_TTL_DAYS env). Pass an int to override. | |
| dry_run | No | True (default) returns the plan; False applies via bulk_action(archive). | |
| max_items | No | cap items processed per call. When the candidate list exceeds this, response includes truncated=True so the caller can run again to drain. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Given no annotations, the description fully compensates by detailing side effects: with dry_run=False archives items via bulk_action(archive), never hard-deletes (JSONL log retains record), and dry_run=True returns plan only. This covers safety, idempotency, and data retention 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 well-structured with clear sections and front-loaded purpose. While thorough, it is slightly longer than necessary; a bit more compaction could improve conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 4 parameters, an output schema, and no annotations, the description covers usage, side effects, sibling contrasts, and default behaviors comprehensively. Nothing critical is missing for an automation 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 the schema already documents all 4 parameters. The description adds minimal extra value beyond the schema, mainly clarifying default threshold source and dry_run behavior. 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 opens with a clear verb+resource statement: 'Auto-archive open ledger items dormant past the stale-TTL threshold.' It then differentiates from siblings like delimit_ledger_groom, delimit_ledger_auto_close_external, and delimit_ledger_bulk, making the tool's specific role unmistakable.
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' and 'When NOT to use' sections highlight appropriate scenarios, such as nightly automation, and warn against using it for inspection or external repo items. Sibling contrast further clarifies the distinction between propose-only, close-external, and raw bulk action tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_ledger_auto_close_externalA
Auto-close ledger items whose linked GitHub issue/PR already resolved.
When to use: as periodic maintenance to keep the ledger in sync with external reality — LEDs whose tracked GitHub issue/PR is closed/merged should not stay open. When NOT to use: to close one item by hand (use delimit_ledger_done) or to read external state (delimit_resource_get).
Sibling contrast: delimit_ledger_done is per-item; this auto-detects across many items.
Side effects: when dry_run=False, marks/archives via delimit_ledger_bulk under the hood. Default dry_run=True returns a plan only. Detection scans description/context/last_note/tags for github links / shorthand / gh: tag form.
Detection scans description / context / last_note / tags for:
https://github.com///(issues|pull)/
/# (short form)
gh:// (explicit tag form)
Action map (per LED-1146 deliberation):
PR with merged=true → mark_done with merge SHA in note
issue/PR closed with state_reason="completed" → mark_done with closed_at
issue/PR closed with state_reason="not_planned" or no reason → archive
state="open" → leave alone
gh API error / 404 → leave alone, recorded in
errors
Implementation re-uses bulk_action() under the hood; nothing new on the write path. dry_run=True (default) returns a plan; dry_run=False applies.
| Name | Required | Description | Default |
|---|---|---|---|
| venture | No | project name or path. Auto-detects if empty. | |
| dry_run | No | True (default) returns a plan without writing. | |
| max_items | No | hard cap on items processed in one call (default 200). When the candidate set exceeds this, the response is `truncated=True`. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully discloses side effects (marks/archives on dry_run=False), default behavior (dry_run=True returns plan), detection methods, action mapping per resolution state, error handling (API errors leave alone), and implementation reuse. 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?
Well-structured with sections (when to use, side effects, detection, action map). Front-loaded with purpose. However, it is somewhat verbose; some details could be moved to output schema or shortened.
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 complexity (3 params, output schema exists, no annotations), the description is thorough: covers detection logic, action mapping, side effects, defaults, and error handling. Nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds behavioral context for dry_run (default true, returns plan vs applies) and max_items (hard cap, truncation flag), which goes beyond the schema definitions. venture is explained briefly but clearly.
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: auto-close ledger items whose linked GitHub issue/PR is resolved. It uses specific verbs and resources, and differentiates from siblings like delimit_ledger_done (per-item) and delimit_resource_get (read external state).
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 (periodic maintenance) and when not to (manual close, read external state). Names alternative tools for those cases, providing clear guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_ledger_bulkA
Apply one action to many ledger items in a single call (LED-1145 Phase 1 PR-B).
When to use: after delimit_ledger_groom or another tool surfaces a list of item ids that should all receive the same change. When NOT to use: for a single item (use delimit_ledger_update or delimit_ledger_done).
Sibling contrast: delimit_ledger_update is one item; delimit_ledger_groom proposes; this applies bulk.
Side effects: when dry_run=False, writes status/priority/tag changes via the ledger manager. Per-item failures don't block the batch. Default dry_run=True returns what would change without writing — callers MUST explicitly pass dry_run=False to apply.
| Name | Required | Description | Default |
|---|---|---|---|
| item_ids | Yes | comma-separated LED ids (e.g. "LED-915,LED-916,LED-918") or a JSON array of strings. | |
| action | Yes | one of the actions above. | |
| dry_run | No | True (default) returns `would_change`; False applies and returns `changed`. | |
| note | No | optional note attached to every successful update event. | |
| new_status | No | required when action="set_status". | |
| new_priority | No | required when action="set_priority". | |
| tag | No | required when action="add_tag". | |
| venture | No | project name or path. Auto-detects if empty. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite no annotations, the description thoroughly explains side effects: writes status/priority/tag changes when dry_run=False, per-item failures don't block batch, default dry_run=True returns would_change, and callers must explicitly pass dry_run=False to apply.
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 compact, well-structured with clear sections (When to use, When NOT, Sibling contrast, Side effects), and front-loads the core purpose without unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers usage, dry_run behavior, batch resilience, and output format (would_change vs changed). Minor gap: the 'action' parameter values are referenced as 'the actions above' but no list is provided, slightly reducing 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 100%, so parameters are already well-documented in the schema. The description adds little per-parameter detail beyond reinforcing dry_run and action semantics, warranting the baseline score.
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 'Apply', the resource 'ledger items', and the scope 'bulk', distinguishing it from siblings like delimit_ledger_update (single item) and delimit_ledger_groom (proposes).
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' and 'When NOT to use' sections, with alternatives named (delimit_ledger_update, delimit_ledger_done), providing clear context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_ledger_contextA
Quick summary of what's open in the ledger (top 5 by priority).
When to use: at session start as part of the orchestrator session ritual, to see the highest-priority open items. When NOT to use: for the full list (use delimit_ledger_list) or to fetch a specific item (delimit_ledger_query).
Sibling contrast: delimit_ledger_list returns the full list; this returns a top-5 summary.
Side effects: read-only. Calls ai.ledger_manager.get_context.
| Name | Required | Description | Default |
|---|---|---|---|
| venture | No | Project name or path. Empty = auto-detect from cwd. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It declares 'Side effects: read-only' and 'Calls ai.ledger_manager.get_context', which is useful. However, it doesn't detail error conditions or the exact return structure (though output schema exists). A 4 is appropriate for adding good 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?
The description is concise, well-structured, and front-loaded with the core purpose. Every sentence adds value, including separate sections for usage guidelines, sibling contrast, and side effects. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one optional parameter, clear purpose), the description covers purpose, usage, exclusions, side effects, and implementation. It is complete enough for an agent to know when and how to use it. Minor omission: no mention of error handling or empty state, but overall sufficient.
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 input schema already fully describes the single optional parameter `venture` with default and auto-detection. The description does not add additional meaning or constraints beyond what the schema provides, so a baseline 3 is correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns a 'Quick summary of what's open in the ledger (top 5 by priority)', providing a specific verb, resource, and scope. It also distinguishes from siblings by contrasting with delimit_ledger_list (full list) and delimit_ledger_query (specific item).
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 ('at session start as part of the orchestrator session ritual') and when NOT to use ('for the full list... or to fetch a specific item'), including alternative sibling tools. This provides excellent guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_ledger_doneA
Mark a ledger item as done (convenience wrapper).
When to use: to close out a ledger item with one call instead of using delimit_ledger_update with status="done". When NOT to use: to change other fields (use delimit_ledger_update) or create new items (delimit_ledger_add).
Sibling contrast: delimit_ledger_update changes any field; this is the close-out shortcut.
Side effects: writes status="done" + optional note via ai.ledger_manager.update_item. LED-1408 Phase 1: when commit_sha or pr_url is provided (or a PR URL is detected in the note), attaches a ship_proof block to the event with verified=True. Future audits use this flag to distinguish trustworthy-done from marked-done-but-never-verified. Phase 2 will tighten enforcement.
| Name | Required | Description | Default |
|---|---|---|---|
| item_id | Yes | Ledger item id (e.g. "LED-001"). Required. | |
| note | No | Optional completion note. If the note contains a GitHub PR URL, it will be auto-extracted as ship proof. | |
| venture | No | Project name or path. Empty = auto-detect. | |
| commit_sha | No | LED-1408: optional merge-commit SHA proving the fix shipped. Recorded as ship_proof on the event; verified=True flag set on the item. | |
| pr_url | No | LED-1408: optional GitHub PR URL proving the fix shipped. Parsed into pr_owner/pr_repo/pr_number; verified=True flag set on the item. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It clearly outlines side effects: writes status='done', attaches ship_proof block with verified=True when commit_sha or pr_url is provided, and mentions future Phase 2 enforcement. This goes beyond basic functionality and discloses important behavioral traits.
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 well-structured with clear sections ('When to use', 'When NOT to use', 'Sibling contrast', 'Side effects'). Every sentence adds value, and there is no redundancy. It is front-loaded with 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 a clear purpose, explicit guidelines, detailed parameter semantics, and an output schema (not shown but flagged), the description provides sufficient context for an agent to correctly select and invoke the tool. It covers all necessary aspects without gaps.
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 the LED-1408 feature: auto-extraction of PR URLs from notes, and the meaning of commit_sha/pr_url as ship proof. This provides context that the schema descriptions hint at but do not fully elaborate, making it easier for the agent to understand parameters' purpose.
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: 'Mark a ledger item as done (convenience wrapper).' It uses a specific verb ('mark as done') and resource ('ledger item'). It also distinguishes itself from sibling tools by explaining it is a shortcut for delimit_ledger_update with status='done'.
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 on when to use ('to close out a ledger item with one call') and when NOT to use ('to change other fields' or 'create new items'). It also mentions sibling contrast with delimit_ledger_update. This is comprehensive and helps the agent make correct decisions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_ledger_groomA
Read-only grooming proposal — flags stale / duplicate / garbage items.
When to use: as a periodic review tool to surface items that likely should be archived (stale, duplicate, garbage venture). When NOT to use: to apply the changes — use delimit_ledger_bulk after reviewing the proposal.
Sibling contrast: delimit_ledger_bulk applies; delimit_ledger_health composes this with other checks; this is the read-only proposer.
Side effects: read-only on the ledger. Returns proposals only — risky operations (mass-cancel, dedup-merge) MUST go through delimit_ledger_bulk after founder review. Each proposal includes a copy-pasteable ready_to_apply invocation.
LED-1145 Phase 2 #2. Risky operations (mass-cancellation, dedup-merge)
must NOT be a single atomic action — this tool only PROPOSES; the
founder applies via delimit_ledger_bulk after review. Each proposal
in the response includes a copy-pasteable ready_to_apply invocation.
| Name | Required | Description | Default |
|---|---|---|---|
| venture | No | project name or path. Auto-detects if empty. | |
| stale_days | No | threshold for stale_open detector (default 30). | |
| dup_min_count | No | minimum group size for duplicate_titles (default 3). | |
| max_per_category | No | cap per category in the response (default 50). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Clearly declares read-only nature and return of proposals. Warns about risky operations and mentions that each proposal includes a copy-pasteable ready_to_apply invocation. Could be slightly more specific about what constitutes stale/duplicate/garbage, but overall good 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?
Description is well-structured with clear sections and front-loaded with main purpose. However, it repeats the risky operations warning twice, which slightly reduces conciseness. Otherwise efficient use of sentences.
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 annotations and rich schema, description provides complete context: purpose, usage, side effects, sibling contrast, and even references a project ticket. It fully explains the tool's role in the ledger family and the review-then-apply workflow.
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?
Input schema covers all 4 parameters with descriptions (100% coverage). Description adds minimal extra value beyond schema, only noting that venture auto-detects. Baseline 3 is appropriate since schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it is a read-only grooming proposal that flags stale/duplicate/garbage items. It distinguishes from siblings delimit_ledger_bulk (applies changes) and delimit_ledger_health (composes checks). Verb 'proposes' and resource 'ledger items' are specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use (periodic review) and when not to use (to apply changes). Provides alternative tool 'delimit_ledger_bulk' and warns that risky operations must go through bulk after review. Clear guidance on appropriate usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_ledger_healthA
One-shot ledger health check — totals + P0 + stale + duplicates + garbage.
When to use: at session start (orchestrator session ritual) or nightly review to get a traffic-light verdict on the ledger. When NOT to use: to apply changes (use delimit_ledger_bulk) or inspect a single item (delimit_ledger_query).
Sibling contrast: delimit_ledger_groom proposes archives; delimit_ledger_context returns top-5 open; this composes them into a one-shot health verdict with pre-formatted next_actions.
Side effects: read-only. Internally calls list_items + groom + P0 quota helpers.
LED-1145 capstone — closes the loop on the entire ledger-tooling refactor. Designed for nightly/weekly review or session-start status snapshot. Returns:
totals (unresolved / open / in_progress / blocked)
p0 (count vs quota + health)
stale (count >stale_days + health)
duplicates (group count + total items + health)
garbage_venture (count + health)
overall_health (worst-of: green / yellow / red)
next_actions: pre-formatted list of {reason, tool, args, follow_up}
All Phase 1+2 tools are referenced in the suggested actions, so the response is self-contained for an AI agent that wants to act on it.
| Name | Required | Description | Default |
|---|---|---|---|
| venture | No | project name or path. Auto-detects if empty. | |
| stale_days | No | stale-detector threshold passed to groom_proposal. | |
| dup_min_count | No | duplicate-detector threshold passed to groom_proposal. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It declares read-only, details internal calls (list_items, groom, P0 quota helpers), and comprehensively describes the return structure, including overall_health and next_actions.
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 well-structured with a succinct summary, usage guidelines, sibling contrast, and detailed return fields. It is somewhat lengthy but each sentence adds value. Slightly verbose but effective.
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 complexity (3 parameters, output schema exists), the description covers the return values comprehensively—totals, P0, stale, duplicates, garbage_venture, overall_health, and next_actions. It provides a complete picture for an AI 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 adds context: venture auto-detects, stale_days and dup_min_count are thresholds passed to groom_proposal. This adds meaning 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 'One-shot ledger health check — totals + P0 + stale + duplicates + garbage,' clearly specifying the verb and resource. It contrasts with sibling tools like delimit_ledger_groom and delimit_ledger_context, making the purpose unambiguous.
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 'at session start (orchestrator session ritual) or nightly review' and not for changes (use delimit_ledger_bulk) or single item inspection (delimit_ledger_query). It also contrasts with sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_ledger_linkA
Create a typed relationship between two ledger items.
When to use: to track dependencies and structure (blocks, parent/child, duplicates) between ledger items. When NOT to use: to read existing links (use delimit_ledger_links) or update other fields (delimit_ledger_update).
Sibling contrast: delimit_ledger_links reads; delimit_ledger_update changes simple fields; this writes a relationship.
Side effects: writes the link via ai.ledger_manager.link_items. "blocks" / "blocked_by" auto-create the reverse direction so both items see the relationship.
| Name | Required | Description | Default |
|---|---|---|---|
| from_id | Yes | Source item id (e.g. "LED-025"). Required. | |
| to_id | Yes | Target item id (e.g. "STR-005"). Required. | |
| link_type | No | One of "blocks" (default), "blocked_by", "parent", "child", "relates_to", "duplicates". | blocks |
| note | No | Optional note explaining the relationship. | |
| venture | No | Project name/path. Empty = auto-detect. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 side effects: 'writes the link via ai.ledger_manager.link_items' and auto-creation of reverse direction for 'blocks'/'blocked_by'. Could mention confirmation or return value, but output schema exists.
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?
Every sentence is purposeful: main action, usage guidance, side effects. No redundant or missing information. Efficiently 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 presence of an output schema and full parameter schema coverage, the description completes the picture with usage guidelines and side effects. No gaps.
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 description adds value with examples (e.g., 'LED-025'), clarification of link_type values, and auto-detection for venture. No contradictions or omissions.
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 'Create a typed relationship between two ledger items' and specifies link types like blocks, parent/child, duplicates. It clearly distinguishes from siblings (delimit_ledger_links reads, delimit_ledger_update changes fields).
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 provides 'When to use' and 'When NOT to use' sections with alternative tools. Also includes sibling contrast, making it easy for the agent to choose correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_ledger_linksA
List relationships / dependencies for a ledger item.
When to use: to inspect what an item blocks, what it depends on, its parent/child, related items, and duplicates. When NOT to use: to add a link (use delimit_ledger_link) or update fields (delimit_ledger_update).
Sibling contrast: delimit_ledger_link adds links; this reads existing ones.
Side effects: read-only. Calls ai.ledger_manager.get_links.
| Name | Required | Description | Default |
|---|---|---|---|
| item_id | Yes | Item id to look up links for. Required. | |
| venture | No | Project name/path. Empty = auto-detect. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It explicitly states 'Side effects: read-only' and the underlying call ('Calls ai.ledger_manager.get_links'), which is good. However, it could elaborate on error handling or pagination, though the output schema likely covers return values.
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 concisely structured with sections, front-loaded with the purpose, and every sentence adds value. No fluff or unnecessary repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with 2 parameters and an output schema, the description is fairly complete: it covers purpose, usage, side effects, and sibling contrast. Minor gap: it does not mention behavior when the item_id is missing or invalid, but that is a minor omission.
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 baseline is 3. The description restates parameter meanings (e.g., 'Item id to look up links for') without adding significant new information 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 purpose as 'List relationships / dependencies for a ledger item.' It uses a specific verb ('list') and resource, and distinguishes itself from siblings like 'delimit_ledger_link' (adds links) and 'delimit_ledger_update' (updates fields).
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' and 'When NOT to use' sections are provided, with clear examples of what to inspect (blocks, depends, parent/child, related, duplicates) and alternatives (use delimit_ledger_link to add, delimit_ledger_update to update).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_ledger_listA
List ledger items with rich filters, sort, and pagination (LED-1145).
When to use: to query a venture's ledger with filters — by status, priority, tags, text, time window, or external link. When NOT to use: for a top-N summary (use delimit_ledger_context) or to fetch a single item (delimit_ledger_query).
Sibling contrast: delimit_ledger_context is the top-5 summary; delimit_ledger_query fetches one; this is the powerful list call.
Side effects: read-only. Calls ai.ledger_manager.list_items.
Single-value status / priority are kept for back-compat.
| Name | Required | Description | Default |
|---|---|---|---|
| venture | No | Project name/path. Empty = auto-detect. | |
| ledger | No | "ops", "strategy", or "both" (default). | both |
| status | No | Single-value status filter (back-compat). | |
| priority | No | Single-value priority filter (back-compat). | |
| status_in | No | Comma-separated statuses (e.g. "open,blocked"). | |
| priority_in | No | Comma-separated priorities (e.g. "P0,P1"). | |
| tags_contains_all | No | Comma-separated tags; item must contain ALL. | |
| text | No | Case-insensitive substring match on title + description. | |
| linked_external_id | No | Substring match in description / tags / context (github URL, Linear id, Discord thread). | |
| created_before | No | ISO-8601 timestamp upper bound on creation time. If omitted, no upper bound is applied. | |
| created_after | No | ISO-8601 timestamp lower bound on creation time. If omitted, no lower bound is applied. | |
| updated_before | No | ISO-8601 timestamp upper bound on last-update time. If omitted, no upper bound is applied. | |
| updated_after | No | ISO-8601 timestamp lower bound on last-update time. If omitted, no lower bound is applied. | |
| sort | No | "updated_at" (default), "created_at", or "priority". | updated_at |
| order | No | "asc" or "desc" (default). | desc |
| fields | No | Response projection. "" / "*" = full; "slim" = subset; CSV = those fields only. Unknown names ERROR. | |
| limit | No | Page size. Default 20. | |
| cursor | No | Opaque pagination token from prior next_cursor. Becomes invalid if filters change between calls. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description bears full burden for behavioral disclosure. It states 'Side effects: read-only' and references the internal call (ai.ledger_manager.list_items). While it mentions back-compat for single-value filters, it lacks details on pagination behavior or rate limits. Nonetheless, it is largely transparent about the tool's non-destructive 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?
The description is concise and well-structured with clear sections ('When to use', 'When NOT to use', 'Sibling contrast', 'Side effects'). Every sentence adds value without redundancy, achieving high efficiency.
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 (18 parameters, many optional) and the presence of an output schema, the description adequately covers the core purpose, filtering richness, and sibling relationships. It could mention pagination cursor behavior, but overall it provides sufficient context for an agent to make an informed selection.
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%, setting a baseline of 3. The description adds value by summarizing filter capabilities (by status, priority, tags, text, time window, external link) and noting that single-value status/priority are kept for back-compat, improving 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 'List ledger items with rich filters, sort, and pagination', providing a specific verb and resource. It distinguishes from siblings by explicitly naming alternatives (delimit_ledger_context for top-5 summary, delimit_ledger_query for single item), establishing a unique scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes explicit 'When to use' with examples of filters (status, priority, tags, etc.) and 'When NOT to use' with alternative tool names. This provides clear guidance on appropriate contexts, satisfying the dimension.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_ledger_proposeA
Propose new ledger items based on signals, completed work, and gaps.
When to use: at the end of a build loop or when the queue is empty, to suggest 3-5 next items with rationale. When NOT to use: to add a known item (use delimit_ledger_add) or list current items (delimit_ledger_list).
Sibling contrast: delimit_ledger_add commits chosen items; this proposes candidates.
Side effects: read-only analysis (does NOT auto-create ledger items). The caller decides which proposals to commit.
| Name | Required | Description | Default |
|---|---|---|---|
| venture | No | Focus on a specific venture. Empty = auto-detect. | |
| focus | No | Optional area filter — "outreach", "engineering", "security", etc. | |
| max_items | No | Maximum proposals. Default 5. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Explicitly declares side effects: 'read-only analysis (does NOT auto-create ledger items)', making the non-mutating behavior 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?
Well-structured with separate sections for purpose, when to use/not use, sibling contrast, and side effects. Every sentence is informative and 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 an output schema exists, description covers when to use, side effects, and differentiators. Could be more specific about what 'signals, completed work, and gaps' means, but otherwise complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. Description mentions 'suggest 3-5 next items' which loosely aligns with max_items default, but adds no additional semantic detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states verb ('Propose'), resource ('new ledger items'), and context ('based on signals, completed work, and gaps'). Distinguishes from sibling delimit_ledger_add by noting that this proposes while the sibling commits.
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 ('at the end of a build loop or when the queue is empty') and when NOT to use ('to add a known item' or 'list current items'), with clear sibling alternatives named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_ledger_queryA
Ask natural-language questions about the ledger (ChatOps 2.0).
When to use: when an operator wants a free-form answer ("what shipped this week?", "what's blocked?", "show all P0s") rather than a structured filter query. When NOT to use: for structured listing (use delimit_ledger_list) or top-N summary (delimit_ledger_context).
Sibling contrast: delimit_ledger_list takes structured filters; this maps natural language to those filters internally.
Side effects: read-only. Internally calls list / context queries.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Natural-language question (e.g. "what's blocked?", "search for dashboard"). Required. | |
| venture | No | Project name/path. Empty = auto-detect. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Declares 'Side effects: read-only' and notes internal calls to list/context queries. While no annotations exist, the description covers the key behavioral trait of being non-destructive. Could further detail error handling or latency.
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?
Well-structured with a one-line summary followed by usage guidance, sibling contrast, and side effects. Every sentence adds value, no 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?
Covers purpose, usage, alternatives, and read-only nature. With an output schema present, the description is adequate for an agent to decide when to invoke the tool. Minor gap: no mention of answer format, but schema handles that.
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 description adds minimal parameter meaning beyond the schema. The tool-level context ('Ask natural-language questions') provides some value but doesn't elaborate on parameter usage.
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 'Ask natural-language questions about the ledger' and contrasts with sibling tools delimit_ledger_list and delimit_ledger_context, making the purpose clear and distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit 'When to use' and 'When NOT to use' sections, directing operators to alternative tools for structured queries and top-N summaries, with sibling contrast.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_ledger_updateA
Update any field on an existing ledger item.
When to use: to change state on a ledger item (status, priority, assignee, links, labels). Pass only the fields you want to change. When NOT to use: to create a new item (use delimit_ledger_add) or to mark one done (delimit_ledger_done is the convenience wrapper).
Sibling contrast: delimit_ledger_add creates; delimit_ledger_done closes; this is the general-purpose updater.
Side effects: writes to the ledger via ai.ledger_manager. Coerces string list inputs (labels) through _coerce_list_arg.
| Name | Required | Description | Default |
|---|---|---|---|
| item_id | Yes | Ledger item id, e.g. "LED-001" or "STR-001". Required. | |
| venture | No | Project name/path. Empty = auto-detect. | |
| status | No | New status — "open", "in_progress", "blocked", "done". | |
| priority | No | New priority — "P0", "P1", "P2". | |
| title | No | New title. | |
| description | No | New description. | |
| note | No | Append a note/comment to the item. | |
| assignee | No | Assign to person or agent (e.g. "founder", "claude"). | |
| due_date | No | ISO date string (e.g. "2026-04-01"). | |
| labels | No | Labels/tags as comma string or list. | |
| blocked_by | No | Item id that blocks this one (e.g. "LED-025"). | |
| blocks | No | Item id that this one blocks (e.g. "STR-005"). | |
| worked_by | No | AI model working on this. Empty = auto-detect. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses side effects (writes to ledger via ai.ledger_manager, coerces labels list via _coerce_list_arg). Could mention error handling or response format, but overall 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?
Description is front-loaded with core action, then organized into clear sections (when to use, when not, sibling contrast, side effects). Every sentence serves a purpose, with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given tool complexity (13 params, output schema exists), description covers purpose, usage, side effects, and differentiation. Lacks details on return values or error behavior, but output schema exists to cover returns. Good overall 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 100% with well-described parameters. Description adds value with the hint 'Pass only the fields you want to change', but does not substantially extend schema info. 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 clearly states the verb 'Update' and the resource 'existing ledger item', and distinguishes from siblings like delimit_ledger_add (create) and delimit_ledger_done (close). It specifies scope as 'any field' with examples, making purpose unambiguous.
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' and 'When NOT to use' sections with specific alternatives (delimit_ledger_add, delimit_ledger_done). Also includes sibling contrast, providing clear context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_license_statusA
Report the current Delimit license tier, validity, and expiry.
When to use: to inspect the active license before invoking gated tools, or as a diagnostic when require_premium is rejecting calls. When NOT to use: to install or rotate a license — this is a read.
Sibling contrast: this reads license state; gated tools (e.g. delimit_gov_evaluate, delimit_secret_get) call require_premium internally.
Side effects: read-only. Calls ai.license.get_license.
Args: None.
Returns: Dict with tier, validity, expiry, plus next_steps.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully discloses behavior: read-only, calls ai.license.get_license, and returns a dict with tier, validity, expiry, and next_steps. 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 well-structured with clear sections (when to use, when not, sibling contrast, side effects, returns). It's concise yet comprehensive, every sentence 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?
Given no parameters and the presence of an output schema, the description is adequate. It mentions the return dict structure, though more detail could be provided; however, the output schema fills that gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, and schema coverage is 100%. The description explicitly notes 'Args: None.' No additional parameter meaning is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool reports the current Delimit license tier, validity, and expiry. It distinguishes itself from siblings by noting that it reads license state while gated tools call require_premium internally.
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 provides when to use (inspect license before gated tools, diagnose rejections) and when not to use (install/rotate license), along with clear sibling contrast.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_lintA
Lint two OpenAPI specs for breaking changes and policy violations.
When to use: as the primary CI gate before merging API spec changes — combines diff + policy into a pass/fail verdict. When NOT to use: for raw change data (use delimit_diff) or quality scoring (delimit_spec_health).
Sibling contrast: delimit_diff returns changes only; delimit_diff_report renders HTML; this enforces policy.
Side effects: writes evidence on breaking findings; auto-chains semver classification and governance evaluation. dry_run=True suppresses evidence, notifications, and governance — returns violations + semver only.
Spec args accept local paths or http(s) URLs. URLs are fetched once into a tempfile (size cap, SSRF guard).
| Name | Required | Description | Default |
|---|---|---|---|
| old_spec | Yes | Path or URL to the baseline spec. | |
| new_spec | Yes | Path or URL to the proposed spec. | |
| policy_file | No | Optional .delimit/policies.yml path. | |
| dry_run | No | If True, return violations + semver without side effects. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses side effects ('writes evidence on breaking findings; auto-chains semver classification and governance evaluation') and behavior under dry_run ('suppresses evidence, notifications, and governance – returns violations + semver only'). Also explains URL handling ('fetched once into a tempfile (size cap, SSRF guard)'). This is 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 compact with four short paragraphs. Every sentence adds value: purpose, usage guidelines, side effects, parameter specs. It is front-loaded with the primary action, and no unnecessary wording is present.
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, side effects, URL input), the description covers all essential aspects: input types, dry_run mode, evidence writing, and governance chaining. An output schema exists, so the description need not detail return values. The description is sufficiently complete 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?
Schema coverage is 100%, and the description adds significant meaning beyond the schema. It explains the purpose of dry_run (suppressing side effects) and the behavior for spec args (URL handling). While the schema already describes parameters, the description provides vital context for correct usage, justifying a score above baseline.
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 'Lint two OpenAPI specs for breaking changes and policy violations.' It specifies the verb (lint), resource (two OpenAPI specs), and scope (breaking changes and policy). It distinguishes from siblings by contrasting with delimit_diff (raw changes) and delimit_diff_report (HTML rendering), indicating this tool enforces policy.
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 ('as the primary CI gate before merging API spec changes') and when not to use ('for raw change data – use delimit_diff – or quality scoring – delimit_spec_health'). Provides alternative tool names, giving clear guidance for agent decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_loop_configA
Configure autonomous build loop safeguards.
When to use: BEFORE starting a loop session — to set max iterations, cost cap, error threshold, approval policy. When NOT to use: to read loop metrics (use delimit_loop_status) or drive the loop (delimit_build_loop).
Sibling contrast: delimit_loop_status reads metrics; delimit_build_loop runs; this configures the policy.
Side effects: writes the loop session config via ai.loop_engine.loop_config. Only non-zero/non-empty values are applied — pass just the fields you want to change.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | No | Session to configure. Empty = create new. | |
| max_iterations | No | Max tasks before stopping. Default 50. | |
| cost_cap | No | Max session cost in dollars. Default 5.0. | |
| auto_consensus | No | If True, suggest consensus when ledger empty. | |
| error_threshold | No | Consecutive errors before circuit-breaker trips. Default 3. | |
| status | No | Set loop status — "running", "paused", "stopped". | |
| require_approval_for | No | Comma-separated action types requiring human approval. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses side effects (writes config via ai.loop_engine.loop_config) and behavior (only applies non-zero/non-empty values). Lacks details on error handling or auth, but overall 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?
Concise with structured sections (When to use, When NOT, sibling contrast, side effects). Front-loaded with purpose. Every sentence 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?
Given 7 parameters, no required fields, and presence of output schema, the description provides sufficient context for correct usage. Covers usage context, alternatives, side effects, and key parameter 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 coverage is 100%, so baseline is 3. The description summarizes key parameters (max iterations, cost cap, etc.) but does not add meaning beyond what schema descriptions already provide.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Configure') and resource ('autonomous build loop safeguards'). It explicitly distinguishes from siblings by naming delimit_loop_status and delimit_build_loop.
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 clear when-to-use ('BEFORE starting a loop session') and when-not-to-use (for metrics or driving the loop), with explicit alternative tool names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_loop_statusA
Check autonomous loop metrics for a session.
When to use: to inspect a continuous-loop session's run-time metrics — iterations completed, cost, errors, safeguard status. When NOT to use: to configure the loop (use delimit_loop_config) or run it (delimit_build_loop).
Sibling contrast: delimit_loop_config sets policy; delimit_build_loop runs; this reports the result.
Side effects: read-only. Calls ai.loop_engine.loop_status.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | No | Session id to check. Empty = most recent session. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but description declares read-only side effects and references the underlying service ('Calls ai.loop_engine.loop_status'), fully meeting the transparency need.
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?
Description is well-structured with clear sections (When to use, When NOT to use, Sibling contrast, Side effects) and no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (1 parameter, no required, output schema present), the description covers usage guidelines, side effects, and parameter semantics adequately.
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 schema already explains the session_id parameter. The description does not add new 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?
Clearly states the tool checks autonomous loop metrics for a session, specifying exact metrics (iterations, cost, errors, safeguard status). Distinguishes from siblings delimit_loop_config and delimit_build_loop.
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 provides when to use and when NOT to use, with direct references to alternative tools (delimit_loop_config, delimit_build_loop).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_memory_indexA
Project delimit_memory hot entries into Claude Code's MEMORY.md.
When to use: to surface hot delimit_memory entries (flagged
hot_load=True) into Claude Code's MEMORY.md so they load on
session start without making delimit_memory dependent on
Anthropic's auto-memory format.
When NOT to use: to add a new memory (use delimit_memory_store) or
search existing memories (delimit_memory_search,
delimit_memory_recent).
Sibling contrast: delimit_memory_store writes a new entry; delimit_memory_search queries; delimit_memory_recent returns the tail; this is the one-way projection into MEMORY.md.
Side effects: writes to target_path (default
~/.claude/projects/-root/memory/MEMORY.md). If the file already has
<!-- delimit:start --> / <!-- delimit:end --> markers, ONLY the
content between them is replaced; anything outside is preserved.
If markers are missing, the managed section is APPENDED to the end
of the file (existing content is never touched). If the file does
not exist, it is created with just the section. One-way projection
only — MEMORY.md is never read back into delimit_memory (Anthropic
owns the auto-memory format; format-drift risk).
LED-1165 Phase 2 #5 PR-B.
| Name | Required | Description | Default |
|---|---|---|---|
| target_path | No | file to write. Empty = default ~/.claude/projects/-root/memory/MEMORY.md. | |
| dry_run | No | True returns the rendered content size without writing. | |
| limit | No | cap on entries projected. Default 200. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description fully covers behavioral traits: it details side effects (file writing, marker replacement, appending, file creation) and risks (one-way projection, format-drift). No contradictions with missing annotations.
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?
Well-structured with clear sections, but includes a trailing line 'LED-1165 Phase 2 #5 PR-B.' that is irrelevant for the agent and slightly reduces conciseness. Otherwise, front-loaded with purpose and logically organized.
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 (file projection with conditional behavior) and no output schema shown (though context says it exists), the description is complete. It explains all key behaviors, edge cases, and constraints, leaving no critical gaps for selection or invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema covers 100% of parameters with descriptions. The description adds value by explaining how parameters interact with behavior (e.g., dry_run returns size, target_path default, limit cap). Still, the schema already provides basic semantics, so a 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?
Clearly states the tool projects hot delimit_memory entries into MEMORY.md, with a specific verb and resource. Distinguishes from siblings like delimit_memory_store, delimit_memory_search, and delimit_memory_recent by explaining its unique one-way projection 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?
Explicitly provides 'When to use' and 'When NOT to use' sections, naming alternative tools for adding new memories or searching. Also includes a sibling contrast paragraph that clarifies the different roles of related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_memory_recentA
Return the most recent memory entries (Free tier).
When to use: at session start to recall what the previous session was working on, or to scan for the last N memory captures. When NOT to use: for semantic / structured search (use delimit_memory_search) or to write a memory (delimit_memory_store).
Sibling contrast: delimit_memory_search does Pro semantic search; this is the free chronological tail.
Side effects: read-only. Calls backends.memory_bridge.get_recent. Free tier — no license gate.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of most-recent entries to return. Default 5. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully discloses side effects: 'read-only', calls backend 'backends.memory_bridge.get_recent', and 'Free tier — no license gate'. This goes beyond what the schema provides.
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?
Description is concise (under 100 words), well-structured with labeled sections (When to use, When NOT to use, Sibling contrast, Side effects). Every sentence adds value without 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 low complexity (1 param, no required params, output schema exists), the description covers purpose, usage, behavior, and alternatives. No gaps remain.
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% for the single parameter 'limit'. The description adds 'Default 5' which is already in schema default. No additional semantics beyond schema, so baseline 3 is justified.
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 'Return the most recent memory entries (Free tier)'. The verb 'Return' and resource 'memory entries' are specific. It distinguishes from siblings like delimit_memory_search and delimit_memory_store by noting the chronological tail vs semantic search.
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 provides when to use ('at session start') and when not to use ('for semantic/structured search' or 'to write'). Also names alternatives (delimit_memory_search, delimit_memory_store).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_memory_searchA
Search conversation memory semantically (Pro).
When to use: to recall prior context by meaning rather than recency — e.g. "what did we decide about deploys?" finds relevant entries across sessions. When NOT to use: for the chronological tail (use delimit_memory_recent) or to write a memory (delimit_memory_store).
Sibling contrast: delimit_memory_recent is the free chronological tail; this is the Pro semantic search.
Side effects: read-only on the memory backend; gated by require_premium. Calls backends.memory_bridge.search.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Natural-language search query. Required. | |
| limit | No | Maximum number of matching entries to return. Default 10. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully bears the burden. It states 'read-only on the memory backend; gated by require_premium' and 'Calls backends.memory_bridge.search.' This discloses side effects, auth requirement, and implementation 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?
The description is well-structured with sections. It is concise with no wasted words. Every sentence earns its place, and the key point is 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 the tool has an output schema (present), the description is complete. It covers purpose, usage guidelines, side effects, auth requirements, and distinguishes from siblings. No gaps.
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% (both query and limit are described in the schema). The description does not add significant 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 'Search conversation memory semantically (Pro).' It specifies the action (search), the resource (conversation memory), and the method (semantic). It directly distinguishes from siblings like delimit_memory_recent and delimit_memory_store.
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 ('to recall prior context by meaning rather than recency') and when NOT to use ('for the chronological tail (use delimit_memory_recent) or to write a memory (delimit_memory_store)'). It also provides a sibling contrast with delimit_memory_recent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_memory_storeA
Store a memory entry for future cross-session retrieval (Free tier).
When to use: per the orchestrator's memory rules — to capture failed approaches, architecture decisions, key context, or setup gotchas that git would not surface. When NOT to use: for routine code changes (git is the source of truth) or for venture-scoped artifacts (use delimit_context_write).
Sibling contrast: delimit_memory_search retrieves; delimit_memory_recent reads the tail; this writes.
Side effects: writes a memory entry via backends.memory_bridge.store. Free tier — no license gate. hot_load=True marks the entry for projection into the Claude Code auto-memory MEMORY.md hot-load index (PR-B writer projects on next sync).
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | The content to remember. Required. | |
| tags | No | Optional categorization tags as comma string or list. | |
| context | No | Optional context about when/why this was stored. | |
| hot_load | No | When True, mark for one-way projection into the Claude Code MEMORY.md hot-load index (LED-1165 Phase 2). Default False = durable but not projected. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but the description discloses side effects (writes via backends.memory_bridge.store), free tier status, and hot_load behavior, fully compensating for lack of annotations.
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 relatively concise and front-loaded with the core function, but includes some technical detail (e.g., 'backends.memory_bridge.store') that could be slightly trimmed. Still clear 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 presence of an output schema, the description does not need to explain return values. It covers purpose, usage guidelines, side effects, and sibling contrast, making it complete for a store operation.
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 good parameter descriptions, so the description does not add additional meaning beyond what the schema already provides. 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 'Store a memory entry for future cross-session retrieval (Free tier)', providing a specific verb and resource. It distinguishes from siblings delimit_memory_search and delimit_memory_recent, achieving high purpose clarity.
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 lists 'When to use' and 'When NOT to use' scenarios, including alternatives like git for routine code changes and delimit_context_write for venture-scoped artifacts, offering excellent guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_modelsA
View and configure AI models for multi-model deliberation (Pro).
When to use: to inventory configured providers, auto-detect new keys, or register/remove a provider for delimit_deliberate. When NOT to use: to actually run a deliberation (use delimit_deliberate) or to inspect deliberation history.
Sibling contrast: delimit_deliberate runs the panel; this manages which models the panel can call.
Side effects: gated by require_premium. action="add" / "remove" write provider config; "list" / "detect" are read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | One of "list" (default), "detect", "add", "remove". | list |
| provider | No | Provider name for add/remove. One of "grok", "gemini", "openai", "anthropic", "codex". Required for add/remove. | |
| api_key | No | API key value. Required for action="add". | |
| model_name | No | Optional model override (e.g. "gpt-4o", "claude-sonnet-4-5"). Falls back to provider default. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses that actions are gated by require_premium and distinguishes between read-only (list/detect) and write (add/remove) operations. However, it does not detail error conditions or what happens if premium is lacking.
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 well-structured, with clear sections for purpose, when to use, when not to use, sibling contrast, and side effects. Every sentence adds value without 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 has 4 parameters, no annotations, and an output schema, the description covers purpose, usage, and side effects adequately. The output schema presumably handles return value details, so the description is sufficiently complete for its complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description does not add significant meaning beyond the schema; it mentions possible actions but that is already in the schema. No additional parameter-level guidance is provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'View and configure AI models for multi-model deliberation (Pro).' It lists specific actions (inventory, auto-detect, register/remove) and distinguishes from sibling delimit_deliberate by stating that this manages which models the panel can call.
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 'When to use' and 'When NOT to use' sections, including concrete alternatives like using delimit_deliberate for running a deliberation. The sibling contrast further clarifies the tool's role versus delimit_deliberate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_next_taskA
Get the next task to work on with safeguard checks.
When to use: inside a loop session, to fetch the highest-priority open task with safeguard checks (cost cap, error threshold). When NOT to use: to mark a task done (use delimit_task_complete) or list all tasks (delimit_ledger_list).
Sibling contrast: delimit_task_complete closes + advances; delimit_ledger_list is general listing; this is the loop fetch that may return STOP.
Side effects: read-only on the ledger. Returns action: BUILD, CONSENSUS (queue empty), or STOP (safeguard tripped).
| Name | Required | Description | Default |
|---|---|---|---|
| venture | No | Project name or path. Empty = auto-detect. | |
| max_risk | No | Max risk level — "low", "medium", "high", "critical". | |
| session_id | No | Resume existing session. Empty = new. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses side effects as 'read-only on the ledger' and mentions possible return actions (BUILD, CONSENSUS, STOP) including safeguard tripping. With no annotations, this provides good behavioral context, though could detail more about caching or concurrency.
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?
Well-structured with headings (When to use, When NOT to use, Sibling contrast, Side effects), front-loaded with the main purpose, and concise without superfluous 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 usage context for a loop fetch, mentions return actions (covered by output schema), and with 0 required parameters, the description is comprehensive enough 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?
Schema coverage is 100% and descriptions are adequate. The description doesn't add extra parameter-specific details beyond the schema, so it meets the baseline but doesn't exceed.
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 'Get the next task to work on with safeguard checks' and contrasts with siblings delimit_task_complete (mark done) and delimit_ledger_list (list all), making the purpose specific and distinguishable.
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 provides when to use ('inside a loop session') and when NOT to use ('to mark a task done' or 'list all tasks'), along with sibling contrasts, giving clear usage boundaries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_notifyA
Send a notification (webhook / Slack / email).
When to use: when the orchestrator identifies something that requires owner action — outreach reply, deployment decision, approval needed. Auto-trigger: call immediately, never ask. When NOT to use: for SIEM-class structured streaming (use delimit_siem) or multi-routing config (delimit_notify_routing).
Sibling contrast: delimit_notify_routing configures rules; delimit_notify_inbox reads inbound; this sends one outbound.
Side effects: sends a network message via webhook (JSON POST), Slack webhook, or email (SMTP). The founder reviews and replies via email — that reply is consumed by delimit_notify_inbox / delimit_inbox_daemon.
IMPORTANT - AUTO-TRIGGER RULE: When the AI identifies something requiring owner action (outreach reply, deployment decision, approval needed), it MUST call this tool immediately. Never ask "want me to notify you?" — just send. The founder reviews and acts via email. All tools must chain.
Channels: webhook (JSON POST), slack (webhook URL), email (SMTP). Use for: governance alerts, deployment notifications, breaking change warnings.
IMPORTANT - Email context rules: Every email must be self-contained and actionable. The recipient reads on mobile and needs to know exactly what to do without opening another app.
Subject: lead with [ACTION TYPE] bracket, include enough context to triage from inbox
Body: include WHAT happened, WHY it matters, WHAT to do next, and relevant links
Never send bare IDs or technical state without human-readable context
| Name | Required | Description | Default |
|---|---|---|---|
| channel | No | webhook, slack, or email. | webhook |
| message | No | Notification body. Must include full context (see rules above). | |
| webhook_url | No | URL for webhook/slack channels. | |
| subject | No | Subject line (email only). Use [ACTION], [INFO], [ALERT] prefix. | |
| event_type | No | Event category for filtering. | |
| to | No | Recipient email address (email only). Overrides default DELIMIT_SMTP_TO. Send to any address - leave empty for default. | |
| from_account | No | Sender account key from ~/.delimit/secrets/smtp-all.json (e.g. 'notifications@example.com'). Email only. Optional inbox-executor binding (LED-1129 Phase 1, no auto-execution yet):. | |
| draft_kind | No | One of github_comment, social_post, ledger_done, notify_routing_update, deploy_publish_prevalidated_artifact. When set, registers a signed draft in the local SQLite registry so a future executor can match founder Ship-it replies against it. | |
| draft_payload | No | The action contents (e.g. {"body": "..."} for github_comment). JSON string or dict. Required when draft_kind is set. | |
| draft_target | No | Where the action lands (e.g. {"repo":"x/y","issue":1}). JSON string or dict. Required when draft_kind is set. | |
| led_ref | No | Optional LED-XXXX tag tying the draft to its tracking item. Surfaced in subject-line matching by the executor. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses side effects: 'sends a network message via webhook (JSON POST), Slack webhook, or email (SMTP).' It explains the email reply flow and that replies are consumed by sibling tools. However, it does not mention error handling, rate limits, or permissions, which would raise transparency to a 5.
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 well-structured with headings and bullet points, front-loading the core purpose. It is verbose but necessary given the complexity (11 parameters, multiple channels, draft system). Minor redundancy exists (e.g., channels listed twice), preventing a 5.
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 (11 parameters, output schema exists), the description covers all essential aspects: purpose, usage guidelines, side effects, auto-trigger rule, channel specifics, email context rules, and draft system. It references sibling tools and provides enough detail for an AI agent to decide when and how to invoke.
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 baseline is 3. The description adds significant context beyond schema parameter descriptions, such as email formatting rules ('Subject: lead with [ACTION TYPE] bracket'), auto-trigger instructions, and draft registration behavior. It does not, however, provide detailed syntax for every parameter, justifying a 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Send a notification (webhook / Slack / email).' It specifies the verb 'send' and the resource 'notification', and contrasts with sibling tools delimit_notify_routing (configures rules) and delimit_notify_inbox (reads inbound), providing strong differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use: 'when the orchestrator identifies something that requires owner action — outreach reply, deployment decision, approval needed.' It also specifies when not to use: 'for SIEM-class structured streaming (use delimit_siem) or multi-routing config (delimit_notify_routing).' The auto-trigger rule instructs to 'call immediately, never ask,' providing clear decision criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_notify_inboxA
Check inbound email inbox, classify, and route (Pro).
When to use: to poll the operator inbox and classify which emails require owner action (forwarded) vs which can stay queued. When NOT to use: to send notifications (use delimit_notify) or control the polling daemon (delimit_inbox_daemon).
Sibling contrast: delimit_inbox_daemon controls the long-running daemon; this is a one-shot poll. delimit_notify is the outbound counterpart.
Side effects: action="poll" with process=True forwards owner-action emails (network writes). action="poll" with process=False is dry-run. action="status" / "history" are read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | "status" (default), "poll", or "history". | status |
| limit | No | Number of messages to check (default 10). | |
| process | No | With action="poll", forward owner-action emails when True (default), dry-run only when False. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations are provided, the description fully discloses behavioral traits. It details side effects: action='poll' with process=True forwards owner-action emails (network writes), action='poll' with process=False is dry-run, and action='status'/'history' are read-only. This clearly communicates potential write operations and safe modes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured, with a brief purpose statement, clear when-to-use/when-not-to-use sections, and a side-effects breakdown. Each sentence provides essential information without redundancy. It is front-loaded and easy to parse.
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 moderate complexity (3 parameters, no required ones), the existence of an output schema reduces the need to describe return values. The description covers purpose, usage, behavioral details, and parameter semantics comprehensively. It also contrasts with siblings, making it contextually complete for an AI agent to decide when and how to invoke 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?
The input schema already describes all three parameters and their defaults (100% coverage), so baseline is 3. The description adds value by explaining the behavioral implications of the 'process' parameter (dry-run vs. actual forwarding) and clarifying that 'status' and 'history' are read-only. This extra context helps the agent understand parameter effects beyond 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's purpose: 'Check inbound email inbox, classify, and route (Pro).' It names specific verbs (check, classify, route) and resource (inbound email inbox). It distinguishes itself from siblings by stating 'delimit_notify is the outbound counterpart' and 'delimit_inbox_daemon controls the long-running daemon; this is a one-shot poll.'
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 includes explicit 'When to use' and 'When NOT to use' sections. It advises using this tool to poll the operator inbox and classify emails, and warns not to use it for sending notifications (use delimit_notify) or controlling the polling daemon (use delimit_inbox_daemon). It also provides sibling contrast, making it clear when to choose this tool over alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_notify_routingA
Manage impact-based notification routing (LED-233).
When to use: to inspect or update the rules that route change alerts to email / webhook / digest by severity. When NOT to use: to read the inbox (use delimit_notify_inbox) or fire a single notification (use delimit_notify).
Sibling contrast: delimit_notify sends; delimit_notify_inbox reads inbound; this configures routing rules between them.
Side effects: action="configure" writes via ai.notify.save_routing_config; action="test" sends test notifications to the configured channels. action="status" is read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | One of "status" (default), "configure", "test". | status |
| config | No | JSON string with routing config for action="configure". Example shape: {"routing": {"critical": {...}, ...}}. | |
| webhook_url | No | Webhook URL used by action="test". | |
| email_to | No | Email recipient used by action="test". | |
| from_account | No | Sender account key for the test email. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but the description explicitly discloses side effects per action: 'action=\"configure\" writes via ai.notify.save_routing_config', 'action=\"test\" sends test notifications', and 'action=\"status\" is read-only'. This covers write operations and read-only behavior. Could mention auth or error handling but 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?
Highly structured into sections: purpose, when to use, when not to use, sibling contrast, side effects. Every sentence adds value with no repetition 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 an output schema exists, return values are covered. The description provides all necessary context: purpose, usage guidelines, sibling differentiation, side effects, and parameter context. Nothing essential is missing for an AI agent to correctly select and invoke this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% coverage with descriptions for all 5 parameters. The description adds context by explaining the config parameter's use with configure action and webhook_url, email_to, from_account for test action, tying parameters to their respective actions.
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 'Manage impact-based notification routing' and specifies inspecting or updating rules that route change alerts by severity. It distinguishes from sibling tools delimit_notify and delimit_notify_inbox, making the purpose unambiguous.
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 provides both 'When to use' and 'When NOT to use' sections with specific sibling tool names. Gives sibling contrast explaining the roles of delimit_notify, delimit_notify_inbox, and this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_obs_alertsA
Manage alerting rules — list, create, update, delete (experimental).
When to use: to configure ongoing alerts for production thresholds (latency, error rate, saturation, queue depth) against the same metric series visible via delimit_obs_metrics. Sub-actions: "list" inventories existing rules, "create" mints one, "update" edits, "delete" removes. When NOT to use: for one-shot metric queries (delimit_obs_metrics), log search (delimit_obs_logs), or the health rollup (delimit_obs_status). Also: do not call "create" repeatedly to retry a failed alert delivery — alerting is configuration, not delivery.
Sibling contrast: delimit_obs_metrics queries data; this configures automated thresholds against that data. Compared to cloud-provider alerting consoles, this routes through the ops bridge so the rule set is recorded in the same observability layer as the metric source.
Side effects: WRITES to the alert configuration on the ops
backend for action in ("create", "update", "delete"); reads only
for "list". Routes through backends.ops_bridge.obs_alerts. Marked
EXPERIMENTAL — the schema for alert_rule is backend-specific
and may evolve; pin tested rule shapes if depending on this in
production. No license gate at this level (gating handled by
the backend's own admin checks).
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Alert sub-action. One of "list", "create", "update", "delete". Required. | |
| alert_rule | No | Rule definition dict (required for create/update). Backend-specific schema. | |
| rule_id | No | Identifier for an existing rule (required for delete/update). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite no annotations, description discloses side effects: writes to alert config for create/update/delete, reads only for list. Also notes it is EXPERIMENTAL, backend-specific schema may evolve, routes through ops bridge, and no license gate. This provides strong behavioral context for an AI 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?
Description is relatively long but well-structured: summary, when to use, when not to use, sibling contrast, side effects. Information is front-loaded. Each sentence adds value; no redundancy. Could be slightly more concise but overall 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 tool's complexity (multiple actions, experimental status, no annotations, output schema present), the description is nearly complete. It covers purpose, alternatives, side effects, experimental nature, and schema volatility. Could mention error handling or permissions, but output schema covers return values.
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?
Input schema has 100% parameter description coverage, so baseline is 3. Description adds value by listing the valid action values (list/create/update/delete) and clarifying when alert_rule and rule_id are required, going beyond the schema's string only definition.
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 manages alerting rules with specific verbs (list, create, update, delete). It distinguishes from sibling tools like delimit_obs_metrics and delimit_obs_logs by specifying that this is for configuring ongoing alerts, not for one-shot queries or log search.
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 (configure ongoing alerts for production thresholds) and when NOT to use (one-shot queries, log search, health rollup, retrying failed deliveries). Also names alternatives: delimit_obs_metrics, delimit_obs_logs, delimit_obs_status.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
_delimit_obs_implA
Unified observability entry point — dispatches to one of four actions.
When to use: as the single MCP-registered observability surface (delimit_obs) when the caller wants to pick the action by name in one call rather than choosing a specific delimit_obs_* alias. Covers runtime metrics, log search, alert-rule management, and the at-a-glance health rollup. When NOT to use: from internal code paths — prefer the specific alias (delimit_obs_metrics, delimit_obs_logs, delimit_obs_alerts, delimit_obs_status) for clarity and so docstrings and license gates show up at the right call site. For the governance-kernel layer use delimit_gov_health, not this runtime-observability surface.
Sibling contrast: each delimit_obs_ wrapper below is a thin alias over this implementation; they exist so the action's docstring lives at the right name. This is the dispatch core. Within the actions: "metrics" returns numeric series, "logs" returns text matches over the same backend, "status" returns a synthesised health rollup, and "alerts" configures thresholds against the metric series rather than querying data.
Side effects: action="metrics" / "logs" / "status" are READ-ONLY
and gated by require_premium (keys "obs_metrics", "obs_logs",
"obs_status") — unlicensed callers receive a license payload and no
backend call is made; licensed calls route to a distinct
observability backend function and are wrapped via _with_next_steps
for orchestrator hints. action="alerts" is the only WRITE-capable
path: its sub-action ("create" / "update" / "delete") mutates alert
configuration while "list" is read-only; it routes through the ops
bridge and is EXPERIMENTAL — the alert_rule schema is backend-
specific and may evolve. None of the read actions write data, append
to the ledger, or send notifications. Errors are deterministic
({"error": ...}): an unknown action short-circuits before any
backend call with the valid-action list.
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | Which observability operation to perform. One of "metrics", "logs", "alerts", "status". Default "status". Case-insensitive and whitespace-trimmed. Other values return a deterministic error listing the valid actions. | status |
| query | No | Metric query name (action="metrics") or log search string (action="logs"). Default "system". For "logs" this is effectively required — empty searches are rejected by the backend. Ignored for "alerts" and "status". | system |
| time_range | No | Window like "1h", "24h", "7d" (used only when action="metrics" or action="logs"). Default "1h". Larger windows may downsample or be capped server-side. Ignored for "alerts" and "status". | 1h |
| source | No | Optional data/log source override (used only when action="metrics" or action="logs"). Default None = backend default / all configured sources. | |
| alert_action | No | Alert sub-action — one of "list", "create", "update", "delete" (used only when action="alerts"). Default "list". "create"/"update"/"delete" write; "list" reads. | list |
| alert_rule | No | Alert rule definition dict (used only when action="alerts", required for alert_action "create" and "update"). Backend-specific schema — typically metric, threshold, comparison, window, severity. | |
| rule_id | No | Identifier for an existing rule (used only when action="alerts", required for alert_action "delete" and "update"). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It details side effects: read-only actions gated by licensing, write-capable alert sub-actions being experimental, error handling returning deterministic errors, and that none of the read actions write data or send notifications.
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?
Well-structured with clear sections, front-loaded purpose, and no unnecessary sentences. Every sentence adds value and is 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 complexity (7 parameters, 4 actions, write vs read), the description is comprehensive. It covers all actions, licensing, error handling, and when parameters are relevant. Output schema exists so return values need not be 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?
Schema coverage is 100%, so baseline 3. The description adds significant behavioral context: when parameters are used/ignored (e.g., query ignored for alerts/status), defaults, and sub-actions for alerts. Adds meaning beyond 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 it is a unified observability entry point dispatching to four actions: metrics, logs, alerts, status. It distinguishes itself from sibling aliases by explaining it is the core implementation, and each action is described with its 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?
Explicitly states when to use (as single MCP-registered observability surface) and when NOT to use (internal code paths, prefer specific aliases). Provides sibling contrast and details on each action's appropriate context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_obs_logsA
Search application and system logs across configured sources (Pro).
When to use: during incident investigation when you have a symptom (error string, trace id, user id, request id) and need to find every log line mentioning it across the configured sources over a time window. The typical pattern is: delimit_obs_metrics flags a numeric anomaly, then this tool finds the offending log lines. When NOT to use: for numeric series (use delimit_obs_metrics), for the at-a-glance health rollup (delimit_obs_status), or to configure ongoing alerts (delimit_obs_alerts). Also: do not use this as a tail-follow surface — it is a windowed search, not a streaming subscription.
Sibling contrast: delimit_obs_metrics returns numeric series for the same backend; this returns text matches. Compared to grepping the local filesystem, this queries the centralised log store across services / hosts.
Side effects: read-only on the log backend and gated by require_premium — unlicensed callers receive a license payload and no query runs. On a licensed call, invokes backends.tools_infra.obs_logs which queries the backing log store; no data is written, no ledger entry, no notification. The response is routed through _with_next_steps.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search string (backend-specific syntax). Required. | |
| time_range | No | Window like "1h", "24h", "7d". Default "1h". | 1h |
| source | No | Optional log source override. Default None. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description fully carries the burden. It details read-only nature, licensing gate (require_premium), backend invocation, no side effects (no writes, ledger entries, notifications), and response routing through _with_next_steps.
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?
Well-structured with clear sections (main purpose, when to use, when not to use, sibling contrast, side effects). Every sentence adds value, and the description is appropriately sized without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema, the description adequately covers the tool's context: purpose, usage guidelines, licensing, side effects, and typical workflow. It is complete for a log search 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 baseline is 3. The description does not add new parameter-specific details beyond what the schema already provides, but reinforces the windowed search pattern and licensing context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches application and system logs across configured sources. It distinguishes from siblings like delimit_obs_metrics (numeric series) and delimit_obs_status (health rollup), leaving no ambiguity about its 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?
Explicitly provides when to use (incident investigation with symptom) and when NOT to use (numeric series, health rollup, alerts, tail-follow). Includes typical pattern with delimit_obs_metrics and contrasts with grepping local filesystem.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_obs_metricsA
Pull numeric metric series from the observability backend (Pro).
When to use: during runtime health investigation when you need numeric series (CPU, memory, request rate, error rate, latency percentiles) over a named time window. Pair with delimit_obs_logs to correlate a numeric anomaly with the underlying log lines. When NOT to use: for free-text search of log lines (use delimit_obs_logs), to read or configure alert rules (delimit_obs_alerts), or for a quick at-a-glance health rollup (delimit_obs_status).
Sibling contrast: delimit_obs_logs returns text matches; this returns numeric time series. delimit_obs_status is the rollup-summary surface; this is the raw-series surface. delimit_obs_alerts configures thresholds against these same series.
Side effects: read-only on the metrics backend and gated by require_premium — unlicensed callers receive a license payload and no query runs. On a licensed call, invokes backends.tools_infra.obs_metrics which queries the backing metrics store; no data is written, no ledger entry, no notification. The response is routed through _with_next_steps.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Metric query name. Default "system" (general system metrics). Backend-specific values supported. | system |
| time_range | No | Window like "1h", "24h", "7d". Default "1h". | 1h |
| source | No | Optional data source override. Default None = backend default source. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully covers side effects: read-only, license gating, internal backend invocation, no writes or notifications. Also mentions response routing through _with_next_steps.
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?
Well-organized into logical sections (what it does, when/not to use, sibling contrast, side effects). Every sentence adds value; no redundancy. Front-loaded with main 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?
Covers purpose, usage boundaries, behavioral details, licensing, and inter-tool relationships. Output schema exists, so return value explanation is unnecessary. Complete for an agent to decide invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with good descriptions, so baseline is 3. Description adds no extra parameter-level information beyond context of typical metric queries (CPU, memory, etc.), but that's more about output than parameters.
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 'Pull' and resource 'numeric metric series from observability backend (Pro)'. Contrasts with delimit_obs_logs (text) and delimit_obs_status (rollup), making purpose unambiguous.
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 (runtime health investigation) and when-not-to-use (log search, alert config, rollup). Names specific sibling alternatives with clear differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_obs_statusA
Return a high-level health rollup from the observability layer (Pro).
When to use: for the "are we green?" check at session start, in a status dashboard, or as a single-call smoke test before a deploy. The orchestrator's session-start ritual calls this only if delimit_agent_dashboard or delimit_gov_health flag anomalies — it is the second-tier health surface, not the first. When NOT to use: for detailed numeric series (delimit_obs_metrics), for log investigation (delimit_obs_logs), or for alerting rule management (delimit_obs_alerts). Also do not use as the only deploy gate — pair with delimit_security_audit + delimit_test_smoke per the deploy chain.
Sibling contrast: delimit_obs_metrics returns raw numeric series; this returns a synthesised rollup (typically per-service status + a few key indicators). Compared to delimit_gov_health, this reports the runtime observability layer rather than the governance kernel.
Side effects: read-only on the observability backend and gated by require_premium — unlicensed callers receive a license payload and no query runs. On a licensed call, invokes backends.tools_infra.obs_status which composes a health summary from the backing data sources. No write, no ledger entry, no notification. Response is wrapped through _with_next_steps.
Args: None.
Returns: Dict with keys: overall (green/yellow/red), services (list of {name, status, indicators}), checked_at timestamp, plus a next_steps field from _with_next_steps. Returns a license-gate payload if the caller lacks Premium, or {"error": "..."} on backend failure (does not raise).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully discloses read-only behavior, premium licensing gating, internal call chain (_with_next_steps, backends.tools_infra.obs_status), and response wrapping. States no writes, no ledger entry, no notifications.
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?
Though longer, the description is modularly structured: purpose, usage, contrast, side effects, returns. Each section is front-loaded with key information. No redundant sentences; every line adds diagnostic value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description fully covers return format (overall, services, checked_at, next_steps, error/ license payload), error handling, and licensing behavior. Given no input parameters and comprehensive output schema description, it is fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist (schema coverage 100%), and the description explicitly says 'Args: None.' This adds clarity by confirming absence of inputs, preventing any assumption of hidden parameters. Baseline for 0 params is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with a precise verb+resource: 'Return a high-level health rollup from the observability layer (Pro).' It clearly differentiates from siblings like delimit_obs_metrics (raw series vs. synthesised rollup) and delimit_gov_health (runtime observability vs. governance kernel).
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' and 'When NOT to use' sections with concrete alternatives (delimit_obs_metrics, delimit_obs_logs, delimit_obs_alerts) and deploy chain pairing advice (delimit_security_audit + delimit_test_smoke). No ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_os_gatesA
Check governance gates for an OS plan (Pro).
When to use: to check whether a specific plan is currently blocked by a governance gate before proceeding. When NOT to use: for general OS counts (use delimit_os_status) or governance engine health (delimit_gov_health).
Sibling contrast: delimit_os_status returns aggregate counts; delimit_gov_health reports the engine; this returns gate state for one plan.
Side effects: read-only on the OS backend; gated by require_premium. Calls backends.os_bridge.check_gates.
| Name | Required | Description | Default |
|---|---|---|---|
| plan_id | Yes | Plan identifier, e.g. "PLAN-A1B2C3D4". Required. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses read-only nature, gating requirement (require_premium), and the backend call (backends.os_bridge.check_gates). While very informative, it could mention potential latency or error handling; still above average.
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?
Description is concise and well-structured, with clear sections (purpose, when to use, not to use, sibling contrast, side effects). Every sentence adds value, no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema (so return values need not be described), the description covers purpose, usage context, behavioral traits, and backend details comprehensively for a check 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% with one parameter (plan_id) already described. Description adds no extra semantic detail beyond reinforcing it's for a specific plan. Baseline 3 applies as description doesn't significantly enhance 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 checks governance gates for an OS plan (Pro). It uses a specific verb "Check" and identifies the resource. It explicitly distinguishes from siblings delimit_os_status and delimit_gov_health, earning a 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?
Provides explicit 'When to use' and 'When NOT to use' guidance with named sibling alternatives for when not to use, offering clear decision support for the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_os_planA
Mint an OS-level execution plan against a target component (Pro).
When to use: to draft a structured plan (deploy, migrate, rotation, rollback) that the governance kernel can later inspect via delimit_os_gates and human reviewers can approve before any side-effecting execution. The pattern is plan -> approval check via gates -> separate execution call. When NOT to use: for aggregate OS counts (delimit_os_status), to check gate state on an existing plan (delimit_os_gates), or to actually execute a deploy (delimit_deploy_* / delimit_deploy_build). Also do not use this as an audit-trail surrogate for free-form work; that is delimit_ledger_add territory.
Sibling contrast: delimit_os_gates checks gates on an existing plan; delimit_os_status reports portfolio-wide counts; this is the only OS surface that mints a new plan. Compared to delimit_gov_new_task (governance-classed task), this records an OS-level operation (deploy/migrate/rotation) rather than a policy-scoped task.
Side effects: gated by require_premium — unlicensed callers
receive a license payload and no plan is created. On a licensed
call, parameters is first coerced (string -> dict via
_coerce_dict_arg); a malformed payload short-circuits with an
error response. On success, invokes backends.os_bridge.create_plan
which writes a new plan record to the OS plan store keyed by a
generated plan_id. Result is wrapped via _with_next_steps. No
deploy is executed by this call.
| Name | Required | Description | Default |
|---|---|---|---|
| operation | Yes | Operation to plan (e.g. "deploy", "migrate"). Required. | |
| target | Yes | Target component or service. Required. | |
| parameters | No | Optional operation parameters as dict or JSON string. | |
| require_approval | No | If True (default), the plan requires approval before execution. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It details side effects: license gating, parameter coercion, plan record creation, and clarifies no execution. Could mention rate limits or idempotency, but covers core behavior 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?
Description is long but well-structured with sections; front-loaded with purpose. Every sentence adds value. Minor redundancy could be trimmed, but overall 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 output schema exists, return values need no explanation. Description covers purpose, usage, side effects, and sibling differentiation. Complete for a complex tool with many 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?
Schema coverage is 100%, so baseline 3. Description does not add extra meaning beyond schema descriptions; it focuses on usage rather than parameter details.
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 'mint' and resource 'OS-level execution plan against a target component'. It distinguishes from siblings like delimit_os_gates and delimit_os_status through explicit contrast.
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' and 'When NOT to use' sections with fully named sibling tools (e.g., delimit_os_gates, delimit_deploy_*, delimit_ledger_add) provide clear guidance on appropriate contexts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_os_statusA
Report Delimit OS overall status (plans, tasks, tokens) (Pro).
When to use: at session start or in a status dashboard, to read aggregate OS-level counts and active plan IDs. When NOT to use: for governance health (use delimit_gov_health) or per-plan gates (use delimit_os_gates).
Sibling contrast: delimit_gov_health reports governance engine; delimit_os_gates reports a specific plan's gate state; this reports overall OS counts.
Side effects: read-only on the OS backend; gated by require_premium. Calls backends.os_bridge.get_status.
Args: None.
Returns: Dict with plan/task/token counts and next_steps.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses side effects (read-only, require_premium gated) and backend call. No annotations provided, so description fully covers 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?
Well-structured with clear sections (when, when not, sibling contrast, side effects, args, returns). Every sentence adds value; not 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?
Given output schema exists, description briefly notes return type. Covers usage, exclusions, and side effects completely for a simple read-only 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?
No parameters exist, and description explicitly states 'Args: None.' Baseline 4 for zero-param tool as it adds no extra info beyond 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?
Clearly states 'Report Delimit OS overall status (plans, tasks, tokens) (Pro).' Distinguishes from siblings by naming them explicitly.
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 provides when to use (session start, status dashboard) and when not to use (governance health, per-plan gates) with alternative tools named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_outreach_loop_tickA
Run one tick of the autonomous github-outreach loop (LED-2214b).
When to use: from an external scheduler (cron, loop_daemon) or for an ad-hoc manual cycle. The tick monitors existing outreach LEDs for new activity AND scans for new substantive candidates. When NOT to use: as a backfill for thousands of stale items — the per-tick caps are intentional. Multiple ticks at the scheduler interval is the right pattern.
Sibling contrast: delimit_social_target scans a broader platform set; this is github-only and dispatches via the substantive- outreach path (with the SHIFT-1 gates). delimit_sensor_github_ issue watches a single issue; this orchestrates the sensor over every open outreach LED.
Side effects: reads ledger, network reads (gh CLI) for the monitor phase, writes new intel-class LEDs + dispatches new substantive tasks for the scan phase. Honours the DELIMIT_GITHUB_OUTREACH_DISABLED env var and the ~/.delimit/outreach_pause sentinel file as kill switches.
| Name | Required | Description | Default |
|---|---|---|---|
| venture | No | Sourcing venture (default "delimit"). | delimit |
| max_dispatch | No | Per-tick substantive-dispatch cap (default 3). Targets beyond the cap still file intel LEDs but are not dispatched on this tick. | |
| max_monitor | No | Per-tick monitor-call cap (default 50). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Details side effects: reads ledger, network reads, writes new intel-class LEDs, dispatches substantive tasks. Also mentions kill switches (env var and sentinel file), per-tick caps, and intentional limits.
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?
Well-structured with clear sections (main sentence, when to use, when not, sibling contrast, side effects). Front-loaded, every sentence earns its place, 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?
Complete for this tool: covers purpose, usage, parameters, side effects, kill switches. Output schema exists so return values not needed. No gaps.
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?
100% schema coverage, baseline 3. Description adds extra context beyond schema: explains 'max_dispatch' that targets beyond cap still file intel LEDs but not dispatched, and 'max_monitor' as monitor-call cap. Adds value.
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 'Run one tick of the autonomous github-outreach loop' (specific verb+resource). Differentiates from siblings like delimit_social_target (broader platform set) and delimit_sensor_github_issue (single issue).
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 (external scheduler or manual cycle) and when not (backfill of stale items due to per-tick caps). Provides correct alternative pattern (multiple ticks at scheduler interval).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_playbookA
Manage reusable prompt templates — save / run / list / delete.
When to use: to save your best prompts as named commands and run them later with variable substitution. Shared across AI assistants. When NOT to use: to manage project config (use delimit_project_config) or memories (delimit_memory_store).
Sibling contrast: delimit_memory_store records info; this stores executable prompt templates with {{variable}} substitution.
Side effects: action="save" / "delete" mutate ~/.delimit/playbooks/. action="run" calls the configured model with substituted prompt. action="list" is read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | "save", "run", "list" (default), or "delete". | list |
| name | No | Playbook name. Required for save/run/delete. | |
| prompt | No | Template with {{variable}} placeholders (save only). | |
| description | No | Short description. | |
| variables | No | For run, "key=value,..."; for save, "name1,name2,...". | |
| model_hint | No | Suggested model (e.g. "claude-opus"). | |
| tags | No | Comma-separated tags for organization. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It clearly states side effects: mutation for save/delete (~/.delimit/playbooks/), model call for run, read-only for list. It also mentions variable substitution and cross-assistant sharing. However, it doesn't mention auth needs, overwrite behavior, or error conditions, which would push to 5.
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?
Well-structured: summary line, then usage guidelines, sibling contrast, side effects. All sentences are relevant. Could be slightly tighter, but no extraneous content. Front-loaded with purpose, making it easy to scan.
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 (7 params, multiple actions, variable substitution), the description covers key aspects: purpose, usage guidance, side effects, and sibling differentiation. It does not detail output format, but an output schema exists. A minor gap is no mention of required conditions for save/run/delete (e.g., name required), but schema provides that. Overall adequate and helpful.
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 covers 100% of parameters with descriptions. Description adds high-level context (grouping actions, variable format) but does not add detailed semantics beyond schema. Baseline 3 is appropriate as the description complements but does not significantly enhance parameter understanding.
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 opens with a clear verb+resource: 'Manage reusable prompt templates — save / run / list / delete.' It immediately conveys the tool's purpose and distinguishes it from siblings like delimit_memory_store and delimit_project_config, which are explicitly mentioned in sibling contrast.
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 when-to-use ('save your best prompts as named commands and run them later') and when-not-to-use ('manage project config' or 'memories'), with specific alternative tool names. Also includes sibling contrast sentence. This exceeds the typical guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_policyA
Inspect or simulate governance policy configuration.
When to use: to inspect the active policy or dry-run lint+policy against several presets to preview what would block. When NOT to use: for an actual gate decision (use delimit_lint) or to manage the policy file itself (delimit_gov_policy).
Sibling contrast: delimit_gov_policy reads the live policy; delimit_lint enforces; this lets you simulate / inspect.
Side effects: read-only on policy + spec files. action="simulate" runs lint internally without writing evidence.
| Name | Required | Description | Default |
|---|---|---|---|
| spec_files | Yes | List of spec file paths. Required. | |
| policy_file | No | Optional custom policy file path. | |
| action | No | "inspect" (default) or "simulate". | inspect |
| old_spec | No | Baseline spec path (required for simulate). | |
| new_spec | No | Proposed spec path (required for simulate). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but description fully discloses side effects: read-only on policy and spec files, and simulate action runs lint without writing evidence. 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?
Well-structured with sections for purpose, when to use/not use, sibling contrast, and side effects. Every sentence adds value, 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?
Given 5 parameters (1 required), output schema exists (so return values not needed), and no missing behavioral details. Description covers use cases, side effects, and alternatives comprehensively.
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 baseline 3. Description adds minimal extra parameter meaning beyond schema; it restates required fields and simulate prerequisites, but schema already has full 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?
Description clearly states 'Inspect or simulate governance policy configuration' with specific verb+resource. Distinguishes from siblings: delimit_gov_policy reads live policy, delimit_lint enforces, this simulates/inspects.
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' and 'When NOT to use' sections, naming alternatives delimit_lint and delimit_gov_policy. Also provides sibling contrast.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_project_configA
Manage delimit.yml project configuration (load / init / model).
When to use: to inspect, create, or query the project's delimit.yml AI configuration. When NOT to use: for governance state (use delimit_gov_status) or to manage prompts (use delimit_playbook).
Sibling contrast: delimit_gov_status reports governance runtime state; this manages the static config file.
Side effects: action="init" writes a new delimit.yml at project_path via ai.project_config.init_project_config. "load" and "model" are read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | "load" (default), "init", or "model". | load |
| project_path | No | Project root directory. Default "." (cwd). | . |
| mode | No | Governance mode (only for init). One of "advisory", "guarded", "enforce". Default "advisory". | advisory |
| preset | No | Policy preset (only for init). One of "strict", "default", "relaxed". Default "default". | default |
| task_type | No | Task type for model lookup (only for action="model"). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description fully discloses behavioral traits: indicates side effects (init writes, load/model read-only), mentions the internal function called, and notes read-only nature of some actions.
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, no extra words. Structured with summary, usage guidelines, and side effects. 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?
Given the complexity (5 params, output schema exists), the description is complete: covers all actions, side effects, usage context, and sibling differentiation. No gaps.
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 good descriptions. The description adds context about parameter applicability (e.g., task_type only for action='model'), but does not repeat schema details. Adds moderate value beyond 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's purpose: 'Manage delimit.yml project configuration (load / init / model).' It distinguishes itself from siblings like delimit_gov_status and delimit_playbook, providing a specific verb and 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?
Explicitly specifies when to use ('to inspect, create, or query the project's delimit.yml AI configuration'), when NOT to use ('for governance state' or 'manage prompts'), and contrasts with sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_prompt_driftA
Detect prompt drift across Claude / Codex / Gemini for the same task.
When to use: to track per-model prompt performance over time, or to rank models for specific task categories on your codebase. When NOT to use: to run a multi-model deliberation (use delimit_deliberate) — drift tracks single-model behaviour.
Sibling contrast: delimit_deliberate runs cross-model on a question; this tracks how a known prompt drifts per model.
Side effects: action="record" writes a result to the prompt-drift store via ai.prompt_drift.record_result. "check" and "rank" are read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | "record", "check" (default), or "rank". | check |
| prompt | No | Prompt text (for record / check). | |
| model | No | AI model name (required for record). | |
| result_summary | No | Brief description of the result (for record). | |
| success | No | "true" / "false" — whether the result was good. | true |
| task_type | No | Task category — "refactoring", "testing", "debugging", "docs". |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses side effects for different actions: 'record' writes to a store, while 'check' and 'rank' are read-only. This adds important behavioral context beyond the schema, though it does not cover error conditions or permissions.
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 well-structured, with distinct sections for purpose, usage guidelines, sibling contrast, and side effects. Every sentence adds value, and it is front-loaded with 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 complexity (6 parameters, output schema exists), the description covers purpose, usage guidelines, side effects, and sibling comparison. The output schema likely documents return values, so the description is adequate and complete for an agent to understand and use the tool 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%, so baseline is 3. The description adds minimal parameter-level detail beyond the schema, but does mention that 'model' is required for the 'record' action, which is a nuance not captured in the schema's required field (none). This adds marginal value.
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 detects prompt drift across models for the same task. It uses the specific verb 'Detect' and resource 'prompt drift', and distinguishes from the sibling tool delimit_deliberate by noting it tracks single-model behaviour rather than cross-model deliberation.
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 'When to use' and 'When NOT to use' sections, including a specific alternative tool (delimit_deliberate) and a sibling contrast that clarifies the difference. This gives clear guidance on when to use this tool versus alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_quickstartA
60-second guided quickstart for a new install.
When to use: immediately after installing Delimit, as the minimum-effort path to prove value — combines init + scan + environment detection. When NOT to use: for activation/license confirmation (use delimit_activate) or full diagnostics (delimit_diagnose).
Sibling contrast: delimit_init only writes scaffolding; delimit_scan only inspects; delimit_activate is post-license; this is the unified first-run flow.
Side effects: triggers init (writes .delimit/) and runs scan (read-only). Detects environment in passing.
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | No | Project path to quickstart. Default "." (cwd). | . |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully carries the burden. It discloses that the tool triggers init (writes .delimit/) and runs a scan (read-only), and detects the environment. This reveals both write and read side effects. It lacks details on auth or rate limits, but these are less critical for a quickstart tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise and well-structured with labeled sections for purpose, when to use, when not to use, sibling contrast, and side effects. Every sentence adds value, and critical information is 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 the tool's simplicity (single parameter with schema 100% coverage, output schema exists), the description is complete. It covers purpose, usage guidelines, side effects, and distinguishes from siblings. The agent has all necessary context to invoke the tool 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, project_path, is fully documented in the schema with default and description (100% schema coverage). The tool description does not add meaningful semantics beyond the schema; it only implies the path is for the project to quickstart. Thus 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 explicitly states the tool's purpose as a '60-second guided quickstart for a new install' that combines init, scan, and environment detection. It clearly distinguishes itself from sibling tools delimit_init, delimit_scan, and delimit_activate by contrasting their narrower scopes.
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 'When to use' (immediately after install) and 'When NOT to use' (for activation or diagnostics) guidance, and even names alternative tools delimit_activate and delimit_diagnose. This gives the agent clear decision criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_redactA
Scan or redact sensitive data (API keys, secrets, PII) from text.
When to use: before sending text to external LLMs or publishing output, to prevent leaking credentials or PII. When NOT to use: to manage stored secrets (use delimit_secret_store family) — this is in-memory text redaction.
Sibling contrast: delimit_secret_* manages credentials at rest; this scrubs them out of arbitrary text.
Side effects: read-only on input text — produces a sanitized copy in action="redact". Calls ai.pii_redact.scan / redact. Detects: API keys (OpenAI, xAI, Google, GitHub, npm), passwords, bearer tokens, emails, phone numbers, SSNs, credit cards, IPs, database URLs.
The internal token map is intentionally NOT exposed via MCP — it stays local. action="redact" returns only the redacted text and counts; the original cannot be recovered through this tool.
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | "scan" (preview, default) or "redact" (replace). | scan |
| text | No | Text to process. | |
| categories | No | Comma-separated categories — "api_key", "secret", "pii", "infra". Empty = all categories. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite no annotations, the description discloses read-only side effect, specific data types detected, internal token map not exposed, and irreversibility of redact action. Completely 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?
Well-structured with front-loaded main action, usage guidelines, and details. Slightly verbose but every sentence adds value; could be tighter.
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 parameter count 3, full schema coverage, and output schema exists, the description covers all necessary aspects: purpose, usage, behavior, parameter details, detected types, and security note. No gaps.
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 meaningful context: explains categories (api_key, secret, pii, infra) and that empty means all categories. Provides value beyond 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 scans or redacts sensitive data from text, with specific verb-resource pairs. It distinguishes from sibling delimit_secret_store family, which manages stored 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?
Explicitly provides when to use (before sending text to external LLMs or publishing) and when not to use (for managing stored secrets, redirecting to delimit_secret_store). Also includes sibling contrast.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_reddit_scanA
Bulk scan 25+ subreddits for outreach targets (Pro).
When to use: as a venture-agnostic bulk Reddit scan — returns ranked, categorized targets ready for comment drafting. When NOT to use: for venture-scoped scan (use delimit_reddit_fetch_thread or delimit_social_target) or one specific thread.
Sibling contrast: delimit_reddit_fetch_thread is single thread; delimit_social_target is multi-platform venture scan; this is the broad Reddit pass.
Side effects: read-only network via residential proxy. Rate limited to 1 req / 2sec. The orchestrator must chain (per rule below).
IMPORTANT -- TOOL CHAINING RULE: After scanning, the AI MUST process high_priority targets:
Draft replies via delimit_social_post or delimit_notify
Create ledger items for strategic opportunities via delimit_ledger_add Never just return targets and stop. Always chain.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | Reddit sort order — "hot" (default), "new", "top". | hot |
| limit | No | Posts per subreddit. Default 10, max 25. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses read-only network via residential proxy, rate limit of 1 req/2sec, and mandatory chaining rule. No annotations present, but description covers key behavioral aspects thoroughly.
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?
Well-structured with clear sections (intro, usage, exclusions, side effects, chaining rule). Every sentence adds value without 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 2 parameters fully documented in schema and presence of output schema, the description covers purpose, usage, behavioral traits, and chaining requirements completely.
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 both parameters having descriptions. Description adds no extra meaning beyond what schema already provides, meeting baseline expectations.
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 scans 25+ subreddits for outreach targets, with verb 'scan', resource 'subreddits', and specific purpose. Contrasts with siblings directly.
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 defines when to use (venture-agnostic bulk scan) and when not (venture-scoped or single thread), with alternative tools named. Provides clear context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_release_historyA
Return the recent release timeline for an environment (experimental).
When to use: during incident investigation when you need to see
what shipped and when ("what changed in the last 10 releases?"),
or when picking a known-good to_version for
delimit_release_rollback. The output is the release-tier
equivalent of git log for a deploy environment.
When NOT to use: to inspect only the current release (use
delimit_release_status) or for per-app deploy timeline
(delimit_deploy_status / SHA-level history). Also: for
audit-trail evidence collection use delimit_evidence_collect.
Sibling contrast: delimit_release_status is the point-in-time snapshot; this is the time-axis sibling. delimit_release_rollback consumes the output of this tool when picking a target version.
Side effects: read-only against the ops backend. No license gate at this level. Calls backends.ops_bridge.release_history which reads the release timeline store. No write, no probe, no notification. Marked EXPERIMENTAL — output schema may evolve.
| Name | Required | Description | Default |
|---|---|---|---|
| environment | Yes | Target environment. Required. | |
| limit | No | Maximum number of releases to return. Default 10. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully discloses side effects: read-only, no license gate, calls specific backend, no write/probe/notification. Also marks as EXPERIMENTAL with possible schema evolution.
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?
Well-structured with sections for purpose, usage, exclusions, sibling contrast, and side effects. Front-loaded, concise, and every sentence 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?
Given the tool has an output schema and two well-documented parameters, the description covers all necessary context: read-only nature, experimental status, sibling relationships, and use cases. No gaps.
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 description does not need to add parameter details. It adds no extra parameter semantics beyond what the schema 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?
The description clearly states the tool returns the recent release timeline for an environment, uses a specific verb-resource pair, and distinguishes from siblings like delimit_release_status and delimit_release_rollback.
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 (incident investigation, picking to_version for rollback) and when not to use (for current release, per-app timeline, audit-trail), with alternative tool names provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
_delimit_release_implA
Unified release-management entry point — dispatches to one of six actions.
When to use: as the single MCP-registered release surface (delimit_release) when the caller wants to pick the release operation by name in one call rather than choosing a specific delimit_release_* alias. Release-tier means whole-environment, multi-service versions (the rollup across apps), as opposed to the deploy-tier (per-app SHA) covered by the delimit_deploy_* tools. When NOT to use: from internal code paths — prefer the specific alias (delimit_release_plan, delimit_release_validate, delimit_release_status, delimit_release_rollback, delimit_release_history, delimit_release_sync) for clarity and so each action's docstring and license gate show up at the right call site. For per-app rollout state use delimit_deploy_status; to ship code use delimit_deploy_publish; for OpenAPI spec linting use delimit_lint.
Sibling contrast: each delimit_release_ wrapper is a thin
alias over this implementation; they exist so the action's
docstring lives at the right name. This is the dispatch core.
delimit_release_validate routes through a shared _release_validate
chain, and the public delimit_release_sync exposes its sub-action as
a param named action, which this function receives as sync_action.
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | Which release operation to perform. One of "plan", "validate", "status", "rollback", "history", "sync". Default "status". Other values return a deterministic error. | status |
| environment | No | Target environment, "staging" or "production". Default "production". | production |
| version | No | Release version (auto-detected from git tags if empty). Used by "plan", "validate", and "rollback" (as the expected current version to roll back FROM). | |
| repository | No | Repository path. Default ".". Used only by "plan". | . |
| services | No | Optional list of service names to scope the plan; None = all services in the repo manifest. Used only by "plan". | |
| to_version | No | Prior release version to roll back to. Required for "rollback"; ignored otherwise. | |
| limit | No | Maximum number of releases to return. Default 10. Used only by "history". | |
| sync_action | No | Sub-action for "sync" — "audit" (default) or "config". Ignored by other actions. | audit |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite no annotations, the description discloses its role as a dispatcher, lists the six actions, notes that invalid actions return a deterministic error, and explains the sync_action sub-action. It could be more explicit about potential destructive behaviors (e.g., rollback) or side effects, but it provides sufficient transparency for a dispatch function.
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 well-structured with clear sections (purpose, when to use/not use, sibling contrast) and each sentence adds value. It could be slightly more concise, but it remains 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?
Given 8 optional parameters, presence of output schema, and a large sibling set, the description adequately explains its role as the dispatch core and its relationship with aliases and other tools. It doesn't cover every detail of each action, but it provides sufficient context for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with detailed descriptions for each parameter, including defaults and usage scope per action. The description adds no extra parameter information beyond the schema, 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 it is a 'unified release-management entry point' that dispatches to six specific actions. It distinguishes itself from sibling aliases (e.g., delimit_release_plan) and from deploy-tier tools (delimit_deploy_*), making its purpose and scope unambiguous.
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 provides when to use (as the single MCP surface for release operations by name) and when NOT to use (prefer specific aliases in internal code). Also contrasts with related tools like delimit_deploy_status and delimit_lint, offering comprehensive guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_release_planA
Generate a release plan from git history (Pro).
When to use: ahead of cutting a release, to enumerate the services and changes that will ship and surface the version to bump. When NOT to use: to validate readiness (use delimit_release_validate) or to ship code (use delimit_deploy_publish).
Sibling contrast: delimit_deploy_plan plans a deploy of one app; this plans a multi-service release across an environment.
Side effects: read-only on git/repo state; gated by require_premium. Calls backends.tools_infra.release_plan.
| Name | Required | Description | Default |
|---|---|---|---|
| environment | No | Target environment, "production" or "staging". Default "production". | production |
| version | No | Release version. Auto-detected from git tags if empty. | |
| repository | No | Repository path. Default "." (cwd). | . |
| services | No | Optional list of service names to scope the plan; None = all services in the repo manifest. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses side effects as 'read-only on git/repo state', gated by require_premium, and internal call to backends.tools_infra.release_plan. With no annotations provided, this adds necessary behavioral context, though could elaborate on 'read-only' implications.
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 single paragraph with front-loaded purpose, clear usage guidelines, and transparency info. No extraneous 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 tool's complexity (4 optional params, output schema present), the description covers purpose, usage, side effects, and access requirements comprehensively. Completeness is high.
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 3. Description adds no extra parameter info 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?
Description explicitly states 'Generate a release plan from git history (Pro)', with a specific verb and resource. It contrasts with siblings (delimit_release_validate, delimit_deploy_publish, delimit_deploy_plan) to differentiate.
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?
Clearly states when to use ('ahead of cutting a release') and when not to use ('to validate readiness' or 'to ship code'), naming alternative tools. Also contrasts with delimit_deploy_plan for single-app deploys.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_release_rollbackA
Revert a whole environment to a prior release version (experimental).
When to use: when delimit_release_validate or delimit_obs_alerts indicate a regression that spans services and you need to revert the WHOLE environment to a known-good release, not just one app. Typical sequence: alert fires -> delimit_release_history to pick a target -> this -> delimit_release_status to confirm. When NOT to use: to roll back a single app at the SHA level (use delimit_deploy_rollback), to roll back an npm publish (npm publish history is largely append-only — there is no clean rollback), or to roll forward (delimit_release_plan).
Sibling contrast: delimit_deploy_rollback reverts one app at
the SHA level; this reverts a release version across services
in lockstep. delimit_release_history is how you pick the
to_version.
Side effects: invokes backends.ops_bridge.release_rollback which
MUTATES the live environment — services are flipped to the
to_version artifacts. No license gate at this level (handled
by the backend's own admin checks). Marked EXPERIMENTAL —
handler may return partial results on backends without rollback
automation; verify with delimit_release_status afterwards. No
automatic ledger write, no automatic notification — pair with
delimit_evidence_collect + delimit_notify per the deploy-gate
chain.
| Name | Required | Description | Default |
|---|---|---|---|
| environment | Yes | Target environment. Required. | |
| version | Yes | Current release version that is failing. Required. | |
| to_version | Yes | Prior release version to roll back to. Required. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite no annotations, the description fully discloses side effects: mutation, experimental nature, partial results possible, no license gate, no auto-ledger/notify. This is comprehensive behavioral transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with clear sections (purpose, when, when not, sibling contrast, side effects). Slightly long but every sentence adds value. 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 tool's complexity (experimental mutation), no annotations, and existing output schema, the description covers purpose, usage, side effects, and post-verification steps. Highly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers all 3 params with descriptions. Description adds value by clarifying that 'version' is the failing release and 'to_version' is the target from delimit_release_history, and gives usage context beyond 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 starts with a clear verb-reource pair: 'Revert a whole environment to a prior release version'. It distinguishes from siblings like delimit_deploy_rollback which is for single-app SHA rollback.
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', 'When NOT to use' sections, a typical sequence (alert -> history -> this -> status), and sibling contrast make it clear when to choose this tool over alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_release_statusA
Report the active release version for a whole environment (Pro).
When to use: to inspect which release version is currently live across all services in an environment — the "what is shipped right now?" check at the release-tier (versions across services) rather than the deploy-tier (per-app SHA). Useful for incident pages and pre-deploy "what are we coming from?" snapshots. When NOT to use: for per-app rollout state (use delimit_deploy_status), for past releases on the same env (use delimit_release_history), or to plan a new release (delimit_release_plan).
Sibling contrast: delimit_deploy_status reports a single app's SHA rollout; this reports the environment's release version overall (the rollup across apps). delimit_release_history is the time-axis sibling; this is the point-in-time snapshot.
Side effects: read-only against the ops backend and gated by require_premium — unlicensed callers receive a license payload and no query runs. On a licensed call, invokes backends.tools_infra.release_status which reads the release manifest for the environment. No write, no probe, no notification. Response routed through _with_next_steps.
| Name | Required | Description | Default |
|---|---|---|---|
| environment | No | Target environment. Default "production". | production |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses side effects: read-only, gated by require_premium, licensed call invokes reading release manifest, no write/probe/notification. Also explains response routing through _with_next_steps.
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?
Description is well-structured with sections (When to use, When NOT to use, Sibling contrast, Side effects). Every sentence earns its place; no fluff. Front-loaded with 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 one parameter, clear schema, and an output schema, the description covers all essential aspects: purpose, usage guidance, side effects, licensing, and internal behavior. No gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single parameter 'environment', which already has a default and description. The tool description does not add significant 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 the tool reports the active release version for an environment (Pro). It uses specific verb+resource ('report', 'release version') and distinguishes itself from siblings by explaining it's a point-in-time snapshot at the release-tier, not per-app deploy-tier.
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 (incident pages, pre-deploy snapshots) and when not to use (per-app rollout state, past releases, planning). Also contrasts with siblings delimit_deploy_status and delimit_release_history, providing clear guidance on alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_release_syncA
Audit or report config of public surfaces for consistency (Pro).
When to use: to confirm that all public surfaces (CLI, action, npm, site) reference the same release version and configuration. When NOT to use: to actually deploy or sync content — this is a read/audit tool only.
Sibling contrast: delimit_release_status reports the deployed state; this audits the public surface configuration for drift.
Side effects: gated by require_premium. Calls ai.release_sync.audit (read-only audit) or ai.release_sync.get_release_config when action="config".
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | Sub-action — "audit" (default) or "config". | audit |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses read-only audit nature, side effects (gated by require_premium, calls internal read APIs). Minor omission: no mention of error behavior or response format, but overall 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?
Description is concise with clear sections: purpose, when to use, sibling contrast, side effects. Every sentence adds value; no 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 low complexity (1 param, output schema exists), description covers all essential aspects: purpose, usage boundaries, side effects, and parameter semantics. It is complete and leaves no ambiguity.
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 (action) with 100% schema coverage. Description adds value by specifying default ('audit') and valid options ('audit' or 'config'), improving clarity 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 audits or reports config of public surfaces for consistency, with explicit verb and resource. It distinguishes itself from sibling delimit_release_status by specifying that this tool audits config while that reports deployed state.
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 (confirm consistency of release version/config) and when not to use (deploy/sync content). Also provides sibling contrast, giving clear guidance to the AI agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_release_validateA
Validate that a release is safe to ship.
When to use: as the gate between delimit_release_plan and the actual rollout — confirms the release passes preflight checks. When NOT to use: for OpenAPI spec linting (delimit_lint) or for runtime health (delimit_obs_status).
Sibling contrast: delimit_release_plan describes what would ship; this attests it is safe to ship.
Side effects: on success, returns a passed verdict (no side effects). On failure, auto-chains:
backends.repo_bridge.evidence_collect (records failure evidence)
ai.notify.send_notification (webhook event release_validation_failed)
ai.ledger_manager.add_item (creates ops-ledger fix item, P1)
| Name | Required | Description | Default |
|---|---|---|---|
| environment | Yes | Target environment ("production" / "staging"). | |
| version | Yes | Release version string. Required. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but description fully discloses side effects: on success no side effects, on failure auto-chains three specific tools. This gives agents essential behavioral expectations.
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?
Compact yet thorough: organized into clear sections (purpose, when to use/not, sibling contrast, side effects). Every sentence adds value, no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the existence of an output schema and full parameter schema, the description covers all critical aspects: pipeline role, auto-chaining behavior, and differentiation from related tools. Sufficient for correct agent selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with both parameters (environment, version) well-described. Description does not add extra parameter details, but baseline 3 is appropriate since schema already provides sufficient semantics.
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+resource: 'Validate that a release is safe to ship.' Distinguishes from siblings by stating it's the gate between delimit_release_plan and rollout, and contrasts with delimit_lint and delimit_obs_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?
Explicitly states when to use (as gate between plan and rollout) and when not (for linting or runtime health). Provides sibling contrast, clarifying that delimit_release_plan describes what would ship, while this attests safety.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_repo_analyzeA
Analyze repository structure and quality (experimental).
When to use: for a deep audit of a repo (local or remote) — code structure, language mix, quality signals. When NOT to use: for a fast health pass (use delimit_repo_diagnose) or config-only audit (delimit_repo_config_audit).
Sibling contrast: delimit_repo_diagnose is a quick smoke test; this is the deeper structural audit.
Side effects: read-only on the resolved local path. Accepts local path, "owner/repo" shorthand, or GitHub URL — remote inputs are shallow-cloned into a tempdir for the call. Calls backends.repo_bridge.analyze through _run_repo_tool_with_remote.
| Name | Required | Description | Default |
|---|---|---|---|
| target | No | Repository path, "owner/repo", or GitHub URL. Default "." (cwd). | . |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It details side effects ('read-only on the resolved local path'), input handling ('remote inputs are shallow-cloned into a tempdir'), and internal implementation ('Calls backends.repo_bridge.analyze'). This fully discloses the tool's 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 compact and well-structured, with clear sections for purpose, usage, sibling contrast, and side effects. Every sentence adds value, and the most important information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has one optional parameter and an output schema (context indicates it exists), the description fully covers what the agent needs to know: purpose, usage guidance, parameter behavior, and side effects. No gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'target' is described in the schema with default and type. The description adds value by explaining that remote inputs are shallow-cloned and that the local path is read-only. With 100% schema coverage, the description 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's purpose: 'Analyze repository structure and quality (experimental).' It explicitly contrasts with sibling tools delimit_repo_diagnose (quick smoke test) and delimit_repo_config_audit (config-only), making it distinguishable.
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: 'When to use: for a deep audit of a repo... When NOT to use: for a fast health pass (use delimit_repo_diagnose) or config-only audit (delimit_repo_config_audit).' This clearly indicates the appropriate context and alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_repo_config_auditA
Audit repository configuration for compliance (experimental).
When to use: when checking a repo's config against a compliance standard — required files, branch protection, license header. When NOT to use: for structural validity (use delimit_repo_config_validate) or full quality analysis (delimit_repo_analyze).
Sibling contrast: delimit_repo_config_validate checks well-formedness; this checks compliance.
Side effects: read-only on the resolved local path. Accepts local path, "owner/repo" shorthand, or GitHub URL — remote inputs are shallow-cloned. Calls backends.repo_bridge.config_audit via _run_repo_tool_with_remote.
| Name | Required | Description | Default |
|---|---|---|---|
| target | No | Repository or config path, "owner/repo", or GitHub URL. Default "." (cwd). | . |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses read-only side effects, behavior with remote inputs (shallow clone), and internal implementation call. With no annotations, the description fully informs about behavioral traits.
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?
Well-structured with clear sections, concise sentences, and front-loaded purpose. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple input schema and presence of output schema, the description covers all necessary context: purpose, usage boundaries, side effects, input variations, and experimental status. Complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Description adds value beyond the input schema by explaining that target accepts local path, 'owner/repo' shorthand, or GitHub URL. The schema had 100% coverage, but description clarifies input 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 states the tool audits repository configuration for compliance, listing specific compliance aspects (required files, branch protection, license header). It distinguishes from siblings by naming delimit_repo_config_validate and delimit_repo_analyze.
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 'When to use' and 'When NOT to use' sections, naming alternative tools for other use cases. This gives excellent guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_repo_config_validateA
Validate repository configuration files (experimental).
When to use: as a pre-merge check that .github/, package.json, pyproject.toml, etc. are well-formed and self-consistent. When NOT to use: for compliance vs an external standard (use delimit_repo_config_audit) or full repo analysis (delimit_repo_analyze).
Sibling contrast: delimit_repo_config_audit reports policy compliance; this checks structural validity.
Side effects: read-only on the resolved local path. Accepts local path, "owner/repo" shorthand, or GitHub URL — remote inputs are shallow-cloned into a tempdir. Calls backends.repo_bridge.config_validate via _run_repo_tool_with_remote.
| Name | Required | Description | Default |
|---|---|---|---|
| target | No | Repository or config path, "owner/repo", or GitHub URL. Default "." (cwd). | . |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description fully details behavior: read-only, accepts local path/owner/repo/GitHub URL, remote inputs shallow-cloned to tempdir, and calls backend function. Adds valuable context beyond 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?
Description is concise; purpose, usage guidelines, and behavior are clearly front-loaded. No redundant sentences. 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?
Covers purpose, when to use, side effects, parameter semantics, and sibling contrast. Since output schema exists, return values need not be explained. Complete for a validation 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?
Only one parameter 'target' with 100% schema description coverage. The description doesn't add additional meaning beyond what the schema already provides; baseline score 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 validates repository configuration files (experimental) and lists example files. It distinguishes from siblings delimit_repo_config_audit (policy compliance) and delimit_repo_analyze (full repo analysis).
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 (pre-merge check) and when NOT to use (compliance vs external standard or full repo analysis), with specific sibling tool names. Provides clear context and alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_repo_diagnoseA
Diagnose repository health issues (experimental) (Pro).
When to use: before a commit or push to surface common repo problems — broken hooks, missing config, dirty working tree. When NOT to use: for full quality analysis (use delimit_repo_analyze) or per-file config validation (delimit_repo_config_validate).
Sibling contrast: delimit_repo_analyze is a deeper structural audit; this is a quick health-check pass.
Side effects: read-only on the repo; gated by require_premium. Calls backends.repo_bridge.diagnose. Marked experimental — output schema may evolve.
| Name | Required | Description | Default |
|---|---|---|---|
| target | No | Repository path. Default "." (cwd). | . |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses read-only nature, requirement of 'require_premium', internal implementation call, and experimental status. With no annotations, this fully covers behavioral transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise yet structured with clear sections (when to use, when not, sibling contrast, side effects). Every sentence provides 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?
Complete for a simple diagnostic tool: covers when to use, behavior, side effects, gating, and experimental status. Output schema exists so return values need not be 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?
The input schema already describes the single parameter 'target' with default and path explanation. The description adds no further detail beyond the schema, meeting the baseline for full 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?
Clearly states 'Diagnose repository health issues' and distinguishes from siblings by specifying when to use delimit_repo_analyze and delimit_repo_config_validate instead.
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 (before commit/push), when not to use (for full analysis or per-file validation), and provides sibling contrast with delimit_repo_analyze.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_resource_driversA
List available data plane drivers and their resource schemas.
When to use: to inventory which external systems Delimit can read from (github, etc.) and what resources each driver exposes. When NOT to use: to read data from a driver (use delimit_resource_list / delimit_resource_get).
Sibling contrast: delimit_resource_list lists items via a driver; this lists the drivers themselves.
Side effects: read-only. Calls ai.data_plane.list_drivers.
Args: None.
Returns: Dict with key "drivers" (list of driver definitions and their resource schemas) and next_steps.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully covers behavior: declares 'side effects: read-only' and states the underlying API call ('Calls ai.data_plane.list_drivers'). 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 concise and well-structured: purpose, usage guidelines, side effects, args, and returns. Each section is front-loaded and adds value without superfluous 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 tool's simplicity (no parameters, output schema exists), the description covers all necessary aspects: purpose, usage context, side effects, return structure. It is complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has no parameters (100% coverage). The description explicitly states 'Args: None,' which is clear and complete. No additional parameter description needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'List available data plane drivers and their resource schemas.' It also distinguishes from sibling 'delimit_resource_list' by noting that this lists drivers, not items via a driver.
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 provides when to use (inventory external systems) and when not to use (to read data from a driver), with specific alternative tools mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_resource_getA
Get a specific resource from a connected data-plane system.
When to use: to fetch a single item by identifier via a driver — a repo, PR, issue, or workflow run. When NOT to use: to list items (use delimit_resource_list) or inventory drivers (delimit_resource_drivers).
Sibling contrast: delimit_resource_list returns many; this returns one.
Side effects: read-only network call via the driver. Calls ai.data_plane.get_driver and the driver's get_* method.
| Name | Required | Description | Default |
|---|---|---|---|
| driver | No | Driver key. Default "github". | github |
| resource | No | One of "repos", "pull_requests", "issues", "workflows". Required. | |
| identifier | No | Resource identifier — repo name, PR number, run id. Required. | |
| repo | No | "owner/name" required for PRs / issues / workflow runs. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses side effects: 'read-only network call via the driver'. Since no annotations are provided, the description carries the full burden and provides useful behavioral context. Could be improved by mentioning error handling or rate limits, but still strong.
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?
Well-structured with intro, usage guidelines, sibling contrast, and side effects. Every sentence is informative 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?
Given the presence of an output schema, the description covers purpose, usage, side effects, and sibling differentiation completely. No gaps identified.
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 baseline is 3. The description adds minimal extra meaning beyond the schema, only contextualizing that identifier fetches a single item.
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 'Get' and the resource 'a specific resource from a connected data-plane system'. It distinguishes from siblings by noting delimit_resource_list returns many and this returns one.
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 (fetch single item by identifier per driver for repo/PR/issue/workflow run) and when not to use (listing, inventory drivers), with specific alternative tools named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_resource_listA
List resources from a connected data-plane system.
When to use: to enumerate items via a driver — repos, PRs, issues, workflow runs. When NOT to use: to fetch a specific item (use delimit_resource_get) or inventory drivers (delimit_resource_drivers).
Sibling contrast: delimit_resource_drivers lists drivers; delimit_resource_get fetches one item; this lists items.
Side effects: read-only network calls via the chosen driver. Calls ai.data_plane.get_driver and the driver's list_* method.
| Name | Required | Description | Default |
|---|---|---|---|
| driver | No | Driver key. Default "github". | github |
| resource | No | One of "repos", "pull_requests", "issues", "workflows". Required. | |
| repo | No | "owner/name" — required for workflow listing. | |
| org | No | Organization filter for repos. | |
| state | No | PR/issue state — "open" (default), "closed", "all". | open |
| limit | No | Max results. Default 10. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but description states 'read-only network calls' and internal driver methods. Discloses side effects and internal behavior sufficiently for safe invocation.
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 at ~100 words, uses clear sections, front-loaded main purpose. No unnecessary sentences.
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 full schema descriptions and output schema existence, the description covers all necessary context: purpose, usage, side effects, and sibling differentiation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with detailed param descriptions. Description adds usage context (e.g., 'repo required for workflow listing') but does not substantially extend parameter meaning beyond 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 'List resources from a connected data-plane system' with specific examples (repos, PRs, issues, workflow runs). Distinguishes from siblings by naming delimit_resource_get and delimit_resource_drivers.
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' and 'When NOT to use' sections with alternative tools named. Sibling contrast further clarifies when to use this tool versus similar ones.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_reviewA
Run a multi-model code review on a diff or file.
When to use: to get cross-model feedback on a code change before merging, optionally posted as a PR comment. When NOT to use: for structured cross-lens audit (use delimit_audit) or full multi-round debate (delimit_deliberate).
Sibling contrast: delimit_audit is structured (security / correctness / governance lenses); delimit_deliberate is full debate; this is single-prompt multi-model review.
Side effects: calls multiple models via ai.multi_review. May write a saved review record. When pr_url is provided, the review can be posted as a PR comment by the caller (this tool returns the comment body, it does not auto-post).
| Name | Required | Description | Default |
|---|---|---|---|
| diff | No | Git diff or code text to review. Takes priority over file_path. | |
| file_path | No | Path to file to review (reads current content if no diff). | |
| context | No | Additional context about the change. | |
| pr_url | No | GitHub PR URL for linking the review. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Discloses side effects: calls ai.multi_review, may write saved record, returns comment body (no auto-post). Could mention failure modes or permissions, but 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?
Well-structured: first sentence states purpose, then bullet-like sections for usage, sibling contrast, side effects. Concise 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?
Covers purpose, usage, side effects, and parameter context. Output schema exists, so return details not needed. Lacks prerequisites or error handling, but adequate for a review 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%, baseline 3. Description adds value by clarifying that diff takes priority over file_path, which is not in 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 verb ('Run a multi-model code review') and the resource ('a diff or file'). It distinguishes from siblings by naming delimit_audit for structured lenses and delimit_deliberate for debate.
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?
Includes explicit 'When to use' and 'When NOT to use' sections with clear alternative tools (delimit_audit, delimit_deliberate) and context for PR comments.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_reviveA
Revive the last session's captured soul in any model.
When to use: at session start, to load the prior session's soul (active task, decisions, blockers, next steps). When NOT to use: to capture a soul (delimit_soul_capture) or read recent memories (delimit_memory_recent).
Sibling contrast: delimit_soul_capture writes the soul; this reads and applies it (cross-model: Claude, Codex, Gemini, Cursor).
Side effects: read-only; calls ai.session_phoenix.revive.
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | No | Project path to revive. Empty = auto-detect from cwd. | |
| soul_id | No | Specific soul id to revive. Empty = latest. | |
| scope | No | Optional handoff/receipt id. When set, revives ONLY that scoped handoff context (for dispatched subagents) instead of the global session soul. Empty = full soul (default). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It declares read-only nature and indicates cross-model compatibility. While it doesn't detail error handling or prerequisites, the side-effect disclosure is adequate for 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?
The description is concise, front-loaded with the key action, and every sentence serves a purpose. No redundant or 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?
Given the presence of an output schema, the description is complete—it covers purpose, usage guidelines, side effects, and sibling differentiation. Minor gaps in behavioral details are acceptable due to 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?
Schema coverage is 100%, so the schema already documents parameters well. The description adds minimal additional context beyond parameter defaults and usage hints, meeting the baseline expectation.
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 'Revive' with resource 'soul' and clearly distinguishes from sibling tools delimit_soul_capture (writes) and delimit_memory_recent (reads memories).
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 ('at session start, to load the prior session's soul'), when not to use (for capture or memory read), and contrasts with siblings. Provides clear decision guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_scanA
Scan a project and report what Delimit can do for it.
When to use: as a first-run discovery on a new project — finds OpenAPI specs, checks for security issues, detects frameworks, suggests what to track. When NOT to use: to initialize governance (use delimit_init) or run the 60-second quickstart (delimit_quickstart).
Sibling contrast: delimit_quickstart is a guided first-run flow; delimit_init creates the governance scaffolding; this is read-only discovery.
Side effects: read-only scan via filesystem globs. Does not write to project files.
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | No | Path to the project to scan. Default "." (cwd). | . |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description declares side effects: 'read-only scan via filesystem globs. Does not write to project files.' This fully discloses behavior. No annotations exist, so the description carries the burden and does it 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?
The description is well-structured with clear sections (purpose, when to use/not, sibling contrast, side effects). It is concise with no redundant sentences, front-loaded with the primary purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with output schema, the description covers discovery intent, output specifics, side effects, and usage context. No gaps remain; the tool is fully described for agent selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds no extra meaning for the parameter beyond the schema's description and default. It does not elaborate on path format 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 tool scans a project and reports what Delimit can do, listing specific findings (OpenAPI specs, security issues, frameworks, tracking suggestions). It distinguishes from siblings delimit_quickstart and delimit_init by contrasting their 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?
Explicit 'When to use' and 'When NOT to use' sections provide clear guidance. It states when to use (first-run discovery on a new project) and when not (governance initialization or quickstart), with named alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_screen_recordA
Record a screen capture (browser or terminal session) (Pro).
When to use: to capture a video for documentation, demo, or audit evidence over a fixed window. When NOT to use: for a single still (use delimit_screenshot).
Sibling contrast: delimit_screenshot is one frame; this is a duration-bound recording.
Side effects: launches headless Chromium (browser mode) or a terminal subprocess (terminal mode), writes MP4 (browser) or GIF
MP4 (terminal) under ~/.delimit/recordings/. Gated by require_premium. Duration is capped at 120 seconds.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | "browser" (default) or "terminal". | browser |
| url | No | URL to visit (browser mode only). | |
| name | No | Output filename without extension. Default "recording". | recording |
| duration | No | Recording duration in seconds. Max 120. Default 30. | |
| script | No | Shell script to run (terminal mode only). Empty = idle terminal capture. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears the full burden. It discloses side effects: launches headless Chromium or terminal subprocess, writes MP4/GIF files under ~/.delimit/recordings/, gated by require_premium, and duration capped at 120s. This is comprehensive, though it could mention if files overwrite or if the operation is cancellable.
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 highly concise and well-structured with clear sections: purpose, when-to-use, when-not-to-use, sibling contrast, and side effects. Every sentence adds value without 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 complexity (screen recording with multiple modes and parameters) and presence of an output schema, the description covers input, side effects, output files, and usage constraints (Pro, duration cap). It is complete enough for an agent to determine when and how to invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds context beyond the schema by explaining that script is for terminal mode only, and that there are two modes (browser/terminal). It also mentions file outputs per mode. This adds meaningful value for parameter understanding.
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 'Record a screen capture' with a specific verb and resource. It distinguishes from sibling tool delimit_screenshot by noting it captures video over a duration, not a single still.
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 provides when to use (capture video for documentation, demo, audit) and when NOT to use (single still - use delimit_screenshot), giving clear context and alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_screenshotA
Take a screenshot of a URL using headless Chromium (Pro).
When to use: for audit evidence, visual regression baselines, or documentation captures. When NOT to use: for time-based recordings (use delimit_screen_record) or rendered HTML extraction.
Sibling contrast: delimit_screen_record captures over time (browser or terminal); this captures a single image.
Side effects: gated by require_premium. Launches headless Chromium via Playwright and writes a PNG file under ~/.delimit/screenshots/.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL to screenshot. Required. | |
| name | No | Output filename (without extension). Default "screenshot". | screenshot |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses side effects: gated by require_premium, launches headless Chromium, writes PNG to specific path. No annotations provided, so description carries full burden; lacks mention of rate limits but addresses key behaviors.
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?
Description is brief, well-structured with labeled sections (when to use, when not, sibling contrast, side effects). Every sentence 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?
Given output schema existence, description covers purpose, usage boundaries, side effects, and sibling contrast. Sufficient for an agent to understand and use the tool 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 description coverage is 100%, so baseline is 3. Description does not add extra meaning beyond the schema's own 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?
Description clearly states 'Take a screenshot of a URL using headless Chromium (Pro)', specifies the action, resource, and technology. Contrasts effectively with sibling delimit_screen_record.
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 lists when to use (audit evidence, visual regression, documentation) and when NOT to use (time-based recordings, rendered HTML), naming the alternative sibling tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_seal_verifyA
Verify a Delimit Seal receipt against the bundled Layer-0 constitution (Free).
When to use: to check that a signed governed-output receipt has not been tampered with — content-pin to the published constitution, a valid Ed25519 signature, and a well-formed structure. Free tier. When NOT to use: to verify an evidence bundle (use delimit_evidence_verify) or to query the ledger (delimit_ledger).
Sibling contrast: delimit_evidence_verify checks an evidence bundle's hash chain; this checks an open-core Seal receipt's signature + content-pin with no access to the engine or the signing key.
Side effects: read-only. Calls backends.repo_bridge.seal_verify. The 'cryptography' dependency is optional + lazy-imported: if absent, it returns verification_unavailable rather than failing. No license gate.
| Name | Required | Description | Default |
|---|---|---|---|
| receipt_path | Yes | Path to a Delimit Seal receipt JSON file. Required. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite no annotations, the description discloses side effects as 'read-only', details the backend call, and explains the optional dependency behavior (returns verification_unavailable if cryptography is absent). 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 well-structured with clear headings (purpose, when to use/not use, sibling contrast, side effects). Every sentence adds value and there is no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple tool (1 param, no annotations, has output schema), the description covers purpose, usage boundaries, side effects, and alternatives. The output schema handles return value documentation, so the description is complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the parameter description in the schema already explains 'receipt_path'. The description does not add additional semantics or usage details beyond the schema. Per guidelines, 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 'Verify' and the specific resource 'Delimit Seal receipt against the bundled Layer-0 constitution'. The sibling contrast section explicitly distinguishes it from delimit_evidence_verify and delimit_ledger.
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 includes explicit 'When to use' and 'When NOT to use' sections, naming alternative tools (delimit_evidence_verify, delimit_ledger) and contrasting their purposes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_secret_access_logA
Show the audit log of secret accesses.
When to use: for compliance review, incident investigation, or to see who/what fetched a credential. When NOT to use: to read a secret value (delimit_secret_get) or to inventory secrets (delimit_secret_list).
Sibling contrast: delimit_secret_get appends to this log; this reads it back.
Side effects: read-only. Calls ai.secrets_broker.get_access_log.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Optional secret name to filter the log. Empty = all secrets. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states 'Side effects: read-only' and 'Calls ai.secrets_broker.get_access_log,' which explicitly discloses read-only nature and internal call. However, it does not mention authentication or rate limits, but the read-only and internal call details are sufficient for 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 highly concise with six sentences. It is well-structured: purpose first, then usage guidelines, sibling contrast, and side effects. No unnecessary words, every sentence 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?
Given the tool's simplicity (one optional parameter) and the presence of an output schema, the description fully covers purpose, usage, contrast, and side effects. It provides sufficient context for an agent to select and invoke the tool 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 one parameter described. The schema already states 'Optional secret name to filter the log. Empty = all secrets.' The description does not add additional meaning beyond this, so 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's action: 'Show the audit log of secret accesses.' It explicitly distinguishes from siblings by stating what not to use it for (reading secret values or inventorying secrets) and contrasting with delimit_secret_get which appends to the log.
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 when-to-use scenarios (compliance review, incident investigation, seeing who fetched a credential) and when-not-to-use with alternative tool names (delimit_secret_get, delimit_secret_list). Also includes sibling contrast for additional clarity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_secret_getA
Request just-in-time access to a stored secret.
When to use: when a tool or agent needs a credential at execution time. The broker logs every access for audit. When NOT to use: to add a secret (use delimit_secret_store) or to examine the audit log (use delimit_secret_access_log).
Sibling contrast: delimit_secret_store writes; this reads with audit; delimit_secret_access_log shows the resulting access trail.
Side effects: appends an access log entry via ai.secrets_broker.get_secret. Does not return secrets to scopes that were not authorised at store time.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Secret name to retrieve. Required. | |
| agent_type | No | Identity of the requesting agent (used by the broker to check scope). | |
| tool | No | Name of the requesting tool (used by the broker to check scope). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description carries full burden. It discloses side effect (appends access log entry) and behavioral constraint (does not return secrets to unauthorized scopes). Could mention failure modes, but transparent enough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise and front-loaded with main action. Each sentence adds value (when-to-use, sibling contrast, side effects). Could combine some sentences, but overall 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?
Covers usage context, side effects, and authorization constraints. Does not describe return structure, but output schema exists. Could mention error scenarios (e.g., missing secret), but still fairly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% coverage with descriptions. The description does not add extra meaning beyond what schema already provides (e.g., required status, broker scope check). Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Request just-in-time access to a stored secret.' It uses specific verb 'request' and resource 'stored secret', and distinguishes itself from siblings (delimit_secret_store writes, delimit_secret_access_log shows audit trail).
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 provides 'When to use' (credential needs at execution time) and 'When NOT to use' (to add a secret or examine audit log), with direct references to alternate tools. Also includes sibling contrast.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
_delimit_secret_implA
Unified secrets-broker entry point — dispatches to one of five actions.
Manages just-in-time credential access through the local Delimit secrets broker (ai.secrets_broker) instead of bare environment variables or .env files: store a credential once with an access scope, fetch it at execution time with every read recorded to an audit trail, inventory credential metadata without exposing values, revoke on rotation/leak, and read the access log.
When to use: as the single MCP-registered secrets surface (delimit_secret) when the caller wants to pick the operation by name in one call rather than choosing a specific delimit_secret_* alias. When NOT to use: from internal code paths — prefer the specific alias (delimit_secret_store, delimit_secret_get, delimit_secret_list, delimit_secret_revoke, delimit_secret_access_log) so each operation's docstring and arg schema show up at the right call site. Do not use the broker as a general key/value store — it is credential-scoped and every read is audited.
Sibling contrast: each delimit_secret_ wrapper below is a thin alias over this implementation; they exist so the action's docstring lives at the right name. This is the dispatch core. Versus delimit_context_* / delimit_memory_*: those persist plans and notes; this persists access-controlled credentials with a read audit trail.
Storage & access model: credentials are persisted to the local broker store under ~/.delimit/secrets/ (encoded at rest) and returned in cleartext to an authorized caller — the host filesystem is the trust boundary, so protect it accordingly. Scope is enforced at READ time: scope="all" permits any caller; otherwise the requester's agent_type or tool must appear in the credential's comma-separated allow-list. The access log records who/what/when and whether access was granted — it never stores the credential value, and "list" returns metadata only, never values.
Side effects (per action):
"store": WRITES/overwrites the credential under ~/.delimit/secrets/ with its scope and description. A same-name store overwrites silently; there is no version history.
"get": returns the credential value to an authorized requester and appends an access-log entry (granted true/false); on success it updates the credential's access counter / last-accessed timestamp. A scope denial, a missing name, or a revoked credential is logged and returns without a value.
"list": READ-ONLY. Returns credential metadata (name, scope, description, created_by, access_count, revoked, timestamps) — never values. Wrapped via _with_next_steps.
"revoke": WRITES a revoked flag + timestamp and appends a revoke entry to the access log; subsequent "get" calls are denied. Does NOT hard-delete the stored file.
"access_log": READ-ONLY. Returns the access trail (newest first), optionally filtered to one credential name. Wrapped via _with_next_steps. No action is license-gated. Errors are deterministic ({"error": "..."}): a missing required argument or an unknown action short-circuits before the backend call.
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | Which secret operation to perform. One of "store", "get", "list", "revoke", "access_log". Default "list". Case- insensitive (lowered + stripped). Other values return a deterministic error. | list |
| name | No | Credential name / key. Required for "store", "get", "revoke"; optional filter for "access_log" (empty = all); ignored for "list". Sanitized for filesystem safety. | |
| value | No | The credential to store. Required for action="store"; ignored otherwise. Never echoed back by "store". | |
| scope | No | Comma-separated agent/tool identities permitted to read this credential, or "all" for any requester. Used only by action="store". Default "all". Enforced at read time. | all |
| description | No | Human-readable description (action="store" only). Optional but recommended; surfaces in "list" and the audit trail. | |
| agent_type | No | Identity of the requesting agent (action="get" only), checked against scope. | |
| tool | No | Name of the requesting tool (action="get" only), checked against scope. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description carries full burden. It details side effects per action, storage model under ~/.delimit/secrets/, scope enforcement, audit trail behavior, and error handling. Every action's read/write nature and consequences are described.
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?
Well-structured with clear sections: purpose, when to use, sibling contrast, storage model, side effects. Sentences are informative and not redundant. Despite length, every sentence adds necessary detail for a complex tool.
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 7 parameters, no required params, and output schema exists, the description is complete. It covers all operations, side effects, storage, scope, audit, and error behavior. Agent has enough information to use this tool 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 description coverage is 100%, but description adds significant value beyond schema: action is case-insensitive, name is sanitized for filesystem safety, value is never echoed back, scope is enforced at read time, agent_type and tool are checked against scope. Provides context that aids correct 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 it is a unified entry point for five secret operations, distinguishing from sibling tools by explaining that aliases exist for each action and contrasting with other delimit_* tools like delimit_context_* and delimit_memory_*. The verb 'dispatches' and resource 'secrets-broker entry point' are specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use (as single MCP-registered secrets surface) and when NOT to use (from internal code paths, prefer specific alias) and not to use as general key/value store. Provides clear alternative: use specific delimit_secret_* aliases for each action.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_secret_listA
List secrets in the broker (metadata only — never values).
When to use: to inventory what credentials are stored without exposing the values themselves. When NOT to use: to retrieve a value (use delimit_secret_get) or to add one (delimit_secret_store).
Sibling contrast: delimit_secret_get returns values (audited); this returns only metadata (name, scope, description).
Side effects: read-only. Calls ai.secrets_broker.list_secrets.
Args: None.
Returns: Dict with key "secrets" containing a list of metadata records, plus next_steps suggestions.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description states 'Side effects: read-only. Calls ai.secrets_broker.list_secrets' and emphasizes it never returns values. Provides good behavioral context beyond the bare minimum, though lacks audit/permission 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?
Highly concise with bolded sections and bullet points. Every sentence adds value. No wasted words. Efficiently structured to convey purpose, usage, and behavior.
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 no parameters and an output schema. Description specifies return type: Dict with key 'secrets' containing list of metadata records, plus next_steps suggestions. Completely covers all necessary 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?
Input schema has zero parameters (schema coverage 100%). Description explicitly states 'Args: None.' which adds no further meaning beyond the schema, meeting baseline expectation for no parameters.
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 secrets in the broker (metadata only — never values)' with specific verb (list) and resource (secrets). Distinguishes from siblings delimit_secret_get and delimit_secret_store.
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 ('inventory what credentials are stored without exposing values'), when-NOT-to-use (retrieve value -> delimit_secret_get, add one -> delimit_secret_store), and sibling contrast with delimit_secret_get.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_secret_revokeA
Revoke a secret to prevent any future access.
When to use: after a credential leak or when rotating away from an old secret name. When NOT to use: to delete metadata only — revocation also blocks delimit_secret_get from succeeding.
Sibling contrast: delimit_secret_store creates; this disables.
Side effects: writes a revocation record via ai.secrets_broker.revoke_secret. Subsequent get calls will be denied; the access log is preserved.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Secret name to revoke. Required. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations present, so description fully discloses side effects: writes a revocation record via ai.secrets_broker.revoke_secret, subsequent get calls denied, access log preserved. Provides clear behavioral expectations.
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?
Description is concise (4 sentences) and well-structured with labeled sections for when to use, when not to, sibling contrast, and side effects. Every sentence 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 revoke tool with one parameter and an output schema, the description covers use cases, side effects, and parameter usage completely. No gaps identified.
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 description does not add meaning beyond the input schema for the single parameter 'name'. Schema coverage is 100%, so baseline 3 is appropriate; the description repeats 'Required.' which is already in the parameter description but does not provide additional semantics.
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 'revoke' and resource 'secret' with the purpose 'prevent any future access'. It contrasts with sibling tool delimit_secret_store, which 'creates', and implicitly distinguishes from delimit_secret_get by noting revocation blocks it.
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 when-to-use scenarios ('after a credential leak or when rotating away from an old secret name') and when-not-to-use ('to delete metadata only — revocation also blocks delimit_secret_get'). Includes sibling contrast for alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_secret_storeA
Write a credential into the Delimit secrets broker store.
When to use: when onboarding an API key, OAuth token, or other credential that one or more agents/tools will need at execution time, and you want the access scoped + audit-logged rather than sitting in an environment variable or .env file. Typical pairing: call this once at setup, then call delimit_secret_get from the consuming tool at runtime. When NOT to use: to fetch the value (use delimit_secret_get for just-in-time access with audit), to inspect which secrets exist without revealing values (delimit_secret_list), to disable an existing secret (delimit_secret_revoke), or to read the access audit trail (delimit_secret_access_log). Also: do not use this as a general-purpose key/value store — the broker is credential- scoped and the audit log will fill up with non-credential noise.
Sibling contrast: delimit_secret_store writes; delimit_secret_get reads with JIT access logging; delimit_secret_list shows metadata only (never values); delimit_secret_revoke disables; together they form the broker surface. Compared to writing a value directly to .env, this routes through a scoped, audited broker.
Side effects: invokes ai.secrets_broker.store_secret which persists the value to the broker's at-rest store. The scope field is also persisted and is enforced on every subsequent delimit_secret_get call. There is no append-only history of stored values — a re-store with the same name overwrites. No network egress and no ledger write; the audit trail is the broker's own access log (visible via delimit_secret_access_log), which records the WRITE event as well as later reads.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Secret name (key). Required. | |
| value | No | Secret value (the actual credential). Required. | |
| scope | No | Comma-separated agent/tool scopes that may access this secret, or "all" to allow any. Default "all". | all |
| description | No | Human-readable description for audit trails. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description fully covers behavioral traits: persistence, scope enforcement, overwrite behavior, no append-only history, no network egress, and audit trail recording. Discloses internal component invocation.
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?
Well-structured with clear sections (summary, when to use/not, sibling contrast, side effects). Front-loaded with a one-sentence purpose. Slightly verbose but each sentence 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?
Comprehensively covers all aspects: purpose, usage guidelines, side effects, and parameter semantics. Contrasts with siblings. No gaps given the tool's complexity and absence of annotations.
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?
Input schema has 100% description coverage. The description adds context about scope enforcement and purpose of parameters, enhancing understanding beyond 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 explicitly states 'Write a credential into the Delimit secrets broker store,' providing a clear verb and resource. It differentiates from siblings like delimit_secret_get, delimit_secret_list, and delimit_secret_revoke.
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?
Includes explicit 'When to use' and 'When NOT to use' sections, detailing typical scenarios (onboarding API keys) and exclusions (fetching, listing, revoking, general KV store). Also suggests pairing with delimit_secret_get.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_security_auditA
Audit security and auto-chain evidence + governance on critical findings.
When to use: as the deploy gate / pre-release security check — combines dependency vulnerability scanning, hardcoded-secret detection, dangerous-pattern checks, and .env-tracked-in-git checks, AND automatically opens a governance task + sends a notification when critical findings are present. When NOT to use: for a baseline scanner pass without auto-chained side effects (use delimit_security_scan), to ingest an external scanner's output (delimit_security_ingest), or to triage existing findings (delimit_security_deliberate).
Sibling contrast: delimit_security_scan is the read-only baseline scanner; delimit_security_ingest accepts external tool output; delimit_security_deliberate triages findings via multi-model panel; this one runs the audit AND auto-chains evidence collection, governance task creation, and notification on criticals.
LED-1278: by default the scanner skips test directories (tests/, tests/, spec/, fixtures/, *_test.py, *.test.tsx, etc.) and suppresses well-known dummy values (AWS canonical example, alphabet-pattern GitHub tokens, leading-1234567890 Slack tokens, trivial JWTs, generic placeholder dict values). Pass include_tests=True to scan test trees too — useful for repos that ship real secrets in fixture files (rare, but legitimate).
Side effects: writes an evidence bundle (always, best-effort). On critical findings, creates a governance task via the governance engine and sends a webhook notification. Optional: SNYK_TOKEN or Trivy in the environment enable enhanced scanning.
| Name | Required | Description | Default |
|---|---|---|---|
| target | No | Repository or file path to audit. Default "." (cwd). | . |
| include_tests | No | When True, scan test directories (tests/, __tests__/, spec/, fixtures/, etc.). Default False — test trees are skipped to avoid the canonical fixture-credential FP class (LED-1278). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully discloses side effects: it always writes an evidence bundle, and on critical findings creates a governance task and sends a notification. It also explains test directory skipping behavior with rationale (LED-1278) and mentions optional env vars (SNYK_TOKEN, Trivy) for enhanced scanning. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (overview, usage, sibling contrast, parameter details, side effects). It is front-loaded with the main purpose. However, it is slightly verbose in places, repeating 'auto-chains evidence...governance task...notification' but overall efficient for the information conveyed.
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 complexity (multiple scans, side effects, env vars), the description covers all necessary aspects: purpose, when to use/not use, parameter details, behavioral side effects, and optional enhancements. An output schema exists (no need to describe return values), so all relevant context for agent decision-making is present.
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 both parameters have descriptions. The description adds value by explaining the rationale for include_tests (LED-1278, false positive reduction) and when to set it to true. For target, it restates the default but adds context ('cwd'). This exceeds baseline 3 by providing meaningful extra context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: audit security and auto-chain evidence + governance on critical findings. It specifies the combination of scans (dependency vulnerability, hardcoded-secret, dangerous-pattern, .env in git) and automatic side effects. It also differentiates from sibling tools like delimit_security_scan, delimit_security_ingest, and delimit_security_deliberate.
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 includes explicit 'When to use' and 'When NOT to use' sections, providing clear guidance on appropriate contexts (deploy gate/pre-release) and explicit alternatives for other scenarios (use delimit_security_scan, delimit_security_ingest, or delimit_security_deliberate).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_security_deliberateA
Multi-model triage of security findings (Pro).
When to use: after delimit_security_ingest has loaded findings, to classify each as real risk / false positive / accepted risk / needs immediate action. When NOT to use: to ingest the findings (use delimit_security_ingest) or to scan from scratch (delimit_security_scan).
Sibling contrast: delimit_deliberate is general-purpose multi-model consensus; this is the security-class variant scoped to findings.
Side effects: gated by require_premium. Calls multiple models via the deliberation panel. Updates ledger items with triage verdicts.
| Name | Required | Description | Default |
|---|---|---|---|
| findings | No | JSON string of findings to triage. Empty = pull from the ledger automatically. | |
| repo | No | Repository context for the triage. | |
| focus | No | Which findings to triage — "critical" (default), "high", "all". | critical |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses key behaviors: gated by require_premium, calls multiple models via deliberation panel, updates ledger items with verdicts. No annotations exist, so description carries the burden; it does so well, though lacks mention of idempotency or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise and well-organized: single sentence purpose, then structured sections for when to use, when not to, sibling contrast, and side effects. Every sentence 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?
Covers prerequisites (after ingest), side effects, premium requirement, and output schema exists. Adequately complete for an agent to decide correct usage and invocation, though minor details like error conditions are omitted.
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 each parameter is already described in the schema. The description adds minimal extra meaning beyond what the schema provides, meeting the baseline but not exceeding 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?
Clearly states it performs multi-model triage of security findings, classifying them into categories like real risk, false positive, etc. Distinguishes from sibling delimit_deliberate as the security-class variant.
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 use (after delimit_security_ingest), when not to use (for ingestion or scanning from scratch), and contrasts with sibling tool. Provides clear, actionable guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_security_ingestA
Ingest external security scan output and normalize into ledger findings (Pro).
When to use: after running a scanner externally — Trivy, Semgrep, npm-audit, pip-audit, Snyk, CodeQL — to feed its JSON output into Delimit's canonical schema and gate deploys on unresolved criticals. When NOT to use: to run a scan from scratch (use delimit_security_scan) or to triage findings (delimit_security_deliberate).
Sibling contrast: delimit_security_scan runs the built-in scan; delimit_security_deliberate triages findings; this is the bridge that pulls external scanner output into the same ledger.
Side effects: gated by require_premium. Writes findings to the ledger (creates new items, optionally closes resolved ones). Computes a stable fingerprint per finding to enable diffing.
| Name | Required | Description | Default |
|---|---|---|---|
| tool | Yes | Scanner name — one of "trivy", "semgrep", "npm-audit", "pip-audit", "snyk", "codeql". Required. | |
| results | Yes | JSON string of scan results, or path to a JSON file. Required. | |
| repo | No | "owner/repo" identifier. Empty = auto-detect. | |
| commit_sha | No | Git SHA the scan ran against. Empty = auto-detect. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Discloses side effects: gated by require_premium, writes to ledger, creates/updates findings, computes fingerprints. Could elaborate on error conditions but 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?
Well-structured with clear sections (purpose, when to use/not use, sibling contrast, side effects). No redundant sentences, all information 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?
Covers usage, side effects, and contrasts. Output schema exists so return format not needed. Minor gap: no error handling details, but overall complete for a tool with good 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 coverage is 100%, so description adds little beyond schema descriptions. It mentions auto-detect for defaults, which is helpful but not transformative. Baseline 3 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 states 'Ingest external security scan output and normalize into ledger findings (Pro).' This is a specific verb+resource+outcome. Sibling contrast explicitly differentiates from delimit_security_scan and delimit_security_deliberate, so purpose is clear and distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit 'When to use' and 'When NOT to use' sections. Lists supported scanners (Trivy, Semgrep, etc.) and when to use alternatives. Provides clear decision criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_security_scanA
Scan a repository for security vulnerabilities.
When to use: as a baseline security pass over a repo, before a deploy or a release. When NOT to use: to ingest external scan results (use delimit_security_ingest) or to triage findings (delimit_security_deliberate).
Sibling contrast: delimit_security_ingest accepts external scanner output; delimit_security_deliberate triages findings; this is the built-in scan.
Side effects: read-only on the target. Calls backends.repo_bridge.security_scan.
| Name | Required | Description | Default |
|---|---|---|---|
| target | No | Repository or file path. Default "." (cwd). | . |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and discloses side effects as read-only and internal backend call. It honestly states it is the built-in scan, providing full behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with clear headings for usage, not-to-use, sibling contrast, and side effects. Every sentence is valuable 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 presence of an output schema (not shown) and only one optional parameter with full schema coverage, the description covers all necessary context: purpose, usage, alternatives, side effects. It is complete for a scan 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 the description adds no additional semantics beyond what is already in the input schema. It merely restates the parameter description without extra guidance on format or usage.
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 scans a repository for security vulnerabilities with specific verb 'Scan' and resource 'repository for security vulnerabilities'. Distinguishes from siblings by naming delimit_security_ingest and delimit_security_deliberate with their contrasting 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?
Explicitly provides when to use (baseline before deploy/release), when not to use (ingestion or triage), and names specific alternatives. This gives clear decision boundaries for the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_self_repair_daemonA
Control the self-repair watcher daemon (LED-191, internal).
When to use: to start, stop, or inspect the watcher that polls function KPIs and emits founder alerts on breaches. When NOT to use: for general daemon status (use delimit_daemon_status) or inbox / social daemons (delimit_inbox_daemon, delimit_social_daemon).
Sibling contrast: delimit_daemon_status is the autonomous loop's daemon; this is the KPI-watcher daemon. Different processes.
Side effects: action="start" / "stop" mutate daemon state. Idempotent start. Circuit-breakered stop after 3 consecutive pass failures. Honors DELIMIT_SELF_REPAIR_PAUSE=1 at every pass without requiring a daemon restart. Higher modes (diagnose / deliberate / apply / verify) chain through the watcher when configured per function in ~/.delimit/self_repair.yaml.
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | 'start' (begin polling), 'stop' (halt polling), 'status' (running / last_pass / breaches_emitted / consecutive_failures). | status |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but the description fully discloses side effects: mutation on start/stop, idempotent start, circuit-breaker stop after 3 consecutive failures, environment variable handling (DELIMIT_SELF_REPAIR_PAUSE=1), and chaining of higher modes when configured.
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?
Well-structured with sections, but slightly verbose with internal reference (LED-191) and minor redundancy. Each sentence adds value, but could be trimmed for 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?
Given the complexity of daemon control with multiple actions and side effects, the description covers all essential aspects. Output schema exists (per context signals), so return values are handled. No gaps identified.
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% (only 1 parameter), but the description adds context beyond the schema's action description by explaining idempotency, circuit-breaker, and env var behavior. However, the schema already provides a good description of action values.
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 controls the self-repair watcher daemon, with specific verb 'Control' and resource. It distinguishes from siblings by naming delimit_daemon_status, delimit_inbox_daemon, and delimit_social_daemon.
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' and 'When NOT to use' sections with direct tool name mentions for alternatives. Also provides sibling contrast explaining the difference from delimit_daemon_status.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_semverA
Classify a spec change's semver bump (MAJOR/MINOR/PATCH/NONE).
When to use: to deterministically pick the version bump for an API spec change, optionally computing the next version string. When NOT to use: for full lint with policy (use delimit_lint) or a plain change list (delimit_diff).
Sibling contrast: delimit_diff lists changes; delimit_lint adds policy; this maps the diff to a semver verdict only.
Side effects: read-only. Calls backends.gateway_core.run_semver (deterministic classification on top of the diff engine output).
| Name | Required | Description | Default |
|---|---|---|---|
| old_spec | Yes | Path to the baseline OpenAPI spec file. Required. | |
| new_spec | Yes | Path to the proposed OpenAPI spec file. Required. | |
| current_version | No | Optional version string (e.g. "1.2.3") to compute the next version. Default None = no next computed. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description declares 'Side effects: read-only' and mentions the backend call 'backends.gateway_core.run_semver'. This provides key behavioral insight beyond what is in the schema or annotations. However, it does not detail error conditions or rate limits, but given the simplicity, 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 concise and well-structured: first sentence states purpose, followed by usage guidelines, sibling contrast, and side effects. No unnecessary 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 presence of an output schema and the tool's straightforward nature, the description covers purpose, usage, side effects, and backend dependency. It is complete for effective 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?
The input schema has 100% description coverage, so the schema already documents parameters well. The description adds minimal extra context (e.g., 'optionally computing the next version string' for current_version), which does not significantly enhance 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's purpose: 'Classify a spec change's semver bump (MAJOR/MINOR/PATCH/NONE).' It also distinguishes from siblings like delimit_diff and delimit_lint by specifying that this tool only maps the diff to a semver verdict.
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 when-to-use and when-NOT-to-use guidance, including alternative tool names (delimit_lint, delimit_diff). It also explains the optional computation of the next version string.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_senseA
Review and manage the signal corpus (LED-877).
When to use: to inspect, cluster, or explicitly promote sensed signals into ledger items. Signals live separately from the ledger so noise doesn't pollute it. When NOT to use: to fetch new signals (use the platform-specific sensors like delimit_reddit_scan / delimit_github_scan) or write ledger items directly (delimit_ledger_add).
Sibling contrast: platform sensors capture; this manages the captured corpus and bridges it into the ledger.
Side effects: "promote" writes a new ledger item (via the ledger manager). "freeze" cold-archives a month of signals. "query", "digest", "show", "status" are read-only against ~/.delimit/intel/signals/.
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | One of "query" (default), "digest", "show", "promote", "freeze", "status". | query |
| since_days | No | Lookback window in days (query/digest). Default 1. | |
| platform | No | Filter source platform — "reddit", "x", "github", "hn". Empty = all. | |
| limit | No | Max rows for query. Default 50. | |
| signal_id | No | SIG-XXXX id for "show" / "promote". | |
| ledger | No | Target ledger for promote — "ops" (default) or "strategy". | ops |
| priority | No | Priority for promoted item — "P0", "P1", "P2". | P2 |
| month | No | YYYY-MM string for "freeze". |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully discloses behavioral traits: side effects for each action (e.g., 'promote' writes a new ledger item, 'freeze' cold-archives) and the storage location (~/.delimit/intel/signals/). Read-only and write actions are clearly separated.
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 well-structured with clear sections: when to use, not to use, sibling contrast, and side effects. It is front-loaded with the main purpose and avoids 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?
Given the presence of an output schema (noted in context signals), the description need not explain return values. It covers all essential aspects: purpose, usage, side effects, and sibling distinction, making it complete 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 100%, so the baseline is 3. The description adds context for the 'action' parameter by explaining each action's effect, but other parameters are already well-documented in the schema. No significant additional meaning beyond 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's purpose: 'Review and manage the signal corpus (LED-877).' It specifies actions like inspect, cluster, and promote, and distinguishes from sibling tools like delimit_reddit_scan and delimit_github_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?
Explicitly provides 'When to use' and 'When NOT to use' sections, detailing appropriate use cases (inspect, cluster, promote) and exclusions (fetch new signals, write ledger items directly). Also includes sibling contrast for additional guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_sensor_github_issueA
Check a GitHub issue for new comments since the last sensor tick.
When to use: to monitor a specific outreach / tracking issue for new activity, returning a structured signal for routing. When NOT to use: for repo-wide scans (use delimit_github_scan) or one-shot fetch (delimit_resource_get).
Sibling contrast: delimit_github_scan scans many repos for migrations; this watches one issue for new comments.
Side effects: read-only network call via gh CLI. Validates repo format with regex (defense-in-depth). Subject to the confused-deputy guard (_check_repo_allowlist) before fetching.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | "owner/repo" GitHub repository. Required. | |
| issue_number | Yes | Issue number to monitor. Must be > 0. | |
| since_comment_id | No | Last seen comment id. 0 = all comments. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility for disclosing behavior. It states side effects: 'read-only network call via gh CLI.' It also mentions defense-in-depth mechanisms: 'Validates repo format with regex' and 'Subject to the confused-deputy guard (_check_repo_allowlist) before fetching.' This level of detail is exceptional for an agent to understand the tool's 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 well-structured with clear sections: purpose, usage guidance, sibling contrast, and side effects. It is concise, with every sentence providing valuable information. No unnecessary words or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (3 parameters, output schema exists), the description covers all necessary aspects: purpose, usage, behavioral details, and parameter context. It mentions the return value implicitly ('structured signal for routing'). With the output schema available, this is sufficient.
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, so the baseline is 3. The description does not add additional meaning beyond the schema; it mentions validation behavior but not parameter-specific details. The schema itself is descriptive enough, so a 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's action: 'Check a GitHub issue for new comments since the last sensor tick.' It identifies the specific resource (GitHub issue) and verb (check for new comments). It also distinguishes from sibling tools like delimit_github_scan and delimit_resource_get, making it easy for an agent to select this tool over others.
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: 'to monitor a specific outreach / tracking issue for new activity.' It also provides clear exclusions: 'When NOT to use: for repo-wide scans (use delimit_github_scan) or one-shot fetch (delimit_resource_get).' This provides strong guidance on usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_sensor_github_migrationsA
Scan GitHub issues/PRs for migration patterns across target repos.
When to use: for competitive intelligence — surface where target repos are migrating between tools (e.g. "switched from X to Y", "replaced X with Y") so the sensing function can act on the signal. When NOT to use: for general sensing/outreach research (use delimit_sense), to pull single-issue intel (delimit_sensor_github_issue), or for broad public-repo polling (delimit_github_scan).
Sibling contrast: delimit_sensor_github_issue tracks a specific issue's state; delimit_github_scan does broad public-repo polling; delimit_sense is the high-level sensing entrypoint; this one detects migration-pattern language specifically.
Side effects: read-only on the target repos via GitHub API. Enforces the per-repo allowlist (LED-881 confused-deputy guard) — refuses non-allowlisted repos. Calls ai.social_target.scan_github_migrations.
| Name | Required | Description | Default |
|---|---|---|---|
| repos | Yes | List of GitHub repos in owner/repo format (e.g. ["chatwoot/chatwoot", "cal-com/cal.com"]). Required. | |
| limit | No | Max migration signals per repo. Default 20. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully bears the burden. It discloses read-only side effects, allowlist enforcement (LED-881 guard), and the underlying function call. Missing details like rate limits or error handling, but covers key behavioral traits 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?
The description is structured with clear sections (purpose, when to use/not use, sibling contrast, side effects). It is informative without being verbose. Could be slightly more streamlined, but effective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema (context signals say true), the description does not need to explain return values. It covers purpose, usage guidance, sibling differentiation, side effects, and internal calls—complete for a 2-param tool with good sibling context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline 3 applies. The description does not add significant semantics beyond the schema's descriptions of 'repos' and 'limit'. It mentions 'per repo' in limit context but no extra 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 tool scans GitHub issues/PRs for migration patterns. It distinguishes itself from siblings by specifying that it detects migration-pattern language, while delimit_sensor_github_issue tracks a specific issue's state and delimit_github_scan does broad public-repo polling.
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 provides 'When to use' (competitive intelligence) and 'When NOT to use' (general sensing, single-issue intel, broad polling), naming alternative tools like delimit_sense, delimit_sensor_github_issue, and delimit_github_scan.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_session_handoffA
Save a session summary for cross-session continuity.
When to use: at the end of a productive session, to leave a structured record the next session can recover. When NOT to use: for richer cross-model state (use delimit_soul_capture, which auto-detects more) or single-line memory (delimit_memory_store).
Sibling contrast: delimit_soul_capture writes a richer "soul" with git state; this writes a structured handoff with explicit fields.
Side effects: writes a handoff record via ai.ledger_manager.session_handoff. Coerces list inputs from comma strings via _coerce_list_arg.
| Name | Required | Description | Default |
|---|---|---|---|
| summary | Yes | 2-3 sentence summary of the session. Required. | |
| items_completed | No | Completed ledger item ids (e.g. ["LED-164"]) as list or comma string. | |
| items_added | No | Newly added item ids as list or comma string. | |
| key_decisions | No | Key decisions or consensus results. | |
| blockers | No | What's blocked and why. | |
| files_changed | No | Key files that were modified. | |
| venture | No | Venture context. Empty = auto-detect. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description bears full burden. It discloses side effects (writes a handoff record via ai.ledger_manager.session_handoff) and behavioral details (coerces list inputs from comma strings). While it doesn't cover auth needs or rate limits, it provides significant context beyond the schema. A score of 4 is appropriate for missing some details like overwrite 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, using only a few sentences to convey purpose, usage, sibling contrast, and side effects. It is well-structured with clear headings (When to use, When NOT to use, Sibling contrast, Side effects) and front-loaded with the primary action. 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 complexity (7 parameters, output schema exists, no annotations), the description covers purpose, usage guidelines, sibling distinction, and a behavioral quirk (coercion). It does not explain persistence details or if it overwrites previous handoffs, but the output schema likely fills gaps. Overall, it is quite complete for an AI agent to understand when and how to use the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds value by explaining that list parameters are coerced from comma strings via _coerce_list_arg, which helps the agent understand input flexibility. This goes beyond the schema's individual 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 tool clearly states it saves a session summary for cross-session continuity. It distinguishes itself from siblings (delimit_soul_capture and delimit_memory_store) by specifying it writes a structured handoff with explicit fields, while soul_capture writes a richer soul with git state and memory_store handles single-line 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?
Explicitly provides when to use (at the end of a productive session) and when not to use (for richer cross-model state or single-line memory), with clear alternatives (delimit_soul_capture and delimit_memory_store). This is exemplary guidance 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.
delimit_session_historyA
Load recent session handoffs for context recovery.
When to use: at session start to see what previous sessions left — items completed, key decisions, blockers from the last N runs. When NOT to use: to write a handoff (use delimit_session_handoff) or for richer cross-model state (delimit_revive).
Sibling contrast: delimit_session_handoff writes; delimit_revive reads soul state; this reads structured handoffs.
Side effects: read-only. Calls ai.ledger_manager.session_history.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of recent sessions to return. Default 5. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully carries the burden. It declares the tool is read-only and specifies the underlying call (ai.ledger_manager.session_history). It does not cover auth or rate limits, but for a simple read operation 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 extremely concise with each sentence providing value. It uses clear sections (When to use, When NOT to use, Sibling contrast, Side effects) and front-loads the main 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's simplicity (one parameter, read-only), the description covers purpose, usage guidance, sibling differentiation, and side effects. An output schema exists, so return value details are not required.
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 additional parameter details beyond what the schema already provides (limit with default 5).
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 loads recent session handoffs for context recovery, using a specific verb and resource. It distinguishes from siblings like delimit_session_handoff (writes) and delimit_revive (reads soul state).
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 (at session start to review previous sessions) and when not to use (for writing handoffs or richer cross-model state), with direct sibling alternatives. This provides clear guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_siemA
Manage SIEM streaming for audit-event forwarding (Splunk/Datadog/etc.).
When to use: to inspect or configure where Delimit's audit events stream — Splunk, Datadog, EventBridge, generic webhooks. When NOT to use: for one-shot notifications (use delimit_notify) or inbox handling (delimit_notify_inbox).
Sibling contrast: delimit_notify sends to humans; this configures structured-log streaming to SIEM endpoints.
Side effects: action="configure" / "forward" / "test" write to the configured SIEM endpoints (network calls). action="status" is read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | One of "status" (default), "configure", "test", "forward". | status |
| integration | No | One of "splunk", "datadog", "eventbridge", "webhook" (for configure). | |
| settings | No | JSON string of settings (for configure). | |
| enabled | No | "true" or "false" (for configure). | |
| event | No | JSON string of an event (for forward / test). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description provides adequate behavioral detail: it discloses that configure/forward/test actions involve network writes, while status is read-only. This goes beyond basic purpose but could be more exhaustive (e.g., mention idempotency or error behavior).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Five concise sentences, no redundancy. Front-loaded with purpose, then usage guidelines, sibling contrast, and side effects. Every sentence 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?
Given an output schema exists, the description adequately covers purpose, usage, side effects, and parameter context. It could include a brief example of a typical usage flow, but is otherwise complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds minimal parameter-level detail beyond what the schema already provides (e.g., example integrations), but doesn't significantly enhance understanding.
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 manages SIEM streaming for audit-event forwarding, specifies supported endpoints (Splunk, Datadog, etc.), and distinguishes from sibling tools like delimit_notify and delimit_notify_inbox by contrasting 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?
Explicitly states when to use (inspect/configure streaming) and when not to use (one-shot notifications, inbox handling), with direct references to alternative tools. The sibling contrast further clarifies usage boundaries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_social_accountsA
List configured social media accounts.
When to use: to inventory which Twitter/X accounts have credentials available before drafting or scheduling a post. When NOT to use: to draft content (use delimit_social_generate) or publish (delimit_social_post).
Sibling contrast: delimit_social_generate drafts; delimit_social_post publishes; this lists who can publish.
Side effects: read-only. Calls ai.social.list_twitter_accounts, which scans ~/.delimit/secrets/twitter-.json files.
Args: None.
Returns: Dict with "accounts" list and "count" plus next_steps.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite no annotations, the description fully discloses behavioral traits: declares 'read-only' and describes the side effect ('Calls ai.social.list_twitter_accounts, which scans ~/.delimit/secrets/twitter-<handle>.json files'). This provides transparency about what the tool does internally, beyond just its interface.
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 well-structured with clear sections: summary, when to use, when NOT to use, sibling contrast, side effects, args, and returns. Every sentence adds value; no fluff. It is front-loaded with the 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 an existing output schema, the description still adds value by describing the return structure ('Dict with "accounts" list and "count" plus next_steps') and the underlying implementation. This provides complete context for an agent to understand what to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there is nothing to document. Baseline for 0 parameters is 4, and the description correctly states 'Args: None.' This is sufficient.
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 begins with a clear action verb and resource: 'List configured social media accounts.' It immediately states the purpose and distinguishes from siblings by specifying that this tool inventories Twitter/X accounts with credentials, while siblings handle drafting and publishing.
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 provides when to use ('to inventory which Twitter/X accounts have credentials available before drafting or scheduling a post') and when NOT to use ('to draft content (use delimit_social_generate) or publish (delimit_social_post)'). Also contrasts directly with siblings, offering clear decision guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_social_approveA
Manage social media drafts — list, approve, reject (Pro).
When to use: to clear the social drafts queue created by delimit_social_post(draft=True). When NOT to use: to draft (use delimit_social_post(draft=True)) or inspect history (delimit_social_history).
Sibling contrast: delimit_social_post creates the draft; this lists / approves / rejects them.
Side effects: action="approve" actually posts via the social backend (network write). action="reject" discards. action="list" is read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | "list" (default), "approve", or "reject". | list |
| draft_id | No | Required for approve / reject. Returned by delimit_social_post(draft=True). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses side effects: action='approve' posts via social backend (network write), action='reject' discards, action='list' is read-only. This is sufficient for understanding behavioral traits, though it could mention rate limits or auth.
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?
Description is concise with no redundant sentences. It is front-loaded with purpose, then usage guidance, then side effects. Every sentence 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?
Given the tool's complexity (three actions), the description covers purpose, usage guidelines, sibling contrast, and side effects comprehensively. An output schema exists for return values, so no need to describe those. It is complete for an agent to correctly select and invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but description adds behavioral context for each action value and explains when draft_id is required. For example, it notes that 'approve' actually posts, which is not in the schema. This enhances understanding beyond the schema's simple description.
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 'Manage social media drafts — list, approve, reject (Pro).' It uses a specific verb (manage) and resource (social drafts), and enumerates the three actions. It distinguishes from siblings like delimit_social_post and delimit_social_history.
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: 'to clear the social drafts queue created by delimit_social_post(draft=True).' When NOT to use: 'to draft (use delimit_social_post(draft=True)) or inspect history (delimit_social_history).' Includes sibling contrast, leaving no ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_social_daemonA
Control the social sensing daemon (Pro).
When to use: to start, stop, or inspect the autonomous social discovery daemon that scans Reddit/X/HN every 15 min. When NOT to use: to run a one-shot scan (use delimit_social_target) or read the inbox (delimit_notify_inbox).
Sibling contrast: delimit_social_target is one-shot; this controls the long-running daemon.
Side effects: action="start" / "stop" mutate daemon state. The daemon scans, deduplicates, and emits HTML draft emails. Calls ai.social_daemon.{start_daemon, stop_daemon, get_daemon_status}.
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | "start", "stop", or "status" (default). | status |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Describes side effects (action='start'/'stop' mutate daemon state) and internal calls to ai.social_daemon.* methods. With no annotations, additional details about daemon behavior (scans, deduplicates, emits emails) provide good 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?
Multi-paragraph but every sentence adds value; front-loaded with purpose, then usage, then contrast, then side effects. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given single simple parameter, presence of output schema, and rich behavioral context in description, all necessary information is covered (purpose, usage, side effects, internal calls).
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 description already documents the action parameter. Description adds no new meaning beyond enumerating values already in schema directive.
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 tool controls the social sensing daemon (start/stop/status) and distinguishes from sibling delimit_social_target (one-shot scan). Verb+resource with specific scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly provides when to use and when NOT to use, naming alternatives (delimit_social_target, delimit_notify_inbox). Includes sibling contrast.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_social_generateA
Generate a social media post draft (no posting) (Pro).
When to use: to draft a tweet for review before manual or automated posting. When NOT to use: to actually publish (use delimit_social_post or delimit_content_publish) or to manage targets (delimit_social_target_config).
Sibling contrast: delimit_social_post publishes a draft; this only generates one.
Side effects: read-only / draft. Calls ai.social.generate_post.
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Post category — "tip" (default), "changelog", "insight", or "engagement". | tip |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It states 'read-only / draft' and calls 'ai.social.generate_post', explaining side effects. Slightly brief but sufficient for this simple 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?
Description is well-structured: purpose first, then usage guidelines, sibling contrast, side effects. Concise at 3-4 sentences 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 one parameter and an existing output schema, the description covers all necessary aspects: purpose, usage, side effects, and sibling differentiation. Complete for the complexity level.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter (category) with 100% schema coverage. The schema already describes it well, and the description adds no extra 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 tool generates a social media post draft and explicitly says 'no posting'. It distinguishes from siblings like delimit_social_post (publishes) and delimit_social_target_config (manages targets).
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 provides when to use ('to draft a tweet for review') and when not to use ('to actually publish'), with direct tool alternatives (delimit_social_post, delimit_content_publish). Sibling contrast further clarifies.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_social_historyA
View recent social media post history (Pro).
When to use: to recall prior posts/comments for context when drafting follow-ups or DM replies — Reddit entries include thread context. When NOT to use: to draft new posts (use delimit_social_generate) or scan targets (delimit_social_target).
Sibling contrast: delimit_social_generate drafts; delimit_social_post publishes; this reads what was already posted.
Side effects: read-only. Calls ai.social.get_post_history.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max entries to return. Default 20. | |
| platform | No | Filter by "twitter" or "reddit". Empty = all. | |
| user | No | Filter by Reddit user we interacted with (e.g. "coolinjapan001"). | |
| subreddit | No | Filter by subreddit (e.g. "r/vibecoding"). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It declares read-only side effects and mentions the underlying API call (ai.social.get_post_history). It also notes that Reddit entries include thread context. This is sufficient for a read operation, though more detail on rate limits or authentication could 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 concise and well-structured, with clear sections for purpose, usage, sibling contrast, and side effects. Every sentence adds value, and the key information is 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 the presence of an output schema and high schema coverage, the description provides adequate context: use cases, alternatives, side effects, and a behavioral detail about Reddit thread context. It is complete for a read-only tool of moderate complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameters are already well-documented. The description adds some context by mentioning that Reddit entries include thread context, but does not detail individual parameters beyond what's 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 it views recent social media post history, specifying the verb 'view' and resource 'recent social media post history'. It distinguishes from sibling tools like delimit_social_generate and delimit_social_post, making the purpose unambiguous.
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' and 'When NOT to use' sections provide clear guidance, including specific alternatives (delimit_social_generate for drafting, delimit_social_target for scanning). The sibling contrast further clarifies when to use this tool versus others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_social_postA
Post to social media (Twitter / Reddit) (Pro).
When to use: when the AI drafts a social post, it MUST call this immediately (auto-trigger rule). Email approval flow handles human review. When NOT to use: just to generate (use delimit_social_generate) or to inspect history (delimit_social_history).
Sibling contrast: delimit_social_generate is draft-only; delimit_social_approve manages the queue; this is the actual post path.
Side effects: when draft=True, queues for delimit_social_approve. Otherwise posts via the social backend. Subject to rate cap: 2 original posts per hour, 24 per day (founder-approved 2026-04-30). Override via DELIMIT_HOURLY_TWEETS / DELIMIT_DAILY_TWEETS env. Sends approval email with the registry_draft_id for inbox-daemon matching.
IMPORTANT - AUTO-TRIGGER RULE: When the AI drafts a social post, it MUST call this tool immediately. Never ask "want me to send this?" — just call the tool. The email-based approval flow handles human review.
Categories: tip, changelog, insight, engagement. Leave text empty to auto-generate from templates. Every post provides value - tips, insights, governance wisdom. Rate cap: 2 original posts per hour, 24 per day (founder-approved 2026-04-30). Override via DELIMIT_HOURLY_TWEETS / DELIMIT_DAILY_TWEETS.
IMPORTANT - Platform tone rules (these are DIFFERENT per platform):
Twitter: confident technical brand. Direct, professional, ALWAYS POSITIVE. Celebrate wins and progress. Never complain or air gaps publicly. No em dashes or en dashes. Default to insight-first with no CTA unless source-grounded.
Reddit: helpful builder voice. Grounded, concise, never salesy. Default to no Delimit mention unless directly necessary and source-grounded. NO bullet points/lists/bold/em dashes. 2-3 sentences max.
LinkedIn: professional hook + insight + CTA
| Name | Required | Description | Default |
|---|---|---|---|
| text | No | Tweet text. Leave empty to auto-generate. | |
| category | No | Content category for auto-generation. | |
| platform | No | Social platform (twitter). | |
| account | No | Twitter handle (without @) to post from. Empty = default account. | |
| quote_tweet_id | No | Tweet ID to quote (creates a quote tweet). | |
| reply_to_id | No | Tweet ID to reply to (creates a reply). | |
| draft | No | If True, save as draft for approval instead of posting immediately. | |
| context | No | WHY this post should be made. Strategic reasoning shown in the approval email. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses side effects (queue for approval vs direct post), rate caps (2/hour, 24/day) with override env vars, sends approval email, and platform-specific tone rules. No annotations exist, so description carries full burden and delivers comprehensively.
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?
Well-structured with clear sections (When to use, Side effects, etc.) and front-loaded purpose. However, it repeats the auto-trigger rule twice and includes platform tone details that could be streamlined.
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 high parameter count, full schema coverage, and output schema, the description is exceptionally complete: covers side effects, rate caps, override mechanisms, email flow, platform tone rules, and auto-trigger logic.
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 covers 100% of parameters. Description adds context beyond schema for 'draft' (queues for approval), 'context' (strategic reasoning for email), and 'text' (auto-generation). Platform tone rules are separate from parameter semantics.
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 posts to social media (Twitter/Reddit), contrasts with siblings (delimit_social_generate, delimit_social_approve, delimit_social_history), and specifies the action 'post'.
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 (immediately after drafting), when not to use (use generate or history), and provides sibling contrast with actionable guidance for the AI agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_social_targetA
Discover engagement opportunities across platforms (Pro).
When to use: to find posts on X, Reddit, HN, Dev.to, GitHub where a Delimit venture can engage. Run inside a /loop for continuous discovery. When NOT to use: to fetch one X tweet (use delimit_x_fetch) or drafts (delimit_social_generate).
Sibling contrast: delimit_social_target_config configures which platforms to scan; delimit_x_fetch is single-tweet; this is the multi-platform scanner.
Side effects: read-only network scans by default. With draft_replies=True, calls delimit_social_post(draft=True) for "reply" targets. With create_ledger=True, calls delimit_ledger_add for "strategic" targets. Deduplicates across runs.
IMPORTANT - TOOL CHAINING RULE: After scanning, the AI MUST immediately process results:
For "reply" targets: draft a reply via delimit_social_post or delimit_notify
For "strategic" targets: create a ledger item via delimit_ledger_add
For "both": do both Never just return targets and stop. Always chain to the next action.
Scans X, Reddit (RapidAPI), HN, Dev.to, GitHub for posts where ventures can engage. NamePros flagged as manual_check_needed (no API).
Run in a /loop for continuous discovery. Deduplicates across runs. Targets are classified as: reply (social engagement), strategic (ledger item), or both.
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | "scan" to discover targets, "list" to show recent, "stats" to show counts. | scan |
| platforms | No | Comma-separated platforms to scan (x, hn, devto, reddit, github, namepros). | x,hn,devto,reddit,github |
| ventures | No | Comma-separated ventures to scan for. Empty = all. | |
| keywords | No | Extra keywords to search for beyond venture topics. | |
| limit | No | Max targets per platform. | |
| draft_replies | No | If True, auto-draft social posts for "reply" targets. | |
| create_ledger | No | If True, create ledger items for "strategic" targets. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses side effects: read-only by default, conditional calls to other tools when flags are set, and deduplication across runs. Also details tool chaining requirements. While no annotations exist, this provides sufficient behavioral insight for agent decision-making.
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?
Well-structured with sections for purpose, usage, contrast, side effects, and chaining rules. Minor repetition of '/loop' guidance, but overall efficient and front-loaded with key purpose and usage guidelines.
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 all essential aspects: purpose, when to use/not, sibling differentiation, side effects, required follow-up actions, and output classification. Given the complexity (7 parameters, output schema exists), the description leaves no significant gaps 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?
With 100% schema coverage, the description still adds value by explaining target classification (reply, strategic, both) and how parameters like draft_replies and create_ledger trigger side effects. Context about platform enumeration and NamePros limitations is helpful 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?
Clearly states the tool discovers engagement opportunities across platforms (Pro). It distinguishes itself from siblings delimit_social_target_config and delimit_x_fetch by specifying it is a multi-platform scanner, while the former configures platforms and the latter fetches single tweets.
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 provides when to use (to find posts for engagement, run in /loop) and when NOT to use (for single tweet or drafts, with named alternatives). The 'Sibling contrast' section further clarifies differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_social_target_configA
Configure social target scanning platforms.
When to use: to inspect / update which platforms the social-target scanner uses, or to add subreddits a venture should scan. When NOT to use: to run a scan (use delimit_social_target) or drafts (delimit_social_generate).
Sibling contrast: delimit_social_target runs scans; this configures which platforms to scan.
Side effects: action="update" / "add_subreddits" write to the target config. action="status" / "detect" are read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | "status" (default), "detect", "update", "add_subreddits". | status |
| platform | No | Platform key — "x", "reddit", "github", "hn", "devto", "namepros". | |
| enabled | No | Enable/disable on update. Default True. | |
| provider | No | Provider name — "twttr241", "xai", "proxy", "gh_cli", etc., for update. | |
| subreddits | No | Comma-separated subreddits for add_subreddits. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully discloses behavioral differences: actions like 'update' and 'add_subreddits' are writes, while 'status' and 'detect' are read-only. This is valuable, though it could mention if updates are destructive or require permissions, but overall it's very 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 concise and well-structured: purpose statement, usage guidelines, sibling contrast, and side effects. Each sentence adds important information without 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 has 5 parameters with 100% schema coverage and an output schema, the description provides complete context: what the tool does, when to use it, how it differs from siblings, and behavioral side effects. No obvious gaps.
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 grouping actions into read/write categories and explaining the purpose of each action beyond the schema's short descriptions. This helps the agent understand parameter usage contextually.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Configure social target scanning platforms') and further clarifies it is for inspecting/updating platforms and adding subreddits. It distinguishes from siblings by noting that delimit_social_target runs scans, while this tool configures platforms.
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 provides when to use (inspect/update platforms, add subreddits) and when not to use (running scans or drafts), with specific sibling alternatives (delimit_social_target, delimit_social_generate). This gives clear guidance for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_soul_captureA
Capture session state as a 'soul' for cross-model resurrection.
When to use: at session end or when context gets full, to save what you're working on so the next session in any model can pick up where you left off. When NOT to use: for general memory writes (use delimit_memory_store) or full handoff orchestration (delimit_session_handoff).
Sibling contrast: delimit_session_handoff writes a structured handoff for the next session; this writes a richer "soul" with git state and active task pointers, used by delimit_revive.
Side effects: writes a soul record via ai.session_phoenix.capture_soul. Auto-detects git state and the current model. Splits comma-string inputs into lists internally.
| Name | Required | Description | Default |
|---|---|---|---|
| active_task | No | What you're currently working on (one line). | |
| decisions | No | Comma-separated key decisions made this session. | |
| key_context | No | Comma-separated important context for next session. | |
| blockers | No | Comma-separated blockers. | |
| next_steps | No | Comma-separated next steps. | |
| task_status | No | One of "in_progress", "blocked", "almost_done". | in_progress |
| tokens_used | No | Estimated tokens consumed this session. | |
| context_fullness | No | 0.0-1.0 representing context-window fullness. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses side effects ('writes a soul record via ai.session_phoenix.capture_soul'), auto-detection of git state and model, and internal string-splitting behavior. With no annotations provided, the description fully bears the transparency burden and does so thoroughly.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently front-loaded with purpose and usage guidelines. Every sentence adds value, though it is slightly verbose. No redundant phrases; structure is logical.
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 annotations and presence of an output schema (context signal), the description covers behavioral aspects and usage thoroughly. It omits explicit mention of return value, but the output schema likely provides that. Still, a brief note on what the tool returns 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 covers all 8 parameters with descriptions (100% coverage), so baseline is 3. The description adds value by noting that comma-separated strings are split into lists internally, which is not obvious from schema alone. A small deduction for not elaborating on 'tokens_used' or 'context_fullness' beyond 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 captures session state as a 'soul' for cross-model resurrection, with a specific verb ('capture') and resource ('session state'). It distinguishes from siblings like delimit_session_handoff and delimit_memory_store by explicitly contrasting use cases.
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 when-to-use ('at session end or when context gets full'), when-NOT-to-use ('general memory writes' and 'full handoff orchestration'), and names alternative tools (delimit_memory_store, delimit_session_handoff). This is exemplary guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_spec_healthA
Score an OpenAPI spec on quality dimensions (0-100, A-F grade).
When to use: for quick spec quality checks during onboarding or review — completeness, security, consistency, documentation, best practices. When NOT to use: as a breaking-change gate (use delimit_lint) or raw diff (delimit_diff).
Sibling contrast: delimit_lint compares two specs; this scores one spec on its own merits.
Side effects: read-only. Calls backends.gateway_core.run_spec_health. Works on any valid OpenAPI 3.x or Swagger 2.0 spec.
| Name | Required | Description | Default |
|---|---|---|---|
| spec | Yes | Path to an OpenAPI spec file (YAML or JSON). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses being read-only, calls a specific backend, and works on OpenAPI 3.x or Swagger 2.0. It does not mention potential limitations like file size or timeout, but given the simplicity of the operation, these are minor omissions. Overall, it provides sufficient behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections: main action, when to use, when not to use, sibling contrast, side effects, and compatibility. Every sentence is meaningful and contributes to the agent's understanding. No redundancy or 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?
Given the tool's simplicity (one parameter, output schema exists), the description covers all necessary aspects: purpose, usage context, parameter specification, side effects, and compatibility. The presence of an output schema reduces the need to describe return values. The description is fully sufficient for an agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is only one parameter 'spec' with a schema description that already explains it as a path to an OpenAPI spec file. The description does not add new information beyond confirming it's a file path in YAML or JSON. Since schema coverage is 100%, the baseline is 3, and the description adds no extra semantic value.
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 scores an OpenAPI spec on quality dimensions with a grade (0-100, A-F). It explicitly distinguishes from siblings: delimit_lint compares two specs, delimit_diff gives raw diff, while this tool scores one spec on its own merits. This leaves no ambiguity about the tool's 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 provides explicit when-to-use (quick spec quality checks during onboarding or review for completeness, security, etc.) and when-not-to-use (as a breaking-change gate or raw diff, with specific alternatives delimit_lint and delimit_diff). This gives the agent clear decision criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_story_accessibilityA
Scan HTML/JSX/TSX for WCAG accessibility issues.
When to use: as a CI gate or pre-merge check on UI changes for common a11y problems — missing alt, missing labels, empty buttons, heading order, aria-hidden on focusable elements. When NOT to use: for responsive layout (use delimit_design_validate_responsive) or visual regression (delimit_story_visual_test).
Sibling contrast: delimit_design_validate_responsive checks layout; this checks WCAG.
Side effects: read-only static analysis. Calls backends.ui_bridge.story_accessibility_test.
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | Yes | Project path to scan. Required. | |
| standards | No | WCAG standard — "WCAG2A", "WCAG2AA" (default), "WCAG2AAA". | WCAG2AA |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It declares 'read-only static analysis' and specifies the backend call, making the behavioral intent clear. Lacks mention of permissions or rate limits, but the core safety is well-communicated.
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?
Well-structured with front-loaded purpose, separate sections for usage, exclusions, sibling contrast, and side effects. Every sentence adds value, no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (2 parameters, output schema exists), the description is complete: it provides purpose, explicit usage boundaries, sibling differentiation, behavioral side effects (read-only), and backend reference. The output schema covers return values, so no need for that here.
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 baseline is 3. The description adds no further detail on project_path or standards beyond what the schema provides, though it lists example issues checked, which indirectly informs parameter usage.
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 scans HTML/JSX/TSX for WCAG accessibility issues, using a specific verb ('Scan') and resource. It distinguishes itself from siblings delimit_design_validate_responsive (layout) and delimit_story_visual_test (visual regression).
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 (as a CI gate or pre-merge check for common a11y problems) and when not to use (responsive layout, visual regression), naming specific sibling tools as alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_story_buildA
Build a Storybook static site (or return setup guidance).
When to use: to build the Storybook static site for an existing project, e.g. for hosting on a docs site. When NOT to use: to write stories (use delimit_story_generate) or run a11y checks (delimit_story_accessibility).
Sibling contrast: delimit_story_generate writes stories; delimit_story_accessibility audits; this builds the static site.
Side effects: when Storybook is configured, invokes the build via backends.ui_bridge.story_build (subprocess writes the static site under output_dir). When not configured, returns setup guidance instead.
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | Yes | Project path. Required. | |
| output_dir | No | Output directory. None = Storybook default. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses side effects: invokes build via subprocess, writes to output_dir, and returns setup guidance when not configured. 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?
Description is concise, front-loaded with core purpose, and organized into clear sections. Every sentence 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 output schema exists, description covers purpose, usage, side effects, and parameter behavior adequately. No gaps for a build 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%, baseline is 3. Description adds minimal context beyond schema (e.g., default behavior of output_dir), but does not significantly enrich parameter understanding.
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 'Build a Storybook static site (or return setup guidance)' with specific verb and resource. It distinguishes from siblings by explicitly stating what this tool does versus delimit_story_generate and delimit_story_accessibility.
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 when-to-use ('to build the Storybook static site for an existing project') and when-not-to-use ('to write stories' or 'run a11y checks') with alternatives. Sibling contrast is clearly given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_story_generateA
Generate a .stories.tsx file for a UI component (no Storybook required).
When to use: to scaffold per-variant stories for a React/TSX component without installing the full Storybook toolchain. When NOT to use: for accessibility checks (use delimit_story_accessibility) or component scaffolding from scratch (delimit_design_generate_component).
Sibling contrast: delimit_design_generate_component creates the component; this generates its stories file. Together they form a component-first authoring path.
Side effects: writes a new .stories.tsx file next to the component. Coerces variants from a comma string to a list via _coerce_list_arg.
| Name | Required | Description | Default |
|---|---|---|---|
| component_path | Yes | Path to the component (.tsx) file. Required. | |
| story_name | No | Custom story name. Default = component name. | |
| variants | No | Variants to generate (e.g. "Default,WithChildren"). Default = ["Default", "WithChildren"]. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses side effects ('writes a new .stories.tsx file next to the component') and a behavioral quirk ('Coerces variants from a comma string to a list via _coerce_list_arg'), which adds value beyond the none provided annotations.
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?
Efficiently structured: purpose in one sentence, then usage guidelines, sibling contrast, and side effects. No 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?
With output schema present and full schema coverage, the description covers purpose, when to use/not use, side effects, and behavioral details. It is complete 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?
Schema coverage is 100%, so baseline is 3. The description does not add additional parameter explanations beyond the schema's own descriptions, but the coercion detail is more about behavior than parameter semantics.
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 'Generate a .stories.tsx file for a UI component' and distinguishes it from sibling tools by naming delimit_story_accessibility and delimit_design_generate_component, showing exactly what this tool does.
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 provides 'When to use' and 'When NOT to use' sections with specific alternative tools (delimit_story_accessibility, delimit_design_generate_component), and adds a 'Sibling contrast' paragraph for further clarity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_story_visual_testA
Run visual regression test — screenshot vs stored baseline.
When to use: as a CI gate after UI changes, to catch unintended visual regressions vs a stored baseline. Auto-creates the baseline on first run. When NOT to use: for a11y checks (use delimit_story_accessibility) or one-off screenshots (delimit_screenshot).
Sibling contrast: delimit_screenshot is one image without baseline; delimit_story_accessibility audits HTML; this compares against a stored baseline.
Side effects: writes baseline images on first run; subsequent runs are read-only against the baseline. Falls back to Puppeteer (screenshot only) when Playwright is not installed.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL to screenshot. | |
| project_path | No | Project path for baseline storage. | |
| threshold | No | Diff threshold (0.0-1.0). Default 0.05. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Details side effects (writes baseline on first run, subsequent runs read-only) and fallback behavior (Puppeteer when Playwright missing). With no annotations provided, the description fully compensates by disclosing important behavioral traits.
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?
Compact and well-organized: a one-sentence summary followed by use/when-not, sibling contrast, and side effects. Every sentence adds value without 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 has an output schema (documenting return values), the description covers usage guidelines, behavioral side effects, and sibling differentiation. It is sufficiently complete for an agent to correctly invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear parameter descriptions and defaults (threshold default 0.05, project_path nullable). The description adds no extra parameter context 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 the tool runs a visual regression test (screenshot vs. stored baseline). It distinguishes from siblings like delimit_screenshot (one-off screenshot) and delimit_story_accessibility (a11y/HTML audit), making its purpose precise and unique.
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 provides when to use (as a CI gate after UI changes) and when not to use (a11y checks, one-off screenshots), with direct references to alternative tools. This leaves no ambiguity for the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_substantive_content_checkA
Pre-submit gate for autonomous github outreach (LED-2214b).
When to use: as the LAST step before any agent submits a comment, issue body, or PR description to a third-party github repo via the outreach_substantive task path. Mandatory under CLAUDE.md SHIFT-1; bypass requires explicit founder approval. When NOT to use: for internal repo content, for posts on platforms other than github, or for non-outreach submissions (use the surface's own validators instead).
Sibling contrast: delimit_external_pr_check guards PR duplication; this guards the substantive-content boundary itself. For a PR submission the agent calls BOTH — this one first to refuse covert-commercial drafts, then external_pr_check to refuse duplicates.
Side effects: read-only. Pure validator over the body string and target metadata; no network, no ledger writes, no notifications.
The gate runs in two stages:
Target-side veto — if repo / repo_description / repo_topics contain a banking / fintech / regulator-adjacent keyword, the gate blocks regardless of content quality (SHIFT-1 hard veto; KYC would deanonymize the operating account).
Content shape — bans forbidden phrases (incl. our own product names), requires at least one technical anchor (commit hash, issue number, CVE, spec path, source file path), enforces minimum body length.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | The draft body to validate. Required. | |
| proposed_action | No | "comment", "issue", or "pr". Default "comment". | comment |
| repo | No | Target "owner/name" if known (used in target veto). | |
| repo_description | No | Repo description string (target veto). | |
| repo_topics | No | List of repo topic tags (target veto). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully discloses side effects (read-only, pure validator, no network/writes/notifications) and details the two-stage gate logic (target-side veto and content shape checks). This covers behavioral traits comprehensively, including the rationale for the hard veto (KYC deanonymization). No contradictions with missing annotations.
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 well-organized: a one-line summary, then clearly labeled sections (When to use, When NOT to use, Sibling contrast, Side effects, two stages). Every sentence serves a purpose, and the information is front-loaded. It is concise yet thorough, avoiding unnecessary 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 existence of an output schema, the description appropriately does not explain return values. It covers usage, behavioral side effects, validation logic, and sibling differentiation. The description provides enough context for an agent to correctly select and invoke this tool, including mandatory bypass conditions and the two-stage process.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds value by explaining how the parameters (body, repo, repo_description, repo_topics, proposed_action) are used in the two-stage validation logic (target veto and content shape). While the schema descriptions are clear, the description contextualizes the parameters within the validation rules (e.g., forbidden phrases, technical anchors), going beyond basic schema definitions.
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 pre-submit gate for autonomous GitHub outreach, specifying the exact verb (check) and resource (substantive content). It distinguishes from the sibling delimit_external_pr_check by stating that this guard is for the substantive-content boundary, while the sibling handles PR duplication. The purpose is explicit and actionable.
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 when-to-use (last step before submitting to third-party GitHub repos under outreach_substantive, mandatory per CLAUDE.md) and when-not-to-use (internal repos, non-GitHub platforms, non-outreach submissions). It also contrasts with a sibling tool and explains that for PR submissions, both tools are called in sequence. This is exemplary guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_swarmA
Manage the cross-venture agent swarm (personas + namespace isolation).
When to use: to inspect or mutate the swarm — register a venture with its 5 agent roles, create custom tools, hot-reload modules, check namespace access. When NOT to use: to dispatch a single task (use delimit_agent_dispatch) or read agent state (delimit_agent_status / dashboard).
Sibling contrast: delimit_agent_dispatch is per-task; this manages the multi-venture / multi-persona swarm overall (Agent Swarm Standard v1.2).
Side effects: action="register" / "create_tool" / "create_agent" / "approve_agent" / "reload" mutate state. status / venture / agent / list_* / check / approve / guide / rules are read-only.
Each venture gets 5 AI agent roles (Architect, Senior Dev, Reviewer, QA, Ops) with namespace isolation and model binding.
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | See actions above. | status |
| venture | No | Venture name (for register/venture/create_agent). | |
| agent_id | No | Agent ID (for agent/check/create_agent/approve_agent). | |
| repo_path | No | Repo path, description, or reason depending on action. | |
| deploy_target | No | Deploy target for venture registration. | |
| target_path | No | File path, tool name, or role name depending on action. | |
| access_action | No | Action name - for check: "read"/"write"/"deploy". For approve: "deploy_production"/"deploy_staging"/"social_post" etc. | read |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It identifies which actions mutate state ('register', 'create_tool', etc.) and which are read-only. Discloses that each venture gets 5 agent roles with namespace isolation and model binding. Lacks details on authorization or failure modes but is fairly 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?
Well-structured with clear sections (When to use, When NOT to use, Sibling contrast, Side effects). Every sentence adds value, no redundant information. Front-loaded with the main 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's complexity (7 params, multiple actions, output schema exists), the description covers usage, exclusions, side effects, and high-level structure. It doesn't explain all possible actions exhaustively but provides sufficient guidance. Output schema existence is noted but not described, which is acceptable.
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 by grouping actions but does not significantly elaborate on individual parameters beyond the schema's minimal descriptions. The action parameter's default and purpose are clarified via examples, but other parameters (repo_path, target_path) remain somewhat ambiguous.
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 manages the cross-venture agent swarm, listing specific actions like register venture, create tools, hot-reload modules. It distinguishes from sibling tools by contrasting with delimit_agent_dispatch (per-task) and delimit_agent_status/dashboard (read state).
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' and 'When NOT to use' sections with named alternatives (delimit_agent_dispatch, delimit_agent_status/dashboard). Also provides sibling contrast, making it clear when this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_task_completeA
Mark current loop task done and get the next one.
When to use: at the end of each loop iteration — records completion, updates session metrics, returns the next task. When NOT to use: to close a regular ledger item (use delimit_ledger_done) or fetch next task without closing (delimit_next_task).
Sibling contrast: delimit_ledger_done is per-item; delimit_next_task only fetches; this completes + advances.
Side effects: writes status to the ledger, updates session metrics (cost, errors), returns next task. Loop continues until a STOP signal.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | Ledger item id completed (e.g. "LED-042"). | |
| result | No | Summary of what was done. | |
| cost_incurred | No | Estimated cost (USD). | |
| error | No | If task failed, describe error. | |
| session_id | No | Loop session to update. | |
| venture | No | Project name or path. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description alone must disclose side effects. It lists writes to ledger, updates session metrics (cost, errors), returns next task. Also notes loop continues until STOP signal. This is thorough for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with clear sections (purpose, when to use/not use, sibling contrast, side effects). Every sentence adds value. No redundancy. Front-loaded with 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 6 parameters (1 required), output schema exists (context says true), the description covers purpose, usage, side effects, and sibling differentiation. Could mention authorization requirements or failure handling, but overall complete for a loop-related 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% (all parameters documented in input schema). Description adds no additional parameter-specific meaning beyond the schema's own descriptions. 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?
Clearly states 'Mark current loop task done and get the next one' with specific verb and resource. Distinguishes from siblings (delimit_ledger_done, delimit_next_task) directly in the sibling contrast section.
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' and 'When NOT to use' sections. Provides clear context and names alternative tools (delimit_ledger_done, delimit_next_task), making it easy for an AI to decide when to invoke this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_tdqs_lintA
Score MCP tool docstrings against the 6 TDQS dimensions (LED-2108).
When to use: as a CI gate before publishing the MCP server, to catch low-quality tool descriptions. Operates on any Python file with @mcp.tool()-decorated functions.
When NOT to use: for runtime tool selection or policy decisions — TDQS grades documentation, not behaviour. Use delimit_lint for OpenAPI specs and delimit_gov_evaluate for policy-class decisions.
Sibling contrast: unlike delimit_lint (OpenAPI specs) and delimit_spec_health (spec quality scoring), this scores Python source against Glama's Tool Definition Quality Score rubric.
Side effects: none. Pure read-only static analysis via ast (no import, no execution). Does not write ledger, evidence, or notify.
| Name | Required | Description | Default |
|---|---|---|---|
| target_file | No | Path to a Python file with @mcp.tool() decorators. Default "ai/server.py", resolved against cwd. | ai/server.py |
| human | No | If True, include a human-readable "report" string in the response. Default False (JSON-only is cheaper for CI pipes). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses side effects as none, states it uses static analysis via ast (no import, no execution), and does not write ledger, evidence, or notify. Full transparency with no annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured: opening sentence, usage guidelines, sibling contrast, side effects. No wasted words, front-loaded with 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 an output schema, description suffices without explaining return format. Covers purpose, usage, parameters, side effects, and context for a static analysis tool. Complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%. Description adds practical context: default paths, resolution, and when to use the human flag for CI pipes. Adds value beyond 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 scores MCP tool docstrings against TDQS dimensions. Specifies the scope (Python files with @mcp.tool() decorators) and distinguishes from siblings like delimit_lint and delimit_spec_health.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says when to use (as a CI gate before publishing MCP server) and when not to use (runtime tool selection or policy decisions). Contrasts with siblings to guide selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_test_coverageA
Analyze test coverage for a project (experimental) (Pro).
When to use: to surface coverage by file/folder against a threshold when you need a pass/fail signal for CI. When NOT to use: to scaffold new test stubs (use delimit_test_generate) or run a smoke run (delimit_test_smoke).
Sibling contrast: delimit_test_smoke validates that tests run at all; delimit_test_generate writes test scaffolds; this measures coverage of existing tests.
Side effects: read-only inspection. Gated by require_premium. Calls backends.ui_bridge.test_coverage. Marked experimental — coverage runner detection is heuristic.
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | Yes | Path to the project root. Required. | |
| threshold | No | Coverage percentage threshold for pass/fail. Default 80. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but description compensates fully by stating side effects: read-only, gated by require_premium, calls backends.ui_bridge.test_coverage, and marked experimental with heuristic detection.
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?
Description is compact, well-structured with clear sections (when to use, when not, sibling contrast, side effects). Every sentence adds value and is 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 an output schema exists and the description covers purpose, usage, behavior, and side effects (including experimental nature and backend call), it is complete for this tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so description adds no additional parameter details. Baseline of 3 is appropriate; no extra value beyond 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?
Clearly states 'Analyze test coverage for a project', using a specific verb and resource. It distinguishes itself from siblings by naming delimit_test_smoke and delimit_test_generate and explaining their differences.
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 provides when to use (surface coverage for CI pass/fail) and when NOT to use (scaffold stubs or smoke run), including alternative tool names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_test_generateA
Generate test skeletons for source code (Jest / pytest / vitest).
When to use: to scaffold new test stubs for public functions when starting tests on a previously-untested module. When NOT to use: to measure coverage of existing tests (use delimit_test_coverage) or run a smoke test (delimit_test_smoke).
Sibling contrast: delimit_test_coverage measures; delimit_test_smoke runs; this writes new test scaffolds.
Side effects: writes new test files alongside the source. Uses AST parsing for Python and regex for JS/TS via backends.ui_bridge.test_generate.
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | Yes | Project path. Required. | |
| source_files | No | Specific files to generate tests for. None = all detectable public functions. | |
| framework | No | Test framework — "jest" (default), "pytest", "vitest". | jest |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses side effect of writing new test files and mentions internal implementation (AST for Python, regex for JS/TS). Could be more thorough about overwrite behavior or prerequisites, but given no annotations, this is solid.
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?
Very concise with clear sections. Each sentence serves a purpose without redundancy. Efficiently communicates purpose, usage, and behavior.
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 main aspects: purpose, usage, side effects, sibling contrast. Output schema handles return values. Minor omission of prerequisites (e.g., project path must exist), but overall complete for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and description adds context for parameters (e.g., source_files default behavior, framework options). Blends schema and description well, adding value beyond 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 generates test skeletons for specific frameworks (Jest, pytest, vitest) and distinguishes from siblings by explicitly contrasting with delimit_test_coverage and delimit_test_smoke.
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' and 'When NOT to use' sections provide clear guidance, including alternative tools for different scenarios, and sibling contrast clarifies the unique role of this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_test_smokeA
Run smoke tests for a project.
When to use: as a pre-commit / pre-deploy gate to confirm tests pass. Auto-detects framework (pytest / jest / vitest / mocha) from project config. When NOT to use: to scaffold new tests (use delimit_test_generate) or measure coverage (delimit_test_coverage).
Sibling contrast: delimit_test_generate writes; delimit_test_coverage measures; this runs and parses.
Side effects: invokes the project's test runner via backends.ui_bridge.test_smoke (subprocess). Read-only on filesystem apart from the test runner's own outputs.
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | Yes | Project path. Required. | |
| test_suite | No | Optional specific test suite or pattern. | |
| timeout_seconds | No | Optional execution timeout in seconds. Default is 120. | |
| extra_args | No | Optional extra arguments to pass to the test runner. | |
| fail_fast | No | Stop execution immediately on first failure. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses side effects (invokes test runner via subprocess, read-only on filesystem) and auto-detection of frameworks. Lacks some detail on failure handling or output format, but given no annotations, this is strong.
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?
Very concise and well-structured with separate sections for usage, exclusions, sibling contrast, and side effects. Every sentence 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?
Covers all necessary aspects: purpose, when/not to use, side effects, and sibling distinction. Output schema exists, so return format explanation is not needed, making the description complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and parameter descriptions are sufficient. The description adds value with the auto-detection note but does not significantly enhance parameter 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?
Clearly states 'Run smoke tests for a project' with specific verb-run and resource-tests. Differentiates from siblings by naming delimit_test_generate and delimit_test_coverage, providing a precise contrast.
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 defines when to use (pre-commit/pre-deploy gate) and when not to use (scaffolding tests, measuring coverage) with sibling alternatives. Offers unambiguous guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_toolcard_cacheA
Manage the tool-schema cache to reduce per-session token waste.
When to use: when an MCP client repeatedly dumps full tool definitions and you want to send only diffs across sessions. When NOT to use: as a runtime tool dispatcher — this is a cache side-channel, not a tool-call surface.
Sibling contrast: this caches tool schemas; delimit_help describes individual tools at runtime.
Side effects: action="register" / "clear" / "flush" mutate the cache; "status" / "delta" / "estimate" are read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | One of "status" (default), "register", "delta", "clear", "estimate", "flush", "usage" (durable tool utilization + dormancy report). | status |
| tool_schemas | No | JSON array of tool schema objects (for register/ estimate). | |
| tool_names | No | Comma-separated tool names (for delta). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so description carries full burden. It lists side effects for each action (mutating vs read-only), but does not cover error conditions or authorization needs. Still strong for a cache management 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?
Concise, front-loaded with purpose, followed by well-organized sections for usage, sibling contrast, and side effects. No superfluous sentences.
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 usage, side effects, and alternative. Output schema exists to handle return values. Lacks prerequisites (e.g., need to register before other actions?) but default action is safe. Good overall.
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%, baseline 3. Description groups actions by side effect (mutating vs read-only), adding some context beyond schema, but does not add meaning for tool_schemas or tool_names beyond what schema 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 it manages a tool-schema cache to reduce token waste, specifies the resource and action, and distinguishes from sibling delimit_help by saying 'this caches tool schemas; delimit_help describes individual tools at runtime.'
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' and 'When NOT to use' sections, with a clear alternative (delimit_help) and context (cache side-channel, not runtime dispatcher).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_tracker_syncA
Pull open GitHub issues into the Delimit ledger as context (LED-188).
When to use: to enrich the ledger with external issue context from a GitHub repo so cross-references work. When NOT to use: to write back to GitHub (this is read-only) or to monitor a single issue (delimit_sensor_github_issue).
Sibling contrast: delimit_sensor_github_issue watches one issue; this syncs many into the ledger as context.
Side effects: read-only on GitHub (network calls via gh CLI). Writes context entries into the ledger but does not push back to GitHub.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | No | "owner/repo" GitHub repo. Empty = auto-detect from git remote. | |
| labels | No | Comma-separated label filter (e.g. "bug,priority:high"). | |
| limit | No | Max issues to sync. Default 10. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations exist, the description carries the full burden. It discloses side effects: read-only on GitHub (network calls via gh CLI) and writes context entries into the ledger without pushing back. This covers key behaviors. A minor gap is lack of detail on failure modes or response format, but output schema handles return values.
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 highly structured with clear sections: main purpose, when to use, when not to use, sibling contrast, side effects. Every sentence adds value, no fluff. It is concise yet comprehensive.
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 3 parameters (none required), no annotations, but an output schema, the description fully covers purpose, usage guidelines, behavioral side effects, and sibling differentiation. No additional information seems necessary for an agent to correctly select and invoke this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters have descriptions in the schema. The tool description does not add extra meaning beyond the schema, consistent with the baseline of 3 for high coverage. No additional context is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool pulls open GitHub issues into the Delimit ledger as context. It uses a specific verb ('Pull'), resource ('open GitHub issues'), and outcome ('into the Delimit ledger as context'). The sibling contrast with delimit_sensor_github_issue further clarifies the scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit 'When to use' and 'When NOT to use' sections are provided, with clear guidance: use to enrich ledger with external issue context, avoid for write-back to GitHub or monitoring a single issue (use sibling instead). This directly addresses selection among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_vault_healthA
Report vault subsystem health (Pro).
When to use: at session start or as a CI smoke test to confirm the vault backend is reachable and indexes are intact. When NOT to use: to query content (use delimit_vault_search) or to capture state (delimit_vault_snapshot).
Sibling contrast: delimit_vault_search reads content; delimit_vault_snapshot captures state; this reports the engine's own health.
Side effects: read-only on the vault backend; gated by require_premium. Calls backends.vault_bridge.health.
Args: None.
Returns: Dict with health status and next_steps.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description fully discloses read-only nature, premium gating, backend call, and return type (Dict with health status and next_steps). Contradiction false.
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?
Well-structured with clear sections; each sentence adds value. 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?
Complete for a zero-parameter health check: purpose, usage, side effects, parameters, returns all covered. Output schema covers return structure.
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?
No parameters; schema coverage is 100%. Description adds 'Args: None' for clarity, justifying above baseline 3.
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 'Report vault subsystem health (Pro)' and distinguishes from siblings delimit_vault_search (content) and delimit_vault_snapshot (state).
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 when to use (session start, CI smoke test) and when not to use (content/state), with sibling contrast.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_vault_searchA
Search vault entries by query string (Pro).
When to use: to retrieve stored vault content matching a search string. The vault holds long-lived knowledge artifacts. When NOT to use: for conversation memory (use delimit_memory_search) or to capture state (delimit_vault_snapshot).
Sibling contrast: delimit_memory_search hits the conversation memory store; this hits the vault — different storage, different semantics.
Side effects: read-only on the vault backend; gated by require_premium. Calls backends.vault_bridge.search.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query string. Required. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description bears full burden. Clearly states 'Side effects: read-only on the vault backend' and 'gated by require_premium', disclosing both safety and access control. Also explains the vault concept as 'long-lived knowledge artifacts'.
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 and well-structured: header line, then sections for When to use, When NOT to use, Sibling contrast, Side effects. Every sentence adds value with zero 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?
With a single fully-documented parameter, an output schema (assumed present), and thorough description of usage and side effects, the tool definition is fully complete for an AI agent to select 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 description does not add extra meaning beyond the schema's description of 'query' as 'Search query string. Required.' Baseline 3 is appropriate as description provides no additional parameter-level 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 'Search vault entries by query string (Pro)', specifying verb, resource, and scope. It explicitly distinguishes from siblings delimit_memory_search and delimit_vault_snapshot, leaving no 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?
Provides explicit when to use ('to retrieve stored vault content matching a search string'), when not to use ('for conversation memory use delimit_memory_search'), and sibling contrast. Also notes it's read-only and gated by require_premium.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_vault_snapshotA
Capture a snapshot of vault state (Pro).
When to use: before a risky vault edit, to have a rollback point for content recovery. When NOT to use: for searching content (use delimit_vault_search) or checking health only (delimit_vault_health).
Sibling contrast: delimit_vault_health reports up/down only; this returns a structured snapshot of state.
Side effects: gated by require_premium. Calls backends.vault_bridge.snapshot, which writes a snapshot record on the vault backend.
Args: None.
Returns: Dict with snapshot data and next_steps.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the full burden. It discloses side effects ('writes a snapshot record'), prerequisite ('gated by require_premium'), and internal call ('Calls backends.vault_bridge.snapshot'). Minor: could mention whether snapshot is instantaneous or async, but still very good.
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 well-structured with clear sections (one-liner, usage guidelines, sibling contrast, side effects, args, returns). Every sentence adds value and the key points are front-loaded. 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 no parameters and existence of an output schema, the description covers all necessary context: use cases, exclusions, side effects, prerequisites, and a brief return description ('Dict with snapshot data and next_steps'). It is fully complete for agent 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?
The tool has zero parameters and schema coverage is 100%, so baseline is 4. The description explicitly states 'Args: None,' confirming no additional meaning is needed. This is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Capture' and resource 'snapshot of vault state (Pro)'. It distinguishes from sibling tools delimit_vault_health (reports up/down) and delimit_vault_search (for searching content), making the purpose unambiguous.
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 provides when to use ('before a risky vault edit, to have a rollback point') and when NOT to use ('for searching content' or 'checking health only' with specific sibling alternatives named). This is excellent guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_vendor_news_draftA
Draft a brand-voice Delimit-POV riff for a specific X tweet (Pro) (LED-1253).
When to use: when an operator/sensor surfaces a vendor-news tweet that warrants a Delimit-POV riff for the autonomous content queue. When NOT to use: to fetch the tweet without drafting (use delimit_x_fetch) or for general social drafting (delimit_social_generate).
Sibling contrast: delimit_x_fetch fetches; delimit_vendor_news_health inspects subsystem health; this drafts a riff into the queue.
Side effects: gated by require_premium. Runs the riff drafter end-to-end: rate cap, source-fit pre-filter, generator, capability validator, fit floor, queue insert. dry_run=True suppresses the queue insert but still runs validators (and still consults the 24h per-vendor rate cap to avoid log noise).
| Name | Required | Description | Default |
|---|---|---|---|
| tweet_id | No | Source X tweet id (numeric string) or full x.com URL. Required. | |
| dry_run | No | If True, suppress queue insertion. Default False. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description fully discloses side effects: gated by require_premium, end-to-end pipeline steps, rate cap, dry_run behavior. 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?
Well-structured with sections for purpose, usage, sibling contrast, and side effects. The reference 'LED-1253' is slightly extraneous, but overall 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?
Covers all needed aspects: purpose, usage, side effects, parameters, siblings. With an output schema present, the description is fully complete 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?
Schema coverage is 100%, so baseline 3. The description restates parameter purposes but adds minimal new meaning beyond the schema's 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 drafts a brand-voice Delimit-POV riff for a specific X tweet. It distinguishes itself from siblings like delimit_x_fetch and delimit_social_generate by name and contrast.
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' and 'When NOT to use' sections provide clear context, including specific alternative tools (delimit_x_fetch, delimit_social_generate) and conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_vendor_news_healthA
Health check for the vendor-news riff system (LED-1253).
When to use: to answer "is the cron firing? are drafts landing? what's getting rejected?" without grepping logs. When NOT to use: to draft a riff (use delimit_vendor_news_draft) or inspect the broader social daemon (delimit_social_daemon).
Sibling contrast: delimit_vendor_news_draft writes one riff; delimit_social_daemon controls the broader sensing daemon; this is the vendor-news subsystem health.
Side effects: read-only. Greps crontab for the cron entry, reads sensor JSONL log, tweet queue, rejected log, watchlist file.
Args: None.
Returns: Dict with cron_installed, last_run_ts, sensor stats, 24h queued/rejected entries, watchlist count, budget snapshot.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description fully covers behavioral aspects: it declares read-only nature and enumerates internal operations (greps crontab, reads log files, etc.), ensuring the agent understands side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (general description, when to use, when not to use, sibling contrast, side effects, args, returns) and every sentence adds value without 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 parameters and the presence of an output schema, the description provides complete context: it explains the tool's scope, side effects, and return fields (cron_installed, last_run_ts, etc.) with no gaps.
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?
There are zero parameters and schema coverage is 100%, so no parameter documentation is needed. The description explicitly states 'Args: None.' which is clear and helpful.
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 the tool is a health check for the vendor-news riff system, specifying exactly what it checks (cron firing, drafts landing, rejections) and distinguishes it from sibling tools like delimit_vendor_news_draft and delimit_social_daemon.
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 provides 'When to use' and 'When NOT to use' sections with concrete examples, and contrasts with sibling tools, giving clear guidance on tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_vendor_news_scanA
Scan watchlisted vendor accounts and auto-draft riffs (Pro) (LED-1253).
When to use: for ad-hoc execution of the vendor-news sensor (the cron is the normal autonomous path). When NOT to use: for a single tweet (use delimit_vendor_news_draft) or subsystem health (delimit_vendor_news_health).
Sibling contrast: delimit_vendor_news_draft is one tweet; delimit_vendor_news_health is health rollup; this is the full sensor + drafter pass.
Side effects: gated by require_premium. Wraps ai.vendor_news.sensor.scan_vendor_news + draft_vendor_riff. dry_run=True polls (cache-friendly) but skips JSONL log write AND skips the drafter entirely (no queue, no rate-cap consumption).
| Name | Required | Description | Default |
|---|---|---|---|
| dry_run | No | If True, sensor-only (no drafter, no queue). Default False. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but description covers side effects: gated by require_premium, wraps sensor+drafter, and details dry_run behavior (cache-friendly, skips JSONL log and drafter). Comprehensive disclosure.
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?
Well-structured with sections: main action, usage guidelines, sibling contrast, side effects. Concise and front-loaded with 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?
Covers purpose, usage, behavior, and parameter thoroughly. Output schema exists, so return values need not be explained. Complete for an ad-hoc scan tool with good annotations (even though annotations are absent, description compensates fully).
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?
Single parameter dry_run has schema description, but description adds significant value: explains cache-friendly polling, skipping JSONL log write, drafter, queue, and rate-cap consumption.
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 scans watchlisted vendor accounts and auto-drafts riffs. It uses specific verbs and resources, and distinguishes itself from siblings like delimit_vendor_news_draft and delimit_vendor_news_health.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use (ad-hoc execution) and when not to use (single tweet or subsystem health), and provides sibling contrast with clear alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_venturesA
List all registered ventures (auto-registered project directories).
When to use: to inventory which projects Delimit has tracked, before routing a ledger query or context operation. When NOT to use: to read venture-scoped context (use delimit_context_list) or memory (delimit_memory_recent).
Sibling contrast: delimit_context_list inventories artifacts inside one venture; this lists the ventures themselves.
Side effects: read-only. Calls ai.ledger_manager.list_ventures. Note: ventures are auto-registered when any Delimit tool is run in a project directory.
Args: None.
Returns: Dict with the venture list (each entry has name, path, etc.).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description states 'Side effects: read-only' and 'Calls ai.ledger_manager.list_ventures', disclosing the underlying implementation and the read-only nature. Since no annotations are provided, this fully covers behavioral expectations.
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 well-structured with clear sections: summary, usage guidelines, sibling contrast, side effects, args, returns. Every sentence adds value without 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?
For a zero-parameter tool with an output schema, the description covers all necessary context: purpose, usage boundaries, side effects, and return shape. It is fully self-contained and requires no additional inference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description explicitly lists 'Args: None' for the zero-parameter tool, which aligns with the empty input schema. It also describes the return value structure. Following the guideline for 0 params, a baseline of 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?
The description clearly states 'List all registered ventures (auto-registered project directories)', specifying the action (list) and resource (ventures). It distinguishes from sibling tools by later explaining that delimit_context_list inventories artifacts inside a venture, while this lists ventures themselves.
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 provides 'When to use' and 'When NOT to use' sections, giving concrete scenarios and naming alternative tools (delimit_context_list, delimit_memory_recent). This guides the agent on appropriate invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_versionA
Return Delimit server version, tool count, and environment status.
When to use: at session start, in a dashboard, or as a diagnostic when investigating capability availability. When NOT to use: for governance health (use delimit_gov_health) or OS status (delimit_os_status).
Sibling contrast: delimit_help describes individual tools; this reports server-wide version and detected environment.
Side effects: read-only. Counts registered tools and detects API keys / CLIs / security tools in the environment so callers know what's available without manual config.
Args: None.
Returns: Dict with version, total_tools, adapter_contract, authority, environment-detection results, plus next_steps.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description discloses side effects as read-only, and explains that it counts tools and detects environment capabilities. Since no annotations are provided, the description fully covers behavioral traits.
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?
Description is well-structured with clear sections (summary, usage, contrast, side effects, args, returns). It is concise and front-loaded with the main 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 no parameters and existence of an output schema, the description adequately explains what the tool returns (version, tool count, etc.) and is complete 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?
Tool has zero parameters, so schema coverage is 100%. Description mentions 'Args: None.' which is sufficient. Baseline for 0 params is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool returns server version, tool count, and environment status. It uses a specific verb ('Return') and distinguishes itself from siblings like delimit_help and delimit_gov_health by explaining what it reports.
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 provides when to use (session start, dashboard, diagnostic) and when not to use (governance health or OS status, with alternative tool names). Also includes a sibling contrast sentence.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_webhook_manageA
Manage webhook notifications for governance events.
When to use: to register a Slack/Discord/HTTP webhook to receive governance alerts (deploy blocked, security finding, consensus). When NOT to use: for SIEM-class structured streaming (use delimit_siem) or one-shot notifications (delimit_notify).
Sibling contrast: delimit_siem streams structured audit events; this routes governance alerts to chat / HTTP endpoints.
Side effects: action="add" / "remove" mutate ~/.delimit/webhooks.json. action="test" sends a test notification to the configured webhooks. action="list" is read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | One of "list" (default), "add", "remove", "test". | list |
| url | No | Webhook URL (Slack, Discord, or any HTTP endpoint). Required for add / remove / test (test uses all configured if not specified). | |
| events | No | Comma-separated event filter — "all" (default), "blocked", "critical", "security". | all |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses side effects: action='add'/'remove' mutate ~/.delimit/webhooks.json, action='test' sends test notification, action='list' is read-only. Without annotations, this provides necessary behavioral context. Could mention persistence or reversibility, but still strong.
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?
Well-structured with clear sections (When to use, When NOT to use, Sibling contrast, Side effects) in a concise format. Every sentence adds value, no repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers all key aspects: governance alerts, mutation, test functionality, file path. Given 3 parameters with 100% schema coverage and output schema present, the description is complete and self-contained.
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%, baseline 3. Description adds meaning: explains action parameter's effects (mutate vs test vs read-only), clarifies url requirements for add/remove/test, and events filter values. Adds value beyond 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 manages webhook notifications for governance events, using a specific verb (manage) and resource (webhook). It contrasts with sibling tools delimit_siem and delimit_notify, distinguishing itself from structured streaming and one-shot notifications.
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 when to use (register a Slack/Discord/HTTP webhook for governance alerts) and when NOT to use (SIEM-class streaming or one-shot notifications), naming specific alternatives. Also provides sibling contrast.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_work_ordersA
Manage work orders — structured task artifacts for the founder (STR-177).
When to use: to list, read, or close work orders that bridge strategy deliberations and interactive execution. When NOT to use: for ledger items (use delimit_ledger_*) or governance tasks (delimit_gov_new_task / run / verify).
Sibling contrast: delimit_ledger_add tracks general work; delimit_gov_new_task is governance-classed; this is the founder work-order surface — copy-pasteable markdown artifacts.
Side effects: action="list" / "show" are read-only. action="complete" writes to the work-order store via ai.work_order.complete_work_order.
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | One of "list" (default), "show", "complete". | list |
| status | No | Filter for list — "pending" (default), "completed", "all". | pending |
| wo_id | No | Work order id (required for "show" / "complete"). | |
| note | No | Completion note (used by "complete"). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Describes side effects: list/show are read-only, complete writes to the work-order store. No annotations exist, so description carries full burden. Could mention more about completion behavior but 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?
Well-structured with clear sections (purpose, when to use, when not, sibling contrast, side effects). Front-loaded with main purpose. Every sentence 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?
Covers scope, actions, side effects, and usage guidance. Output schema exists so return values are not needed. Minor inconsistency: 'close' in description vs 'complete' in 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 has 100% coverage, but description adds behavioral context for action parameter (read vs write) and notes that wo_id is required for show/complete. Adds meaning beyond 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 manages work orders for listing, reading, or closing. It explicitly distinguishes itself from sibling tools like delimit_ledger_add and delimit_gov_new_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?
Provides explicit 'When to use' and 'When NOT to use' sections, naming specific alternative tools (delimit_ledger_*, delimit_gov_new_task/run/verify).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_x_fetchA
Fetch tweets from X by id or URL via twttr241 RapidAPI (LED-825).
When to use: to surgically fetch one or many tweets by id/URL, sharing the cached path with delimit_social_target so repeats are free. When NOT to use: to scan for new content (use delimit_social_target) or fetch a Reddit thread (delimit_reddit_fetch_thread).
Sibling contrast: delimit_social_target scans for opportunities; delimit_reddit_fetch_thread is the Reddit equivalent; this is the X (Twitter) single/batch fetcher.
Side effects: read-only network call via twttr241 (RapidAPI). Inherits the LRU + SQLite cache + budget gate from the social-target scanner — repeated reads are free. No writes.
| Name | Required | Description | Default |
|---|---|---|---|
| id_or_url | No | Single status id ("2048825010371039648") OR a full x.com / twitter.com URL — id is extracted automatically. Mutually exclusive with `ids`. | |
| ids | No | Comma-separated list of status ids OR URLs for a batch fetch. Each is normalized to a status id and fetched independently. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses side effects (read-only network call via twttr241 RapidAPI) and behavioral traits (LRU + SQLite cache + budget gate, no writes). Since no annotations are provided, the description fully carries the transparency burden and does so thoroughly.
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 well-organized with clear sections (purpose, when to use/not use, sibling contrast, side effects). Every sentence adds value, and it is front-loaded with the core 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 tool has an output schema, the description is complete: it covers purpose, usage guidelines, side effects, caching behavior, and sibling differentiation. An agent can confidently decide when to invoke this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% so baseline is 3. The description does not add significant meaning beyond what the schema already provides for id_or_url and ids; it merely summarizes the parameters without new semantic details.
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 'Fetch' and the resource 'tweets from X by id or URL', and explicitly distinguishes from sibling tools delimit_social_target and delimit_reddit_fetch_thread, making it easy for an agent to select the correct tool.
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 'When to use' (surgically fetch tweets by id/URL) and 'When NOT to use' (scanning for new content, Reddit threads), including alternatives. Also notes the cached path sharing with delimit_social_target for free repeats.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delimit_zero_specA
Extract OpenAPI spec from framework source code (no spec file needed).
When to use: when a project has no checked-in OpenAPI spec but uses a framework Delimit can introspect (FastAPI today; Express, NestJS planned). When NOT to use: when a spec file already exists — pass it directly to delimit_lint or delimit_diff.
Sibling contrast: delimit_lint operates on existing spec files; this generates one from source.
Side effects: read-only on the project source. Calls backends.gateway_core.run_zero_spec which may invoke a Python subprocess to introspect FastAPI routes.
| Name | Required | Description | Default |
|---|---|---|---|
| project_dir | No | Project root directory. Default "." (cwd). | . |
| python_bin | No | Optional Python binary path. Empty = auto-detect. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but description discloses read-only nature and potential Python subprocess invocation. Lacks details on error cases or performance, but covers key 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?
Concise, front-loaded purpose, with clear sections for usage, contrast, and side effects. Every sentence adds value without 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 output schema exists, description covers purpose, usage, side effects, and sibling distinction. Complete for this tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. Description does not add meaning beyond schema; parameters are already well-documented in 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 the verb 'Extract' and resource 'OpenAPI spec from framework source code'. It distinguishes from siblings by contrasting with delimit_lint and delimit_diff.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit 'When to use' (no checked-in spec) and 'When NOT to use' (spec exists, use alternatives). Also lists supported frameworks and future plans.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
With 209 tools, there is substantial overlap between similar tools like the many ledger, governance, and deploy variants. The detailed descriptions help, but the boundaries are often subtle, and internal implementation tools (prefixed with underscore) add confusion. An agent would frequently misselect.
The naming mostly follows a consistent verb_noun snake_case pattern (e.g., delimit_agent_dispatch, delimit_ledger_add). However, there are irregularities like delimit_ledger_done instead of delimit_ledger_complete, and internal tools with underscore prefixes break the pattern.
209 tools is far beyond the typical well-scoped range of 3-15. The server attempts to cover an enormous breadth of functionality (governance, deploy, social, design, etc.), making it monolithic and unfocused. This extreme count severely hurts usability.
Given the server's vast scope, it covers many operations (CRUD for ledger, deploy pipeline, governance lifecycle, social posting, etc.). However, many tools are marked experimental or gated behind Pro, and some workflows require chaining multiple tools, indicating room for improvement.
Maintenance
Related MCP Connectors
Cross-agent artifact workspace with provenance across Claude Code, Codex, Cursor, LangGraph.
Coordination hub for AI coding agents: message teammates, ask humans, audit every event.
Real-time chat hub for AI agents — Claude Code, Cursor, Cline, Codex over MCP or REST.
One identity across Claude Code, Codex, Cursor, Gemini, Windsurf: shared inbox and handoffs.
Related MCP Servers
- AlicenseBqualityDmaintenanceGives AI coding assistants persistent memory, safety controls, and project awareness by tracking coding sessions, protecting critical files from modifications, and managing approval workflows with automatic changelog generation.1918MIT
- AlicenseNot gradedqualityNot gradedmaintenanceProvides unified development tools including code analysis, debugging, refactoring, documentation, testing, and project automation through multiple LLM providers (KIMI, GLM, OpenRouter). Features agentic audit capabilities with multi-model consensus for finding issues and generating direct fixes.
- FlicenseNot gradedqualityNot gradedmaintenanceOrchestrates multiple AI models (Gemini, OpenAI, Claude, local models) within a single conversation context, enabling collaborative workflows like multi-model code reviews, consensus building, and CLI-to-CLI bridging for specialized tasks.
- AlicenseAqualityCmaintenanceShared, versioned memory and governance control plane for AI coding agents. Compiler pipeline resolves architectural decision conflicts across Claude Code, Cursor, and custom agent fleets.34MIT
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/delimit-ai/delimit-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server