Skip to main content
Glama

English | 中文

AI Team OS

Shared context, accountable work, native agents.

AI Team OS is a shared operating layer for Claude Code and Codex. Keep tasks, project memory, reports and team messages in one place, and follow work across sessions in one Dashboard. Each host keeps its native agent tools; the OS provides the durable record that makes their work understandable and reusable.

🤝 Codex is supported. Use Codex or Claude Code on its own, or connect both to the same OS task wall, project memory, reports, channels and Dashboard. Codex uses its own MCP and hook configuration; native agent tools, host settings and hook trust remain separate. See the installation and capability sections below for the per-host setup and boundaries.

v1.12.4 — Shared-host observations and runtime reliability. This batch improves Claude/Codex Leader attribution, native member names and parent teams, and current-work visibility; fixes project-scoped events and Analytics, cross-team totals and tool-completion pairing; and adds legacy session-team collision repair and runtime diagnostics. See the changelog for validation results, upgrade requirements and remaining limitations.

Full version history: CHANGELOG.md

Python License FastAPI React MCP Stars

116 MCP tools · 211 REST endpoints · 23 dashboard pages · 25 agent templates · 42 ecosystem research tools · 21 machine-checked invariants


A session can end without taking the team's context with it. Tasks, memos, decisions and reports remain available to the next authorized session, whether it runs in Claude Code or Codex.


What Carries Across Sessions

Parallel agents are useful only when you can tell who owns the work, what actually happened and where to resume. AI Team OS keeps those answers outside any single chat:

  • Tasks and handoffs: ownership, progress memos, blockers and completion records stay on the project task wall.

  • Project memory and reports: retrieve earlier decisions and evidence instead of rebuilding context from scratch.

  • Team communication: send and read project-scoped messages across hosts, with explicit reader identities and acknowledgements.

  • Operational visibility: inspect Leaders, members, tool activity and project-level totals in one Dashboard.

The OS records and exposes the work. Your chosen host runs the agents, and you decide what they are authorized to do.


Related MCP server: claude-operator

How It Works

You set the scope. Each root session has its own Leader. A Claude Leader and a Codex Leader can contribute to the same project without pretending to be the same process or sharing host configuration.

  1. Resolve the project and read its task wall, relevant memos and memory.

  2. Let the session's Leader coordinate authorized work using its host's native agent tools. Members belong to their parent team; Codex's native nicknames stay distinct from roles and task names.

  3. Record progress, decisions and reports through the shared MCP tools. Other sessions can pick them up through the same project records and channels.

  4. Inspect the Dashboard to compare recorded work with current activity. The observation updates label the host, show only fresh working evidence in current views and fold waiting or historical records away without deleting them.

Claude Code's installed hooks can supply startup briefings and direction-layer context automatically. Codex can read the same records through MCP, with its own adapter handling supported observations. The OS does not replace either host's scheduler, permissions or agent lifecycle.


Core Capabilities

1. Cross-Session Coordination

Shared project records and channels connect sessions while execution stays native to each host:

  • One Leader per root session: the implementation combines registered sessions with Claude file observations and labels Claude Leader and Codex Leader explicitly. Native Codex children join the parent team instead of becoming extra Leaders.

  • Current work and history: fresh busy evidence drives the current roster; waiting, closed and stale records remain available as history. Unknown source or model information stays unknown.

  • Project and worktree visibility: inspect current tasks, observed context and uncommitted work before handing off or continuing a session.

  • Cross-host messages: use channel_send, channel_read and channel_wait for explicit communication. A pending wait can return new messages; it does not restart an ended Codex turn.

  • Claude Code extensions: the existing fleet path can resume a Claude session for one turn, and installed CC hooks support compaction checkpoints, session-registry observations and background-job visibility. These execution and injection paths are not Codex features.

2. Memory System v2 - Shared Direction and Task History

Keep team preferences and task evidence available across sessions, without relying on a single chat's remaining context.

  • Direction layer (user preferences / corrections / design intent, 4 kinds): stored with per-bucket character quotas (global 1200 + 1500 per project + user 300 = 3000 chars, <=400 chars per entry), replacement via supersedes and auditable invalidation rather than deletion. Writes are scanned for invisible characters, instruction-override patterns and credential shapes. Claude Code's SessionStart and SubagentStart hooks inject this context; Codex retrieves the shared records through its configured tools.

  • Episodic layer (task_memos ledger): task-level execution memos promoted to a dedicated table (row IDs / invalidation axis / quality score / scope_path), recalled on demand via pure-Python BM25 Chinese retrieval; 123 legacy memos backfilled with zero loss.

  • On-demand reconcile (memory_reconcile): zero-LLM BM25 candidate clustering, then merge / invalidate / score / distill on agent confirmation — "the agent computes, the tool persists", with no background resident process introduced.

Surfaces: MCP memory_add / memory_list / memory_invalidate / memory_search / memory_reconcile_candidates / memory_reconcile_apply.

3. Progressive Tool-Loading Governance (new in v1.9.0)

Choose the MCP surface for each client instead of loading every capability into every session.

  • alwaysLoad dynamic rotation: at session start a single SQL recomputes the hot-tool whitelist by 7-day real call frequency (>=2-day span gate against bursty spikes + 20% hysteresis, hard cap <=5), and CC skips ToolSearch for them. Not additive, not hand-tuned; any stats failure silently degrades to all-defer, and every whitelist is logged for audit.

  • AITEAM_TOOLSETS group switch: 16 capability-domain toolsets; a startup env var decides which modules register. default core profile = task/team/memory/infra/reports (29 tools, hard cap <=50), with incremental default,ecosystem — fits non-CC clients that cap tool counts.

  • AITEAM_READONLY read-only profile: an orthogonal overlay that strips every write tool by explicit allowlist and keeps only read tools — ideal for audit / observer sessions.

  • 5 Claude Code templates on least privilege: meeting-facilitator / debate advocate & critic / technical-writer / project-manager carry disallowedTools structural denials. Codex uses its own native permission controls rather than interpreting CC template fields.

4. Claude Code Workflow / ultracode Observability (v1.7.0)

The OS does not intercept CC's built-in ultracode/Workflow — it becomes its persistent governance layer. Every Workflow run is automatically tracked into the OS, with no manual team setup:

  • Auto-tracking: a hook turns each Workflow run into an OS "team" (workflow-<wf_id>) the moment it starts

  • Dashboard /workflows: a live feed of run cards, a phase swimlane timeline, and per-agent telemetry — tokens / duration / status / tool-call counts, advancing live via incremental journal tailing while a run executes

  • Calibrated stall detection: the stall threshold was calibrated on 3,378 real agent intervals (p99 = 77.6s, longest healthy silence 173.8s) and set at 5.2× the worst healthy case — it flags late rather than crying wolf

  • Project-detail integration: workflow team rows carry an inline run summary (status / agent count / duration / finish time) plus a "view swimlane" deep link; members display semantic phase labels (e.g. audit:sourceA) instead of ids

  • Claude Leader file observations: the backend can supplement registered Leaders with session, model and liveness observations from Claude's local records. Codex identity follows its separate native metadata path.

  • MCP tools: workflow_list (browse runs), workflow_get (full archive + per-agent rows), workflow_reconcile (repair from on-disk snapshots after the OS was offline)

  • Self-healing ingestion: hook receipt anchors + on-disk snapshot reconciliation + a reaper backstop close offline gaps automatically — finished runs on disk are ingested idempotently; cross-project attribution matches the on-disk path slug against registered projects

5. Ecosystem Research Platform — 42 tools

A project-isolated knowledge base that accumulates research findings over time. Each repo progresses through 4 stages (a progressive funnel, since v1.5.0), with token-efficient triggers and append-only history:

  • Stage 0 — Auto shallow-summary on archive: newly-archived repos automatically get a 200-400 char ai-engineer summary (core function / positioning / advantages). 8-class failure handling with self-learning hooks (3+ same-class fails surface through self_learning_pending; the queue exposes recorder/searcher injection points you can wire to your own lesson store)

  • Stage 1 — On-demand architecture analysis: user picks research direction ("memory_system") → batch-dispatch backend-architect agents to read architecture key files

  • Stage 2 — Multi-perspective debate: triggers existing debate_start (NOT a built-in debate engine — reuses meeting system)

  • Stage 3 — Reference / Integrate marking: mark_as_reference adds tag for future quick recall; start_integration triggers existing task_create for actual implementation

  • Active vs Full dual-view: data is append-only forever. Stars-falling repos kept (just is_active=False); stars climbing back auto-promotes + re-queues Stage 0

  • Dashboard /ecosystem: list with stage badges + research timeline + project filter dropdown + candidate-filter page (/ecosystem/research) + per-project settings tab — the single largest tool family in the OS

6. Knowledge Layer — Reference Graph + Unified Search (v1.8.0)

Everything the OS records — task memos, reports, tasks — becomes recallable knowledge:

  • Reference graph (P1a): a zero-LLM regex extractor mines OS-native ID references (wf_id / commit hash / task uuid / [[memory]]) out of memos and reports into an append-only knowledge_links table — the graph is a derived view, rebuildable from source text at any time

  • Unified search (P1b): /api/search fuses three arms via RRF — BM25 full-text (Chinese bigram native), knowledge-graph fanout (an ID query pulls in everything linked to it), and exact ID-prefix / title match

  • Global search box in the Dashboard header, plus MCP tools unified_search / link_query / link_trace — recall past work by natural language ("how was the attribution fix done"), a wf_ id, or a commit hash

Why zero-LLM retrieval? ID extraction and search run locally without a model call, and the graph can be rebuilt from source text. Reading retrieved results into an agent's context still consumes that host's normal context budget.

7. Task Wall, Reports and Dashboard

Governance ledger and panoramic visualization — everything leaves a trace:

  • Task wall: a live board of pending / in-progress / done, event-driven + intelligent Agent matching + deadlock detection

  • 8 structured meeting templates (keyword auto-select, built on Six Thinking Hats / DACI / Design Sprint) — every meeting must produce an actionable conclusion; "we discussed but didn't decide" is not an outcome

  • Shared React 19 Dashboard: project task walls, reports, agent activity, events and Analytics sit alongside the Claude-specific Workflow and model-governance views.

8. Work That Can Be Resumed

The task wall gives a running Leader a durable plan:

  • Find the next authorized item and record ownership before dispatching native agents.

  • Keep blockers and approval requests visible through task memos and briefings.

  • Hand off progress and evidence so another session can continue without guessing.

  • Turn research findings and review decisions into explicit follow-up tasks.

Continued execution depends on the host session and the automation you enable. Persistent records do not imply an always-running model.

9. Evidence-Based Observations

The OS separates recorded facts from inferred or missing information:

  • Host-specific identity: Claude file observations and Codex's exact native session metadata remain distinct. Codex's nickname and parent chain determine member identity; role text and ID appearance do not.

  • Freshness and ownership: the implementation combines persisted project/session bindings with recent activity, keeping current work separate from historical rows. Event and Analytics project filters follow recorded ownership.

  • Reliable tool records: stable Codex call IDs pair starts and completions across retries and API restarts. Later hooks can retry completion metadata within bounded limits; absent trustworthy start/end evidence, duration stays unknown.

  • Workflow telemetry: the Claude Workflow view reconciles on-disk journals with persisted observations and exact project-path attribution.

10. Claude Code Model Governance (v1.8.1)

Inspect models observed in Claude Code transcripts and choose Claude Code's startup default. This setting does not control Codex's model selection.

  • Transcript-based discovery: local CC records supply observed model names, including third-party gateway names, with a 60s cache. This is observation history, not a live account-availability test.

  • One-click global default startup model: written to ~/.claude/settings.json under triple write protection — touches only the model key, keeps a .bak-aiteam backup, writes atomically, refuses corrupted files

  • Zero coercion: soft reminders only, never a block — and CC Workflow runs are fully exempt

Surfaces: REST /api/models/{available,default} · MCP model_config_get / model_config_set · the Model Governance card in Dashboard Settings.

11. Team Collaboration

Coordinate native agents and peer Leaders without flattening their identities:

  • 25 professional role templates (23 base + 2 debate roles) with a recommendation engine for engineering, testing, research and management. Claude Code installs them as native templates; Codex keeps its own native agent setup.

  • Department grouping — Engineering / QA / Research with cross-team coordination

  • Channel communication: team: / project: / global channels with @mention support

  • Cross-host messaging: sending, reading and acknowledging use shared channels with distinct reader identities. Prompt-time unread hints have been measured on Claude Code and on Codex CLI/Desktop; the Codex hint uses structured additionalContext, not plain hook stdout.

  • Explicit waiting: channel_wait holds a call open and identifies initial replay, event-triggered read or final timeout read in delivery_source. It is separate from acknowledgement and from Claude Code's optional session watcher; it does not wake an idle Codex session after a turn ends.

  • Debate mode: 4-round structured debate (Advocate→Critic→Response→Judge) via debate_start / debate_code_review

  • Cross-agent lessons: failure_analysis records root causes in project memory for later sessions to retrieve. Automatic injection follows the installed host integration, not a shared assumption about both runtimes.

12. Full Transparency

Trace the observations and records behind the Dashboard:

  • Decision Cockpit: event stream + decision timeline + intent inspection — every decision has a traceable record

  • Activity Tracking: observed agent status, current work and retained history, with explicit unknown values when evidence is missing

  • What-If Analyzer: compare multiple approaches before committing, with path simulation and recommendations

13. Safety & Behavioral Enforcement

OS checks complement each host's native approvals and isolation controls. Install and review the applicable host hooks rather than assuming one host's rules protect the other:

  • Guardrails L1: 7 dangerous pattern detections + PII warnings + InputGuardrailMiddleware

  • Claude Code dispatch checks: CC-specific hook and template rules validate its agent-dispatch fields; they are not Codex's native agent schema

  • S1 safety rules: regex-based scan catches destructive commands (rm -rf, force push, hardcoded secrets) including uppercase flags and heredoc patterns

  • 4-layer defense rule system: 48+ rules covering workflow, delegation, session, and safety layers

  • Concurrent-edit warnings: hooks flag a file two agents touched in quick succession, read straight from recent edit events (the cooperative file-lock tools were retired in v1.10.3 — the lock file was empty in every real run)

  • Agent Watchdog: on-demand POST /api/teams/{id}/watchdog/check plus the background patrol — flags BUSY-timeout agents, long-pending tasks and unblockable dependencies

  • Self-patrol: watchdog lease patrol + reaper reconciliation backstop + identity verification before any kill — the OS keeps eyes on itself, not just on your agents

  • Completion verification: verify_completion checks task status and memo existence; artifact review and relevant tests still establish whether the requested result is correct

  • Ecosystem integration recipes: 4 preset recipes (GitHub / Slack / Linear / Full-stack team) under find_skill(level=2, category="integration")

  • find_skill 3-layer progressive discovery: quick recommend → category browse → full detail, reducing tool-call overhead

14. Local-First Infrastructure

The OS does not require its own hosted model service:

  • MCP tools, hooks, storage and the Dashboard run locally.

  • Graph extraction, BM25 search and reconciliation candidate generation do not call a model.

  • Agent reasoning, retrieved context and AI-assisted research use the configured host's normal subscription or API budget; external integrations may have their own costs.

  • Full Codex token and cost attribution is not yet available. Unknown usage is not a measured zero.

More Capabilities (legacy & secondary — still running, queryable on demand)

  • Failure Alchemy: failure_analysis still runs as part of the loop subsystem — every failed task extracts root cause and produces Antibody (stored in team memory to prevent repeats) / Vaccine (high-frequency failures become pre-task warnings) / Catalyst (analysis injected into future Agent system prompts). No longer the headline, but defensive rules keep accruing.

  • AWARE loop memory · find_skill 3-layer discovery (skills + integration recipes) · Prompt Registry: see the full tool table below. The scheduler and the loop state machine were retired in favour of CC-native Cron* and on-demand tools (CC-is-not-always-on principle); the wake_agent schedule kind survives for the fleet wake subsystem.


Used to Build This Project

AI Team OS manages its own development — and since v1.7.0, it can prove it with its own telemetry:

Claude Code and Codex sessions use the same task records and channels to exchange implementation and review evidence. Their native execution histories stay distinct; the OS provides the common project record.

  • Every feature line from v1.7.0 to v1.9.0 — the observability layer, the knowledge layer, model governance, Memory System v2, tool-loading governance — shipped through CC Workflow runs that the OS tracked itself. Open /workflows and replay how the system built its own features, swimlane by swimlane.

  • Competitive research across CrewAI, AutoGen, LangGraph, and Devin feeds the roadmap through multi-agent brainstorming meetings — the minutes live in the OS's own report store.

  • It learns from its own incidents, too: every machine-checked invariant in scripts/check_invariants.sh was distilled from a real accident in this repo's history.

The same task wall, reports and observations used in development are available for your projects.


How It Compares

Dimension

AI Team OS

CrewAI

AutoGen

LangGraph

Devin

Category

Shared OS for native coding agents

Standalone Framework

Standalone Framework

Workflow Engine

Standalone AI Engineer

Integration

MCP + independent Claude Code/Codex adapters

Independent Python

Independent Python

Independent Python

SaaS Product

Memory System

Shared direction memory + task memos + BM25 retrieval

Short-term context

Short-term context

Checkpoint state

In-session

Tool-Loading Governance

alwaysLoad rotation + group switch + read-only profile + template least-privilege

None

None

None

None

Autonomous Operation

Durable task coordination; execution depends on the host

Task-by-task

Task-by-task

Workflow-driven

Limited

Meeting System

8 structured templates with auto-select

None

Limited

None

None

Failure Learning

Failure Alchemy (Antibody/Vaccine/Catalyst)

None

None

None

Limited

Decision Transparency

Decision Cockpit + Timeline

None

Limited

Limited

Black box

Workflow Observability

Swimlane timeline + per-agent telemetry + offline reconcile over CC Workflow

None

None

Graph state only

None

State Source

Host-native metadata + persisted observations and journals

Agent self-report

Agent self-report

In-process state

Black box

Rule System

4-layer defense (48+ rules) + behavioral enforcement

Limited

Limited

None

Limited

Agent Templates

25 Claude Code templates + shared role recommendations

Built-in roles

Built-in roles

None

None

Dashboard

React 19 visualization

Commercial tier

None

None

Yes

Open Source

MIT

Apache 2.0

MIT

MIT

No

Native Coding Hosts

Claude Code and Codex, with distinct integration paths

No

No

No

No

Extra Cost

Local OS; host and integration usage costs still apply

API costs

API costs

API costs

$500+/mo


Architecture

Claude Code native agents -> CC MCP / hook adapter    \
                                                      > Shared OS API -> SQLite
Codex native agents       -> Codex MCP / hook adapter /       |
                                                             +-> Dashboard

The database holds project-scoped tasks, memory, reports, channels and observations. Each host owns its scripts, registration, trust and native agent controls; sharing the OS backend does not merge those settings.

Five-Layer Technical Architecture

Layer 5: Web Dashboard    — React 19 + TypeScript + Shadcn UI (23 pages)
Layer 4: CLI + REST API   — Typer + FastAPI
Layer 3: Team Orchestrator — LangGraph StateGraph (optional extra — CLI graph execution only)
Layer 2: Memory Manager   — SQLite-backed store + pure-Python BM25 retrieval
Layer 1: Storage          — SQLite (WAL journaling) · PostgreSQL support on the roadmap

Host Adapters

Claude Code's plugin and Codex's adapter feed the same OS through separate installation and trust surfaces. The Codex adapter lives in plugin/harness/codex/; its observation entry and matching helper modules must be installed together. The following event map describes the Claude Code adapter only.

Hook System (13 scripts across 15 Lifecycle Events - Claude Code Adapter)

SessionStart     → auto_install.py, session_bootstrap.py, send_event.py
                   — Auto-install deps + inject Leader briefing / core rules / team state
SubagentStart    → inject_subagent_context.py, send_event.py   — Inject sub-Agent OS rules (2-Action etc.)
SubagentStop     → send_event.py                 — Record sub-Agent lifecycle event
PreToolUse       → workflow_reminder.py, send_event.py
                   — Workflow tracking reminders + event forwarding
PostToolUse      → workflow_reminder.py, deep_review_link.py,
                   meeting_ecosystem_writeback.py, send_event.py
TaskCompleted    → cc_task_bridge.py             — Mirror finished CC tasks onto the OS wall (owned or dependency-linked ones only)
TeammateIdle     → send_event.py                 — CC's own teammate-idle signal, recorded alongside the OS liveness track (observation only, changes no status)
UserPromptSubmit → context_tracker.py            — Track context usage
                 → channel_unread.py             — Unread channel badge
                 → turn_end_guard.py             — Standby reminder (user-prompt mode)
SessionEnd       → send_event.py                 — Record session end event
Stop             → send_event.py                 — Record stop event
PermissionDenied → permission_denied_recovery.py — Permission-denied self-recovery
PreCompact       → pre_compact_save.py           — Freeze the OS-side battle state (in-flight agents / open tasks / pending decisions) into a checkpoint
PostCompact      → send_event.py                 — Confirm the compaction actually happened (a triggered compaction can still be cancelled)
WorktreeRemove   → send_event.py                 — An isolated worktree is gone

Choose an Installation Path

For Claude Code's AI-assisted installation, tell Claude Code:

"Read https://github.com/CronusL-1141/AI-company/blob/master/INSTALL.md and follow the instructions to install AI Team OS"

Claude Code can read the install guide and walk through its plugin setup. Codex users should follow the separate manual path below; the Claude installer is not a Codex installer.


Important: Install AI Team OS to your system Python, not inside a project virtual environment. If installed in a venv, AI Team OS will only work in that specific project. Run deactivate first if a venv is currently active, then install.


Quick Start

Prerequisites

  • Python >= 3.11; Python 3.12 is recommended for development and validation

  • uv (pip install uv)

  • Claude Code or Codex with MCP support; hook setup is host-specific

  • Node.js >= 20 (Dashboard frontend, optional)

Option A: Claude Code Plugin Install

# Install uv (Python package runner, required for MCP server)
pip install uv

# Add marketplace + install plugin
claude plugin marketplace add CronusL-1141/AI-company
claude plugin install ai-team-os

# Restart Claude Code after installation; the first launch configures dependencies

# Update to latest version anytime
claude plugin update ai-team-os@ai-team-os

Note: Claude Code's first launch configures dependencies; duration depends on the local environment. Verify the loaded MCP tools and installed hooks rather than relying on startup time.

Option B: Claude Code Source Install

# Step 1: Clone the repository
git clone https://github.com/CronusL-1141/AI-company.git
cd AI-company

# Step 2: Run the Claude Code installer (MCP + CC hooks + CC templates + API)
python3 install.py

# Step 3: Restart Claude Code — everything activates automatically
# API server starts automatically when MCP loads. No manual startup needed.
# Verify: run /mcp in CC and check that ai-team-os tools are mounted

Dependencies: greenlet (needed by SQLAlchemy async on Apple Silicon) is bundled by default. LangGraph is an optional extra — only the CLI graph-execution path needs it: pip install 'ai-team-os[langgraph]'.

Option C: Codex Manual Integration

Codex uses the shared OS backend with an independently installed adapter:

  1. Reuse your existing OS service, or install the Python package from a source checkout using python3 -m pip install -e . with your system interpreter. Follow that interpreter's package-management policy; do not run the Claude installer merely to configure Codex.

  2. In Codex's MCP settings, connect to the existing API's /mcp/ endpoint, or configure stdio with command python3 and arguments -m aiteam.mcp.server. Use an interpreter that imports the intended source checkout and the same OS data target.

  3. Copy the Codex hook entry scripts you intend to enable into a Codex-owned directory. The observation entry send_event_codex.py requires matching codex_observation.py, codex_completion_delivery.py and hook_core.py from plugin/harness/codex/hooks/; copy them as one set. The prompt-time unread entry is channel_unread_codex.py.

  4. Register the selected commands in Codex and review them in its own hook trust controls. Keep existing safety guards, Claude settings and Claude hook files unchanged.

  5. Verify a real tool call through the installed hook, API record and Dashboard. A file copy, loaded MCP tool list or approved trust entry alone is not an end-to-end check.

Final acceptance of the installed, automatically triggered observation chain remains pending; the code-level checks do not establish deployment. Claude Code startup briefings, template injection and its fleet/watcher execution are not installed by the Codex path.

Verify Installation

# Use the actual running API port; 8000 is the usual default.
curl http://localhost:8000/api/health
# Expected: {"status": "ok"}

In either host, run context_resolve for the current project, read a task memo, and check the same project in the Dashboard. For observation changes, compare a real native tool call and its completion with the persisted activity record, then verify a native member's name, parent team and state. Check the running API, Dashboard assets and installed hook files separately.

First Words to Your Session

After configuring the selected host, make the shared records part of the working protocol:

"Resolve this project in AI Team OS, read its task wall and relevant memos, and record progress and decisions there. Use your own native agent tools for authorized work."

Claude Code's installed /os-help command can introduce its workflow. In Codex, use native tool discovery or your separately configured OS help skill; a Claude slash command is not automatically a Codex command.

Tool Loading Configuration (optional)

The MCP server can expose the full tool inventory or a smaller set for each client. Two environment variables are read at server startup; configuration changes take effect on the next start, not in an already running server.

AITEAM_TOOLSETS - pick which capability-domain groups register:

  • unset or all - the full registered inventory (backward compatible)

  • default - core groups only (task,team,memory,infra,reports = 29 tools, hard-capped at <=50)

  • a comma list of group names, mixable with default for incremental loading, e.g. AITEAM_TOOLSETS=default,ecosystem

  • unknown names are warned on stderr and ignored (a config typo never blocks server start)

AITEAM_READONLY=1 - orthogonal overlay that strips every write tool (create/update/delete/apply/send/... plus os_restart_api) after registration, keeping only read tools. Handy for audit/observer sessions.

The 16 groups (default groups marked *):

Group

Tools

Group

Tools

Group

Tools

task *

8

project

6

links

3

team *

5

agent

7

channels

3

memory *

6

meeting

10

task_analysis

2

infra *

7

briefing

4

watchdog

1

reports *

3

analytics

2

workflows

3

ecosystem

42

# Example: lean core + ecosystem, read-only
AITEAM_TOOLSETS=default,ecosystem AITEAM_READONLY=1 python3 -m aiteam.mcp.server

Remove a Host Integration

# Claude Code plugin:
claude plugin uninstall ai-team-os

# Preview the Claude Code source uninstaller before deciding what to remove:
python scripts/uninstall.py --dry-run

For Codex, remove only its own MCP/hook registrations and independently copied adapter files. Before removing shared OS data or running a full source uninstall, inspect the plan, back up the records and confirm no other host still uses the backend. Removing one host's integration is not permission to delete the shared database.

Start the Dashboard (optional)

cd dashboard
npm install
npm run dev
# Visit http://localhost:5173

Dashboard Screenshots

These screenshots illustrate the interface and may predate the observation updates in this version. Current behavior is described in the captions and release notes; a screenshot is not a live-runtime verification.

Command Center

Command Center

Team Working — Live Activity Tracking

Team Working

Task Board

Task Board

Workflows — CC ultracode Run Observability

Persistent governance layer for CC ultracode Workflow runs — every run is auto-tracked as a team, surfacing stage progress plus per-agent token and tool-call telemetry. Workflows

Workflow Detail — Phase Swim Lane & Per-Agent Telemetry

Drill into a single run: a phase swim lane aligns every stage against one timeline, and a per-agent telemetry table breaks down tokens, tool calls, duration and state per stage — with a failed contract check surfaced in red. Workflow Detail

Project Detail — Decision Timeline

Decision Timeline

Project Detail — Leader Context & Worktrees

The Dashboard shows fresh working Leaders with explicit host labels and available context observations, alongside Git worktrees and uncommitted changes. Missing context is left unknown; historical Leaders do not fill the current roster. Project Detail

Agent Board — Live Agent Lanes

The Dashboard groups fresh working Leaders and members by team, preserves Codex's native member names and folds waiting or historical records separately. Roles, tasks and available context observations remain distinct. Agent Board

Meeting Room

Meeting Room

Ecosystem Research Platform

The ecosystem archive's initial listing — the full set of tracked open-source repositories with stars, primary language and topic tags, ready to open into per-repo research and integration. Ecosystem

Activity Analytics

Analytics

Event Log

Events

Claude Code Session Watcher - Historical Demonstration

Auto-Wake Demo


Waiting, Notifications and Continued Work

These are different operations, not one universal background scheduler:

  • Prompt-time notification: an installed unread hook can show a message when the host starts the next prompted turn.

  • Explicit waiting: either host can call channel_wait during an active turn. The call returns messages or a timeout and does not automatically acknowledge them.

  • Claude Code session watcher: the existing CC-specific watcher can drive a live Claude session when enabled with the appropriate reader identity and permissions.

  • Codex after a turn ends: this version does not provide mail-triggered automatic wakeup. Persistent inbox records remain available to a later turn.

Keep authorization and execution separate from notification. A pending task or new message does not grant permission to start unrelated work.


Ecosystem Integration Recipes

AI Team OS can coordinate records and handoffs around other MCP servers instead of reimplementing their capabilities. Recipes describe integrations that you configure and authorize in the host where the work runs:

Recipe

Integrates With

What You Get

GitHub

@modelcontextprotocol/github

Auto PR creation, issue tracking, code review coordination

Slack

@anthropics/slack-mcp

Team notifications, decision escalation, status broadcasts

Linear

linear-mcp-server

Task sync, sprint tracking, bug triage automation

Full-Stack Team

GitHub + Slack + Linear

Complete development workflow with cross-tool orchestration

Use find_skill(level=2, category="integration") to discover recipes, or see the full guide: docs/ecosystem-recipes.md


Shared OS, Native Hosts

  • Shared project services: the same MCP tools, API, database and Dashboard hold tasks, memory, reports, messages and observations.

  • Independent adapters: Claude Code and Codex keep their own scripts, registration, trust and native dispatch controls.

  • Evidence before inference: bind observed identities and tool calls using native metadata; preserve unknowns instead of guessing from names or timestamps.

  • Project-scoped views: task, event and Analytics queries use recorded project ownership; multiple teams can contribute without overwriting one another's totals.

  • Host-specific context delivery: Claude Code's bootstrap and template hooks are its own integration. Codex can retrieve shared context without inheriting Claude configuration.


FAQ

Do I need both Claude Code and Codex?

No. Either can use the shared OS services. Connecting both adds cross-host handoffs; it does not require merging their configuration or credentials.

Does the OS run Codex after I finish a turn?

No. channel_wait is an explicit pending call, and a prompt-time unread hint needs a new turn. This version does not add an idle-session Codex wake mechanism.

Why are a model, duration or usage value unknown?

The OS only displays evidence it can attribute. Missing native metadata stays unknown, tool duration needs trustworthy timing, and full Codex token/cost attribution is unfinished. Historical calls without reliable IDs are not marked complete by guesswork.

Why can new files exist while the Dashboard still shows old behavior?

The running API, built Dashboard, installed adapter files and host hook trust are separate layers. Update compatible pieces together and verify an actual event through the chain; reloading MCP alone does not replace them all.


MCP Tools

The tables below are a curated selection — the full inventory lives in src/aiteam/mcp/tools/ and is machine-counted by scripts/check_readme_numbers.sh.

Team Management

Tool

Description

team_status

Get team details and member status

team_list

List all teams

team_briefing

Get a full team panorama in one call (members + events + meetings + todos)

Agent Management

Tool

Description

agent_update_status

Update recorded Agent status

agent_list

List team members

agent_template_list

Get available Agent template list

agent_template_recommend

Recommend the best Agent template based on task description

Task Management

Tool

Description

task_run

Execute a task with full execution recording

task_status

Query task execution status

task_create

Create a new task (auto_start supported; task_type is accepted but retired — a no-op kept for backward compatibility)

task_update

Partial update of task fields with auto timestamps

task_memo_add

Add an execution memo to a task

task_memo_read

Read task history memos

task_list_project

List all tasks under a project

Meeting System

Tool

Description

meeting_create

Create a structured meeting (8 templates, keyword auto-select)

meeting_send_message

Send a meeting message

meeting_read_messages

Read meeting records

meeting_conclude

Summarize meeting conclusions

meeting_template_list

Get available meeting template list

meeting_list

List all meetings

meeting_update

Update meeting metadata

Channel Communication

Tool

Description

channel_send

Send a message to a channel (team:/project:/global) with @mention support

channel_read

Read messages from a channel

channel_wait

Replay a scoped inbox, then wait for a peer message over WebSocket; read-only, no automatic ACK

channel_mentions

Get unread @mentions for an agent

channel_wait keeps one MCP call pending: it subscribes before replaying the project/reader/sender-scoped inbox, then returns persisted message bodies on an event. It does not schedule model turns or start a daemon. A completed Desktop turn cannot be restarted by this tool. The default wait is 45 seconds (maximum 300). io_timeout_seconds independently budgets connection, subscription ACK, and each HTTP read (default 10 seconds, maximum 60). Set the client request timeout above timeout_seconds + 4 * io_timeout_seconds + 5. A client must send MCP cancellation or close the session to cancel the server-side wait; a local timeout or coroutine cancellation does not notify a server that the client has stopped waiting. Disconnects return an error with a validated resume_cursor, not an empty inbox. Use since for the initial history boundary, then resume with the last processed next_cursor. This scoped cursor follows SQLite insertion order, so late commits are not skipped because of an older creation timestamp. A deleted or reused cursor anchor returns an explicit error rather than silently skipping messages. Waiting never acknowledges messages automatically; the legacy badge timestamp ACK is separate from this delivery cursor. Retrying an unprocessed page can repeat messages; deduplicate by ID.

Successful calls include delivery_source: replay for the initial inbox read, event for a read triggered by a candidate WebSocket event, or timeout_read for the final read after the wait expires. The final read can still return messages; an empty final read returns status=timeout. This field identifies the executed branch, not whether every returned message had a corresponding push frame. Error responses do not claim a delivery source.

Debate System

Tool

Description

debate_start

Start a structured 4-round debate (Advocate→Critic→Response→Judge)

debate_code_review

Start a code review debate session

Intelligence & Analysis

Tool

Description

failure_analysis

Failure Alchemy — analyze root causes, generate antibody/vaccine/catalyst

decision_log

Log a decision to the cockpit timeline

context_resolve

Resolve current context and retrieve relevant background information

Memory System

Tool

Description

memory_search

Search team memory — recency-window recall within scope + pure-Python BM25 rerank (Chinese bigram, no embeddings)

memory_add

Write a direction-layer memory (preference/correction/design intent, 4 kinds; bucket quotas 1200/1500/300 chars, <=400 chars per entry, supersedes swap)

memory_invalidate

Explicitly invalidate a direction-layer memory (by id or unique substring; invalidate, never delete — auditable)

memory_list

List shared direction-layer entries, optionally filtered by kind

memory_reconcile_candidates

On-demand reconcile coarse pass (zero-LLM): BM25-paired candidate groups + direction-layer inventory + promotion material + operation guide

memory_reconcile_apply

Apply agent-confirmed reconcile operations (merge / invalidate / score / promote); idempotent, size guardrails enforced on promote

Knowledge Layer (v1.8.0)

Tool

Description

unified_search

Three-arm RRF search across memos / reports / tasks — BM25 full-text + knowledge-graph fanout + exact ID match

link_query

Query the cross-domain reference graph by node (what references this / what does this reference)

link_trace

Trace a reference chain from any OS ID (wf_id / commit / task uuid) with evidence snippets

Claude Code Model Governance (v1.8.1)

Tool

Description

model_config_get

Read observed Claude Code model names and its startup default

model_config_set

Set Claude Code's startup default with protected writes to its settings; does not control Codex

Trust & Reliability

Tool

Description

verify_completion

Verify task completion (status + memo check, anti-hallucination)

Analytics

Tool

Description

task_execution_trace

Get unified execution timeline for a task

diagnose_task_failure

Auto-diagnose why a task failed

Briefing System

Tool

Description

briefing_add

Add a decision item for user review

briefing_list

List pending briefing items

briefing_resolve

Resolve a briefing item with a decision

briefing_dismiss

Dismiss a briefing item

Reports (Database-backed)

Tool

Description

report_save

Save a report to database with project isolation (research/design/analysis/meeting-minutes)

report_list

List reports with filtering by project, type, author, topic

report_read

Read a report by ID

Ecosystem Research (42 tools)

The single largest tool family — the full research funnel from scan to integration:

Tool

Description

ecosystem_scan / ecosystem_scan_periodic

GitHub scan by project profile (stars / topics), one-off or periodic

ecosystem_search / ecosystem_search_by_capability

Search the archived research knowledge base

ecosystem_deep_review_request / ..._request_batch

Dispatch architecture deep-review agents, single or batched

ecosystem_tag_list / ..._apply_batch / ..._dispatch_llm

Tag rule engine + LLM-assisted tagging

ecosystem_summary_weekly / ..._top_n / ..._health

Weekly digests, top-N and knowledge-base health reports

ecosystem_diff_period / ecosystem_index_diff_latest

Period-over-period diffs + index reconciliation

ecosystem_mark_as_reference / ecosystem_start_integration

Stage-3 marking: keep as reference, or kick off an integration task

Full family of 42 tools: see src/aiteam/mcp/tools/ecosystem.py

Prompt Registry

Tool

Description

prompt_effectiveness

View template effectiveness metrics

Project Management

Tool

Description

project_create

Create a project

project_list

List all projects

project_update

Update project settings

project_delete

Delete a project

project_summary

Get a quick project status summary

System Operations

Tool

Description

os_health_check

Health check with on-demand reconciliation of the verified local API PID

os_restart_api

Restart safely; dry_run=true previews imports and source_root selects the checkout

event_list

View the system event stream

agent_activity_query

Query agent activity history and statistics

find_skill

3-layer progressive skill discovery (quick recommend / category browse / full detail)

team_close

Close a team and cascade-close its active meetings

team_delete

Delete a team

Development restarts can first use os_restart_api(source_root="/absolute/repo", dry_run=true) to verify imports without stopping the service. An actual restart preserves the database target when changing the working directory. Health checks reconcile only the managed port and a verified process identity; they do not adopt arbitrary listeners. This is on-demand repair, not a daemon. psutil is an explicit runtime dependency. If it is unavailable on POSIX, read-only process checks can still recognize an existing API and a confirmed-dead lock owner; uncertain identities do not authorize killing a process or launching a duplicate service. Health checks use the current port file or explicit API URL, including non-default ports.

Event delivery isolates slow WebSocket clients with bounded concurrent sends. Dashboard events coalesce query refreshes over 200 ms, preserving in-flight requests until a 30-second refresh deadline. Only the captured request is cancelled at that deadline; a newer request on the same query key is preserved. Later events can retry without a permanently stuck prefix. Ordinary API traffic uses at most four of the five SQLite admission slots, leaving one available for hook events; the total limit remains five.


Agent Template Library

25 professional role templates are shipped in plugin/agents/, with a shared catalog and recommendation tools. Claude Code can install them as native agent definitions, including global copies in ~/.claude/agents/. Codex can use the role guidance while keeping native dispatch, naming and permissions; CC template frontmatter is not a Codex installation format.

Engineering (13 templates)

Template

Role

Use Case

engineering-software-architect

Software Architect

System design, architecture review

engineering-backend-architect

Backend Architect

API design, service architecture

engineering-frontend-developer

Frontend Developer

UI implementation, interaction development

engineering-ai-engineer

AI Engineer

Model integration, LLM applications

engineering-mcp-builder

MCP Builder

MCP tool development

engineering-code-reviewer

Code Reviewer

Code quality review, PR review

engineering-database-optimizer

Database Optimizer

Query optimization, schema design

engineering-devops-automator

DevOps Automation Engineer

CI/CD, infrastructure

engineering-sre

Site Reliability Engineer

Observability, incident response

engineering-security-engineer

Security Engineer

Security review, vulnerability analysis

engineering-rapid-prototyper

Rapid Prototyper

MVP validation, fast iteration

engineering-mobile-developer

Mobile Developer

iOS/Android development

engineering-git-workflow-master

Git Workflow Master

Branch strategy, code collaboration

Testing (4 templates)

Template

Role

Use Case

testing-qa-engineer

QA Engineer

Test strategy, quality assurance

testing-api-tester

API Test Specialist

Interface testing, contract testing

testing-bug-fixer

Bug Fix Specialist

Defect analysis, root cause investigation

testing-performance-benchmarker

Performance Benchmarker

Performance analysis, load testing

Research & Support (3 templates)

Template

Role

Use Case

specialized-workflow-architect

Workflow Architect

Process design, automation orchestration

support-technical-writer

Technical Writer

API docs, user guides

support-meeting-facilitator

Meeting Facilitator

Structured discussion, decision facilitation

Management (2 templates)

Template

Role

Use Case

management-tech-lead

Tech Lead

Technical decisions, team coordination

management-project-manager

Project Manager

Schedule management, risk tracking

Debate Roles (2 templates)

Template

Role

Use Case

debate-advocate

Debate Advocate

Propose and defend solutions in structured debates

debate-critic

Debate Critic

Challenge proposals and find weaknesses

Utility (1 template)

Template

Role

Use Case

team-member

Generic Team Member

Default role for general-purpose tasks


Roadmap

Shipped and Historical Milestones

  • Core Task Wall + Watchdog + Review (the loop state machine was retired in v1.10.x; scoring and the wall live on in loop/task_wall_engine.py)

  • Failure Alchemy (Antibody + Vaccine + Catalyst)

  • Decision Cockpit (Event stream + Timeline + Intent inspection)

  • Event-driven Task Wall 2.0 (Real-time push + Intelligent matching)

  • Living Team Memory (Knowledge query + Experience sharing)

  • What-If Analyzer (Multi-option comparison)

  • 8 structured meeting templates with keyword auto-select

  • 25 professional Agent templates (23 base + 2 debate roles) with recommendation engine

  • 4-layer defense rule system (48+ rules) + behavioral enforcement

  • Dashboard Command Center (React 19) — 23 pages including the /workflows swimlane, Workflow detail, the Ecosystem suite, /usage token attribution, and Settings with model governance

  • 116 MCP tools across 16 modules

  • CC Workflow observability layer (auto-tracking + /workflows dashboard + workflow_list / workflow_get / workflow_reconcile)

  • Knowledge layer — zero-LLM reference graph + unified 3-arm RRF search (v1.8.0)

  • Claude Code model governance - transcript-based discovery and startup defaults (v1.8.1)

  • Machine-checked red-line invariants + one-command preflight (scripts/preflight.sh)

  • AWARE loop memory system

  • find_skill 3-layer progressive discovery

  • task_update API for programmatic task management

  • Workflow pipeline orchestration (7 templates + auto phase progression) — fully removed in v1.10.x, superseded by CC Workflow observability (pipeline_stage_history stays readable)

  • Automated unit and frontend regression suites maintained in CI

  • Prompt Registry (version tracking retired in v1.10.3 — nothing ever called /track, so every version column rendered "-"; effectiveness metrics live on, sourced from real agent activity)

  • BM25 as the main memory-retrieval chain (pure-Python Okapi BM25, Chinese bigram, recency-window recall + rerank)

  • Event log enhancement (entity_id / entity_type / state_snapshot fields)

  • CC Plugin Marketplace submission

  • File lock / workspace isolation (acquire/release/check/list + TTL=300s) — retired in v1.10.3; the lock file was empty in every real run, and hook-side edit-conflict warnings replaced it

  • Channel communication system (team:/project:/global + @mention)

  • Execution pattern memory (success/failure recording + BM25 retrieval) — retired in v1.10.3; the store never held a row, so the injected section was permanently blank

  • Guardrails L1 (7 dangerous patterns + PII warnings)

  • Alembic database migration system

  • Debate mode (4-round structured debate + code review)

  • Agent trust scoring system (auto-adjust on task success/failure) — scoring chain retired in v1.10.3 (no caller ever existed); the trust_score column stays and auto_assign still weights it

  • Tool tier draft (informational CORE/ADVANCED grouping — groundwork for context budgeting)

  • Agent Watchdog patrol (BUSY-timeout / stuck-task detection; the file-based heartbeat was retired in v1.10.x — CC subagents are one-shot and never polled)

  • SRE error budget model (GREEN/YELLOW/ORANGE/RED 4-level response) — retired in v1.10.3; its data directory sat empty for its entire lifetime

  • Completion verification protocol (anti-hallucination completion check)

  • Ecosystem integration recipes (GitHub/Slack/Linear/Full-stack presets, served by find_skill)

  • Session bootstrap rule compression (23 → 5 core rules, 60% context reduction)

  • Atomic API startup lock (multi-session port conflict prevention)

  • Auto port discovery (API finds available port, writes to api_port.txt)

  • MCP HTTP Streamable endpoint (/mcp/ on FastAPI)

  • PyPI release - stopped at 1.3.4 (2026-04) and deprecated; the wheel ships without plugin/ and config resources, so install via plugin or source instead

  • INSTALL.md CC-assisted installation guide

In Progress / Planned

  • Final installed-hook acceptance of the Codex/Dashboard observation chain

  • Full Codex token and cost attribution

  • Multi-tenant isolation

  • Production validation and performance optimization

  • Claude Code Plugin Marketplace listing

  • Full integration test suite

  • Documentation site (Docusaurus)

  • Video tutorial series


Project Structure

ai-team-os/
├── src/aiteam/
│   ├── api/           — FastAPI REST endpoints (211 routes)
│   ├── mcp/
│   │   ├── server.py  — MCP server entry point
│   │   └── tools/     — 16 tool modules (116 MCP tools)
│   │       ├── agent.py, analytics.py, briefing.py, channels.py,
│   │       ├── ecosystem.py, infra.py, links.py, meeting.py,
│   │       ├── memory.py, project.py, reports.py, task.py,
│   │       ├── task_analysis.py, team.py, watchdog.py, workflows.py
│   │       └── __init__.py  — Toolset registration entry
│   ├── loop/          — Task wall engine + watchdog + failure alchemy
│   ├── meeting/       — Meeting system
│   ├── memory/        — Team memory
│   ├── orchestrator/  — Team orchestrator
│   ├── storage/       — Storage layer (SQLite, WAL journaling)
│   ├── templates/     — Agent template base classes
│   ├── hooks/         — CC Hook scripts (15 lifecycle events)
│   └── types.py       — Shared type definitions
├── plugin/
│   ├── agents/        - 25 Claude Code Agent templates (.md)
│   ├── harness/codex/ - Independent Codex adapter, hook manifest and helpers
│   └── .claude-plugin/ - Claude Code plugin manifest
├── dashboard/         — React 19 frontend (23 pages)
├── scripts/           — preflight + machine-checked invariants (incl. README number check)
├── docs/              — Design documents + ecosystem recipes
├── tests/             - Unit, integration and end-to-end checks
├── install.py         - Claude Code source installer
└── pyproject.toml

Contributing

Contributions are welcome! We especially appreciate:

  • New Agent templates: If you have prompt designs for specialized roles, PRs are welcome

  • Meeting template extensions: New structured discussion patterns

  • Bug fixes: Open an Issue or submit a PR directly

  • Documentation improvements: Found a discrepancy between docs and code? Please correct it

# Set up source dependencies without changing either host's configuration
git clone https://github.com/CronusL-1141/AI-company.git
cd AI-company
python3 -m pip install -e ".[dev]"
npm --prefix dashboard ci

# Local preflight: lint, frontend regression tests, unit tests and invariants
bash scripts/preflight.sh

# CI also checks TypeScript; preflight does not run this command
(cd dashboard && npx --no-install tsc -b --noEmit)

Before submitting a PR, run the full preflight and the separate TypeScript check above. Preflight runs ruff, ESLint, frontend regression tests, the unit test suite and the invariants in scripts/check_invariants.sh; missing lint/frontend dependencies can cause skips, so a successful exit alone does not prove every check ran. Review the output, and do not use --fast for release acceptance.

Release preparation also needs targeted integration/end-to-end checks, Dashboard builds and a complete comparison of dashboard/dist with plugin/dashboard-dist. I3 compares JavaScript filenames only, not every asset's bytes. Keep both READMEs and both CHANGELOGs in sync, inspect distribution and privacy boundaries, and verify the installed hooks and running API/UI separately. Static manifest/trust checks do not prove the host loaded or executed a hook.


License

MIT License — see LICENSE


AI Team OS - Shared context and accountable work for native coding agents.

Built with Claude Code and Codex · Connected through MCP

Docs · Issues · Discussions

Available Tools

116 tools
agent_activity_queryA

Query Agent activity records for a team.

Returns recent activity log entries sorted by timestamp descending, including tool name, duration_ms, and an I/O summary.

Default response is a COMPACT projection (view="compact" + hint - trimmed, NOT missing fields): input/output summaries are excerpted because the raw output_summary often holds a whole command transcript (a 60-row window measured 43.9k chars, right at the MCP result ceiling). Full records via fields="all". The compact window is capped at 50 rows - narrow with agent_id rather than widening limit.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of records to return, default 20 (compact view caps it at 50)
fieldsNo"compact" (default, excerpted I/O) / "all" (full records)compact
team_idNoTeam ID or name (optional, auto-uses active team if empty)
agent_idNoFilter by a specific Agent ID (optional, returns all agents if empty)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full burden. It discloses key behaviors: default COMPACT projection is trimmed (NOT missing fields), the I/O summary is excerpted due to result ceiling, windows capped at 50 rows, and sorted by timestamp descending. It adds material behavioral context beyond what the schema conveys.

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

Conciseness5/5

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

The description is tightly crafted, front-loaded with purpose in the first line, then organized into a compact logical flow: what's returned, default projection behavior, why (with measured evidence), and how to adjust. Every sentence earns its place; no filler or redundancy.

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

Completeness5/5

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

Given an output schema exists (so return values are documented there), 4 params all with 100% schema coverage, and the description thoroughly explains the projection behavior, row caps, sorting, and the tuning strategy, the description is fully complete for an agent to select and invoke this tool appropriately.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. The description adds value by clarifying the relationship between fields='compact'/'all' and the excerpt semantics, explaining that the compact window caps at 50 rows while the limit parameter defaults to 20, and noting agent_id narrows rather than widens. The interplay between limit and window cap is genuinely useful beyond schema alone.

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

Purpose5/5

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

The description clearly states it 'Query Agent activity records for a team', specifying the verb (Query), resource (Agent activity records), and scope (for a team). It distinctively reports tool name, duration_ms, and I/O summary, differentiating it from siblings like task_run, agent_list, or meeting tools. Well-defined purpose.

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

Usage Guidelines5/5

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

The description explicitly documents the default compact projection, explains the reason (43.9k char transcript ceiling), and provides concrete guidance: narrow with agent_id rather than widening limit for narrower windows, and use fields='all' for full records. It tells the agent exactly when and how to adjust parameters for different needs.

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

agent_listA

List a team's members - live roster first, offline history on request.

Default response is a COMPACT projection (view="compact" + hint - it is a trimmed view, NOT missing fields). Each member row keeps id / name / role / status / an 80-char current_task excerpt / last_active_at; system_prompt, config, the context watermark and the token ledger are omitted and come back with fields="all".

Offline members are folded into a count plus a short most-recent digest. An offline agent is a terminated process - it cannot be messaged and cannot be assigned work - and on the real 51-member session team those rows were 96.4% of the payload, which is what made this tool exceed the MCP result ceiling and fail outright. Nothing is deleted: the count is always reported and include_offline=True returns the full history.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax member rows to return after the offline split (default 50, capped at 200)
fieldsNo"compact" (default, trimmed rows) / "all" (full agent rows)compact
offsetNoPagination offset into the member rows (default 0)
team_idYesTeam ID or name
include_offlineNoInclude offline members as full rows instead of a count plus digest (default False)
offline_previewNoHow many most-recent offline members to show in the digest (default 5; ignored when include_offline is True)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior5/5

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

With no annotations provided, the description carries the full burden and does an exceptional job. It discloses the compact projection is a trimmed view not missing data, explains that offline agents are terminated processes that cannot be messaged or assigned work, reveals the payload-size failure history and the 96.4% offline-row statistic, and explicitly assures nothing is deleted. This is richly transparent about edge cases and consequences.

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

Conciseness4/5

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

The description is efficiently structured with a leading one-line purpose, then a compact-projection explanation, then offline-handling context. While dense and front-loaded, some sentences are long and packed with multiple clauses; the failure-history narrative, while valuable for transparency, adds verbosity. Still, every sentence earns its place.

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

Completeness5/5

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

This is a complex tool with 6 parameters, an output schema, no annotations, and an unusual default behavior (count+digest for offline). The description thoroughly explains the compact vs all distinction, the offline folding logic, the termination implications, the payload-size failure rationale, and the include_offline escape hatch. For a tool of this complexity, the description is remarkably complete.

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

Parameters3/5

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

Schema coverage is 100%, so the schema fully documents all 6 parameters. The description adds context beyond the schema by explaining the relationship between include_offline and offline_preview (digest vs full rows) and clarifying what the compact projection omits. However, it doesn't add per-parameter syntax or format details beyond what the schema already provides, so the baseline 3 is appropriate.

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

Purpose4/5

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

Clear verb+resource: 'List a team's members'. The description distinguishes compact vs full projections and explains offline member handling, which differentiates it from sibling tools like team_list, team_status, and team_briefing that operate at the team level rather than member level. However, it doesn't explicitly name the sibling it competes with, so it loses the top score.

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

Usage Guidelines4/5

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

The description explains when to request offline history ('on request'), when to use fields='all' versus compact, and how include_offline interacts with the default count+digest behavior. It provides clear conditional context though it doesn't explicitly state when NOT to use this tool or name alternatives.

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

agent_reuse_recommendA

Recommend whether to reuse an existing sub-agent for a follow-up task.

For follow-up work (bug re-fix, deeper research, same-domain iteration), resuming a prior sub-agent preserves its accumulated context. This tool ranks prior sub-agents by same-domain match, reads their P1 context watermark, infers reachability, and recommends one of three actions: reuse (SendMessage resumes it) / slim_then_reuse (self-summarize then spawn fresh with the summary) / spawn_new. It only recommends; the Leader decides.

Availability tiers: live (same session, reachable now) / resumable (same session, offline but transcript fresh) / cross-session (another session, needs claude --resume) / expired (past retention). Address candidates by NAME — SendMessage(to=...) takes a teammate name and keeps working after the agent completes; each candidate's resume_hint is a ready-to-run call (with the required summary). The raw agentId is the documented fallback for nameless rows or when a newer agent took the name.

Default response is a COMPACT projection (view="compact" + hint — trimmed, NOT missing fields): decision signals and call keys kept, full rationale and watermark detail via fields="all".

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax candidates to return (default 10)
queryNoThe follow-up task description / target domain
fieldsNo"compact" (default, trimmed projection) / "all" (full rows)compact
keywordsNoExtra space-separated keywords to widen domain matching
project_idNoScope to a project (optional; defaults to the active project, empty searches all teams)
session_idNoThe caller's CC session id (optional; enables precise cross-session detection, otherwise availability is inferred from status)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior4/5

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

With no annotations provided, the description carries the full behavioral burden and largely meets it. It discloses that this is a read/recommend operation (no mutation), that the default output is a COMPACT trimmed projection (not missing fields), and that the resume_hint is a ready-to-run call requiring summary. The 'does not mutate — Leader decides' framing is explicit. Minor gap: it doesn't explicitly state what happens on empty/no-match results or whether candidate data is sourced from storage vs live state.

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

Conciseness5/5

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

The description is a single dense paragraph followed by a focused second paragraph on availability tiers and addressing, and a closing on the default compact response. Every sentence earns its place — purpose, decision actions, availability framework, addressing semantics, fallback, and output projection. No filler, no repetition of schema content that isn't enriched.

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

Completeness5/5

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

For a tool with 6 params, an output schema, and no annotations, this description is thorough. It explains the decision model (three actions), availability tiers, addressing semantics, name-vs-id fallback, and output projection behavior. The output schema exists so return-value details needn't be in the description. It covers the behavioral and operational context an agent needs to correctly invoke and interpret results.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. The description adds meaningful value beyond the schema by explaining the 'Address candidates by NAME' vs agentId fallback semantics, what resume_hint contains (ready-to-run call), and the compact vs all projection meaning (trimmed, NOT missing fields). The 'fields' behavior is enriched beyond its schema line, and the project_id/session_id scoping is clarified (cross-session inference). This lifts it above the baseline.

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

Purpose5/5

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

The description clearly states the tool's purpose: recommend whether to reuse an existing sub-agent for follow-up work, ranking candidates by domain match and returning one of three actions. It is specific about the verb+resource (recommend reuse) and the decision framework (reuse/slim_then_reuse/spawn_new). Among siblings like agent_list, agent_template_recommend, and fleet_dispatch, this stands out as the reuse-decision tool, not just an enumeration or dispatch mechanism.

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

Usage Guidelines5/5

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

The description explicitly states when to use it ('follow-up work: bug re-fix, deeper research, same-domain iteration') for resuming a prior sub-agent to preserve accumulated context. It clarifies the tool only recommends and the Leader decides. The availability tiers and the addressing guidance (by NAME vs agentId fallback) provide strong operational context. While it doesn't name specific sibling alternatives, the situational trigger is precise enough.

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

agent_template_listA

List every Agent template CC can actually resolve.

Scans all three template sources with CC's own precedence — project-level <project>/.claude/agents/ > user-level ~/.claude/agents/ > the shipped plugin/agents/ — and de-duplicates by frontmatter name (the identity CC resolves), so the count matches what subagent_type will really accept. Each entry carries a source field.

Default response is a COMPACT projection (view="compact" + hint - trimmed, NOT missing fields): the full listing measured 32,480 chars, half of it because grouped repeats every row of templates verbatim. Compact keeps one projected row per template and reduces grouped to a name index.

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsNo"compact" (default, trimmed rows) / "all" (full listing)compact

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It does well here: it explains de-duplication by frontmatter name, the source field, and most importantly documents the default COMPACT projection including the concrete size figures (32,480 chars) and the grouped repetition problem. This gives real behavioral richness beyond what any structured field could provide.

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

Conciseness5/5

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

The description is front-loaded with the core purpose in the first line, then layers specifics in order of importance: sources+precedence, de-duplication identity, source field, and finally the compact projection rationale. Every sentence earns its place, and the concrete char count justifies why the default was chosen. No fluff or repetition.

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

Completeness5/5

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

For a listing tool with a single param and an output schema present, this description is unusually complete. It covers resolution semantics, ordering precedence, de-duplication behavior, the default projection tradeoff, and corrects a likely misreading of 'compact'. The output schema handles return structure, and the description handles all behavioral nuance.

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

Parameters4/5

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

Schema coverage is 100% and the fields parameter is self-describing with its compact/all split documented. However, the description adds significant value by explaining the DEFAULT behavior ('compact - trimmed, NOT missing fields'), correcting a likely misinterpretation that compact omits fields. This disambiguation is genuinely useful beyond the bare schema.

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

Purpose5/5

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

The description starts with a specific verb+resource statement ('List every Agent template CC can actually resolve') and goes further to explain the exact scope: which three sources are scanned, the precedence order, and de-duplication logic. This clearly distinguishes it from sibling tools like meeting_template_list and agent_list by focusing on resolution behavior and the subagent_type acceptance match.

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

Usage Guidelines4/5

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

The description explains what the tool resolves (templates that subagent_type will accept) and the precedence semantics, giving strong contextual guidance on how results should be interpreted. However, it doesn't explicitly state when NOT to use it or name alternatives like agent_template_recommend, leaving the usage boundaries slightly implicit.

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

agent_template_recommendA

Recommend Agent templates — and, for a known project type, a team shape.

Two layers in one answer:

  1. recommendations — live template match against the installed template dirs (project > user > plugin), ranked by relevance.

  2. team_composition — when task_type names a project type (web-app / api-service / data-pipeline / library / refactor / bugfix), a suggested role lineup with counts and the template to use for each. This is a static seed, not a live probe; it only suggests a shape.

ParametersJSON Schema
NameRequiredDescriptionDefault
keywordsNoKeywords, space-separated, e.g., "python api database"
task_typeNoTask type or project type, e.g., "backend", "frontend", "web-app", "api-service", "data-pipeline", "library", "refactor", "bugfix"

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations provided, the description carries the full behavioral burden. It discloses that recommendations are 'live template match against the installed template dirs' ranked by relevance, and explicitly states the team_composition layer is 'static seed, not a live probe' — this distinction between live and static behavior is genuinely valuable and goes beyond what structured data reveals.

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

Conciseness4/5

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

The description is well-structured with two labeled layers, making the dual-purpose output easy to parse. The sentence explaining the static nature of team_composition is valuable but slightly verbose. Overall concise and front-loaded with the core purpose, though the layer breakdown could be tightened.

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

Completeness4/5

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

The tool has an output schema, so return values need not be described. With 2 optional params at 100% schema coverage, the description effectively complements the schema by clarifying the output structure (two layers) and the behavioral distinction between them. Coverage is good for a moderately complex dual-output tool.

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

Parameters3/5

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

Schema description coverage is 100%, so both parameters (keywords, task_type) already have clear descriptions with examples in the schema. The main description adds the project-type list for task_type (web-app/api-service/data-pipeline/library/refactor/bugfix), which enriches the semantic understanding. However, it doesn't describe how keywords interact with task_type or whether both can be provided together.

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

Purpose5/5

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

The description clearly states a specific verb ('Recommend') plus resource ('Agent templates') and adds a distinct secondary purpose (team shape for known project types). It effectively differentiates from siblings like agent_template_list (listing templates) and agent_reuse_recommend (reuse recommendations), establishing its unique job of recommending templates and team composition.

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

Usage Guidelines4/5

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

The description explains when the team_composition layer applies ('when task_type names a project type') and explicitly names which project types qualify. It also clarifies that team_composition is 'a static seed, not a live probe', which tells the agent about limitations. It doesn't explicitly name alternatives or exclusions, but the two-layer breakdown gives clear context for when to use versus other recommender tools.

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

agent_update_statusB

Update an Agent's running status.

ParametersJSON Schema
NameRequiredDescriptionDefault
statusYesNew status, one of "busy", "waiting", "offline"
agent_idYesAgent ID

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are present, so the description must cover behavioral traits. It only says 'Update' (implying mutation) but lacks details on permissions, side effects, idempotency, or what happens during the update.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no extraneous words. It is as concise as possible while conveying the core purpose.

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

Completeness3/5

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

While the tool is simple and has an output schema, the description lacks usage guidelines and behavioral context. It is minimally adequate but leaves gaps for an AI agent to infer best practices.

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

Parameters3/5

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

Schema coverage is 100% with descriptions for both parameters. The tool description adds no additional meaning beyond the schema, so a baseline of 3 is appropriate.

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

Purpose5/5

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

The description clearly states 'Update an Agent's running status,' which is a specific verb (update) and resource (agent status). It distinguishes from sibling tools like agent_register or agent_heartbeat by focusing on status changes.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives, nor any prerequisites or context. It is a bare statement of function.

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

briefing_addA

Add a decision item to Leader Briefing for user review.

Use when Leader encounters decisions that require user input: project direction, architecture choices, budget/resource allocation.

Anything a sub-agent's completion report leaves "for the user to decide" belongs here — a decision parked in report prose is a decision the user never actually received.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagsNoFree-form topic tags for filtering the queue (e.g. ["release"])
titleYesBrief description of the decision needed
optionsNoAvailable choices (e.g. "A: option1 / B: option2")
urgencyNohigh / medium / lowmedium
descriptionNoDetailed context
recommendationNoLeader's suggested choice and reasoning

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

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

Annotations are absent, so the description carries full behavioral burden. It communicates what this tool does (adds to a review queue for the user) and its underlying purpose/motivation. While it doesn't explicitly state side effects like whether items are persisted long-term or how they get resolved, the 'for user review' framing and the note about decisions 'never actually received' provide meaningful behavioral context about the tool's role in the decision workflow.

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

Conciseness5/5

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

The description is compact — roughly 4 sentences that each earn their place. Front-loaded with the core action ('Add a decision item'), followed by concrete use cases, then a compelling operational rationale. No wasted prose or repetition of schema content.

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

Completeness4/5

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

For a 6-parameter tool with an output schema and 100% schema coverage, the description is nearly complete. It explains the purpose, triggers, examples, and the failure mode it prevents. Minor gap: doesn't clarify the relationship between this tool and briefing_list/resolve/dismiss lifecycle, but the sibling differentiation is adequately handled through purpose and usage guidance. The description is complete 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.

Parameters3/5

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

Schema coverage is 100% with all 6 parameters fully documented in the input schema itself: title, description, options, recommendation, urgency, tags. The description doesn't add parameter-specific detail beyond the schema, which is acceptable given full coverage. The baseline of 3 applies since the schema does the heavy lifting; no additional parameter nuance is provided in the description but none is strictly needed.

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

Purpose5/5

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

Description clearly states the verb+resource: 'Add a decision item to Leader Briefing for user review.' It goes beyond and specifies the exact use case (project direction, architecture, budget, allocation) and even explains why this matters — 'a decision parked in report prose is a decision the user never actually received.' This strongly distinguishes it from siblings like briefing_list, briefing_resolve, briefing_dismiss.

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

Usage Guidelines5/5

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

Provides explicit when-to-use guidance ('Use when Leader encounters decisions that require user input') with concrete examples (project direction, architecture choices, budget/resource allocation). It also gives clear exclusionary framing — anything a sub-agent leaves 'for the user to decide' belongs here — and contrasts with what should NOT happen (decisions parked in report prose). This is highly actionable for an agent deciding between this and related briefing/dismiss/resolve tools.

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

briefing_dismissB

Dismiss a Leader Briefing item (no action needed).

ParametersJSON Schema
NameRequiredDescriptionDefault
briefing_idYesBriefing item ID

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description must convey all behavioral traits. It mentions that no action is needed after dismissal, but lacks detail on side effects, required permissions, or reversibility. This is adequate but minimal.

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

Conciseness5/5

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

The description is a single sentence that immediately conveys the tool's purpose. Every word is necessary, and there is no wasted text.

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

Completeness2/5

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

Given the simplicity of the tool (one parameter, output schema exists), the description is too terse. It does not explain what happens after dismissal (e.g., state change, visibility) or how it differs from related tools. The phrase '(no action needed)' causes ambiguity rather than clarity.

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

Parameters3/5

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

The input schema already describes the only parameter 'briefing_id' as 'Briefing item ID'. The description does not add additional meaning or context about how the parameter is used, so it does not go beyond the schema.

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

Purpose5/5

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

The description clearly states the action (dismiss) and the object (Leader Briefing item), distinguishing it from sibling tools like briefing_resolve and briefing_list. The verb 'Dismiss' is specific and unambiguous.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives such as briefing_resolve. The phrase '(no action needed)' hints at a scenario but does not clearly define when dismissal is appropriate.

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

briefing_listA

List Leader Briefing items. Default shows pending items for user review.

Each item carries project_id and tags, so a long decision queue can be narrowed to one project and/or one topic.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagNoRestrict to items carrying this exact tag
statusNoFilter by status: pending / resolved / dismissed / allpending
project_idNoRestrict to one project. Empty (default) lists every project's items — a decision inbox must not hide anything by default, and pre-2026-07-27 rows carry no project stamp at all. Pass "current" for the project this session is working in.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It explains some filtering semantics but does not disclose return volume limits, pagination, ordering, whether resolved/dismissed items are summarized or detailed, or whether this is a read-only operation. Given zero annotation coverage, this is a meaningful gap for a list-type tool.

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

Conciseness4/5

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

Two short paragraphs, front-loaded with purpose and default behavior, then rationale for filter design. Efficient and focused. Slightly verbose in the project_id explanation but that content earns its place given the unusual 'current' sentinel. No filler.

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

Completeness4/5

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

There is an output schema present, so return format is covered. The description covers default behavior, filtering semantics, and design rationale. Minor gaps: no mention of pagination or result ordering for a list tool, and no explicit 'read-only' statement. For a filtered list tool with output schema, this is reasonably complete.

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

Parameters4/5

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

Schema description coverage is 100%, so baseline is 3. The description adds value by explaining the default status (pending), the project_id empty-default semantics and the 'current' special value, and the tag narrowing use case. This meaningfully complements the schema's reusable intent behind default filtering behavior.

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

Purpose4/5

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

The description uses a specific verb+resource ('List Leader Briefing items') and clarifies the default behavior (shows pending items). It distinguishes itself from siblings like briefing_add/briefing_resolve/briefing_dismiss since this is the listing operation. It could mention the 'Leader' scope more explicitly but the core purpose is clear.

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

Usage Guidelines4/5

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

The description explains default behavior ('Default shows pending items') and gives concrete use guidance: narrowing a long decision queue by project_id and/or tag. It explains the project_id empty-default rationale (not hiding anything, pre-2026 rows unprotected). It doesn't explicitly name alternatives among siblings, but the filtering guidance is actionable and clear.

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

briefing_resolveB

Resolve a Leader Briefing item with user's decision.

ParametersJSON Schema
NameRequiredDescriptionDefault
resolutionYesUser's decision text
briefing_idYesBriefing item ID

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, and the description only states the action without disclosing behavioral traits like idempotency, authorization needs, side effects (e.g., whether the briefing is archived), or error conditions (e.g., invalid briefing_id). This is a significant gap for a mutation tool.

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

Conciseness4/5

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

Extremely concise single sentence that front-loads the action and object. However, it lacks any supporting detail; it is concise but arguably under-specified. Still, it earns a 4 for no wasted words.

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

Completeness2/5

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

With an output schema present, the description does not need to detail return values, but it still fails to explain side effects, prerequisites (e.g., user must have permission), or error handling. For a state-changing tool, this leaves significant gaps in understanding.

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

Parameters3/5

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

Schema description coverage is 100% with both parameters documented sufficiently. However, the description adds no additional meaning or constraints beyond what the schema already provides, e.g., format or expected values for 'resolution' or 'briefing_id'. Baseline 3 is appropriate.

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

Purpose5/5

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

Clearly states it resolves a Leader Briefing item using the user's decision. The verb 'resolve' and object 'Leader Briefing item' are specific, and it distinguishes from siblings like 'briefing_dismiss' (dismiss without decision) and 'briefing_add' (add a new item).

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives such as 'briefing_dismiss' or 'briefing_list'. It does not specify prerequisites, when a resolution is appropriate, or what scenarios call for this tool instead of others.

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

channel_mentionsC

Get channel messages that mention a specific agent.

裸名与 "@名" 两种书写都能查到(2026-09-08 前这里只匹配 "@"+名,而真实调用方 写的是裸名,导致对每一条消息都返回 0)。

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of messages to return (default 50).
agent_nameYes要查的收件人名,如 "leader-cc"。带不带 "@" 前缀都可以。 **必填**:早先这个参数可留空并声称"从上下文取当前 agent 名",实现却是 硬编码字面量 "agent",留空等于去查一个真的叫 agent 的收件人。

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full behavioral burden. It usefully discloses the matching behavior and a historical bug/fix ('2026-09-08 前这里只匹配 "@"+名'), which is unusual but real behavioral context. However, it says nothing about ordering, pagination, permissions, or what happens at the limit boundary, and the changelog detail is only marginally actionable for an agent selecting the tool.

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

Conciseness2/5

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

The first sentence is a clean, front-loaded purpose statement, but the remainder is a historical changelog embedded in two languages, including a parenthetical about a bug fixed before a specific date. For an agent invoking the tool, the historical rationale does not earn its place and dilutes the signal.

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

Completeness3/5

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

With an output schema present, return values need not be explained, and the parameter surface is small. But the description omits ordering, default sort, and how mentions are detected (substring vs token), so an agent cannot fully predict behavior. Adequate but incomplete.

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

Parameters3/5

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

Schema description coverage is 100%, so both agent_name and limit are already documented in the schema. The description adds the '@'-optional matching rule, which is already echoed in the schema, so it adds little beyond the structured field. Baseline 3 applies when the schema does the heavy lifting.

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

Purpose4/5

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

States a specific verb and resource: 'Get channel messages that mention a specific agent.' This clearly distinguishes it from channel_read (all messages) and channel_send. It doesn't explicitly name sibling tools, which is why it sits at 4 rather than 5.

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

Usage Guidelines2/5

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

The description explains the matching semantics (bare name vs '@name') but gives no when-to-use guidance, no mention of how it differs from channel_read or channel_unread, and no exclusions. An agent must infer that this is the mention-filtered variant of channel_read.

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

channel_readA

Read messages from a channel.

Supports incremental pull via 'since' parameter to fetch only new messages.

纯读,不清未读。读完要消掉徽章须显式调 channel_read_ack,并把本次实际 读到的最后一条的 created_at 传进去。

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of messages to return (default 50, max 200).
sinceNoISO 8601 timestamp — only return messages after this time. Example: "2026-04-04T10:00:00". Leave empty to get all recent messages.
channelYesTarget channel (e.g. "team:backend", "global").

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and discloses the single most surprising behavioral trait: reading does not clear unread, and clearing requires an explicit ack call. It omits other behavioral context such as auth/permission requirements or rate limits, but the critical non-obvious behavior 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.

Conciseness4/5

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

Front-loads the core purpose, then adds the incremental-pull capability, then the ack workflow — a sensible ordering with little wasted text. The switch to another language in the final sentences is a minor consistency cost but the content still earns its place.

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

Completeness4/5

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

An output schema exists so return-value description is unnecessary, and the description supplies the key behavioral caveat (does not clear unread) plus the ack follow-up, which is what an agent most needs to call this correctly. Completeness is strong, with only minor gaps around permissions/pagination left to structured fields.

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

Parameters3/5

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

Schema description coverage is 100%, so all three parameters are already documented, making 3 the baseline. The description adds a light conceptual framing for 'since' (incremental pull), but does not extend semantics for 'limit' or 'channel' beyond what the schema already states.

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

Purpose5/5

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

States a specific verb and resource ('Read messages from a channel') and immediately disambiguates from the closely-named sibling channel_read_ack by declaring it is a pure read that does not clear the unread badge. The agent can tell this apart from the ack and unread siblings without opening a schema.

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

Usage Guidelines4/5

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

Gives a concrete use condition for the 'since' parameter (incremental pull of only new messages) and states the required follow-up workflow (call channel_read_ack separately to clear the badge), which is genuine when/how guidance. It stops short of naming alternatives like channel_unread, channel_wait, or channel_mentions or stating when not to use this tool.

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

channel_read_ackA

把某频道的已读水位推进到你实际读到的那一条,清掉对应未读。

幂等且单调:传入时间早于或等于现有水位时不动,返回 advanced=false。

ParametersJSON Schema
NameRequiredDescriptionDefault
readerYes读者角色标识,如 "leader-cc",须与 channel_unread 用的一致。
channelYes频道名,与你刚才 channel_read 用的那个一致。
project_idNo归属项目;留空按当前工作目录自动归属。
last_read_atYesISO 8601 时间戳,取**本次实际读到的最后一条消息的 created_at**。 别传当前时间:分页只拿了前 N 条时按 now 推进会把没读到的那些一起标成 已读,之后再也不会提示,且没有任何机检抓得到。

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

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

With no annotations provided, the description carries the behavioral burden and it does disclose key traits: the operation is idempotent and monotonic, and passing a time earlier than or equal to the current watermark is a no-op returning advanced=false. This is exactly the kind of behavioral context an agent needs. It stops short of describing permissions/authorization or any side effects beyond the watermark update.

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

Conciseness5/5

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

Two tight sentences, purpose front-loaded in the first clause and the idempotency/monotonicity behavior stated second. Every sentence earns its place with zero padding.

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

Completeness4/5

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

An output schema exists, so return values (advanced=false) need not be explained at length, and the 100%-covered parameter schema is thorough. The description covers purpose and the core idempotency behavior. Only minor gaps remain around authorization/who may ack as an actor, but the essential information for a correct call is present.

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

Parameters3/5

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

Schema description coverage is 100% and the schema already documents all four parameters, including the critical warning against passing 'now' with pagination. The description only reinforces the meaning of last_read_at (传入时间) implicitly. Baseline 3 is appropriate when the schema does the heavy lifting.

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

Purpose5/5

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

The description states a specific verb and resource: advancing a channel's read watermark (已读水位) to the last message actually read and clearing the corresponding unread. This is clearly distinct from sibling read tools (channel_read, channel_unread, channel_mentions), which the parameter descriptions further tie it to. An agent can identify this as the ack/advance-watermark action without opening the schema.

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

Usage Guidelines3/5

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

Usage is implied — use this after you have actually read messages, to advance the watermark. It does not explicitly say when to prefer it over a hypothetical alternative, nor state prerequisites (e.g., that you must have read the messages first), though the last_read_at parameter notes reinforce correct usage. Implied context only.

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

channel_sendA

Send a message to a channel.

Supports cross-team broadcasting and @mention semantics.

Channel formats:

  • "team:" — send to a specific team channel

  • "project:" — send to a project-wide channel

  • "global" — broadcast to all teams

收件人写法:mentions 里裸名与 "@名" 都算数,未读判定两种都认。

ParametersJSON Schema
NameRequiredDescriptionDefault
senderNoSender identity, default "agent".agent
channelYesTarget channel (e.g. "team:backend", "project:abc123", "global").
messageYesMessage content.
mentionsNoList of mention tags, e.g. ["leader-cc"] or ["@leader-cc"].
project_idNo归属项目;留空按当前工作目录自动归属(与 task_memo / report 同一套模式)。归属为空的消息照发照存,但**不进任何项目的未读**—— 收件人不会被提示,只能主动读到。

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations, the description carries the burden and adds useful behavioral context: cross-team broadcasting and the rule that mentions accept both bare names and '@name' and that unread detection honors both. However, it omits auth/permission needs, persistence guarantees, and error behavior for a send operation.

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

Conciseness4/5

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

Front-loaded with the core action and then structured as a compact format list. The trailing sentence switches languages (English then Chinese) which is slightly jarring, but every line carries information.

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

Completeness4/5

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

Covers channel formats, mention semantics, and broadcast scope; an output schema exists so return values need not be explained. Gaps remain around permissions and delivery/persistence behavior for a send tool with no annotations, but the essentials are present.

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

Parameters4/5

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

Schema coverage is 100% (baseline 3), and the description still adds value by explaining what each channel prefix means and clarifying the mentions equivalence rule (bare name vs '@name'), beyond the single schema examples.

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

Purpose5/5

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

States a specific verb and resource ('Send a message to a channel') and then enumerates the three channel target formats with what each means (team-specific, project-wide, global broadcast). An agent can distinguish this from channel_read/channel_mentions without opening the schema.

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

Usage Guidelines3/5

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

Usage is implied by the purpose plus the channel-format list, but there is no explicit when-to-use/when-not guidance and no routing to alternatives such as meeting_send_message or channel_read for reading instead of sending. The agent must infer the context of use.

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

channel_unreadA

某读者在某项目下的逐频道未读计数(谁在叫你、有几条、最新一条讲什么)。

纯读:查询不会清掉未读,也不会在库里留下水位行。要清零调 channel_read_ack。

未读 = mentions 整值命中 reader,且消息归属该项目,且晚于该频道的已读水位。 没有水位时按"全部未读"算。

ParametersJSON Schema
NameRequiredDescriptionDefault
readerYes读者角色标识,如 "leader-cc" / "leader-codex"。**不要传 session_id**: 会话是一次性的,按会话记水位会让每开一个新会话就把历史消息重算成未读。
project_idNo归属项目;留空按当前工作目录自动归属。

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so: it declares read-only semantics, that no watermark row is written, that the query has no side effects, and it defines the unread predicate precisely (mention whole-value match + project membership + later than watermark; no watermark = all unread). No contradiction with any structured field.

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

Conciseness5/5

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

Front-loads the result shape, then the two facts an agent most needs (safe to call, clear via channel_read_ack), then the exact unread rule. No filler sentences.

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

Completeness5/5

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

An output schema exists so return values need not be re-explained, and the description covers the remaining unknowns for a 2-param read tool: side effects, clearing path, and the counting rule. Nothing needed to call it correctly is missing.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3; the description still adds semantic depth by defining what `reader` participates in (mention matching) and how the unread predicate depends on it, going beyond the schema's field-level notes.

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

Purpose5/5

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

States a specific verb+resource+scope: per-channel unread counts for one reader under one project, with a parenthetical listing the three facts returned (who, how many, latest content). This is clearly distinguishable from siblings like channel_read, channel_mentions and channel_read_ack.

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

Usage Guidelines4/5

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

Explicitly routes the agent to channel_read_ack for the adjacent action of clearing unread, and clarifies that reading here will not clear anything — a real decision boundary. It stops short of saying when to prefer this over channel_mentions or channel_read, so it is clear context without full exclusions.

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

channel_waitA

等待指定对端的新消息:先补读,随后以 WebSocket 等待,不轮询模型。

纯读、不自动 ACK。返回正文后,等待此工具的当前回合可继续;不能唤醒已经结束 的 Desktop 回合。超时不自动重开等待。取消或连接故障会结束本次订阅。 调用方应让 MCP 请求超时大于 timeout_seconds + 4 * io_timeout_seconds + 5 秒。 客户端若提前超时,须发送 MCP cancel 或关闭连接;仅本地超时服务端无法感知。

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo最多返回的消息数,范围 1-200,默认 50。
sinceNo首次调用的 ISO 8601 时间下界;与 cursor 至少传一个,续读使用 cursor。
cursorNo上次实际处理页的 next_cursor;按数据库插入序续读,不用时间戳替代。
readerYes收件角色标识,如 leader-codex,不是 session_id。
senderYes对端角色标识,如 leader-cc;不能与 reader 相同。
channelYes专线频道名,如 team:aiteam-os-bridge。
project_idNo项目 id;留空按既有 cwd 规则解析,解析不到则拒绝。
timeout_secondsNo等待新消息的秒数,范围 (0, 300],默认 45;不含连接与补读开销。
io_timeout_secondsNo连接、订阅确认和单次 HTTP 读取各自的秒数预算,范围 (0, 60],默认 10。

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so richly: pure read, no auto-ACK, timeout does not auto-restart the wait, cancel or connection failure ends the subscription, it cannot wake an already-ended Desktop turn, and it specifies a concrete timeout budget formula plus MCP cancel requirements.

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

Conciseness4/5

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

Core purpose and mechanism are front-loaded in the first sentence, and subsequent sentences each carry a distinct behavioral caveat (ACK policy, timeout semantics, cancellation, timeout sizing). It is dense but every sentence is load-bearing; minor repetition in the timeout guidance.

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

Completeness5/5

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

Given an output schema exists, return values need not be explained, and the description fully covers the lifecycle of the wait (catch-up, blocking, termination conditions) and the caller-side timeout obligations necessary to invoke it correctly.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds meaning beyond the schema by relating timeout_seconds and io_timeout_seconds to the required MCP request timeout (> timeout_seconds + 4 * io_timeout_seconds + 5s) and describing the cancel behavior when the client times out early.

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

Purpose5/5

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

The opening sentence gives a specific verb (等待/wait) and resource (指定对端的新消息) plus the mechanism: catch-up read first, then WebSocket wait without model polling. This clearly separates it from one-shot siblings like channel_read and polling-based approaches.

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

Usage Guidelines4/5

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

It tells the agent this is a blocking wait with no auto-ACK, implicitly steering away from channel_read_ack, and gives operational guidance about when the returned turn can continue and how to size the MCP request timeout. It stops short of explicitly naming channel_read/channel_unread as the non-blocking alternatives.

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

context_resolveA

Get the current active OS context — active project, active teams, member list.

This is the infrastructure for all simplified operations. A single call returns the complete context of the current working environment, allowing Leader or other tools to auto-fill parameters like project_id, team_id, etc.

teams lists EVERY active team of the current project (a project routinely has several at once: the session container team plus one per Workflow run). team keeps the singular shape for backwards compatibility and holds the primary team picked by the same 3-tier priority as team_id auto-resolution (session container > plain project team > newest).

Returns: Context dict containing project / team / teams / agents

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full burden. It transparently explains the multi-team behavior — that a project routinely has several teams simultaneously (session container team plus one per Workflow run) — and clarifies the 3-tier priority resolution for the singular 'team' field. This is meaningful behavioral context beyond a generic read.

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

Conciseness5/5

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

Well-structured and front-loaded. The first sentence states the core purpose, followed by the infrastructure rationale, then clarifies the important teams vs team distinction, and ends with a concise return summary. Every paragraph earns its place with no filler.

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

Completeness4/5

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

Given the tool has an output schema, the description doesn't need to enumerate return values in detail. It's a read-only context retrieval tool with no parameters, and the description adequately handles the one subtle behavioral nuance (multi-team vs singular team) that could confuse callers. The role as infrastructure is well explained.

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

Parameters4/5

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

The tool has 0 parameters with 100% schema coverage, so the baseline is 4 per the rubric. The description confirms it takes no parameters and describes the return structure (Context dict with project/team/teams/agents), adding value about what the caller should expect.

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

Purpose5/5

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

The description clearly states the tool gets the current active OS context including active project, teams, and member list. It distinguishes itself by establishing itself as 'the infrastructure for all simplified operations' and explains its role in auto-filling parameters for other tools, which differentiates it from siblings.

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

Usage Guidelines4/5

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

The description clearly explains when to use this tool — as a first call to establish context before using simplified operations. It explains that other tools (like Leader) use it to auto-fill parameters. However, it doesn't explicitly state when NOT to use it or name alternatives, though the value proposition is clear enough given its foundational role.

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

debate_code_reviewA

Start a debate-style code review for a specific file or change.

Creates a structured 4-round debate where:

  • Advocate defends the current implementation

  • Critic challenges the implementation and proposes improvements

  • Judge synthesizes findings into consensus conclusions and action items

ParametersJSON Schema
NameRequiredDescriptionDefault
judgeNoAgent rendering the verdict (default: team-lead)
criticNoAgent challenging the implementation (default: code-reviewer)code-reviewer
team_idNoTeam ID or name (optional, auto-uses active team if empty)
advocateNoAgent defending the implementation (default: backend-architect)backend-architect
file_pathYesPath to the file being reviewed (relative or absolute)
change_descriptionYesBrief description of what changed and why

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

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

No annotations provided, so description must carry full burden. Describes the debate structure but lacks details on side effects (e.g., creation of debate session, persistence), permissions, or output specifics. Output schema exists but is not elaborated in the description.

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

Conciseness5/5

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

Extremely concise, front-loaded with purpose, and uses bullet points for clarity. Every sentence adds value.

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

Completeness3/5

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

Explains the debate process but omits details like error handling, prerequisites, or result format. Given the presence of an output schema, the description is adequate but could be more thorough.

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

Parameters3/5

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

Schema coverage is 100% with adequate parameter descriptions. The description adds minimal extra context (e.g., default roles) but does not significantly enhance understanding beyond schema.

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

Purpose5/5

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

Clearly states it starts a debate-style code review for a specific file/change, detailing the 4-round structure with defined roles (advocate, critic, judge). Distinguishes from sibling 'debate_start' by specifying code review context.

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

Usage Guidelines4/5

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

Explicitly describes when to use (for code review) and the process. Does not mention when not to use or alternatives, but the context is sufficiently clear.

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

debate_startA

Start a structured 4-round debate meeting between an Advocate and a Critic.

Debate structure:

  • Round 1 (Advocate): Present proposal/position with evidence

  • Round 2 (Critic): Challenge risks, flaws, and propose alternatives

  • Round 3 (Advocate): Respond to challenges, revise proposal if needed

  • Round 4 (Judge): Render verdict with action items

ParametersJSON Schema
NameRequiredDescriptionDefault
judgeNoAgent name of the Judge (optional; defaults to team-lead if empty)
topicYesThe subject of the debate (proposal or decision to evaluate)
criticYesAgent name of the Critic (challenger)
team_idNoTeam ID or name (optional, auto-uses active team if empty)
advocateYesAgent name of the Advocate (proposer/defender)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

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

Describes the 4-round structure and roles of Advocate, Critic, and Judge in detail, providing behavioral context. However, no annotations exist, so the description carries the full burden; it does not disclose side effects, permissions, or error conditions.

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

Conciseness5/5

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

Highly concise, with a clear main sentence followed by structured bullet points for the rounds. Every line adds necessary information without redundancy.

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

Completeness5/5

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

For a complex tool with 5 parameters and an output schema, the description covers the process and roles adequately. No gaps remain given the schema and output schema coverage.

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

Parameters3/5

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

Schema coverage is 100%, so parameters are well-documented in the schema. The description adds no additional semantic information beyond the schema, meeting the baseline expectation.

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

Purpose5/5

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

Clearly states 'Start a structured 4-round debate meeting between an Advocate and a Critic,' specifying the action and resource. Differentiates from siblings like 'debate_code_review' by emphasizing structure and roles.

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

Usage Guidelines3/5

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

Implies use for structured debate but lacks explicit when-to-use or when-not-to-use guidance. No alternatives mentioned, leaving usage somewhat implicit.

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

decision_logB

Query team decision log — task assignments, approach selections, Agent scheduling decisions.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of results (default 20, max 200)
team_idNoTeam ID (empty string to query all teams)
event_typeNoEvent type or prefix, e.g., "decision", "decision.task_assigned", "knowledge", "intent". Default "decision" returns all decision events.decision

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior2/5

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

No annotations provided, and the description does not disclose behavioral traits such as side effects (none expected for a query), auth requirements, rate limits, or pagination behavior. The word 'Query' hints at read-only, but not explicitly confirmed.

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

Conciseness5/5

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

A single, clear sentence with no wasted words. It front-loads the purpose and provides concrete examples efficiently.

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

Completeness4/5

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

Given the presence of an output schema and full parameter descriptions, the description is nearly complete. It could mention ordering (e.g., chronological) but the schema covers limit and filtering. Adequate for a query tool.

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

Parameters4/5

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

Schema coverage is 100%, so parameters are well-documented. The description adds value by explaining what kinds of decisions are captured (task assignments, approach selections, scheduling), which enriches the meaning of the event_type parameter beyond the schema.

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

Purpose4/5

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

The description clearly states the tool queries the team decision log and provides examples of content (task assignments, approach selections, scheduling decisions). However, it does not explicitly differentiate from sibling tools or mention its scope relative to them.

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives, nor any exclusions or prerequisites. The description implies a query context but lacks explicit usage directions.

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

diagnose_task_failureA

Auto-diagnose why a task failed and suggest fixes.

Reads the task's execution trace (memos) to identify the failure point, compares with similar successful tasks in the same team, and returns actionable fix suggestions.

Use this when a task fails or gets stuck to quickly understand root cause without manually reading through all memo records.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYesID of the failed or stuck task

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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

No annotations exist, so description carries full burden. It discloses that it reads execution traces, compares with similar tasks, and returns suggestions. This gives good insight into internal behavior without contradicting any hidden side effects.

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

Conciseness5/5

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

Three concise sentences: first states purpose, second explains method, third tells when to use. No fluff, front-loaded, every sentence earns its place.

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

Completeness4/5

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

Given that an output schema exists (not shown), the description adequately covers input (task_id), process (trace reading + comparison), and output (fix suggestions). It is complete for a diagnostic tool, though could mention if any prerequisites exist.

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

Parameters3/5

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

The single parameter task_id has schema description 'ID of the failed or stuck task', which is echoed in the description ('failed or stuck task'). Schema coverage is 100%, so description adds minimal extra meaning beyond confirming the task status.

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

Purpose5/5

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

The description uses a specific verb 'auto-diagnose' and resource 'task failure', clearly distinguishing it from siblings like task_execution_trace which only reads traces. It states the tool identifies failure points and suggests fixes.

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

Usage Guidelines4/5

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

Explicitly says 'Use this when a task fails or gets stuck', providing clear guidance on when to invoke. Does not explicitly mention when not to use, but context implies it is for diagnosis rather than other task operations.

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

dismiss_project_registrationA

Mark current cwd as dismissed for project registration — won't ask again.

ParametersJSON Schema
NameRequiredDescriptionDefault
cwdNoDirectory path to dismiss (empty = use current cwd)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

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

No annotations provided, so description must cover behavior. It states the state change and that the prompt won't reappear, but doesn't mention reversibility or side effects. Adequate for a simple toggle.

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

Conciseness5/5

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

Single sentence with clear verb-object structure. No wasted words. Front-loaded with action.

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

Completeness4/5

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

Simple tool with one optional parameter and an output schema. Description sufficiently covers purpose and effect. Could mention if dismissal can be undone, but not critical.

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

Parameters3/5

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

Schema already fully describes the only parameter (cwd) with default and explanation. Description does not add further meaning beyond schema, hitting the baseline.

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

Purpose5/5

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

Description clearly states the action: marking current cwd as dismissed for project registration. It distinguishes itself from siblings by being project-registration-specific, unlike briefing_dismiss or ecosystem_clear_manual_status.

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

Usage Guidelines4/5

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

Tool is straightforward: call to dismiss registration prompt for cwd. The phrase 'won't ask again' makes its effect clear. No explicit when-not-to-use, but simplicity implies only use when dismissal is desired.

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

ecosystem_apply_architecture_mdA

Stage 1 writeback — submit architecture_md OR report failure.

Success path (default): pass non-empty architecture_md (800-1500 字 Chinese markdown). The OS persists it, advances stage_status -> architecture_done, and marks the deep_review row completed.

Failure path: leave architecture_md empty and pass error_message; the OS advances stage_status -> architecture_failed so manual retry surfaces in the UI.

ParametersJSON Schema
NameRequiredDescriptionDefault
agent_idNoOptional agent identifier recorded on the review row.
error_messageNoShort message stored on review.risks_md (failure path).
deep_review_idYesTarget deep_review row id.
architecture_mdNo800-1500 字 Chinese markdown (success path).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior5/5

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

No annotations exist, so the description carries full burden. It discloses behavioral traits beyond the schema: state transitions (stage_status changes), row completion, and UI retry for failure. This provides comprehensive behavioral context.

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

Conciseness4/5

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

The description is efficiently structured with two clear paragraphs covering success and failure paths. It is front-loaded with the primary purpose. Every sentence adds value, though it could be slightly more concise.

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

Completeness5/5

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

Given no annotations and a moderate number of parameters (4), the description fully covers the tool's behavior, state transitions, and parameter usage. The output schema exists but is not shown, so the description does not need to elaborate on return values. It is complete for agent understanding.

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

Parameters4/5

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

Schema description coverage is 100%, so baseline is 3. The description adds value by explaining the conditional relationship between architecture_md and error_message, and reiterates the length requirement (800-1500 characters). This enhances understanding beyond the schema alone.

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

Purpose5/5

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

The description clearly states the tool's purpose as 'Stage 1 writeback — submit architecture_md OR report failure.' It distinguishes the success and failure paths explicitly, which differentiates it from sibling ecosystem_apply_* tools.

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

Usage Guidelines4/5

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

The description provides explicit guidance on when to use the success path (pass non-empty architecture_md) versus the failure path (pass empty architecture_md and error_message). It does not compare to other tools or specify exclusions, but the usage context is clear.

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

ecosystem_apply_debate_resultA

Stage 2 writeback — submit debate conclusion to advance to debated.

At least one of risks_md / learnings_md / integration_md must be non-empty. integration_recommendation is a short enum: integrate / reference / learn / skip.

ParametersJSON Schema
NameRequiredDescriptionDefault
agent_idNoOptional agent identifier recorded on the review.
risks_mdNo风险点 markdown.
learnings_mdNo借鉴点 markdown.
deep_review_idYesTarget deep_review row id.
integration_mdNo集成建议 markdown.
integration_recommendationNointegrate/reference/learn/skip enum.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden for behavioral disclosure. It reveals constraints (non-empty fields, enum values) and the intended state transition ('advance to debated'). However, it does not describe side effects, authorization requirements, error conditions, or what happens on success/failure. This leaves significant gaps for a write operation.

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

Conciseness5/5

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

The description is extremely concise—just two sentences. The first sentence states the core purpose, and the second provides critical usage notes. Every phrase adds value; there is no fluff or redundancy. It is well-structured for quick comprehension.

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

Completeness5/5

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

Given the presence of an output schema and full parameter descriptions, the description provides all necessary context: the tool's role in a multi-stage process, required constraints, and enum options. It is sufficiently complete for an agent to understand how and when to invoke this tool.

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

Parameters4/5

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

Schema description coverage is 100%, providing baseline descriptions for all 6 parameters. The description adds value by clarifying operational constraints: at least one of risks_md, learnings_md, integration_md must be non-empty, and integration_recommendation is an enum with specific values. This supplements the schema beyond mere descriptions.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Stage 2 writeback — submit debate conclusion to advance to debated.' It uses a specific verb ('submit') and resource ('debate conclusion'), and implies a state transition. This distinguishes it from sibling tools like ecosystem_apply_architecture_md, which have different purposes.

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

Usage Guidelines4/5

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

The description explicitly provides a usage constraint: 'At least one of risks_md / learnings_md / integration_md must be non-empty.' It also notes the enum values for integration_recommendation. However, it does not give guidance on when to use this tool over alternatives like other ecosystem_apply_* tools, missing an opportunity for stronger differentiation.

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

ecosystem_apply_quality_reviewA

Submit quality review result and release the claim lock.

Writes quality_score / quality_notes / reviewed_by / reviewed_at, clears claimed_by so other workers can pick up the next row.

ParametersJSON Schema
NameRequiredDescriptionDefault
dr_idYesEcosystemDeepReview.id to update.
quality_notesNoReviewer notes / rationale.
quality_scoreYes0-100 quality score.
recommendationNointegrate / reference / learn / skip.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

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

The description discloses key behavioral effects: it writes specific fields (quality_score, quality_notes, reviewed_by, reviewed_at) and clears claimed_by to allow other workers to pick up the next row. With no annotations provided, this provides sufficient transparency for a simple update operation.

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

Conciseness5/5

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

The description is two sentences with no unnecessary words. The first sentence states the high-level purpose, and the second provides specific details about the fields and lock release. Every sentence adds value.

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

Completeness4/5

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

Given there is an output schema (context indicates present), the description does not need to explain return values. It covers the essential behavioral effects and side effects. It does not mention error conditions or idempotency, but for a straightforward update tool, it is largely complete.

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

Parameters3/5

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

Schema description coverage is 100%, so baseline is 3. The description mentions some fields (quality_score, quality_notes) that are parameters, but adds minimal additional meaning beyond the schema. It also mentions reviewed_by and reviewed_at, which are not input parameters, potentially causing confusion.

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

Purpose5/5

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

The description clearly states 'Submit quality review result and release the claim lock', which specifies the verb (submit/release) and the resource (quality review/claim lock). It distinguishes from siblings like ecosystem_claim_review (which claims) and ecosystem_release_claim (which only releases) by combining both actions.

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

Usage Guidelines3/5

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

While the description implies the tool is used after a review is completed and to release the lock, it does not explicitly state when to use it versus alternatives (e.g., using ecosystem_release_claim instead if no review submission is needed) or mention any prerequisites or conditions.

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

ecosystem_apply_shallow_summaryA

Stage 0 worker callback: write back a shallow summary OR report a failure.

Success path (default): pass shallow_summary (200-400 char Chinese markdown) and deep_review_id; the OS will persist the summary, advance stage_status -> shallow_done, and mark the deep_review row as completed.

Failure path: leave shallow_summary empty and pass error_kind, which routes the failure through the §3.1 classifier so the OS can decide whether to immediate-retry, mark deleted/private, or feed the self-learning loop. Valid error_kind values: http / agent_read / agent_timeout / json_parse / fetch_style.

ParametersJSON Schema
NameRequiredDescriptionDefault
repo_idYesEcosystemRepoProfile.id.
error_kindNofailure category hint (failure path only).
http_statusNoHTTP status code when error_kind='http'.
error_messageNoshort message stored in profile.last_fetch_error.
deep_review_idNoassociated deep_review row id (Stage 0 dispatch).
shallow_summaryNo200-400 字中文 markdown 总结 (success path).
rate_limit_remainingNowhen http_status=403, ``0`` indicates rate-limit.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It explains effects (persist summary, advance stage, route failures) and mentions rate_limit_remaining for 403. However, missing details on idempotency, auth requirements, or consequences of repeated calls—adequate but not thorough.

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

Conciseness4/5

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

Well-structured with clear sections for success and failure paths. Front-loaded with main purpose. Efficient, though could slightly condense the error_kind enumeration.

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

Completeness4/5

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

Covers the two main workflows and parameter roles. Output schema exists (not shown) so return values are covered. Lacks mention of prerequisites or whether the agent should call this directly vs. it being system-invoked—but sufficient for most use cases.

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

Parameters5/5

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

Schema coverage is 100%, but description adds significant value by grouping parameters into success/failure paths, explaining the role of deep_review_id, and listing valid error_kind values. This goes beyond schema descriptions.

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

Purpose5/5

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

Clear statement: 'Stage 0 worker callback: write back a shallow summary OR report a failure.' Distinguishes success and failure paths, and the name implies its role among ecosystem sibling tools.

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

Usage Guidelines4/5

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

Explicitly describes when to use success vs. failure path, lists valid error_kind values. Lacks explicit 'when not to use' or comparison with other ecosystem apply tools, but context from name and description suffices.

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

ecosystem_claim_reviewA

Claim the next shallow_done repo for quality review.

Finds stage_status='shallow_done' rows with no quality_score and no active claim. Returns the repo's shallow_summary so the reviewer can evaluate quality.

ParametersJSON Schema
NameRequiredDescriptionDefault
min_starsNoMinimum star count filter (0 = no filter).
worker_idYesUnique worker identifier string.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It indicates that the tool 'claims' a repo, implying a state change (marking it as claimed), and returns the shallow_summary. However, it does not explain side effects in detail (e.g., whether the claim is blocking, expiration, or required permissions). The return value is mentioned, but deeper behavioral traits are absent.

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

Conciseness5/5

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

The description is extremely concise: two sentences that front-load the action and follow with necessary context. Every sentence serves a purpose, no fluff. It is efficient for an AI agent to parse.

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

Completeness4/5

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

Given the presence of an output schema (not shown but indicated), the description need not detail return values beyond mentioning shallow_summary. It explains the filtering logic clearly. However, it could be improved by noting any prerequisites (e.g., worker registration) or what happens if no matching repo exists. Overall, it is fairly complete for a claim tool.

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

Parameters3/5

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

Schema description coverage is 100%, with both parameters (worker_id, min_stars) already described in the schema. The description does not add additional meaning beyond what the schema provides. According to guidelines, baseline is 3 for high coverage, and no extra parameter insight is given.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Claim the next shallow_done repo for quality review.' It specifies the action (claim), the resource (shallow_done repo), and the context (quality review). The additional details about filtering criteria differentiate it from sibling tools like ecosystem_claim_shallow, which likely handles shallow scanning claims.

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

Usage Guidelines4/5

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

The description explains when to use the tool: when a repo is in 'shallow_done' status with no quality_score and no active claim. It gives clear context but does not explicitly state when not to use it or mention alternative tools. However, the specificity is sufficient for an agent to understand the intended scenario.

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

ecosystem_claim_shallowA

Claim the next queued repo for shallow scanning (stage_status='queued').

Atomic: only one worker gets each row; others get {"claimed": false}. v1.7.0: also returns repo_full_name, topics, description, owner, stars, last_commit_at so workers can skip a separate ecosystem_repo_get call.

ParametersJSON Schema
NameRequiredDescriptionDefault
worker_idYesUnique worker identifier string.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries full burden. It discloses atomic behavior (only one worker claims) and return fields. It does not contradict any annotations (none exist). However, it omits details like authentication needs or potential side effects beyond claiming.

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

Conciseness5/5

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

The description is very concise, with three clear sentences. The first sentence states the core purpose, the second explains atomicity, and the third notes additional return fields. No redundant information, well-structured.

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

Completeness4/5

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

Given that an output schema exists, the description appropriately does not detail return values but mentions key fields. It covers the tool's behavior and usage context well. Some possible prerequisites (e.g., needing to be a registered worker) are not mentioned, but for a tool with one parameter, it is reasonably complete.

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

Parameters3/5

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

Schema description coverage is 100% for the single parameter 'worker_id', which is already described as 'Unique worker identifier string.' The tool description does not add any additional meaning or context 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.

Purpose5/5

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

The description explicitly states 'Claim the next queued repo for shallow scanning (stage_status=queued).' This clearly indicates the verb 'Claim' and the resource 'repo' with context, distinguishing it from siblings like ecosystem_claim_review which likely claims for review.

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

Usage Guidelines4/5

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

The description provides guidance by noting atomicity (only one worker gets each row) and that since v1.7.0 it returns extra fields to avoid a separate ecosystem_repo_get call. This implies when it's beneficial to use, but lacks explicit when-not-to-use or alternatives.

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

ecosystem_deep_review_cancelA

Cancel an in-flight (stage_status='queued') deep-review.

Advances the row's stage_status to shallow_failed (the legacy status column derives to failed) with a cancellation note. The sub-agent is expected to observe the row state and shut down on its own.

ParametersJSON Schema
NameRequiredDescriptionDefault
deep_review_idYesEcosystemDeepReview.id.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior5/5

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

No annotations provided, but the description fully discloses behavioral traits: it advances stage_status to shallow_failed, derives status to failed, adds a cancellation note, and explains sub-agent behavior. This covers all necessary transparency 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.

Conciseness5/5

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

Description is brief (4 lines), front-loaded with the primary action, and every sentence adds value (state condition, effects, sub-agent behavior). No unnecessary words.

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

Completeness4/5

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

Input schema is simple and fully covered. An output schema exists (per context) but is not shown; per rules, description need not explain return values. The description covers the cancellation flow adequately. Minor gap: could mention if any side effects, but sufficient for a cancel action.

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

Parameters3/5

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

Schema has one parameter (deep_review_id) with full description, so schema coverage is 100%. The description does not add semantic detail beyond 'EcosystemDeepReview.id', which is already in the schema. Baseline 3 is appropriate.

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

Purpose5/5

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

Description clearly states the tool cancels an in-flight deep-review (stage_status='queued'), using a specific verb and resource. It distinguishes from sibling tools like ecosystem_deep_review_request and ecosystem_deep_review_status.

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

Usage Guidelines4/5

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

Explicitly specifies the condition for use (stage_status='queued'), providing clear context. Does not explicitly state when not to use or name alternatives, but the condition is sufficiently clear.

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

ecosystem_deep_review_listA

List deep-reviews newest-first, optionally filtered by status.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax rows to return (1..100).
statusNoqueued / completed / failed ('running' only matches pre-v1.6.2 historical rows — status is now a derived read-only view of stage_status). Empty = all.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

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

With no annotations, description carries full burden. Adds ordering behavior and detailed status caveat (e.g., 'running' only matches pre-v1.6.2 rows). Read-only nature implied but not explicit.

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

Conciseness5/5

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

Single sentence is highly concise and front-loaded with key action, ordering, and filter option. No unnecessary words.

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

Completeness4/5

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

Sufficient for a simple list tool with output schema. Missing explicit read-only declaration and usage context against similar sibling tools, but otherwise complete.

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

Parameters3/5

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

Schema coverage is 100%, so baseline 3. Description adds no extra meaning beyond schema; the status filter is summarized but schema already provides detailed parameter descriptions.

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

Purpose5/5

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

Clearly states it lists deep-reviews with ordering (newest-first) and optional status filter. Distinguishes from siblings like ecosystem_deep_review_request and ecosystem_deep_review_status.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives (e.g., ecosystem_deep_review_status, ecosystem_search, summary tools). Only describes basic functionality without usage context.

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

ecosystem_deep_review_requestA

Queue a deep-review for a repo and return the dispatch prompt.

Creates an EcosystemDeepReview row queued on the funnel (stage_status='queued'; the legacy status column is a derived read-only view and returns 'queued' — no more 'running'), and embeds a sub-agent prompt (5-section template

  • repo metadata) in the row's dispatch_prompt field. A background watchdog advances stage_status to shallow_failed (status derives to failed) after timeout_minutes if no report has been linked. The Leader is responsible for actually spawning the sub-agent (via the CC Agent tool; the session's implicit team is used automatically).

ParametersJSON Schema
NameRequiredDescriptionDefault
repo_idYesEcosystemRepoProfile.id of the target repo.
agent_idNoOptional pre-assigned agent identifier.
priorityNomedium / high / critical (informational only).medium
timeout_minutesNoHard cap before auto-fail (5..180).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior5/5

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

With no annotations provided, the description carries full burden—and it delivers richly. It discloses the async nature (queued vs running), the derived status column behavior change, the watchdog auto-fail mechanism with timeout_minutes, and the external dependency on the Leader spawning a sub-agent via CC Agent tool. This is exceptional behavioral transparency for an async mutation tool.

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

Conciseness5/5

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

The description is dense but efficiently organized—one opening sentence stating the core action, followed by a detailed paragraph covering secondary behaviors. Every sentence earns its place: the queuing mechanism, status derivation, watchdog timeout, and Leader responsibility are all relevant for correct invocation. No waste or redundancy.

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

Completeness5/5

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

This is a complex async tool with side effects, a background process, and external dependencies. The description covers all these aspects: queueing semantics, status derivation, timeout auto-fail, and the Leader/spawn dependency. The interaction between stage_status and derived status is explicitly clarified. Output schema exists, so return values don't need explanation. Completeness is high for this complexity level.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all 4 parameters. The description adds context for repo_id (target of the review) and the timeout_minutes mechanism (auto-fail), but does not add new semantic meaning for agent_id or priority beyond what the schema already states ('Optional pre-assigned agent identifier', 'medium/high/critical'). Baseline 3 is appropriate when schema does the heavy lifting.

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

Purpose5/5

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

The description is highly specific: 'Queue a deep-review for a repo and return the dispatch prompt.' It names the exact resource (EcosystemDeepReview row queued on the funnel), the action (queue), and the return value (dispatch prompt). It clearly distinguishes from siblings like ecosystem_deep_review_status/list/cancel by being the only request/creation tool.

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

Usage Guidelines4/5

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

The description clearly explains the queueing workflow, the derived status fields, the background watchdog behavior, and the timeout handling. However, it does not explicitly state when NOT to use this tool or name an alternative (e.g., ecosystem_deep_review_request_batch for batch requests, or shallow review tools). The Leader-responsibility note gives useful context on the distributed workflow.

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

ecosystem_deep_review_request_batchA

Stage 1 — Queue architecture-analysis dispatches for tag-filtered candidates.

Pulls active+shallow_done profiles whose tag set covers tags (AND semantics), creates an EcosystemDeepReview row per candidate, and returns a list of DispatchIntent payloads for backend-architect sub-agents. Leader is responsible for actually spawning each agent via the Agent tool. Each agent eventually calls ecosystem_apply_architecture_md to write back.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagsNoRequired AND-filter tags (e.g. ['memory_system', 'python']). Empty list returns 400.
limitNoMax candidates to dispatch per call (default 20).
min_starsNoOverride min_stars threshold; 0 = use project settings.
research_goalNoFree-form research-goal text injected into each sub-agent prompt (e.g. "升级系统记忆功能").

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations provided, the description carries full responsibility and does disclose the mutable side effects: it creates an EcosystemDeepReview row per candidate. It also clarifies the division of responsibility ('Leader is responsible for actually spawning each agent via the Agent tool'), making the batch-nature and delegation behavior transparent beyond what schema reveals.

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

Conciseness5/5

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

The description is well structured with a clear Stage-1 label, distinct sentences covering pipeline inputs, side effects, and downstream handoff. Every sentence earns its place; there's no filler or redundancy. It is front-loaded with the primary purpose.

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

Completeness5/5

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

The tool is complex (orchestration, batch creation, sub-agent spawning) but the description covers the essential flow: candidate selection criteria, row creation, output payload type, leader responsibility, and downstream write-back tool. Combined with a 100% schema coverage and an existing output schema, this is complete for an orchestration tool of this complexity.

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

Parameters4/5

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

Schema coverage is 100% so the baseline is 3. The description adds value by clarifying the AND-tag semantics and noting empty list returns 400 (behavioral constraint not obvious from schema alone). The description reinforces that research_goal is injected into each sub-agent prompt, though the schema already says this. Slight redundancy, but the tag semantics clarification pushes it above baseline.

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

Purpose5/5

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

The description states a specific verb+resource: 'Queue architecture-analysis dispatches for tag-filtered candidates' and describes the pipeline with an explicit Stage label. It clearly identifies inputs (active+shallow_done profiles with AND tag semantics), the output (DispatchIntent payloads), and differentiates this from sibling ecosystem tools by naming the downstream write-back target (ecosystem_apply_architecture_md).

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

Usage Guidelines4/5

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

The description gives clear operational context: it pulls specific profile states (active+shallow_done), uses AND tag semantics, and names the downstream tool each agent calls. However, it does not explicitly state when NOT to use this versus alternatives like ecosystem_deep_review_request (singular), ecosystem_scan, or ecosystem_trigger_debate, leaving some comparison ambiguity.

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

ecosystem_deep_review_statusC

Look up the most recent deep-review for repo_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
repo_idYesEcosystemRepoProfile.id.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

No annotations exist, so the description must disclose behavior. It only states the basic lookup action, with no mention of side effects, permissions, or guarantee of read-only operation. For a lookup tool, the description is insufficiently transparent.

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

Conciseness4/5

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

The description is a single concise sentence that directly states the action. It is front-loaded and efficient, though it could be slightly expanded for clarity.

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

Completeness2/5

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

Given the existence of an output schema, return values need not be explained. However, the description lacks any context about prerequisites, error cases (e.g., no deep review found), or relation to other deep review tools. For a simple lookup, it is minimally complete.

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

Parameters3/5

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

With 100% schema coverage, the baseline is 3. The description mentions repo_id but adds no semantic value beyond the schema's description 'EcosystemRepoProfile.id.' It does not explain how to obtain or format the ID.

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

Purpose4/5

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

The description clearly states the tool looks up the most recent deep-review for a given repo, using a specific verb and resource. While it differentiates from siblings like ecosystem_deep_review_list (which lists all) by focusing on a single most recent result, it does not explicitly compare itself to siblings.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as ecosystem_deep_review_list or ecosystem_deep_review_request. The description lacks context for when this lookup is appropriate.

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

ecosystem_diff_periodA

Return a time-period diff computed dynamically from the event log (v1.6.0 event sourcing).

Groups events by type to produce summary counts: new repos discovered, topics changed, stars jumped, status changed. This replaces the legacy index_diff snapshot approach.

ParametersJSON Schema
NameRequiredDescriptionDefault
to_dateYesEnd date in YYYY-MM-DD format (inclusive).
from_dateYesStart date in YYYY-MM-DD format (inclusive).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description must disclose behaviors. It mentions that the diff is computed dynamically from the event log (v1.6.0 event sourcing), which implies a read-only operation and provides version context. However, it does not address potential side effects, performance implications, or data freshness guarantees, 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.

Conciseness5/5

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

The description is three concise sentences: first states the main action, second describes the output, and third provides context (replacing legacy). Every sentence adds value with no unnecessary words, and the structure 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.

Completeness4/5

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

The description explains the output (summary counts by event type) and differentiates from the legacy approach, which is sufficient given the existence of an output schema. However, it could mention edge cases (e.g., empty result) or performance notes, but overall it is complete enough for a diff tool.

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

Parameters3/5

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

Schema coverage is 100% with both parameters (from_date, to_date) described in the schema as YYYY-MM-DD inclusive. The description does not add additional semantics beyond what the schema provides, so it meets the baseline without improvement.

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

Purpose5/5

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

The description clearly states that the tool returns a time-period diff computed dynamically from the event log, grouping events by type (new repos, topics, stars, status). It uses a specific verb (return) and resource (diff), and distinguishes itself from the legacy index_diff snapshot approach.

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

Usage Guidelines4/5

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

The description provides clear context by stating it replaces the legacy index_diff snapshot approach, implying it is the preferred method for dynamic diffs. However, it does not explicitly state when to use this tool versus other ecosystem tools like ecosystem_summary_* or ecosystem_repo_events.

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

ecosystem_index_diff_latestA

Fetch the latest IndexDiff snapshot for the current project.

Maps to GET /api/ecosystem/index_diffs/latest. Returns the most recent diff row produced by a real ecosystem_index_update (dry_run=False) run. Dry-run previews are not persisted and therefore never appear here.

Returns: Diff available: {success: True, diff: {id, diff_type, new_count, reactivated_count, deactivated_count, stale_count, archived_count, markdown_summary, alerted, generated_at}}. No diffs yet (fresh project): {success: True, diff: None, message: 'No index diffs found yet.'}. Legacy/unbuilt API: {success: False, error: 'P0.4 will implement', detail} (returned when the endpoint answers 404). Other failure: {success: False, error, detail}. success semantics: True = call completed (diff may be None when the project has never run a non-dry index_update); False = API/endpoint error. The API field is diff — older internal references to index_diff are obsolete.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.8/5.0
Behavior5/5

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

Discloses API endpoint, return types including success/failure cases, and that dry-run results are excluded. Additionally warns about obsolete field names and legacy API behavior. No annotations exist, so description carries full burden and meets it.

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

Conciseness5/5

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

Well-structured with a brief summary, API mapping, and clear bullet points for each possible return scenario. Every sentence provides necessary information without redundancy.

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

Completeness5/5

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

Given zero parameters and a modest output schema, the description covers all needed details: endpoint, response shapes, error conditions, and the meaning of success. The presence of an output schema is complemented by the description's field explanations.

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

Parameters5/5

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

The input schema is empty and schema coverage is 100%, so there are no parameters to document. The description compensates by thoroughly explaining the output structure and various response shapes, adding value beyond the schema.

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

Purpose5/5

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

Clearly states it fetches the latest IndexDiff snapshot for the current project. Distinguishes from siblings like ecosystem_index_update and ecosystem_diff_period by specifying it returns the most recent diff from a real (non-dry-run) update.

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

Usage Guidelines4/5

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

Implies usage for retrieving the latest diff but does not explicitly mention when not to use or provide alternative tools. The mention that dry-run previews are not persisted gives some guidance, but no direct comparison with siblings.

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

ecosystem_index_updateA

Trigger ecosystem index update — runs scanner + computes diff.

Maps to POST /api/ecosystem/index_update. Scan config comes from the project's ecosystem settings (min_stars gate, focus_topics queries — empty falls back to the built-in Claude-ecosystem query set, alert_max_new_per_scan threshold), then runs the full pipeline: gh search → classify active status → diff against DB → alert threshold check → (if dry_run=False) persist index_diff + status_changes. When dry_run=True, no writes touch ecosystem_repo_profiles / ecosystem_index_diffs / ecosystem_status_changes (BUG #6/#8 fix verified in test_dry_run_does_not_write_profile_table).

ParametersJSON Schema
NameRequiredDescriptionDefault
dry_runNoWhen True (default), simulate the scan and return diff preview only. When False, persist profile upserts + index_diff + status_changes.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior5/5

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

With no annotations provided, the description carries the full burden of disclosure, and it delivers richly. It details the full pipeline, the config sources (min_stars gate, focus_topics, alert_max_new_per_scan), and explicitly states which tables are touched when dry_run=False vs. untouched when dry_run=True, citing BUG #6/#8 fix and a test name. This is exemplary transparency for a state-mutating operation.

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

Conciseness3/5

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

The description is front-loaded with the core action and then provides dense technical detail. While every sentence earns its place (config, pipeline, dry_run semantics, test reference), it is fairly long and includes somewhat esoteric details like BUG #6/#8 reference numbers that a typical agent user may not need.

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

Completeness5/5

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

Despite having an output schema (which relieves the need to explain return values), the description is exceptionally complete for a complex tool with zero annotations. It explains config sources, the full pipeline order, the dry_run guardrails, which tables are written, and even provides a verification test reference. This leaves no ambiguity about behavior.

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

Parameters3/5

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

Schema coverage is 100% and the single dry_run parameter is fully described in both the schema and the description. The description reinforces the semantics ('simulate... return diff preview' vs 'persist profile upserts'). Baseline 3 is correct since the schema already documents the parameter thoroughly and the description adds only modest reinforcement.

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

Purpose5/5

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

The description clearly states the action ('Trigger ecosystem index update — runs scanner + computes diff') with a specific verb and resource. It distinguishes itself from siblings like ecosystem_scan by explicitly describing the full pipeline (gh search → classify → diff → alert → persist), which differentiates index_update from the raw scan tools.

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

Usage Guidelines4/5

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

The description explains the operational context: scan config comes from project ecosystem settings, and explicitly documents the dry_run behavior (default True = simulate, False = persist). It clearly states when writes happen vs. when they don't, though it doesn't explicitly name alternative tools to use instead.

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

ecosystem_mark_as_referenceA

Stage 3 reference path — add lifecycle:reference tag + advance to referenced.

Use when the debate concludes that the repo is worth keeping as an architectural reference but not integrated. The repo will appear highlighted in future searches as "已研究过" so the team avoids re-deep-scanning it.

ParametersJSON Schema
NameRequiredDescriptionDefault
agent_idNoOptional agent identifier recorded on the tag.
confidenceNo0.0-1.0; default 1.0 (manual decision).
deep_review_idYesTarget deep_review row id.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It reveals that the tool adds a tag and advances state, and that the repo becomes highlighted in searches. However, it omits details about reversibility, permissions, side effects for other tags or statuses, and whether the operation is idempotent. More behavioral context would improve transparency.

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

Conciseness5/5

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

The description is extremely concise and front-loaded. It opens with the core action ('Stage 3 reference path — add lifecycle:reference tag + advance to referenced') and follows with usage guidance in a single compact paragraph. Every sentence earns its place without fluff.

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

Completeness4/5

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

Considering the tool has 3 parameters, an output schema, and a clear domain context, the description is reasonably complete. It explains the lifecycle stage, the decision trigger, and the user-visible effect. It does not mention the output schema, but that is acceptable since the schema itself conveys that. Minor gaps in behavioral details lower the score below a 5.

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

Parameters3/5

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

The input schema covers all three parameters (agent_id, confidence, deep_review_id) with descriptions, achieving 100% coverage. The tool description does not add any additional meaning or guidance beyond the schema, so the baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool's action: mark a repo as a reference by adding a lifecycle tag and advancing its state. It distinguishes itself from sibling tools like ecosystem_mark_no_value by specifying the 'Stage 3 reference path' and the condition 'not integrated', making the purpose unmistakable.

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

Usage Guidelines4/5

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

The description explicitly says 'Use when the debate concludes that the repo is worth keeping as an architectural reference but not integrated', providing clear guidance on when to use. It also explains the consequence (highlighted in searches). While it doesn't explicitly name alternative tools for when the repo is integrated, the guidance is sufficient for correct usage.

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

ecosystem_quick_setupA

One-shot ecosystem setup wizard — create data sources + scan profile in one call.

Use this when bootstrapping a fresh project to ecosystem indexing. Maps to POST /api/ecosystem/quick_setup which creates one DataSource per entry in sources (each enabled by default) and persists either the default ScanProfile or the merged custom_profile override.

ParametersJSON Schema
NameRequiredDescriptionDefault
queriesNoKeyword / topic list applied to every created data source's ``config.queries`` field. Optional.
sourcesNoData source kinds to enable, e.g. ``['github', 'huggingface']``. Must each be a valid ``DataSourceKind`` value (github / huggingface / npm / pypi / hackernews / producthunt / arxiv / custom). Defaults to ``['github']`` when empty.
use_defaultsNoWhen True (default), persist the built-in default ScanProfile. When False, the API merges ``custom_profile`` over the defaults.
custom_profileNoAdvanced override dict; ignored when ``use_defaults=True``.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior3/5

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

No annotations are provided, so the description carries full burden. It states the tool creates data sources and persists a scan profile, and mentions the API endpoint. However, it omits details such as whether existing data sources are overwritten, error handling, or idempotency, leaving room for ambiguity.

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

Conciseness5/5

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

The description is concise, with two sentences and an API endpoint note. It is front-loaded with the core purpose and efficiently provides necessary details without redundancy.

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

Completeness4/5

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

The tool has an output schema (though not shown) and 4 parameters with full schema coverage. The description explains the combined setup behavior and when to use it. Missing elements include prerequisites, error conditions, and return value details, but it remains fairly complete for a wizard tool.

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

Parameters4/5

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

Schema description coverage is 100%, and the description adds useful context beyond the schema (e.g., 'each enabled by default' for sources, 'advanced override dict' for custom_profile, and that queries apply to all data sources). This provides meaningful guidance for parameter usage.

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

Purpose5/5

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

The description states the tool is a 'one-shot ecosystem setup wizard' that creates data sources and a scan profile in one call. It clearly identifies the verb (create) and resources (data sources + scan profile), and distinguishes itself from siblings like ecosystem_data_source_create and ecosystem_scan_profile_update by combining both operations.

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

Usage Guidelines4/5

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

The description explicitly says to use this tool 'when bootstrapping a fresh project to ecosystem indexing,' providing clear context. However, it does not specify when not to use it or contrast with alternative tools that handle individual steps.

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

ecosystem_rebuild_queries_from_reposA

Return a recap of all search queries that have discovered repos in this project.

Scans discovered_via_queries across all stored profiles and aggregates counts per query. Useful to audit which queries are most productive and which repos are multi-query hits.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idNoOptional project scope override.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

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

No annotations are provided, so the description carries the burden. It explains the tool scans discovered_via_queries across profiles and aggregates counts, disclosing its read-only behavior and purpose. It does not mention performance impacts 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.

Conciseness5/5

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

The description is concise, with three purpose-driven sentences, front-loaded with the main action, and no extraneous information.

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

Completeness5/5

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

Given the presence of an output schema, the description does not need to detail return values. It adequately covers what the tool does, the source data, and the aggregation, making it complete for agent selection.

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

Parameters3/5

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

There is only one optional parameter (project_id) with schema description coverage at 100%. The description does not add additional meaning beyond the schema, meeting the baseline.

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

Purpose5/5

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

The description clearly states the tool returns a recap of search queries that discovered repos, aggregates counts, and is useful for auditing query productivity. It distinguishes itself from siblings by its specific function.

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

Usage Guidelines4/5

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

The description explicitly states it is useful for auditing query productivity, providing clear usage context. It does not explicitly exclude alternative tools, but the niche function makes it obvious.

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

ecosystem_refreshA

On-demand incremental refresh of the project's active ecosystem set.

Replaces the retired weekly cron (2026-07-10 decision: CC is not always-on, so long-running timers are pointless — refresh happens when the user asks for it). For each active-set repo (top_n by stars) this probes GitHub once, writes a status snapshot, and re-queues a Stage 0 shallow summary only when the repo has new pushes; 404/403 mark the profile deleted/private.

The response's hint field (present when repos were re-queued) reminds you to run the actual shallow scans via ultracode/Workflow and write results back with ecosystem_apply_shallow_summary.

ParametersJSON Schema
NameRequiredDescriptionDefault
notesNoOptional human-readable note attached to the ScanRun.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden. It discloses that the tool performs an incremental refresh, probes each active-set repo once, writes a status snapshot, re-queues shallow summary only for repos with new pushes, and handles 404/403 errors. It also mentions the 'hint' field in the response. This is good transparency, though it could be improved by noting potential side effects or resource usage.

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

Conciseness4/5

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

The description is concise, consisting of three sentences that efficiently convey the purpose, replacement context, and workflow. It is front-loaded with the purpose. However, it could be slightly more structured (e.g., bullet points) for easier parsing, but it remains effective.

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

Completeness4/5

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

Given the tool's complexity (one optional parameter, output schema exists), the description covers the workflow, the response hint field, and the replacement of the weekly cron. It explains the conditions for re-queuing shallow summaries. It is complete enough for an agent to use the tool appropriately, though it could mention the effect on the ecosystem state.

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

Parameters3/5

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

The schema has 100% coverage for the single parameter 'notes', with a description that matches the one in the tool description. The description adds no additional meaning beyond what the schema already provides. The baseline for high coverage is 3, and no extra value is given.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'On-demand incremental refresh of the project's active ecosystem set.' It specifies the verb 'refresh' and the resource 'ecosystem set', and distinguishes itself from sibling tools like ecosystem_scan, ecosystem_scan_periodic, and ecosystem_apply_shallow_summary by explaining its specific role as a trigger for subsequent shallow scans.

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

Usage Guidelines4/5

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

The description explains when to use this tool: 'refresh happens when the user asks for it' (on-demand). It provides context about the retired weekly cron and outlines the subsequent step of running shallow scans via ultracode/Workflow. However, it does not explicitly state when not to use it or list alternative tools, so it lacks explicit exclusion criteria.

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

ecosystem_release_claimA

Release a worker claim without submitting a quality review.

Use when a worker abandons a task (timeout, error). Clears claimed_by so another worker can pick up the row. Records reason in quality_notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
dr_idYesEcosystemDeepReview.id to release.
reasonNoShort description of why the claim is being released.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries full burden. It discloses that it clears claimed_by and records reason in quality_notes. Missing details on permissions, idempotency, or error states, but the core behavior is clear.

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

Conciseness5/5

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

Three concise sentences with no wasted words. Front-loaded with purpose, then usage guidance, then effects. Ideal structure for quick comprehension.

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

Completeness4/5

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

Given the tool's simplicity and presence of an output schema, the description covers the main purpose, usage triggers, and side effects. It could mention return value or error conditions, but overall sufficient.

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

Parameters3/5

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

Schema coverage is 100%, and the description adds no new meaning beyond the schema descriptions. The reason parameter's role is implied but not elaborated.

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

Purpose5/5

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

The description clearly specifies the action (release a worker claim without quality review), resource (worker claim), and context. It distinguishes from submitting a quality review and from sibling tools like ecosystem_claim_review.

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

Usage Guidelines4/5

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

Provides explicit use cases: 'when a worker abandons a task (timeout, error)'. Explains effect on claimed_by and quality_notes. Does not mention when not to use or alternatives, but the guidance is specific and actionable.

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

ecosystem_repo_eventsB

Return event history for a single ecosystem repo (v1.6.0 event sourcing).

Each event captures a discrete operation: discovered, rescanned, topics_changed, stars_jumped, status_changed, archived, manual_pinned, manual_unpinned, removed_from_query.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax events to return (default 50, max 200).
repo_idYesEcosystemRepoProfile.id to query events for.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavioral traits. It only states the purpose and event types, but does not mention read-only nature, authentication requirements, rate limits, ordering (e.g., chronological), pagination, or error handling. The behavioral profile is severely under-disclosed for a tool with zero annotation coverage.

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

Conciseness5/5

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

Two sentences with zero waste: the first sentence states purpose concisely, and the second lists event types to set expectations. The description is front-loaded and efficient. Every sentence earns its place.

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

Completeness4/5

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

Given the presence of an output schema, the description need not detail return values. It covers the essential purpose and event types. Missing details like default ordering (e.g., most recent first) or behavior for invalid repo_id prevent a perfect score, but the tool is simple and context is mostly complete for use.

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

Parameters3/5

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

Schema description coverage is 100% (both parameters have descriptions). The tool description adds context beyond the schema by listing the event types that may appear, which helps interpret the repo_id parameter. However, it does not clarify how the 'limit' parameter interacts with results (e.g., default ordering, truncation). Baseline of 3 is appropriate since the schema already documents parameters well.

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

Purpose5/5

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

The description clearly states it returns event history for a single ecosystem repo, specifying the resource ('single ecosystem repo') and the action ('return event history'). It also lists the discrete event types, distinguishing it from sibling tools like ecosystem_repo_get (current state) and event_list (broad events). The verb 'return' and resource are precise.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like ecosystem_repo_get for current state or event_list for cross-repo events. There are no explicit when-to-use, when-not-to-use, or comparisons with siblings. The agent must infer usage from the name and context.

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

ecosystem_repo_getC

Get holistic detail of an ecosystem repo (profile + tags + deep_reviews + relations + scan_run).

ParametersJSON Schema
NameRequiredDescriptionDefault
repo_idNoDirect primary key.
repo_full_nameNo"owner/repo" form. Mutually exclusive with repo_id (this takes precedence if both given).
relations_limitNoMax relations per direction (default 50).
deep_reviews_limitNoMax deep reviews to return (default 20).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose behavioral traits such as read-only nature, side effects, authentication needs, or rate limits. The description only states what the tool does, not its behavioral profile. Since the description carries the full burden, it is insufficient.

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

Conciseness4/5

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

The description is a single sentence that is concise and front-loaded with the core action. It efficiently communicates the holistic nature of the result. However, it could be slightly more structured without becoming verbose, so it does not earn a perfect score.

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

Completeness3/5

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

Given that an output schema exists, the description does not need to explain return values in detail. However, for a tool with 4 parameters and multiple returned components, the description is somewhat sparse. It adequately covers the basic purpose but lacks context about how the parameters influence the output or edge cases.

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

Parameters3/5

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

All parameters are described in the input schema (100% coverage), so the baseline is 3. The description does not add any additional meaning about the parameters beyond what the schema already provides. Therefore, it meets the baseline but does not exceed it.

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

Purpose4/5

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

The description clearly states the tool retrieves a holistic detail of an ecosystem repo, listing the included components (profile, tags, deep reviews, relations, scan run). It uses a specific verb 'Get' and resource 'ecosystem repo', making the purpose evident. However, it does not differentiate from sibling tools like ecosystem_repo_events or ecosystem_repo_tags, which might share some functionality.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, when it is appropriate, or when to use other tools like ecosystem_repo_events or ecosystem_scan_status. Given the large number of sibling tools, this is a significant gap.

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

ecosystem_repo_manual_statusA

Set (or clear) the human override on a repo's active status.

One entry point for every manual verdict — the four historical tools (pin_active / unpin / mark_no_value / clear_manual_status) all posted the identical payload to the identical endpoint and differed only by this argument.

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonNoShort explanation, stored for audit (recommended when setting).
statusNo``pinned`` / ``no_value`` / ``""`` to clear.
repo_idYesEcosystemRepoProfile.id of the target repo.
project_idNoOptional project scope override.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

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 that this is a write/mutation operation ('Set (or clear) the human override') and mentions 'stored for audit' for the reason parameter, which is useful. However, it doesn't disclose whether this is destructive, whether it can be reversed, what permissions are needed, or what happens to previously set values when clearing. It also doesn't describe response behavior despite having an output schema.

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

Conciseness4/5

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

The description is compact and well-organized, with the core statement in the first line and supporting context about the historical consolidation following. Every sentence adds value. Minor inefficiency: the historical-tool context, while valuable, could be slightly tighter, but it's justified given the consolidation rationale.

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

Completeness3/5

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

With a write-operation tool, no annotations, and an output schema present, the description should still clarify behavior. It explains the purpose well but omits guidance on the output schema semantics, error conditions, authorization needs, or reversibility of the override. The consolidation context helps a lot, but for a mutation tool the behavioral gaps are noticeable.

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

Parameters4/5

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

Schema description coverage is 100%, so the schema documents all four parameters. The description adds meaning by explaining that the status argument's ``pinned`` / ``no_value`` values map to the old distinct tools (pin_active, mark_no_value) and empty string clears. It also clarifies reason is 'recommended when setting,' adding guidance beyond the schema. This is a genuinely helpful layer beyond the structured schema.

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

Purpose4/5

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

The description clearly states the verb+resource: 'Set (or clear) the human override on a repo's active status.' It also provides valuable context by explaining this tool consolidates four historical tools that posted identical payloads. However, it doesn't explicitly name the sibling 'ecosystem_mark_as_reference' or 'ecosystem_repo_get' to differentiate, though the historical-tool context does distinguish it from other ecosystem tools.

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

Usage Guidelines4/5

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

The description explains that this is the single entry point for all manual verdicts and that four historical tools (pin_active/unpin/mark_no_value/clear_manual_status) are consolidated here, mapping to the status argument values. This gives clear guidance on the semantic range of operations. It doesn't explicitly state when NOT to use it versus read-only tools, but the context about being the only manual-status tool is reasonably clear.

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

ecosystem_repo_tagsA

List all tags currently associated with a single ecosystem repo.

Returns each association with its confidence, source layer (github_topic / auto_rule / auto_llm / manual), and tag metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
repo_idYesEcosystemRepoProfile.id.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries the full burden. It discloses the return structure: associations with confidence, source layer (github_topic / auto_rule / auto_llm / manual), and tag metadata. No mention of permissions or side effects, but as a read operation, this is sufficient.

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

Conciseness5/5

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

Two sentences, no fluff. First sentence states purpose, second describes output. Front-loaded and highly efficient.

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

Completeness5/5

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

Given one parameter, full schema coverage, and an output schema present, the description is complete. It explains purpose and return format with no missing critical information.

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

Parameters3/5

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

Only one parameter (repo_id) with schema description 'EcosystemRepoProfile.id.' The tool description adds 'single ecosystem repo' context, but the schema already explains the parameter. With 100% schema coverage, baseline is 3.

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

Purpose5/5

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

The description clearly states 'List all tags currently associated with a single ecosystem repo.' This specifies the verb (list), resource (tags), and scope (single repo), distinguishing it from sibling tools like ecosystem_tag_list which likely list tags across repos.

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

Usage Guidelines4/5

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

Usage context is clear: it lists tags for one repo. However, no explicit guidance on when to use this vs alternatives like ecosystem_tag_list, nor any when-not-to-use conditions.

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

ecosystem_scanA

Scan popular Claude ecosystem repos (>=min_stars) and update ecosystem_repo_profiles.

Runs 8-10 gh search queries covering:

  • topic:claude-code / topic:mcp / topic:mcp-server / topic:claude-agent

  • topic:agent-framework + "claude" / topic:ai-agents + "claude"

  • "claude code plugin" / "anthropic agent"

  • anthropics org public repos

Deduplicates + filters >=min_stars + excludes known repos (CronusL-1141/AI-company etc.) Sets needs_deep_review=True for stars < 15000. relevance_category is auto-classified heuristically (based on topics + description keywords).

ParametersJSON Schema
NameRequiredDescriptionDefault
dry_runNoWhen True, run every gh query and report what would be written without touching the DB — use it to size a scan before paying for the writes.
min_starsNoPopularity floor for a repo to enter the archive. Lower it (e.g. 1000) for a wide full sweep, raise it to only refresh the well-known head of the ecosystem. Values <= 1000 mark the run as strategy="full", above that as "incremental".

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations provided, the description carries the full disclosure burden. It transparently discloses that this writes to the DB (update ecosystem_repo_profiles), sets needs_deep_review=True conditionally, auto-classifies heuristically, and supports a dry_run mode to avoid writes. This is honest about the mutating nature and workflow impact, though it doesn't detail destructuring of existing profiles or idempotency behavior, keeping it shy of 5.

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

Conciseness4/5

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

The description is structured with a clear summary sentence, a bulleted query list, and a closing behavior note. It's efficient and scannable. Slight redundancy exists between the prose explanation and the parameter schema docs for min_stars, and the query list could arguably live in the output schema or be trimmed, but overall it's well-organized without waste.

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

Completeness4/5

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

The tool is moderately complex (8-10 queries, dedup, classification, conditional flags) and has a rich output schema. The description covers the query set, filtering logic, and side-effect behaviors well. A short note on expected duration or idempotency when re-running would strengthen it, but the combination of description plus schema is nearly complete for agent use.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents both parameters thoroughly. The description reinforces min_stars as a popularity floor and maps values to strategy (full vs incremental), which adds some nuance. However, this largely echoes schema content; baseline 3 is correct since the description adds modest value over the schema's detailed parameter docs.

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

Purpose5/5

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

The description states a specific verb+resource action: 'Scan popular Claude ecosystem repos (>=min_stars) and update ecosystem_repo_profiles.' It clearly enumerates the 8-10 gh search queries and the filtering/dedup logic. While sibling ecosystem tools exist, this one is clearly the scanning entry point, differentiated by its concrete query list and update behavior.

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

Usage Guidelines4/5

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

The description details mechanics (queries run, thresholds, classification heuristics) without explicit when-not-to-use guidance. However, sibling names like ecosystem_scan_periodic suggest a periodic variant, and the description's threshold rules imply when to invoke (full vs incremental sweeps). It lacks explicit exclusions naming alternatives, so 4 is appropriate.

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

ecosystem_scan_historyA

List recent scan runs ordered by started_at descending.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of runs to return (default 10, max 100).
strategyNoOptional filter — incremental / full / topic / trending.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It only states that runs are filtered by 'recent' and ordered by started_at descending, but fails to disclose permissions, rate limits, side effects, or the scope (e.g., project-specific vs global).

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

Conciseness5/5

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

The description is a single sentence that conveys the essence without any extraneous words. It is front-loaded with the action and object.

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

Completeness4/5

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

The tool is simple with only two optional parameters and a provided output schema. The description covers the core functionality (listing recent runs by date). Minor gap: it doesn't specify the source of 'scan runs' (e.g., across all projects), but this is acceptable for a list tool.

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

Parameters3/5

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

Schema coverage is 100%, with both parameters already well-described. The description does not add additional meaning beyond the schema for limit and strategy. Baseline score of 3 is appropriate.

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

Purpose5/5

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

The description uses a specific verb ('List') and resource ('recent scan runs') with ordering. It clearly distinguishes from sibling tools like ecosystem_scan (which triggers scans) and ecosystem_scan_status (which provides current status).

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

Usage Guidelines3/5

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

The description implies usage for viewing historical scan runs, but does not explicitly state when to use this tool versus alternatives like ecosystem_scan_status or ecosystem_scan. No exclusions or prerequisites are mentioned.

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

ecosystem_scan_periodicA

Run an incremental or full ecosystem scan via the scanner service.

Compared to ecosystem_scan, this tool:

  • skips repos last_scanned_at < 7 days (incremental strategy only)

  • applies secondary owner / keyword filters

  • marks repos pushed > 365 days ago as is_archived=True

  • records every run as an EcosystemScanRun for audit

ParametersJSON Schema
NameRequiredDescriptionDefault
notesNoOptional human-readable note attached to the ScanRun.
strategyNo"incremental" (skip recent), "full" (rescan all), "topic" (topic-only), "trending" (trending repos only).incremental
min_starsNoMinimum star threshold for inclusion (default 1000 for Stage C).
triggered_byNo"manual" or "cron" — recorded on the ScanRun.manual

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries full burden and explicitly discloses key behaviors: skipping recently scanned repos, applying filters, marking old repos as archived, and recording runs. It lacks detail on side effects or authorization needs, but the core behavioral traits are transparent.

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

Conciseness5/5

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

The description is concise: a short introductory sentence followed by four bullet points. It front-loads the purpose and each bullet adds distinct, necessary information. No redundancy or fluff.

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

Completeness4/5

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

Given the tool's complexity (4 params, output schema exists), the description covers key behaviors and usage distinctions. The presence of an output schema relieves the need to describe return values. However, it could briefly mention the output contains scan run details, but not required.

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

Parameters3/5

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

Schema coverage is 100%, so the parameters are already well-described. The description adds minimal new meaning (e.g., noting 'incremental strategy' aligns with strategy param, but does not elaborate on values or usage 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.

Purpose5/5

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

The description clearly states it runs 'incremental or full ecosystem scan' via the scanner service, establishing a specific verb and resource. It explicitly distinguishes itself from the sibling ecosystem_scan by listing four behavioral differences, making the tool's unique purpose evident.

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

Usage Guidelines4/5

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

The description contrasts this tool with ecosystem_scan via bullet points, which implicitly guides when to use it: when incremental scanning, filters, archiving, or audit logging are needed. However, it does not provide explicit examples of when not to use it or mention other alternatives beyond the sibling.

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

ecosystem_scan_statusB

Fetch a single EcosystemScanRun by id.

ParametersJSON Schema
NameRequiredDescriptionDefault
run_idYesThe scan run UUID.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

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

No annotations provided to indicate safety or destructiveness. The description does not disclose any behavioral traits (e.g., idempotency, caching, access requirements) beyond the basic fetch action, leaving agents without sufficient context.

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

Conciseness4/5

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

The description is a single clear sentence with no extraneous words. However, it is minimal and could be slightly more informative without losing conciseness.

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

Completeness3/5

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

For a simple fetch-by-ID tool, the description is acceptable but lacks any context about when to use it relative to siblings. The presence of an output schema compensates partially, but guidance is missing.

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

Parameters3/5

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

Schema coverage is 100% (the only parameter 'run_id' is described in the schema). The description adds no additional semantic value beyond the schema's own field description.

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

Purpose5/5

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

The description 'Fetch a single EcosystemScanRun by id' clearly states the action (Fetch) and the resource (a specific EcosystemScanRun by its ID). It is distinct from sibling tools like ecosystem_scan_history (list history) or ecosystem_scan (initiate scan).

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives such as ecosystem_scan_history or ecosystem_deep_review_status. The description lacks context about prerequisites or typical use cases.

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

ecosystem_search_by_capabilityA

Search ecosystem repos by capability tags (reverse lookup from tag → repo).

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNostars (default) / recency (recently pushed first) / relevance (relevance_score desc).stars
tagsNoTag name list (e.g. ["memory_system", "vector_db"]).
limitNoMax rows per page (default 30, server max 200).
offsetNoRows to skip — pagination cursor for the next page.
max_starsNoPopularity ceiling; 0 (default) = no limit. Set it to exclude the famous head and surface lesser-known projects.
min_starsNoPopularity floor; 0 (default) keeps niche repos in.
match_modeNo"all" (AND, default) — repo must carry every tag; "any" (OR) — repo carries at least one, use it to widen a search that returned too few hits.all

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

No annotations are provided, so the description carries the behavioral disclosure burden. It's a read/search operation (implied by 'search'), but nothing explicitly states that it's non-destructive, whether results are paginated defaults, or how the tags parameter behaves (AND vs OR semantics are only in the schema). The description adds the reverse-lookup framing over the schema but doesn't disclose behaviors like default sort, pagination bounds, or that match_mode controls tag combination. Schema covers some of this.

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

Conciseness5/5

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

The description is a single crisp sentence that front-loads the verb and resource, then adds the distinguishing parenthetical. Zero wasted words — every token earns its place. This is model conciseness.

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

Completeness4/5

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

The tool has an output schema (so return format is documented elsewhere), 100% schema coverage for all 7 params, and a clean single-sentence purpose statement. For a read/search operation with well-documented schema and output, the description is reasonably complete. It could marginally improve by noting it complements ecosystem_search and is non-mutating, but the output schema + full param docs offset most gaps. Given the tool is a simple filtered search, this is near-complete.

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

Parameters3/5

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

Schema description coverage is 100%, so all 7 parameters are already documented in the input schema. The description adds minimal parameter-level value beyond the schema — the reverse-lookup framing helps understand tags, but the description doesn't explain parameter interactions like how match_mode 'all'/'any' combines multiple tags or how min_stars/max_stars bracket popularity. The schema carries the burden, so baseline 3 is appropriate.

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

Purpose4/5

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

The description 'Search ecosystem repos by capability tags (reverse lookup from tag → repo)' clearly states the verb (search), resource (ecosystem repos), and the distinguishing characteristic (reverse lookup from tag to repo — the inverse of a forward tag search). This differentiates it from sibling tools like ecosystem_repo_tags, and the parenthetical adds useful clarity. It loses a point because the exact semantics of 'capability' vs general tags is not fully explained.

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

Usage Guidelines3/5

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

The description notes this is a reverse lookup from tag→repo, which implies it's the inverse of ecosystem_repo_tags (repo→tags). However, there is no explicit when-to-use/when-not-to-use guidance, no stated alternative tools, and no comparison against ecosystem_search (the likely forward search sibling). The parenthetical hints at positioning but doesn't explicitly guide tool selection.

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

ecosystem_shallow_queue_statusA

Show Stage 0 shallow-scan queue status for the active project.

Returns counts for active profiles, pending shallow scans, in-flight dispatches, terminal failures (shallow_failed), and deleted/private-flagged repos. The self_learning_pending map shows how many distinct repos have hit each failure class so far (a class becomes eligible for a recorded lesson once the count reaches 3).

Returns: {project_id, active_total, pending_shallow, in_flight, shallow_failed, deleted, private_now, concurrency, self_learning_pending}.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

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

No annotations are provided, so the description carries full burden. It does well: it lists the exact return fields, explains the meaning of the self_learning_pending map, and even discloses the threshold behavior (a class becomes eligible once count reaches 3). This provides meaningful behavioral context beyond a simple status read.

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

Conciseness4/5

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

The description is reasonably concise and front-loaded with the core purpose in the first sentence. The Returns section is a slightly verbose but useful structured enumeration of output fields. Each sentence earns its place, though the prose-like Returns block could be tightened into a compact list format.

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

Completeness5/5

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

For a zero-parameter read-only status tool with an output schema present, the description is complete. It documents the purpose, the output fields, and the non-obvious semantics of self_learning_pending. The presence of an output schema means the return-value structure is already encoded elsewhere, and the description supplements it with meaning (the threshold rule). Given the tool's simplicity, nothing essential is missing.

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

Parameters5/5

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

The tool has 0 parameters with 100% schema coverage (the schema is an empty object with additionalProperties: false). With no parameters to document, the baseline is 4 per the rubric, and the description goes further by thoroughly documenting the return value structure, effectively compensating for any ambiguity about what the tool produces. This exceeds the baseline.

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

Purpose4/5

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

The description clearly states what the tool does: 'Show Stage 0 shallow-scan queue status for the active project.' It names the specific resource (shallow-scan queue) and scope (active project). Among siblings like ecosystem_scan_status, ecosystem_summary_health, and ecosystem_repo_manual_status, it distinguishes itself by focusing specifically on the shallow-scan queue status, though it doesn't explicitly name the distinguishing sibling.

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

Usage Guidelines3/5

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

The description implies this is the go-to tool for checking shallow-scan queue status ('Show Stage 0 shallow-scan queue status'), which allows an agent to infer when to use it. However, it provides no explicit when-to-use/when-not-to-use guidance or exclusions vs. siblings like ecosystem_scan_status or ecosystem_summary_health, which could cover related informational needs.

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

ecosystem_start_integrationA

Stage 3 integrate path — build a task_create payload + tag the repo.

Adds lifecycle:integrated tag, advances stage_status, and returns a task payload (title / description / priority / horizon / tags) ready to POST to /api/projects/{project_id}/tasks. After the task is created, call ecosystem_link_integration_task to write integration_task_id back onto the review.

ecosystem 不接管实施 — task ownership 由现有任务/团队系统接管。

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNoOptional task title (auto-generated if empty).
horizonNoTask horizon — short / mid (default) / long.mid
priorityNoTask priority — critical / high (default) / medium / low.high
extra_tagsNoAdditional tags appended to the task.
descriptionNoOptional task description (auto-generated if empty).
deep_review_idYesTarget deep_review row id (must be debated / architecture_done / referenced).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

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

No annotations are provided, so the description carries full responsibility. It clearly states the tool adds a tag, advances stage_status, and returns a ready-to-post payload. This sufficiently discloses state changes and output without contradiction.

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

Conciseness4/5

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

The description is compact and well-structured, with a clear purpose first, followed by action steps and a follow-up note. The Chinese line about ownership is slightly extraneous for English-agent contexts but adds important context. No redundancy.

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

Completeness5/5

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

Given the tool's complexity (producing a payload for an external API, requiring a follow-up call), the description covers all necessary steps: what it does, what it returns, and what to do next. It also clarifies that ecosystem does not own the implementation, which is critical for correct multi-step workflow.

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

Parameters3/5

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

With 100% schema description coverage, the baseline is 3. The description adds no additional detail beyond the schema for parameters; it restates the same info (e.g., 'Optional task title (auto-generated if empty)'). Thus, it meets but does not exceed expectations.

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

Purpose5/5

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

The description clearly states the tool's purpose: to build a task_create payload and tag the repo during Stage 3 integration. It explicitly names the sibling follow-up tool, setting it apart. The verb 'build' and specific actions 'adds tag', 'advances stage_status' are unambiguous.

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

Usage Guidelines3/5

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

The description indicates when to use this tool (Stage 3 integrate path) and references the next step (call ecosystem_link_integration_task). However, it does not provide explicit when-not-to-use scenarios or compare to alternatives, relying on context.

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

ecosystem_summary_by_tagA

List every repo carrying tag as a markdown table.

Each row contains stars / language / one-line summary plus a deep- review id when one exists. Rows are sorted by stars desc. Archived repos are excluded unless include_archived=True.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagYesTag name (e.g. 'memory_system'). Required.
limitNoMax repos to enumerate (default 200, max 500).
authorNoAuthor recorded on the saved report.ecosystem-summarizer
save_reportNoWhen True, persist via report_save with report_type='ecosystem-by-tag'.
include_archivedNoInclude is_archived=True repos when True.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

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

Discloses output format (markdown table with specific columns), sorting (stars desc), and archiving behavior (excluded unless include_archived=True). With no annotations, it provides sufficient behavioral context, though no mention of error handling for missing tags.

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

Conciseness5/5

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

Two concise sentences plus a note, front-loaded with the main action. No unnecessary words, efficiently conveys purpose and key behaviors.

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

Completeness4/5

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

Completeness is high: covers output format, sorting, archiving, and save behavior. Output schema exists so return values are covered elsewhere. Minor gap: no description of behavior for missing tag (likely returns empty table).

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

Parameters3/5

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

Schema covers all parameters with descriptions. The description adds context for tag and include_archived but does not significantly expand on the schema. Baseline of 3 is appropriate given 100% schema coverage.

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

Purpose5/5

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

Clearly states 'List every repo carrying tag as a markdown table', specifying verb and resource. Distinguishes from sibling tools like ecosystem_search_by_capability by focusing on tag-based listing with star/language/summary.

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

Usage Guidelines3/5

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

Does not explicitly state when to use this tool over alternatives like ecosystem_search or ecosystem_summary_top_n. The description implies listing repos by tag but lacks comparative guidance.

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

ecosystem_summary_healthC

Platform self-check markdown: profile / scan / tag coverage / archive ratio.

ParametersJSON Schema
NameRequiredDescriptionDefault
authorNoAuthor recorded on the saved report.ecosystem-summarizer
save_reportNoWhen True, persist via report_save with report_type='ecosystem-health'.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations, the description must disclose all behavioral traits. It fails to mention that the tool potentially saves a report (as implied by the save_report parameter defaulting to true) or the fact that output is markdown. The description is too sparse to inform an agent about side effects or persistence.

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

Conciseness4/5

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

The description is a single sentence, front-loading the core purpose. It is efficient with no wasted words, though it sacrifices clarity for brevity.

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

Completeness2/5

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

The description lacks important context: it does not explain what 'profile / scan / tag coverage / archive ratio' entails, what the output looks like (despite an output schema existing), or the implications of the save_report parameter. For a self-check tool, more detail is needed to ensure proper use.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents both parameters (author and save_report) and their defaults. The description adds no additional meaning about parameters; it focuses on the report content. Baseline 3 is appropriate.

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

Purpose3/5

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

The description states 'Platform self-check markdown: profile / scan / tag coverage / archive ratio.', indicating it produces a health report, but the verb is implicit and the scope is vague. It does not clearly distinguish from sibling ecosystem_summary_ tools like ecosystem_summary_by_tag or ecosystem_scan_status, which may overlap.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives (e.g., ecosystem_scan for scanning or ecosystem_summary_weekly for periodic summaries). There is no mention of prerequisites, expected use cases, or exclusions.

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

ecosystem_summary_top_nB

Top-N markdown table of ecosystem repos.

ParametersJSON Schema
NameRequiredDescriptionDefault
nNoNumber of rows (1..100, default 10).
sortNo``stars`` (default), ``pushed_at`` (last commit recency) or ``scan_freshness`` (last_scanned_at recency).stars
authorNoAuthor recorded on the saved report.ecosystem-summarizer
categoryNoOptional category filter (agent-framework / mcp-server / memory-system / skill-system / tooling).
save_reportNoWhen True, persist via report_save with report_type='ecosystem-top-n'.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

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

No annotations provided, and the description does not disclose behavioral traits such as side effects (e.g., save_report parameter persists results). The description only states output format without revealing mutation or write behavior.

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

Conciseness3/5

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

The description is a single sentence, which is concise, but it sacrifices clarity and completeness regarding behavior. It is appropriately front-loaded but too brief for a tool with 5 parameters.

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

Completeness3/5

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

Given the presence of an output schema, the description does not need to explain return values. However, for a tool with multiple parameters and many siblings, more context on usage and side effects would improve completeness.

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

Parameters3/5

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

Schema coverage is 100%, and each parameter is well-described in the schema. The description adds no additional meaning beyond the schema, so baseline 3 is appropriate.

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

Purpose5/5

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

The description 'Top-N markdown table of ecosystem repos' uses a specific verb ('Top-N markdown table') and resource ('ecosystem repos'), clearly distinguishing it from sibling tools like ecosystem_search or ecosystem_repo_get.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. Given many sibling ecosystem tools, explicit context on when to choose this tool over others is missing.

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

ecosystem_summary_weeklyA

Generate the past-N-days ecosystem briefing as markdown.

Aggregates new / updated profiles, completed deep-reviews, archive counters and top star movers over the configured window. When save_report=True (default) the markdown is persisted via report_save with report_type='ecosystem-weekly'.

ParametersJSON Schema
NameRequiredDescriptionDefault
authorNoAuthor name written into the saved report.ecosystem-summarizer
save_reportNoWhen True, also calls report_save with the generated markdown.
window_daysNoLook-back window in days (1..90, default 7).
top_movers_limitNoMax repos surfaced under the Top Movers section (default 5).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden. It discloses the side effect of persisting the report via report_save when save_report=True. However, it does not specify whether the tool is read-only or the nature of any other potential side effects.

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

Conciseness4/5

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

The description is concise, starting with a clear purpose followed by aggregation details and optional persistence behavior. It is front-loaded and contains no unnecessary words, though grouping related information more tightly would improve flow.

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

Completeness3/5

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

Given the presence of an output schema (not shown), the description does not need to detail return values, but it does not mention error cases, prerequisites, or the nature of the markdown content beyond aggregation lists. It is adequate but not fully comprehensive for a tool with side effects.

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

Parameters4/5

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

Schema description coverage is 100%, but the description adds value by explaining that save_report=True triggers report_save with report_type='ecosystem-weekly'. This goes beyond the schema. However, it does not provide additional semantics for author or top_movers_limit beyond the schema.

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

Purpose5/5

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

The description clearly states the tool generates a past-N-days ecosystem briefing in markdown format, listing specific data aggregated (profiles, reviews, archive counters, top star movers). It distinguishes from sibling tools like ecosystem_summary_health or ecosystem_summary_top_n by focusing on a comprehensive weekly briefing.

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

Usage Guidelines3/5

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

The description implies usage for generating ecosystem briefings over a configurable window, but does not explicitly state when to use this tool over alternatives (e.g., other ecosystem_summary tools). There is no mention of prerequisites or exclusions.

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

ecosystem_tag_apply_batchA

Apply Layer 1 + Layer 2 auto-tagging to a batch of ecosystem repos.

Layer 1 matches GitHub topics directly (confidence=0.95, source=github_topic). Layer 2 matches keyword rules against name+description+topics+owner (confidence=0.7, source=auto_rule).

Repos with fewer than 2 matched tags are flagged via needs_llm=True; callers should pass those into ecosystem_tag_dispatch_llm to spawn Layer 3 sub-agents.

If both repo_ids and repo_full_names are empty, the first repos in the database are processed.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax repos to process when filters empty (default 200).
agent_idNoCaller agent identifier recorded in EcosystemRepoTag rows.ecosystem-tagger
repo_idsNoSpecific EcosystemRepoProfile.id list.
replace_autoNoWhen True, delete each repo's existing tags whose source is github_topic or auto_rule before re-applying. Manual / auto_llm tags are preserved. Use after rule upgrades to clear stale false positives. Default False keeps the legacy append-only behavior.
repo_full_namesNoSpecific 'owner/repo' list.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

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

No annotations are provided, so the description carries full behavioral transparency. It details the two-layer tagging process, confidence values, the effect of replace_auto (deleting existing tags of certain sources), and the needs_llm flag. It does not cover authentication, rate limits, or error handling, but for a mutation tool this is a solid disclosure.

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

Conciseness4/5

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

The description is well-structured with front-loaded purpose and several informative paragraphs. Each sentence adds value, explaining layers, fallback behavior, and usage context. It is not overly verbose, though it could be slightly more concise; overall it is appropriate for the tool's complexity.

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

Completeness4/5

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

Given the five parameters, no annotations, and an output schema (assumed), the description provides sufficient context for effective tool invocation. It covers input behavior, processing logic, and follow-up actions. It does not mention return values, but the output schema likely covers that. It is complete enough for an agent to decide when and how to use it.

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

Parameters4/5

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

The input schema provides 100% parameter description coverage. The description adds meaning beyond the schema by explaining how the layers work together, the confidence levels, and the interplay between repo_ids and repo_full_names. It also clarifies the flagging mechanism for LLM dispatch, enhancing semantic understanding.

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

Purpose5/5

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

The description clearly states it applies "Layer 1 + Layer 2 auto-tagging to a batch of ecosystem repos," specifying two layers with confidence levels and sources. It distinguishes from siblings by focusing on batch processing and tagging, contrasting with other ecosystem tools like single-repo operations or LLM-based tagging.

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

Usage Guidelines4/5

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

The description explains when to use (batch auto-tagging) and provides an explicit alternative: repos with fewer than 2 matched tags should be passed to ecosystem_tag_dispatch_llm. It also clarifies behavior when both repo lists are empty. However, it does not explicitly state when not to use it, though the context is clear.

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

ecosystem_tag_apply_llm_resultB

Submit Layer 3 LLM tagging result from a sub-agent.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagsYeslist of {name: str, confidence: float (0..1)}.
repo_idYesTarget EcosystemRepoProfile.id.
agent_idNoSub-agent identifier recorded as EcosystemRepoTag.agent_id.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior2/5

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

No annotations provided, so the description carries the full burden. It only says 'Submit... result' without revealing what happens upon submission (e.g., idempotency, merging behavior, error conditions). Minimal 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.

Conciseness5/5

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

Single sentence, no wasted words, precisely communicates the core action.

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

Completeness3/5

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

While output schema exists and parameters are covered, the description lacks context on how the result is applied (e.g., append vs. replace) and what layer 3 tagging entails. Adequate but incomplete for full understanding.

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

Parameters3/5

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

Schema coverage is 100%, and the description essentially repeats schema information without adding new meaning. Baseline of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the verb 'Submit' and the specific resource 'Layer 3 LLM tagging result from a sub-agent'. It effectively distinguishes this tool from similar siblings like ecosystem_apply_architecture_md and ecosystem_apply_debate_result by focusing on LLM tagging results.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives such as ecosystem_tag_apply_batch or ecosystem_tag_dispatch_llm. The description lacks explicit context for usage decisions.

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

ecosystem_tag_dispatch_llmA

Build a Layer 3 sub-agent dispatch plan for repos that need LLM fallback.

Returns a dispatch plan; the Leader is expected to spawn each sub-agent via the Agent tool using launch_call.params. Each sub-agent analyzes the repo and submits results via ecosystem_tag_apply_llm_result.

Concurrency is capped at max_concurrency (default 20) to limit token spend. Excess repos are returned in skipped_due_to_limit.

ParametersJSON Schema
NameRequiredDescriptionDefault
repo_idsYesList of repo ids needing Layer 3 (typically those flagged by ecosystem_tag_apply_batch with needs_llm=True).
agent_templateNosubagent_type for each sub-agent. Must be one the Agent tool accepts (agent_template_list shows them); defaults to the built-in 'general-purpose'.general-purpose
max_concurrencyNoMax concurrent sub-agents per call (default 20, max 50).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations, the description carries the full burden. It discloses the concurrency cap (max_concurrency default 20), the token-spend rationale, and that excess repos are returned in skipped_due_to_limit (a partial/failure behavior). It also clarifies this tool only builds a plan and does not execute tagging, which is an important behavioral distinction. It could add whether results are returned synchronously or how pagination works, but core behavior 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.

Conciseness4/5

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

The description is compact and front-loaded with the core purpose in the first sentence. It adds the pipeline context and the concurrency/skip behavior in short, scannable paragraphs without redundancy. Efficient and well-structured, though a touch more detail on the skipped_due_to_limit semantics would round it out.

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

Completeness4/5

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

For a dispatch-plan tool with an output schema present and 100% parameter coverage, the description is reasonably complete. It explains the tool's role in the pipeline, how to consume launch_call.params, and the concurrency/skip behavior. It doesn't need to explain return values since an output schema exists. Some color on error handling or empty-repo-list behavior would be a marginal improvement but isn't essential.

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

Parameters3/5

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

Schema description coverage is 100%, so all three parameters (repo_ids, agent_template, max_concurrency) are well-documented in the schema itself. The description adds the cross-reference to launch_call.params and clarifies max_concurrency caps concurrency to limit token spend, which adds some value beyond the schema. However, at 100% coverage the baseline is 3, and the description doesn't dramatically enrich parameter meaning beyond what's already there.

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

Purpose5/5

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

The description clearly states the verb+resource: 'Build a Layer 3 sub-agent dispatch plan for repos that need LLM fallback.' It distinguishes this from siblings like ecosystem_tag_apply_batch and ecosystem_tag_apply_llm_result by positioning it as the dispatch/planning step in a pipeline, and explicitly says the Leader spawns sub-agents which submit via ecosystem_tag_apply_llm_result.

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

Usage Guidelines4/5

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

The description explains how outputs are consumed ('Leader expected to spawn each sub-agent via Agent tool using launch_call.params') and identifies the downstream tool (ecosystem_tag_apply_llm_result) for result submission. It notes repo_ids are 'typically flagged by ecosystem_tag_apply_batch with needs_llm=True,' giving clear pipeline context, though it doesn't name explicit alternatives or exclusions.

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

ecosystem_tag_listA

List ecosystem tag dictionary entries.

Three layers of tagging are supported:

  • GitHub topics direct mapping (Layer 1)

  • Keyword/regex rules (Layer 2)

  • LLM sub-agent fallback (Layer 3)

This tool only returns the canonical tag dictionary (21 default tags). Use ecosystem_tag_apply_batch to actually apply tags to repos.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax number of tags to return (default 200, max 500).
categoryNoFilter by category — capability / tech_stack / maturity / positioning.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It does not mention whether the tool is read-only, requires authentication, or has any side effects. The description focuses on the tagging system structure rather than 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.

Conciseness4/5

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

The description is fairly concise at 7 sentences. The first sentence clearly states the purpose, and the bullet points organize the layers. However, the bullet list could be slightly more compact without losing clarity.

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

Completeness5/5

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

Given the tool's simplicity (listing a dictionary of default tags) and the presence of an output schema, the description is complete. It explains what the tool returns (21 canonical tags) and provides useful context about the three-layer tagging system.

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

Parameters3/5

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

Schema coverage is 100% (both parameters have descriptions). The description adds no additional meaning beyond the schema; it only restates the tool's purpose. Baseline 3 is appropriate for high schema coverage.

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

Purpose5/5

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

The description states 'List ecosystem tag dictionary entries' and explains the three layers of tagging, clarifying that it returns only the canonical tag dictionary (21 default tags). It distinguishes from the sibling tool 'ecosystem_tag_apply_batch' which actually applies tags.

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

Usage Guidelines5/5

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

The description explicitly says 'This tool only returns the canonical tag dictionary (21 default tags). Use ecosystem_tag_apply_batch to actually apply tags to repos.' This provides clear when-to-use and when-not-to-use guidance, naming the alternative tool.

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

ecosystem_trigger_debateA

Stage 2 — Build debate dispatch payload (Leader still calls debate_start).

Validates that each repo_id has at least one architecture_done review, then returns a payload (suggested topic + roles + linked review_ids) so the caller can invoke the existing debate_start MCP tool. After debate_start returns a meeting id, call ecosystem_link_debate_meeting to write debate_meeting_id back onto each review row.

ParametersJSON Schema
NameRequiredDescriptionDefault
repo_idsNo1-5 finalist repo ids selected from the Stage 1 batch.
research_goalNoDrives the suggested meeting topic.
suggested_judgeNoAgent name to rule on the debate. Returned as a suggestion, overridable at debate_start.team-lead
suggested_criticNoAgent name to attack the adoption case. Returned as a suggestion, overridable at debate_start.code-reviewer
suggested_advocateNoAgent name to argue for adopting the repos. Returned as a suggestion — the caller may override it when calling debate_start.backend-architect

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden. It discloses that the tool performs validation (checks for architecture_done reviews), produces a suggested payload, and does not itself start the debate (explicitly notes Leader still calls debate_start). This sets clear expectations about side effects — that nothing is written until debate_start and ecosystem_link_debate_meeting are called. Missing: no mention of what happens on validation failure (does it error, return partial payload?), but the core behavior is well disclosed.

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

Conciseness4/5

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

The description is reasonably compact for the complexity involved — three sentences covering purpose, validation, and follow-up sequence. The title line 'Stage 2' adds orchestration context. Could be tightened: the inline code formatting and follow-up sentence could be combined, but the structure is effective and front-loads the key purpose.

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

Completeness4/5

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

This is a relatively complex staged tool (validate → build payload → hand off to debate_start → link meeting). The description captures the orchestration flow well and references the output schema (payload with topic + roles + review_ids). With an output schema present and 100% parameter coverage, the description adequately rounds out the picture. Missing: error/validation-failure behavior and what happens if a repo lacks architecture_done — whether it's skipped or errors.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema documents all 5 parameters thoroughly. The description does add context: it clarifies the parameters are 'suggested' and 'overridable at debate_start' for the judge/critic/advocate roles, and notes repo_ids are finalists selected from Stage 1. However, the description doesn't explain format constraints (e.g., repo_id format) or how research_goal influences topic generation beyond what the schema states. Baseline 3 is appropriate given full schema coverage.

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

Purpose4/5

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

The description clearly states it builds a debate dispatch payload, validates architecture_done reviews, and returns a payload for the caller to invoke debate_start. Verb+resource are specific and it distinguishes itself from debate_start (which it explicitly delegates to) and ecosystem_link_debate_meeting (which it names as the follow-up). Slight deduction because the core purpose — 'build a debate dispatch payload' — could be clearer about what debate dispatch means, but the follow-up sentences explain the mechanics.

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

Usage Guidelines4/5

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

The description provides clear context: it validates repo_ids have architecture_done reviews, then returns a payload for the caller to invoke debate_start. It also explicitly names the sequential relationship — first debate_start, then ecosystem_link_debate_meeting. This gives good when-to-use guidance distinguishing it from sibling tools. Deduction for not explicitly stating when NOT to use it or listing alternative dispatch paths.

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

event_listA

List recent events in the system, optionally filtered.

All four filters were already implemented server-side; the tool just never exposed them, so every call had to pull the global firehose and eyeball it (fixed 2026-07-27).

Default response is a COMPACT projection (marked by view="compact" + hint — it is a trimmed view, NOT missing fields): each row keeps id/type/source/ts plus a one-line summary derived from the event payload. Use fields="all" for full payloads.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoExact event type, e.g. "task.completed" / "agent.created"
limitNoMaximum number of events to return, default 50 (compact view caps the window at 60 rows; fields="all" is uncapped)
fieldsNo"compact" (default, trimmed projection) / "all" (full rows)compact
sourceNoExact event source, e.g. "team:<id>" / "agent:<id>" / "repository"
entity_idNoFilter to one entity (task / agent / meeting id)
project_idNoScope to a project — resolves to that project's teams and returns their team/agent/task events (empty = no project scoping; pass "auto" to use the active project)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations provided, the description carries the full behavioral burden, and it does well. It discloses the compact projection behavior ('view="compact"' trimmed view NOT missing fields), explains the server-side filter implementation history, and clarifies the default output shape. It doesn't mention auth requirements, rate limits, or pagination beyond the cap note, but the output-schema presence reduces that burden.

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

Conciseness4/5

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

The description is well-structured with the main purpose first, a history/context note, then the compact-projection detail. It's readable and front-loaded with the core purpose. The history note about fixing server-side filters is useful context but slightly verbose for the tool's operational description. Still, every sentence earns its place — the firehose-to-filtered evolution explains why this tool exists.

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

Completeness5/5

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

Given 6 optional parameters with 100% schema coverage and an output schema that documents the return shape, the description covers the essential concerns: default behavior, compact vs. full projection semantics, the cap behavior, and filter scoping options. The tool is a read/list operation with no mutation concerns, so the absence of auth/permission caveats is acceptable. Very complete for its complexity.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. The description adds significant value beyond the schema: it explains the compact vs. all projection difference (important for agents deciding whether to request full payloads), clarifies the 60-row cap on compact view versus uncapped for fields='all', and the project_id 'auto' semantics for active project resolution. The limit schema description also provides the cap context, supplementing well.

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

Purpose5/5

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

The description clearly states 'List recent events in the system, optionally filtered' with a specific verb+resource. It explains all four filters are server-side and that the tool previously only exposed a global firehose. The purpose is distinct from sibling tools like task_status, team_status, and agent_activity_query, which target specific entities rather than a cross-system event stream.

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

Usage Guidelines4/5

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

The description gives clear context on when to use the tool (listing recent system events, optionally filtered by type/source/entity/project). It doesn't explicitly name alternative tools for exclusions, but the filtering options and the note about it being a firehose vs. filtered tool provide clear usage guidance. It lacks explicit when-not-to-use guidance but is otherwise strong.

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

failure_analysisA

Analyze failed tasks, distill defense rules + training cases + improvement proposals (failure alchemy).

When a task permanently fails (exceeds retry limit), call this tool for deep failure analysis. Automatically generates three learning artifacts saved to team memory:

  • Antibody: Defensive rule suggestions to prevent similar failures

  • Vaccine: Structured failure case for new Agents to reference and learn from

  • Catalyst: System improvement proposals to drive process optimization

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYesID of the failed task
team_idYesID of the owning team

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden. It discloses that the tool generates three learning artifacts and saves them to team memory, which is a significant behavioral trait. It does not cover potential side effects on the task or rate limits, but the core behaviors are transparent.

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

Conciseness5/5

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

The description is concise, with a clear structure: purpose first, then usage condition, then output artifacts. Every sentence adds value, and there is no redundant information.

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

Completeness4/5

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

Given the tool's complexity and the existence of an output schema, the description adequately covers when to use it and what it produces (three artifacts). It does not explain whether repeated calls are safe or affect task status, but it is sufficient for typical use.

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

Parameters3/5

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

Both parameters (task_id, team_id) are described in the input schema with 100% coverage. The description adds no additional meaning beyond the schema, so baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states it analyzes failed tasks and generates three specific artifacts (antibody, vaccine, catalyst). It uses specific verbs and resources, and distinguishes itself from siblings like 'diagnose_task_failure' by emphasizing deep failure analysis and learning artifacts.

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

Usage Guidelines4/5

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

The description explicitly says to call this tool when a task permanently fails (exceeds retry limit). It does not explicitly mention when not to use it or name alternatives, but the context of deep failure analysis vs. other diagnostic tools is implied. The condition for use is clearly stated.

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

find_skillA

Find ecosystem skills/plugins using a 3-layer progressive loading system.

Layer 1 (quick recommend): Describe your task and get top 3-5 matching skills with one-line descriptions and install commands. Layer 2 (category browse): Browse all skills grouped by category (memory / code-quality / frontend / security / dev-workflow / integration / etc.). Layer 3 (full detail): Get complete documentation for a single skill including features, OS complement relationship, and variants.

The integration category holds the ecosystem integration recipes (GitHub / Slack / Linear / fullstack team) that used to live in their own ecosystem_recipes tool — each one says which external MCP server to install and which OS tools it pairs with.

ParametersJSON Schema
NameRequiredDescriptionDefault
levelNoDiscovery depth — 1=quick (default), 2=category, 3=full detail.
categoryNoCategory filter for level=2 (e.g., "frontend", "security", "integration"). Empty string returns all categories.
skill_idNoSkill identifier for level=3 detail lookup (e.g., "vibesec", "superpowers", "claude-mem", "github-integration").
task_descriptionNoWhat you want to accomplish (used for level=1 matching). Examples: "frontend ui design", "security audit web app", "data science jupyter", "code review PR".

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

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

There are no annotations, so the description carries full burden. It describes the 3-layer loading behavior and progressive detail levels, which is useful behavioral context. However, it does not disclose return structure, output format, or any side effects. The description does disclose the legacy migration (ecosystem_recipes content moved into integration category), which is helpful context beyond what 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.

Conciseness4/5

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

The description is well-structured with clear layer breakdowns and a final note about the integration category. Each sentence adds value and the progression is logical. It's slightly long but all content is load-bearing — the layer descriptions directly help the agent decide how to call the tool.

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

Completeness5/5

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

Given the tool has an output schema and 100% parameter coverage, the description's job is to explain the multi-level behavior, which it does thoroughly. The 3-layer explanation, category guidance, and legacy migration note make this complete for a discovery/recommendation tool with no safety concerns. The tool has no destructive or mutating behavior implied, and all 4 parameters are mapped to use cases.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all 4 parameters well. The description adds the mapping of level→parameter usage (level 1 uses task_description, level 2 uses category, level 3 uses skill_id), which adds meaning beyond raw schema. However, this mapping is implicit rather than explicitly stated as a level-to-parameter correlation table, so it adds moderate but not rich value beyond the schema.

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

Purpose5/5

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

The description clearly states this tool finds ecosystem skills/plugins with a specific verb+resource. It breaks down the three-layer progressive loading system (quick recommend, category browse, full detail), giving strong specificity. It also distinguishes itself from the many ecosystem_* sibling tools by focusing on discoverability/recommendation rather than repo management or scanning.

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

Usage Guidelines4/5

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

The description explains what each of the 3 levels is for (describe task, browse by category, get full detail) and which inputs map to which level. It doesn't explicitly say when NOT to use this vs. alternatives, but it does clarify that the integration category absorbed what used to be the ecosystem_recipes tool, which helps the agent route correctly. It provides clear context for choosing the right level, though it doesn't enumerate alternative tools to prefer.

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

fleet_dispatchA

Dispatch an operational instruction to another ship (CC session) in the fleet.

The fleet down-channel drives an EXISTING idle session to run one turn via headless claude -p --resume (fleet-layer design §4). Use it to nudge an idle ship to advance a task or report its status - NOT to make strategic decisions on the user's behalf (the dispatched turn is constrained to operational work).

Safety gate (enforced server-side, no subprocess spawns until it passes):

  • The target must be RESUMABLE: its transcript file still exists.

  • The target must NOT be user-live: its file must be idle beyond a conservative guard (FLEET_DISPATCH_MIN_IDLE_SECONDS, > the 15min live window) so a dispatch never competes with someone typing in that session. A too-fresh target is refused with availability="live".

  • Dispatches are deduped per-session, share the global wake concurrency limit and circuit breaker, and every one is ledgered in wake_sessions.

Get target_session_id from the fleet view / project summary (each ship's session_id). This tool RECOMMENDS nothing and DECIDES nothing strategic; it only relays an operational instruction to an idle ship.

ParametersJSON Schema
NameRequiredDescriptionDefault
max_turnsNoMax turns for the dispatched run (0 = server default)
project_idNoProject scope (optional; inferred from the session's agents if empty)
instructionYesThe operational instruction (advance task X / report status / etc.)
tools_levelNoTool preset for the dispatched turn - "safe" (default) or "with_bash" (adds Bash). Never exceeds the requested preset.safe
target_session_idYesThe ship's CC session id to resume and dispatch to

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations provided, the description carries the behavioral burden and largely delivers: it discloses the headless resume mechanism, dedup-per-session behavior, shared wake concurrency/circuit-breaker constraints, ledgering in wake_sessions, and the conservative idle guard with its refusal outcome (availability='live'). Minor gap: the return/response shape (beyond the availability field) isn't described, though an 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.

Conciseness3/5

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

The description is thorough but somewhat dense; the safety-gate section is detailed and valuable but runs long with layered sub-clauses. It's front-loaded with the core purpose first, which is good. It earns its length overall but could be tightened without losing the essential safety/disclosure information.

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

Completeness5/5

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

For a side-effecting dispatch tool with an output schema, no annotations, and 5 parameters, the description is remarkably complete: it covers behavior, safety constraints, failure modes, concurrency limits, source of the key parameter, and explicit non-goals. This is well-rounded for the agent to make a correct invoke/no-invoke decision.

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

Parameters4/5

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

Schema description coverage is 100%, giving a baseline of 3. The description adds value by explaining what an 'instruction' means in operational terms (advance task X / report status) and adds context about target_session_id's source, and clarifies max_turns/tools_level defaults behavior (tools_level 'never exceeds the requested preset'). This goes slightly beyond schema, warranting a 4.

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

Purpose5/5

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

The description states a specific verb+resource+mechanism: 'Dispatch an operational instruction to another ship (CC session) in the fleet' via headless `claude -p --resume` on an idle session. It clarifies what the tool does (relay operational work, nudge idle ship) and what it does NOT do (no strategic decisions), clearly distinguishing it from sibling tools like task_run, channel_send, and agent_update_status.

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

Usage Guidelines5/5

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

Provides explicit when-to-use guidance ('Use it to nudge an idle ship to advance a task or report its status'), explicit when-not ('NOT to make strategic decisions'), and even defines the safety gate conditions that must hold (resumable, not user-live). It tells the agent where to source the key parameter ('Get target_session_id from the fleet view / project summary').

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

meeting_attendance_checkA

Check which expected participants have spoken in the current round.

Use this after spawning all Agents via dispatch_plan to verify attendance before advancing to the next round or concluding the meeting.

ParametersJSON Schema
NameRequiredDescriptionDefault
meeting_idYesMeeting ID

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It discloses the basic read operation but does not mention any behavioral traits like side effects, permissions required, or error states. Minimal transparency beyond the purpose.

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

Conciseness5/5

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

Two sentences, no fluff. The first sentence states purpose, the second provides usage guidance. Every word is useful and front-loaded.

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

Completeness3/5

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

The description is adequate given the presence of an output schema (not needing return value details). However, it lacks information about edge cases (invalid meeting, no participants, round not started) and potential error conditions, making it somewhat incomplete.

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

Parameters3/5

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

The input schema has one parameter (meeting_id) with 100% coverage. The description does not add any extra meaning beyond the schema's 'Meeting ID' label. Baseline 3 is appropriate.

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

Purpose4/5

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

The description clearly states the action (check) and resource (expected participants) with context (spoken in current round). However, it does not explicitly differentiate from sibling tools like agent_activity_query or meeting_read_messages, which could have overlapping functionality.

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

Usage Guidelines4/5

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

The description provides explicit guidance: use after spawning agents via dispatch_plan and before advancing to next round or concluding. It clearly indicates when to use, but does not mention when not to use or alternatives.

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

meeting_concludeA

Conclude a meeting, marking it as completed.

By default checks that all expected participants have spoken before concluding. Set force=True to override, but this will be recorded in the event log.

ParametersJSON Schema
NameRequiredDescriptionDefault
forceNoForce conclude even with missing participants (records warning event)
summaryNoOptional conclusion summary text (stored in team memory)
meeting_idYesMeeting ID
validate_attendanceNoCheck that all expected participants have spoken (default True)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description adds behavioral context: force=True records a warning event. However, it does not disclose other side effects (e.g., notifications, irreversible completion) or prerequisites (e.g., meeting must be active). More transparency would be beneficial.

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

Conciseness5/5

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

The description is extremely concise: two short paragraphs with no redundant text. The first sentence immediately states the primary action, and the following sentences add essential details efficiently.

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

Completeness4/5

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

Given the presence of an output schema (handling return values) and 100% parameter coverage, the description is nearly complete. It covers the key behavioral aspects (default check, force warning) but omits details like whether the meeting can be reopened or if participants are notified.

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

Parameters3/5

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

Schema coverage is 100% with parameter descriptions. The tool description repeats some of this info (e.g., force records an event) but does not add new meaning beyond the schema. Thus scores baseline 3.

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

Purpose5/5

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

The description clearly states 'Conclude a meeting, marking it as completed.' This is a specific verb-resource pair that distinguishes it from sibling tools like meeting_update or meeting_attendance_check, 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.

Usage Guidelines4/5

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

The description explains the default behavior (attendance check) and when to override with force=True. It does not explicitly mention alternative tools for attendance checks, but the context from siblings implies such options. The guidance is clear for basic use.

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

meeting_createA

Create a team meeting and return a ready-to-use dispatch_plan for spawning participant Agents.

Supports two participant formats:

  1. Legacy (strings): participants=["arch-lead", "backend-arch"] Returns dispatch_plan with empty launch_call + deprecation warning.

  2. Structured (dicts): participants=[{"name": "arch-lead", "agent_template": "software-architect", "role": "负责评估架构方案", "context_files": ["docs/arch.md"], "expected_output": "三段式"}] Returns dispatch_plan with fully populated launch_call.params ready to paste into Agent tool.

ParametersJSON Schema
NameRequiredDescriptionDefault
topicYesMeeting discussion topic
roundsNoCustom round structure e.g. [{"topic": "立场", "rule": "每人3段"}]
team_idNoTeam ID or name (optional, auto-uses active team if empty)
templateNoMeeting template, default "free"free
materialsNoGlobal materials all participants must read (file paths)
team_nameNo会议归属的团队名(仅用于 OS 侧归属解析);不会写进 launch_call —— CC Agent 的 team_name 参数已废弃且被忽略
participantsNoParticipant list — strings (legacy) or structured dicts (recommended)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It clearly discloses the deprecation warning behavior for legacy string participants and the difference in output (empty launch_call vs fully populated). It also adds context that team_name is deprecated and ignored by the CC Agent, clarifying a behavioral quirk. This is meaningful behavioral transparency 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.

Conciseness4/5

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

The description is well-structured with a lead sentence stating purpose, then a compact two-bullet format breakdown. Every sentence adds value; there's no filler. It's slightly longer than minimal but the format examples justify the length given the complexity of the participants parameter. Not a 5 because it could be tightened slightly, but it's efficient.

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

Completeness4/5

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

The tool has 7 params, an output schema, and no annotations, so the description must carry significant weight. It covers both input formats in depth, explains the output dispatch_plan difference, and clarifies the deprecated team_name field. The presence of an output schema means return-value documentation isn't needed in text. This is reasonably complete for a moderately complex tool, though it doesn't mention behaviors like required rounds count, meeting validation, or error cases.

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

Parameters4/5

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

Schema coverage is 100%, so the schema already describes all 7 parameters. However, the description adds real value by explaining the participants parameter's two accepted formats with concrete examples, showing the structure of structured dicts (name, agent_template, role, context_files, expected_output) and what each produces. It also clarifies the team_name deprecation. This goes beyond the generic schema descriptions.

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

Purpose5/5

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

The description uses a specific verb ('Create') plus resource ('team meeting') and clearly states the outputs: a dispatch_plan and an Agent tool launch_call. It distinguishes itself from sibling tools by explicitly covering the two participant formats (legacy strings vs structured dicts), which no sibling description implies.

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

Usage Guidelines4/5

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

The description clearly explains when to use structured vs legacy participant formats and what each returns, giving practical guidance on format selection. It doesn't explicitly name alternatives or state 'use this when X' exclusions, but the format guidance plus the sibling set (meeting_send_message, meeting_conclude, meeting_update) provides adequate context. No explicit when-not-to-use guidance, so not a 5.

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

meeting_listA

List meetings for a team, optionally filtered by status.

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNoFilter by meeting status: "active" or "concluded" (optional, returns all if empty)
team_idNoTeam ID or name (optional, auto-uses active team if empty)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It discloses key behavioral traits: optional status filter and team auto-selection. However, it does not mention ordering, pagination, or whether it lists only future meetings or all. Despite this, the context is adequate for a simple list tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence of 10 words. Every word is necessary, and there is no extraneous information. It is appropriately sized for the tool's simplicity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity (2 optional params, no required params, output schema exists), the description covers the main purpose and key behavioral hint (team auto-selection). It could be more specific about the time range of meetings listed, but overall it is sufficiently complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with both parameters fully described in the schema. The description adds no new meaning beyond 'optionally filtered by status', which is already implied by the schema. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'List', the resource 'meetings', and the scope 'for a team' with an optional status filter. It distinguishes this tool from sibling tools like meeting_create and meeting_update, as it is specifically for listing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for listing meetings but does not provide explicit guidance on when to use it versus alternatives (e.g., meeting_template_list) or when not to use it. No when-to-use or when-not-to-use conditions are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

meeting_read_messagesB

Read all discussion messages in a meeting.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of messages to return, default 100
meeting_idYesMeeting ID

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description carries full burden. It does not disclose behavioral traits such as message ordering, pagination behavior, or error handling (e.g., for nonexistent meetings). The minimal description leaves ambiguity.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely concise: one sentence, six words. Every word is necessary and clear, with no wasted content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema and simple parameters, the description is mostly complete for a read operation. However, it lacks mention of ordering or pagination behavior, which would be helpful for full context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with both limit and meeting_id having descriptions. The description adds no additional meaning beyond the schema, 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Read' and the resource 'all discussion messages in a meeting', distinguishing it from siblings like meeting_send_message and meeting_list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives (e.g., meeting_send_message for writing, channel_read for channels). The description simply states what it does without contextual usage advice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

meeting_send_messageA

Send a discussion message in a meeting.

Discussion rules:

  • Round 1: Each participant presents their views

  • Round 2+: Must read previous speakers' messages first, cite and respond to specific points

  • Final round: Summarize consensus and disagreements

SECURITY: Set caller_agent_id to the actual agent making this call. If it differs from agent_id, the message is flagged as impersonation in the audit log. Leader sending on behalf of others should set caller_agent_id='team-lead'.

ParametersJSON Schema
NameRequiredDescriptionDefault
contentYesMessage content
agent_idYesID of the speaking Agent
agent_nameYesName of the speaking Agent
meeting_idYesMeeting ID
round_numberNoDiscussion round number, default 1
caller_agent_idNoActual caller identity (empty = legacy, no audit)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully carries behavioral disclosure. It details discussion rules, security requirements for caller_agent_id, impersonation flagging, audit implications, and legacy behavior, giving comprehensive insight into tool behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with purpose first, then rules and security. It is concise yet covers essential details. A slightly more streamlined layout could improve readability, but no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema (though not shown) and full parameter descriptions, the description covers behavioral rules and security comprehensively. It could mention error scenarios or idempotency, but for a messaging tool, it is sufficiently complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (baseline 3). The description adds value beyond schema by explaining the context and security semantics for caller_agent_id and agent_id, and the round rules enhance round_number, so it goes above baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool sends a discussion message in a meeting, with specific verb and resource. It distinguishes from siblings like meeting_read_messages or meeting_create by focusing on message sending and including discussion rules.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit discussion round rules (round 1, 2+, final) which guide when to use and how to behave, but does not directly compare to alternative tools like meeting_read_messages or outline exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

meeting_template_listA

List available meeting templates and their round structures.

Returns: templates: All available templates with round structure details

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the return format without mentioning side effects, permissions, rate limits, or that it is read-only. The agent cannot infer safety or constraints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, immediately stating the purpose and then the return format. Every sentence is essential, with no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the trivial parameter set and presence of an output schema (not shown), the description adequately covers what the tool does. It could mention that all templates are returned without filtering, but overall it is sufficient for a simple list tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, so the input schema covers 100%. The description does not need to add parameter info. According to the rubric, 0 parameters yields a baseline of 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('List') and clearly identifies the resource ('available meeting templates') and their 'round structures'. It distinguishes itself from sibling tools like 'agent_template_list' by specifying meeting templates.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs alternatives (e.g., 'agent_template_list', 'meeting_create'). No mention of prerequisites or context. The description does not help the agent 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.

meeting_updateA

Update meeting fields (topic, participants, notes).

Use this to add conclusions/notes to a meeting or update its topic. To formally conclude a meeting (mark as concluded), use meeting_conclude instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
notesNoMeeting notes or conclusion summary to store (optional)
topicNoNew topic text (optional)
meeting_idYesMeeting ID (required)
participantsNoUpdated participant list (optional)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It only says 'Update meeting fields' without disclosing any behavioral traits such as immediate effect, required permissions, or whether updates are reversible. Lacks transparency beyond the basic action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences conveying essential information. First sentence states the resource and fields; second provides usage guidance and alternative tool. Extremely concise with no redundant content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity of the tool (update fields), the description covers purpose and usage. However, lacks behavioral transparency and does not mention any preconditions or side effects. Output schema exists, so return value details are not needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all parameters. The description adds little beyond what is in the schema (e.g., 'add conclusions/notes' is already in the notes parameter description). Baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the verb 'Update' and the resource 'meeting fields' (topic, participants, notes). It distinguishes from sibling 'meeting_conclude' by explicitly stating that concluding should use a different tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit when-to-use: 'add conclusions/notes to a meeting or update its topic'. Also gives a clear when-not-to-use: 'To formally conclude a meeting... use meeting_conclude instead', pointing to the appropriate alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

memory_addA

Add a direction-layer memory — the team's shared, cross-task standing preferences.

方向层 = 低频·高价值密度·跨任务长寿命的偏好/纠正/约束/设计意图。每个派出 的 agent 出生即注入方向层,"全中文""完成即汇报"这类偏好不再靠手抄进 prompt。

写入检验(软门槛):这条能影响多少未来任务?只影响单个任务的 → 去 task_memo_add(情景层),不要写这里。

体量红线是单一轴:存储上限 = 注入预算。方向层按桶计字符配额—— global 1200 字 + 每个 project 1500 字 + user 300 字,一个会话实际继承 3000 字;单条仍 ≤ 400 字。存得下的一定传得到,写不进去的就是真的没位置: 超限时本工具返回该桶全部有效条目(id / kind / 字数 / 全文)+ 用量缺口, 要求当轮先 memory_invalidate(可用 content_match 子串定位)或 memory_reconcile_apply 腾出空间,再重试本次写入。 超长内容改写成「触发条件 + 指向权威文件」的指针条目(如 "涉及生产/集群/DB 时遵守只读铁律,详见 ~/.claude/CLAUDE.md"),正文外置。

写入侧安全扫描:方向层条目会进每个派出 agent 的 system prompt,因此不可见 Unicode、提示注入句式(覆盖既有指令 / 套取系统提示 / 伪造对话角色)、凭据 形态一律拒绝入库。

kind 四类(决定注入截断优先级 constraint>design>directive>preference):

  • constraint(禁令/护栏):一句话、可机检、终身有效。 如 "所有输出使用中文"、"git 提交绝不自动加 agent 署名"。

  • design(价值排序/设计意图):缺显式指令时的取舍依据。 如 "技术决策偏向质量/简洁/健壮/长期可维护,不看重开发成本"。

  • directive(方法论/工作方式):回答"怎么干"。 如 "完成即按问题→根因→解法→验证汇报,不攒批次"。

  • preference(格式偏好):可选,如 "每句一行便于 diff"。

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNoconstraint / design / directive / preferencepreference
scopeNoglobal(全局)/ project(当前项目)/ user(用户级)。 写 global 前自问:**这条对任意目录的任意会话都成立吗?** 提及具体 项目/仓库/书稿/某次任务的一律 scope=project——未注册目录会落入本目录 指纹临时桶("dir:..."),只被本目录的会话继承,绝不广播成全局记忆。global
contentYes记忆内容(单条 ≤ 400 字,且须放得进本桶字符配额;超长改指针条目)
supersedesNo可选,被本条置换失效的旧 memory id(偏好被改 = 新条 supersede 旧条,Zep 失效语义不删除)
source_refsNo可选,溯源 id 列表(回指 memo/report/meeting,蒸馏提升时用)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It extensively documents behavioral traits: quota/overflow behavior (returns all bucket entries + usage gap on overflow), security scanning (rejects invisible Unicode, prompt-injection patterns, credential forms since entries enter agents' system prompts), the injection truncation priority (constraint>design>directive>preference), and the '存得下的一定传得到' guarantee. Loses one point only because the exact return format on success isn't described (though 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but densely informative — every section earns its place, covering purpose, write-check, quota, overflow protocol, pointer-entry strategy, security, and kind taxonomy. It uses clear structural markers (bold, bulleted kind categories, code examples) and front-loads the core purpose. The only deduction is length; while justified, it's substantial and slightly dense for quick scanning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex memory-writing tool with a rich output schema, the description is remarkably complete. It covers the direction-layer concept, quota system across scopes, overflow handling with concrete sibling tool references (memory_invalidate, memory_reconcile_apply, task_memo_add), security constraints, and the kind taxonomy with examples and truncation priority. The pointer-entry pattern for long content and soft-threshold test round out what an agent needs to correctly decide and execute.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so all 5 parameters are documented in the schema. The description adds value beyond the schema: it explains the four kinds with concrete examples and their truncation priority ordering, defines scope inheritance semantics (project-specific contents that list specific repos fall to dir: fingerprint buckets, never broadcast globally), the '≤400 char' rule per entry, and the supersedes semantics (Zep invalidation without deletion). This meaningfully enriches what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool adds a 'direction-layer memory' — shared cross-task standing preferences. It distinguishes from sibling task_memo_add (情景层) explicitly and defines the exact scope with detailed kind taxonomy. The verb 'add' plus the complex resource ('direction-layer memory with four kinds') is highly specific.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Excellent when/when-not guidance. It explicitly says single-task preferences should go to task_memo_add (情景层), not here. It provides a soft-threshold test ('how many future tasks does this affect?'), defines quota limits with per-scope buckets, and explains the overflow protocol (when full, return all entries and require memory_invalidate or memory_reconcile_apply first). It also covers the pointer-entry rewriting strategy and security scanning.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

memory_invalidateA

Invalidate a direction-layer memory — mark it invalid without deleting.

方向层偏好过时/被推翻时显式失效(Zep 失效语义:置 invalid_at 不删除, 保留可审计轨迹)。失效后不再进注入,也默认不出现在 memory_list。

两种定位方式,二选一:memory_id 精确定位,或 content_match 子串定位 (手里只有原文时免去先查一次 id——被配额顶回来的那一刻正是这种处境)。 子串必须唯一命中当前上下文的有效条目:命中 0 条或多条一律不动数据,多条时 返回候选让你给出更精确的子串。

ParametersJSON Schema
NameRequiredDescriptionDefault
memory_idNo要失效的方向层记忆 id(与 content_match 二选一)
content_matchNo唯一定位子串,在有效条目正文中精确匹配(与 memory_id 二选一)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description carries full burden, and it delivers richly: discloses Zep invalidation semantics (sets invalid_at without delete, preserves auditable trail), states post-invalidation behavior (no longer injected, absent from memory_list by default), and reveals the multi-match no-op guard policy. This is thorough behavioral disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with a clear English summary, then adds Chinese operational context. The content is dense but purposeful—each section earns its place (semantics, behavior, dual-identification methods, no-op rules). Slightly verbose in the middle section but no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Has output schema, 100% parameter coverage, and the description explains return/behavior expectations: no-op for 0 or multiple matches, candidate list returned on ambiguity. Given tool complexity (dual-location, uniqueness constraints, invalidation semantics), the description is complete and self-sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and both parameters are documented in the schema. The description adds value by explaining the 'exactly one of two' relationship (memory_id XOR content_match) and the unique-match constraint on content_match, going beyond what the schema's individual descriptions convey.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb+resource: 'Invalidate a direction-layer memory — mark it invalid without deleting.' Clearly distinguishes from delete, explicitly states it sets invalid_at without removal, and contrasts with memory_list for what happens after invalidation. Well differentiated from siblings like memory_add, memory_list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use ('when direction-layer preference is stale/overruled'), describes two mutually-exclusive location methods (memory_id vs content_match), and gives clear when-not (0 or multiple matches result in no-op). Even describes the specific scenario of being quota-limited and needing to avoid an extra lookup.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

memory_listA

List direction-layer memories — valid entries by default, grouped by kind.

返回当前上下文的方向层条目:global + user 全局条目 + 当前项目的 project 级条目,按 kind 优先级(constraint>design>directive>preference)+ 时间倒序。 这是双 hook 常驻注入的同一数据源;用它审阅"派出的 agent 会继承什么"。

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNo可选,按 kind 过滤(constraint/design/directive/preference)
include_invalidatedNo是否含已失效条目(默认否)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, but description adds significant behavioral context: data source origin, default filtering (valid entries), grouping by kind order, and time ordering. Discloses read-only nature implicitly.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences in English followed by Chinese explanation, both concise and informative. Front-loads core purpose without unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given output schema existence, description fully covers purpose, behavior (grouping, ordering, filtering), and data source. Provides enough context 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.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers both parameters (100% coverage). Description adds context about default behavior (valid entries) and grouping, but does not significantly enhance individual parameter semantics beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool lists direction-layer memories, valid by default, grouped by kind, and specifies scope (global/user/project) and ordering. Distinguishes itself from siblings like memory_add or memory_search.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

States the tool is used to review 'what the agent will inherit', providing clear usage context. While no explicit alternatives or when-not-to-use are given, the purpose is well-defined.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

memory_reconcile_applyA

按需整理·应用:批量执行 LLM 精判确认后的操作(确定性,幂等)。

每条操作是一个 dict,按 op 字段分派(未知/缺字段返回 error,不阻断其余):

  • merge:{op:"merge", content:合并后新内容, memo_ids:[被并各条], memo_type?:"summary", scope_path?} —— 建新 memo,把被并各条置 invalid、 invalidated_by 指向新条(Zep 失效语义不删除)。

  • invalidate:{op:"invalidate", memo_ids:[...]} —— 逐条失效(矛盾/被推翻)。

  • score:{op:"score", memo_id, quality_score:1-10, reason} —— 补质量分, reason 入 meta。

  • promote:{op:"promote", content, kind:constraint/design/directive/preference, scope?:"project"/global/user, source_refs?:[源 memo id]} —— 蒸馏提升为方向层 条目;红线照常生效(单条 ≤400 字 + 桶字符配额 global 1200 / project 1500 / user 300,超限该条返回 error 带用量;安全扫描同样生效)。

  • keep / noop:不动(可省略)。

幂等:对已失效条目重复 invalidate/merge 返回 noop 不报错。应用后自动刷新 项目 last_reconcile_at(整理分界线;写入路径不再据此推送提示,见 api/routes/task_memo.py 顶部注释)。

ParametersJSON Schema
NameRequiredDescriptionDefault
operationsYes操作列表,每条一个 dict,按 op 字段分派为 merge / invalidate / score / promote / keep(各字段见工具说明)。 一次可混装多种 op;单条出错只返回该条 error,不阻断其余。

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden and does so richly: it documents Zep-style invalidation semantics (merge sets memo_ids invalid with invalidated_by rather than deleting), per-op error isolation, idempotency on already-invalidated items, and the enforce red-line quotas (≤400 chars per entry, global 1200 / project 1500 / user 300) with over-limit errors returning usage. That is exactly the behavioral context an agent needs before invoking.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose and determinism/idempotency claim are front-loaded, then each op type is a compact bullet with its fields. It is dense but every bullet maps to a distinct dispatch branch, so the length is largely justified; a small amount of explanatory padding (the code-path reference) could be trimmed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value explanation is unnecessary, and the description fills the remaining gaps: per-op semantics, mixed-op batching, per-item error isolation, red-line constraints, and the side effect of refreshing last_reconcile_at. Nothing an agent needs to invoke it correctly appears to be missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but the schema only declares an array of unconstrained objects with an 'op' discriminator. The description goes well beyond the schema by fully specifying the item shapes for merge, invalidate, score, promote (including kind enum values and scope options) and keep/noop, which is essential disambiguation the schema cannot provide.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb+resource: batch-applying LLM-adjudicated memory reconciliation operations, with explicit determinism and idempotency. It distinguishes itself contextually from the candidate-generation flow ('LLM 精判确认后'), but it names no sibling tool directly, so the differentiation is implied rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It clearly positions the tool: use it to apply operations after LLM adjudication has confirmed them, and it explains that keep/noop can be omitted and that unknown-field/unknown-op cases return an error without blocking. It does not explicitly name an alternative (e.g. memory_reconcile_candidates or memory_invalidate) or state when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

memory_reconcile_candidatesA

按需整理·粗筛:返回情景层候选组 + 方向层清单 + 蒸馏素材 + 操作说明。

记忆整理 = 会话内按需显式动作(CC 非常驻,无后台整理进程)。本工具只做 确定性粗筛(零 LLM)——OS 无独立 LLM 凭据,判定由你(调用工具的会话内 agent)完成,工具只负责候选粗筛与操作应用("agent 算、工具存")。

返回四块(project_id 自动按当前上下文解析):

  • candidate_groups:有效 task_memos 按 scope_path/task 聚簇、簇内 BM25 两两 相似度超阈配对成的候选组(含组内各条全文 + id)。逐组做 LLM 精判: KEEP(都留)/ MERGE(合并)/ INVALIDATE(矛盾失效)/ NOOP(不动)。

  • direction_inventory:全部有效方向层条目全文——逐条做陈旧检查(引用的 功能已退役/版本过时/世界已变 → 提 invalidate)。

  • promotion_candidates:高频跨任务反复出现的簇,蒸馏为方向层条目的素材 (promote 操作,source_refs 回指源 memo)。

  • operation_guide:四操作语义 + reconcile 三守则(只留高频有用 / 指向权威 而非复述 / 重写精简优先)+ 量大开 ultracode 提示。

判完后把确认的操作交给 memory_reconcile_apply 批量应用。

ParametersJSON Schema
NameRequiredDescriptionDefault
thresholdNo簇内 BM25 相似度配对阈值(0-1,默认 0.45)
scope_pathNo仅整理该路径作用域的 memo(留空=全项目有效 memo)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Since no annotations are provided, the description carries full burden. It discloses deterministic behavior (zero LLM), no independent LLM credentials, the agent's role in judgment, and the tool's role in coarse selection and operation application. It also details the four return blocks and their structure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is quite long and includes detailed operational instructions that could be provided elsewhere. While structured with bullet points and bold, it could be more concise. Every sentence adds value, but overall length exceeds what is strictly necessary.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (memory reconciliation with multiple output types and manual LLM steps), the description is highly complete. It explains the four output blocks, what to do with them (LLM judgment), and points to the next tool (memory_reconcile_apply). Output schema further complements completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description does not add extra meaning beyond the schema for the two parameters (threshold and scope_path). It mentions them briefly but does not elaborate on their effects or defaults more than the schema already does.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: returning candidate groups, direction inventory, promotion candidates, and operation guide for memory reconciliation. It uses specific verbs ('return', '粗筛') and distinguishes from the sibling tool 'memory_reconcile_apply' which handles the batch application step.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly explains when to use this tool (for session-based memory reconciliation as a deterministic coarse filter) and contrasts it with the LLM's judgment role and the subsequent 'memory_reconcile_apply' step. It also clarifies that this is an on-demand action, not a background process.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

model_config_getA

Get model governance state: available models (auto-discovered from local CC transcripts — the models you actually used), the current default startup model (~/.claude/settings.json "model" key), and per-model workflow agent usage over the last N days (orchestration charter observability: how much fable vs opus the fleet burned).

ParametersJSON Schema
NameRequiredDescriptionDefault
usage_daysNoAggregation window for usage stats (default 7, max 90)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It discloses that model discovery is auto-derived from local CC transcripts (a useful behavioral detail), that the default comes from a settings file, and that usage is aggregated over N days. However, it does not mention whether this is read-only, whether it makes external calls, or performance characteristics. The detail about behavior is substantive for a pure read/inspection tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single dense sentence with parenthetical asides. The parenthetical commentary like 'the models you actually used' and 'how much fable vs opus the fleet burned' adds flavor and domain context but borders on unnecessary flourish. Well front-loaded with the verb 'Get' and clear components, though slightly verbose for what could be more compact.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value detail is not required in the description. The tool's three-part return is thoroughly enumerated. The only gap is that behavioral safety (read-only nature) is not explicitly stated, but with an output schema present, the context is largely sufficient for a config inspection tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% — usage_days has a complete description (aggregation window, default 7, max 90). The description's reference to 'last N days' and 'over the last N days' reinforces but does not add meaningfully beyond the schema. Baseline 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the three things this tool returns: available models (auto-discovered), current default startup model, and per-model workflow agent usage over a time window. The verb 'get' and resource 'model governance state' are specific and unambiguous. The sibling tool model_config_set clearly complements it (get vs set), making differentiation natural.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies this is a read/config-inspection tool but does not state when to use it vs alternatives. However, model_config_set is the obvious sibling and the read-vs-write distinction is largely implied by the name. No explicit when-not-to-use guidance is given for the usage_days window bounds (max 90 in schema).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

model_config_setA

Set the default startup model for new CC sessions (writes the "model" key in ~/.claude/settings.json; empty string removes the key, restoring CC's own default). Takes effect on NEW sessions.

ParametersJSON Schema
NameRequiredDescriptionDefault
modelYesFull model ID (e.g. "claude-fable-5") or "" to reset.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description adequately discloses behavior: it writes to a specific file, explains the effect of an empty string (removing the key), and states the effect scope (new sessions only). This provides sufficient transparency for a configuration tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with a parenthetical detail, front-loaded with the action and resource. Every word adds value, and there is no wasted text. It is highly concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple nature of the tool (one parameter, no nested objects, output schema likely trivial), the description covers the key aspects: purpose, mechanism, and side effects. It is complete enough 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.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is high (100%), but the description adds meaningful context beyond the schema: it explains the effect of empty string and the scope of the change. This improves parameter understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action 'Set' and the specific resource 'default startup model for new CC sessions'. It distinguishes itself from the sibling tool 'model_config_get' by focusing on writing. The resource is precisely described, avoiding vagueness.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use (changing default model for new sessions) and notes that it takes effect only on new sessions. While it doesn't explicitly state when not to use or list alternatives, the purpose is well-defined and the scope is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

os_health_checkA

Check the health status of the AI Team OS API service.

Verifies the API service is running normally by accessing the team list endpoint, and reports one line of token-attribution coverage alongside it.

Returns: Health status info including API reachability, team count, and a usage-coverage summary (measured / dispatched per path, plus the narrowest link in the attribution chain)

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It discloses that the tool performs a read-only reachability check on the team list endpoint and additionally reports token-attribution coverage data. The returns section explains what information is delivered (API reachability, team count, usage coverage summary, narrowest link). This is a read-only operation, and the description makes that clear by describing verification rather than modification.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with a clear first sentence stating the primary purpose, followed by an elaboration of the method and a returns section. It's moderately concise with no wasted words, though slightly verbose in the returns section listing details like 'measured / dispatched per path'.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given this is a zero-parameter diagnostics tool with an output schema present, the description reasonably covers what it checks (API reachability, team count) and what additional data it reports (attribution coverage). The presence of an output schema means return values don't need full documentation. The description is adequate for a health-check utility.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so schema coverage is trivially 100%. The description doesn't need to document parameters but instead explains what the tool examines (team list endpoint) and what it returns, which adds relevant context about the tool's internal behavior despite having no inputs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it checks the health status of the AI Team OS API service by accessing the team list endpoint. It specifies the verb (check), the resource (AI Team OS API service), and the method (accessing team list endpoint), distinguishing it from siblings like team_status and team_list which check specific team/OS states.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use it (to verify API service is running normally) but does not explicitly state when not to use it or mention alternatives. For a zero-parameter diagnostics tool, the health-check purpose is fairly self-evident, but no exclusions or alternative tool comparisons are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

os_restart_apiA

Restart the AI Team OS FastAPI process safely (standardized restart flow).

Use this after backend code changes to pick up the new version without manually killing processes. The flow has three safety guards:

  1. Busy-agent guard — refuses to restart while any agent is working (status=busy) unless force=True.

  2. Port-pin guard — only ever restarts on the ORIGINAL port (default 8000, read from api_port.txt). If that port is held by an unrelated process it aborts rather than drifting to a random port.

  3. Dead-before-spawn guard — waits until the old process has fully exited and released the port before spawning the new one; never spawns on a timeout.

If the API is already down, steps 2-4 are skipped and this becomes a plain "start" of the API on its configured port.

ParametersJSON Schema
NameRequiredDescriptionDefault
forceNoBypass the busy-agent guard and restart even while agents work.
dry_runNoOnly preflight imports and return the startup plan, without shutting down, spawning, or updating shared runtime files.
source_rootNoExplicit ai-team-os repository root to import and start. Empty preserves the current environment. Restore by explicitly passing the original repository root through this same flow.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden and does so exceptionally well. It discloses three concrete safety guards: the busy-agent guard, the port-pin guard, and the dead-before-spawn guard. It also explains fallback behavior when the API is already down and describes the default port source (api_port.txt).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core action and then structured into three numbered safety guards. Despite being detailed, every sentence contributes operational context for a risky restart operation, and there is no redundant filler. The structure makes the safety conditions easy to scan.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a process-restart tool with no annotations, an output schema, and full schema parameter coverage, the description is highly complete. It explains the restart flow, the safety guards, the fallback when the API is already down, and the port-pinning behavior. Return values need not be explained because an output schema exists.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents force, dry_run, and source_root in detail. The description adds some operational context for force by tying it to the busy-agent guard, but it does not meaningfully expand on dry_run or source_root semantics beyond what the schema provides. The baseline of 3 is appropriate when the schema does the heavy parameter documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Restart the AI Team OS FastAPI process safely.' It goes beyond a tautology by defining the standardized restart flow and clearly distinguishing this operation from generic process management. No sibling tool in the provided list covers the same process-restart purpose, so the scope is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says to use it 'after backend code changes to pick up the new version without manually killing processes.' It also states when not to use it implicitly via the busy-agent guard ('refuses to restart while any agent is working unless force=True') and describes the alternative behavior when the API is already down. This gives clear when-to-use and when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

project_createA

Create a new project with a default Phase automatically created.

⚠️ IMPORTANT: Projects are automatically registered by the OS when a CC session starts. You should NOT manually create projects unless the auto-registered project is missing. The root_path MUST match the current CC session's working directory — do NOT create projects pointing to other directories.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesProject name
root_pathNoProject root directory path (must match current cwd)
descriptionNoProject description

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description carries full burden. It discloses that a default Phase is automatically created and imposes a root_path constraint. However, it does not mention error handling or other side effects, but given the lack of annotations, it is still informative.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences plus a warning block. It is front-loaded with the purpose, uses a clear warning format, and contains no fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity and the presence of an output schema, the description covers creation purpose, automatic phase creation, and critical usage constraints. 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.

Parameters3/5

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 for root_path (must match cwd) and implies description is optional, but does not add meaning beyond the schema's property descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Create a new project with a default Phase automatically created.' It also explains the limitation about auto-registration, distinguishing it from other project tools like project_update or project_delete.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit usage guidance: 'You should NOT manually create projects unless the auto-registered project is missing.' and 'The root_path MUST match the current CC session's working directory.' This provides clear when-to-use and when-not-to-use instructions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

project_deleteC

Delete a project.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesProject ID to delete

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It only states 'Delete a project.' without disclosing side effects, reversibility, or cascade deletion. The destructive nature is implied by the name, but not elaborated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no wasted words. It is appropriately sized for a simple tool, though it could be slightly more informative without losing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple one-parameter tool with output schema, the description is somewhat adequate but missing details like return value indication (e.g., success message or deleted project object) and permissions needed. It meets minimum but not full completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for the single parameter project_id. The description adds no extra meaning beyond the schema, 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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states verb 'Delete' and resource 'a project', making the action unambiguous. However, it does not differentiate from sibling tools like project_create or project_update, so it misses the highest score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives, no prerequisites or exclusions provided. The description offers no context for appropriate usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

project_listA

List all projects in the system.

Returns: projects: List of all projects with id, name, description, root_path, etc.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description partially fills the gap by stating the return format (list of projects with fields). However, it omits details like whether the list is ordered, paginated, or if any rate limits or authentication requirements exist. The description is minimal but not misleading.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: two sentences with no redundant information. The purpose is front-loaded, and the return fields are clearly listed. Every word is earned.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given zero parameters, the existence of an output schema, and the simplicity of the tool, the description is fully complete. It covers what the tool returns and does not require additional context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters, so schema coverage is 100%. Per guidelines, the baseline for 0 params is 4. The description adds no parameter information because none is needed, but it does not detract from understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'List all projects in the system' with a precise verb and resource. It specifies the return fields (id, name, description, root_path, etc.), leaving no ambiguity about the tool's function. The name itself distinguishes it from sibling list tools for other entities.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like other list tools. There are no exclusions, prerequisites, or context hints beyond the basic purpose. The agent must infer usage solely from the name and description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

project_summaryB

Get a quick project summary: status (active/inactive), teams, top tasks.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idNoProject ID (optional, auto-uses active project if empty)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden but only mentions the outputs. It does not disclose read-only nature, side effects, auth requirements, or rate limits, leaving behavioral traits unclear.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence with clear structure: verb, resource, key outputs. No wasted words, front-loaded with essential information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple single-parameter schema and presence of output schema, the description adequately covers what the tool returns. Minor omission: does not state it's read-only, but acceptable for a simple retrieval tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the description adds no new meaning beyond the schema's parameter description. The auto-use of active project is already in schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves a quick project summary, listing specific outputs: status, teams, top tasks. This distinguishes it from sibling tools like project_list or task_list_project.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives like project_list or task_list_project. The description implies usage for a single project summary but lacks exclusions or context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

project_updateB

Update a project's name, description, or root_path.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoNew project name (optional)
root_pathNoNew root directory path (optional)
project_idYesProject ID to update
descriptionNoNew description (optional)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description must disclose all behavioral traits. It only lists updatable fields without mentioning side effects, reversibility, error cases (e.g., non-existent project), or concurrency implications.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, no redundancy, every word adds value. Appropriately concise for a straightforward update operation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

While the tool is simple, the description omits return value or success indication. Given an output schema exists (not shown), additional guidance on expected outcome would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has 100% description coverage, so parameters are already documented. The description adds no additional meaning beyond listing the fields, resulting in baseline score.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the action (update) and resource (project), listing specific fields (name, description, root_path). It distinguishes from sibling tools like project_create, project_delete, and project_list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs alternatives, no prerequisites, permissions, or conditions mentioned. The description lacks context for appropriate usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

prompt_effectivenessA

Return effectiveness statistics for Agent templates.

Aggregates activity records to compute success rate, average duration, and top failure reasons per template. Also shows how many failure alchemy lessons are associated with each template.

Use this to identify which Agent templates perform well and which need prompt improvement.

ParametersJSON Schema
NameRequiredDescriptionDefault
template_nameNoOptional filter (e.g. "engineering-backend-architect"). Leave empty to return stats for all templates.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, description carries full burden. It discloses aggregation of activity records to compute success rate, average duration, top failure reasons, and associated failure alchemy lessons. Does not mention data freshness or performance, but is transparent about computed outputs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three concise paragraphs: first states purpose, second lists computed statistics, third gives usage guidance. Well-structured and front-loaded with no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has a single optional parameter and an output schema, the description provides sufficient context for an agent to understand what the tool does without needing additional details about return values.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the parameter is already well-documented in the schema. The tool description adds no additional parameter context beyond what the schema provides, resulting in baseline score of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'Return effectiveness statistics for Agent templates' with specific verb and resource. It distinguishes from siblings like agent_activity_query (raw activity) and agent_template_list (list templates) by focusing on computed statistics.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'Use this to identify which Agent templates perform well and which need prompt improvement.' Provides clear context for when to use, though doesn't explicitly mention when not to use or name alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

report_listA

List saved reports, optionally filtered by author, topic, or type.

Returns reports for the current project context, sorted newest-first.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of results to return (default 20).
topicNoFilter by topic keyword (empty = no filter).
authorNoFilter by exact author name (empty = no filter).
report_typeNoFilter by type: "research" / "design" / "analysis" / "meeting-minutes" (empty = all).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden. It discloses that the tool returns reports filtered and sorted, and operates within the current project context. It does not explicitly state it is read-only, but the 'list' verb implies non-destructive behavior. The description adds value beyond the schema by explaining sorting and scoping.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the core action and filters, then details about sorting. No extraneous words; every sentence adds value. It is appropriately concise for a list tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the input schema covers all parameters and an output schema exists, the description provides necessary context: scope (current project), sorting (newest-first), and optional filters. It is complete for a straightforward listing tool with no additional behavioral complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage with descriptions for all four parameters. The description redundantly mentions filter options (author, topic, type) but does not add new details beyond the schema. For parameters with schema descriptions, the tool description adds marginal value, meeting the baseline of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'list' and resource 'saved reports', with optional filters by author, topic, or type. This distinguishes it from sibling tools like report_read (for single report content) and report_save (for creation). The purpose is specific and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description indicates when to use the tool (to list reports with optional filters) and implicitly separates it from other list tools via the resource. However, it lacks explicit guidance on when not to use it (e.g., for reading a specific report) or mention of alternative tools like report_read.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

report_readB

Read the full content of a saved report by ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
report_idYesReport ID (UUID).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description should disclose side effects, permissions, and boundaries. It only states 'Read the full content', implying a read-only operation but omits details on error handling, size limits, or authorization requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that uses front-loaded phrasing. Every word adds value with no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one parameter, output schema present), the description covers the essential purpose. However, it could mention that it returns the full report content versus a summary, but the output schema compensates for this.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds no extra meaning beyond 'by ID', which is already implied by the schema's required report_id parameter description. No additional context about the parameter is provided.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Read') and the resource ('full content of a saved report'), with the qualifier 'by ID'. It effectively distinguishes from sibling tools like 'report_list' and 'report_save'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives (e.g., report_list for metadata, report_save for writing). It does not mention prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

report_saveA

Save a research/analysis report to the database.

Reports are stored in the database with project isolation — no filesystem permission needed. Reports appear on the Dashboard reports page automatically.

ParametersJSON Schema
NameRequiredDescriptionDefault
topicYesTopic keywords, e.g. "ai-products-march".
authorYesAgent name, e.g. "rd-scanner".
contentYesReport body in Markdown format.
task_idNoOptional task ID to associate this report with a specific task.
team_idNoOptional team ID to associate this report with a specific team.
report_typeNoOne of "research" / "design" / "analysis" / "meeting-minutes".research

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses key behaviors: project isolation and automatic dashboard appearance. With no annotations, the description must cover safety and side effects; it omits whether the tool is idempotent or can overwrite existing reports.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, front-loaded with purpose and key behavioral context. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return value details are not needed. Description covers purpose and storage behavior, but could mention constraints like size limits or update capability. Mostly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema covers all 6 parameters with descriptions. The description adds no extra semantic meaning beyond the schema, so score is baseline 3 for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool saves a 'research/analysis report to the database', with a specific verb and resource. Among sibling tools like 'report_list' and 'report_read', this uniquely identifies the save operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides context on when to use: reports are stored with project isolation, require no filesystem permissions, and automatically appear on the Dashboard. However, it does not explicitly exclude alternatives or state when not to use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

task_createA

Create a new task in a project (not bound to a team).

Project-level tasks are attached directly to the project and visible on the project task wall. Suitable for planning-phase tasks not yet assigned to a team.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagsNoTag list
titleYesTask title
horizonNoTime horizon, one of "short" / "mid" / "long"mid
priorityNoPriority, one of "critical" / "high" / "medium" / "low"medium
task_typeNoDeprecated (pipeline retired, see design doc §7) — accepted for backward compatibility but no longer attaches a pipeline. Use CC Workflow (ultracode) for orchestration; runs are tracked on the /workflows observability page.
auto_startNoIf True, immediately set status to 'running' after creation
project_idNoProject ID (optional, auto-uses active project if empty)
descriptionNoTask description

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It mentions task scope and visibility but omits side effects (e.g., triggers, notifications) and authorization needs. The presence of an output schema mitigates return value ambiguity, but the description could add more behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the core purpose, and contains no redundant information. Every sentence earns its place, making it highly efficient for an AI agent to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool complexity (8 parameters, 1 required) and the presence of an output schema, the description covers the essential purpose and context (project-level, planning-phase). However, it could be more complete by explaining post-creation behavior and how this tool relates to siblings like task_run or task_auto_match. Still, it is fairly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description does not add parameter-specific details beyond what the schema provides, except for noting that task_type is deprecated and suggesting an alternative (CC Workflow). This is useful but does not significantly raise the score above baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb (create), resource (task in project), and distinguishes from team-level tasks. It also explains the context (visible on project task wall) and suitability for planning-phase tasks, making it easy for an agent to select this tool over siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description suggests using this tool for planning-phase tasks not assigned to a team, providing clear usage context. However, it does not explicitly mention when not to use it or name alternative tools for team projects, which would further improve guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

task_execution_traceA

Get a task's execution timeline — plain, or with checkpoints + stats.

The separate task_replay tool was folded in here 2026-07-27: both answered "how did this task actually go", differing only in whether the answer carried the derived summary. include_stats=True is the old replay view.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYesTask ID
include_statsNoFalse (default) — timeline only (memo records + task lifecycle events, chronological). True — adds `checkpoints` (decision/summary points only) and `stats` (duration, step count, subtask count, memo-type breakdown).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden. It transparently discloses the tool's history (task_replay fold-in, 2026-07-27) and the behavioral difference of include_stats. However, it doesn't disclose what happens on invalid/missing task_id, whether this is read-only versus potentially expensive, or output characteristics beyond the derived summary distinction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Efficient and well-structured: a lead sentence stating the core function, then a compact historical note explaining the merge. No wasted words; the tool-fold history is genuinely useful for agents that might remember task_replay.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There's an output schema present, so return-value explanation isn't required. For a two-param read tool with full schema coverage, the description adequately covers behavior. Minor gap: no note about failure modes or performance for stats computation, but this is a fairly complete description for a filtered read tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both params. Still, the description adds real value by explaining include_stats in plain terms (the old replay view) and clarifying the distinction between timeline-only versus checkpoints+stats. The chronological memo/lifecycle-event detail goes beyond the schema's terse boolean description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clear verb+resource: 'Get a task's execution timeline' with the choice of plain vs checkpoints+stats. It's identifiable against siblings like task_status or task_run, though it doesn't explicitly name a distinguishing alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains the plain-timeline vs include_stats distinction well. It doesn't explicitly name sibling alternatives to use instead ('when not to use this'), but the use-case framing around 'how did this task actually go' is clear. Notably it folds in task_replay history, which helps an agent understand the consolidation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

task_list_projectA

Get the task wall — project-scoped by default, team-scoped on request.

This is the single task-wall entry point (the team-only taskwall_view was folded in here 2026-07-27): pass team_id to narrow the wall to one team, leave it empty to get every team under the project plus the project-level tasks that belong to no team.

Default response is a COMPACT projection (marked by view="compact" + hint — it is a trimmed view, NOT missing fields): each task row keeps id/title/priority/status/score/assigned_to/tags + 80-char desc excerpt (plus result/depends_on/subtask_count when present). Full details of a single task: task_status(task_id) / task_memo_read(task_id).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax number of active tasks to return (default 50; project scope only)
fieldsNo"compact" (default, trimmed projection) / "all" (full rows)compact
offsetNoPagination offset for active tasks (default 0; project scope only)
statusNoFilter by status: pending/running/blocked/completed (default all active; project scope only)
horizonNoFilter by time horizon: "short" / "mid" / "long" (optional)
team_idNoTeam ID or name — narrows the wall to one team (optional)
priorityNoFilter by priority: "critical" / "high" / "medium" / "low" (optional; comma-separated accepted for multiple)
project_idNoProject ID (optional, auto-uses active project if empty; ignored when team_id is given)
include_completedNoInclude completed tasks (default False; project scope only)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses the compact projection behavior prominently with hints, explicitly warns that view='compact' is a trimmed view and NOT missing fields, and explains which fields are kept. This is rich, preemptive clarification about the most likely source of agent confusion.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose in the first sentence, then uses clear sectioned paragraphs for scoping behavior and the compact projection caveat. Every sentence earns its place — no filler, no restating of schema fields. It's appropriately detailed for a tool with 9 parameters and a compact-vs-full projection distinction.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (9 params, dual scoping modes, compact/full projections, folded-in sibling tool) and that an output schema exists, the description is complete. It covers scope selection, projection semantics, the consolidation history, and points to alternatives for full task detail, leaving no material ambiguity for the agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds value by explaining the team_id semantics (narrow vs empty = all teams) and the project_id default behavior (auto-uses active project; ignored when team_id given), beyond what the schema states. However, most parameter details (limit, offset, status enums, priority options) are fully covered by the schema already.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it retrieves 'the task wall' with specific verbs and clarifies project-scoped vs team-scoped behavior. It distinguishes itself from siblings by noting it's the 'single task-wall entry point' and explicitly mentions that taskwall_view was folded into it, and points to task_status/task_memo_read as the full-detail alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit guidance: pass team_id to narrow to one team, leave empty for all teams plus project-level tasks. It also explicitly names alternatives (task_status for full single-task details, task_memo_read for memo) telling the agent when NOT to use this tool and what to use instead.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

task_memo_addA

Add a memo record to a task — for tracking progress, recording decisions, marking issues.

ParametersJSON Schema
NameRequiredDescriptionDefault
authorNoAuthor name, default "leader"leader
contentYesMemo content
task_idYesTask ID
memo_typeNoType, one of "progress" / "decision" / "issue" / "summary"progress
supersedesNoOptional memo ID this entry replaces; the old memo is marked invalid (Zep 失效语义,不删除)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description mentions the 'supersedes' parameter behavior (old memo marked invalid) which adds behavioral context beyond the schema. However, it does not disclose potential side effects on the task, required permissions, rate limits, or output details. Since no annotations exist, the burden is partially met but incomplete.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, well-structured sentence that is action-oriented and front-loaded with the tool's purpose. No wasted words; every part adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema and full parameter coverage, the description is largely complete for a simple 'add' operation. However, it lacks guidance on when to use this tool over sibling tools like memory_add or decision_log, which would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All five parameters have detailed descriptions in the schema (100% coverage), so the tool description adds little extra meaning beyond the overarching purpose. The description's mention of use cases aligns with the memo_type parameter but does not deepen understanding of individual parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Add' and resource 'memo record to a task', and lists specific use cases (tracking progress, recording decisions, marking issues). This distinguishes it from sibling tools like memory_add (general memory) or decision_log (logging decisions).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear contexts for using the tool (progress tracking, decision recording, issue marking), but does not explicitly state when not to use it or suggest alternatives. No exclusions or when-not guidance is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

task_memo_readA

Read all memo records for a task — read before picking up a task to understand historical progress.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYesTask ID

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It identifies the operation as read-only (implied), but does not mention potential side effects, authentication requirements, rate limits, or return characteristics such as ordering or pagination. A more detailed disclosure would be beneficial.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, consisting of one sentence that front-loads the action and purpose. It is efficient with no wasted words, though a slightly more structured format could improve clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one required parameter, output schema present), the description is largely adequate. It covers the core functionality and use case. However, it omits details such as the format of returned data (though the output schema fills this gap) and any limitations on volume, which would enhance completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage with one parameter 'task_id' described as 'Task ID'. The description adds meaning by explaining why the tool is used (progress understanding), but does not add semantic detail beyond what the schema provides. 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool reads all memo records for a task, using a specific verb ('Read') and resource ('memo records for a task'). It distinguishes itself from the sibling tool 'task_memo_add' which writes memos, 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use the tool ('read before picking up a task to understand historical progress'). It does not, however, mention when not to use it or offer alternative tools, which would strengthen the guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

task_runA

Put a task on a team's wall. Nothing executes it — an Agent has to pick it up.

The name is historical: there was once a worker pool that would "run" the task. That pool is retired; this tool only creates the row. Dispatch is yours to do (Agent(...) / SendMessage), and the sub-agent then writes progress back with task_memo_add.

Priority and horizon drive the task wall's ordering, so set them here — the old docstring told callers to "set priority and horizon" while the signature had no such parameters, and any value passed was silently dropped (fixed 2026-07-27).

ParametersJSON Schema
NameRequiredDescriptionDefault
tagsNoFree-form tags for filtering the wall
modelNoSpecify model to use (optional, metadata only)
titleNoTask title (optional)
horizonNo"short" (default) / "mid" / "long"
team_idYesTeam ID or name
priorityNo"critical" / "high" / "medium" (default) / "low"
depends_onNoDependency task IDs — task auto-unlocks when they complete
assigned_toNoAgent name/id this task is meant for (optional)
descriptionYesTask description

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden and delivers richly: it discloses the historical misnomer, that values were previously silently dropped, that priority/horizon are honored now (fixed 2026-07-27), and that the tool only creates a row, never executes. This goes well beyond what annotations would have covered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with three focused paragraphs: what it does, what it doesn't do, and why the name/behavior is the way it is. The history note is slightly verbose for a tool description but earns its place by preventing callers from assuming execution behavior. Slightly long but efficiently organized.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 9-parameter task-creation tool with full schema coverage and an output schema, the description covers the critical gaps: it clarifies the no-execution behavior, dispatch responsibility, memo feedback loop, and priority/horizon semantics. It doesn't enumerate every parameter (schema does that), and the output schema presumably describes return values. Reasonably complete for its complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema documents all 9 parameters. The description adds context that priority and horizon 'drive the task wall's ordering' — valuable behavioral framing beyond the schema's enum strings. However, it doesn't elaborate on tags, depends_on, assigned_to, or model semantics; baseline 3 is appropriate with full schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool 'puts a task on a team's wall' and explicitly clarifies it does NOT execute tasks — distinct from what the historical name implies. It effectively distinguishes from task_create/task_update siblings by framing this as wall-posting with separate dispatch, though it doesn't name an alternative tool directly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit guidance on when this tool is appropriate: it creates the wall row only, dispatch is left to the caller via Agent(...) / SendMessage, and progress is written back via task_memo_add. It explicitly warns that nothing executes the task and an Agent must pick it up, which is valuable exclusions guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

task_statusA

Query the current status of a task.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYesTask ID

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden for behavioral disclosure. It only states 'Query' but does not confirm read-only behavior, potential side effects, or response format beyond what the output schema implies. More detail would be beneficial.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, no redundancy, front-loaded with key information. Efficient and clear.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity, the description covers the essential purpose. The existence of an output schema partially explains return values, reducing the need for elaborate description. However, a brief mention of what statuses might be returned could improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (task_id with description 'Task ID'), 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Query' and the resource 'current status of a task,' making the tool's purpose unmistakable. It easily distinguishes from sibling tools like task_create or task_run.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives (e.g., task_subtasks might also show status). The tool is simple, so context is implied, but no exclusions or alternative suggestions are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

task_updateB

Update a task's fields (partial update — only provided fields are changed).

ParametersJSON Schema
NameRequiredDescriptionDefault
tagsNoNew tag list (replaces existing tags)
titleNoNew task title
resultNoTask result text (typically filled when completing)
statusNoNew status: pending / blocked / running / completed / failed
task_idYesTask ID (required)
priorityNoPriority: critical / high / medium / low
assigned_toNoAgent name or ID to assign the task to
descriptionNoNew task description

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden but only states partial update behavior. It does not disclose side effects, permissions, or whether the update is synchronous. Parameter descriptions in schema cover per-field behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded with verb and resource, parenthetical explains partial update. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 8 parameters and many sibling tools, the description is too minimal. It lacks guidance on when to use this versus other task operations and does not address potential caveats. Output schema may help, but description is still insufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% so baseline is 3. The description adds 'partial update' context but no additional parameter-level meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool updates a task's fields and specifies it's a partial update. It distinguishes from task creation and other update tools, but does not explicitly differentiate from sibling update tools for other entities.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for partial updates where only specified fields change, but provides no explicit guidance on when not to use or mention of alternatives like task_run or task_create.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

team_briefingA

Get a team panoramic briefing — understand full team status in one call.

Returns team info, member status, recent events, recent meetings, pending tasks, and action suggestions.

Default response is a COMPACT projection (view="compact" + hint - trimmed, NOT missing fields): the roster follows the same live-first / offline-digest split as agent_list, event payloads collapse to a one-line derived summary, and pending tasks use the task-wall row projection. Measured 20,521 chars on a 173-member workflow team before projection.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax member rows to return after the offline split (default 30, capped at 200)
fieldsNo"compact" (default, trimmed rows) / "all" (full briefing)compact
team_idYesTeam ID or team name
include_offlineNoInclude offline members as rows instead of a count plus digest (default False)
offline_previewNoHow many most-recent offline members to show in the digest (default 5; ignored when include_offline is True)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It does an admirable job explaining the compact projection behavior, clarifying that compact means 'trimmed, NOT missing fields', describing how event payloads and pending tasks are projected, and even citing a measured character count on a real team. This goes well beyond a typical description.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is somewhat long (multiple paragraphs) but front-loads the core purpose in the first sentence, then layers projection details and a measured-size data point that are genuinely useful for an agent deciding how to consume the response. The compact-vs-trimmed clarification earns its place though it adds length.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a moderately complex tool with 5 parameters, an output schema, and no annotations. The description covers the response structure, the compact projection semantics, and references the related agent_list convention. It explains what the caller will receive well. Minor gap: no explicit statement about what 'action suggestions' means or costs/limits of the full briefing, but the measured-size hint partially addresses this.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all 5 parameters thoroughly (limit, fields, team_id, include_offline, offline_preview). The description adds context about the 'compact projection' concept referenced in the fields and limit parameters, reinforcing what the schema says. Baseline 3 is appropriate since the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool provides a 'team panoramic briefing' covering team info, member status, events, meetings, tasks, and suggestions. The verb 'Get' plus the resource 'team briefing' is specific, though it doesn't explicitly distinguish from siblings like team_status or team_list. The mention of 'one call' adds context.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies this is for understanding 'full team status in one call' and references the sibling agent_list convention, but provides no explicit when-to-use vs alternatives guidance. It doesn't say when NOT to use this and prefer team_status, team_list, or agent_list. Usage context is implied rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

team_closeA

Close (complete) a team — sets team status to completed and marks all busy agents as offline.

Use this when the team's mission is fully done. Members are not deleted, but their status is set to offline automatically.

team_id is REQUIRED — closing a team is not reversible from the tool面, so it never falls back to auto-resolving "the active team".

ParametersJSON Schema
NameRequiredDescriptionDefault
team_idNoTeam ID or name (required — use team_list to find it)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full transparency burden. It discloses the irreversible nature, the automatic agent status change (offline), and the lack of member deletion — meaningful behavioral context beyond what any schema could convey. It also warns that team_id never falls back to auto-resolving.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact (roughly 60 words) with every sentence earning its place. Key behaviors are front-loaded in the first sentence, and the second paragraph reinforces the critical non-reversibility constraint without redundancy. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is comprehensive for a single-parameter, irreversible operation: it covers purpose, behavioral side effects, reversal constraints, and parameter sourcing. With an output schema present, return-value explanation isn't needed. Could add slightly more on validating preconditions (e.g., confirming team completion), but overall well-covered.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for the single team_id parameter, so baseline is 3. The description adds value by stating team_id is REQUIRED (emphasizing the no-fallback behavior), noting it accepts 'ID or name', and pointing to team_list as the lookup mechanism — context beyond what the schema description provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb+resource ('Close (complete) a team'), explains the two concrete behaviors (sets status to completed, marks all busy agents as offline), and distinguishes itself from siblings like team_delete/team_list by clarifying members are not deleted but set offline.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear context for when to use ('Use this when the team's mission is fully done'), explicitly states members are not deleted (differentiating from team_delete), and emphasizes the non-reversibility. However, it does not explicitly name alternative sibling tools to check first, though team_status is implied as a precursor.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

team_deleteA

Delete a team. team_id is REQUIRED — never auto-resolved.

ParametersJSON Schema
NameRequiredDescriptionDefault
team_idYesTeam ID or name to delete

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. The description adds the important note that team_id is never auto-resolved (addressing a potential failure mode). However, it doesn't disclose whether the delete is permanent or recoverable, what the output schema looks like, or whether there are cascading effects on related resources (tasks, meetings, briefings associated with the team). For a destructive mutation tool with zero annotation coverage, this is a meaningful gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that front-loads the core purpose and includes the critical usage constraint. It's efficient with zero waste. However, given the tool's destructive nature and absence of annotations, a slightly larger description covering behavioral aspects would arguably justify the space — but as written, it is tight and to the point.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive mutation tool with zero annotations, the description is thin. It confirms the delete action and parameter requirement but omits crucial context: what happens to the team's associated data, whether deletion is permanent or reversible, permission/auth requirements, and what the output/return value indicates. An output schema exists but the description doesn't reference what it would convey. Given the complexity of team deletion (likely cascading effects across tasks, meetings, briefings), the description is not complete enough.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% — the single team_id parameter is documented in the schema as 'Team ID or name to delete'. The description adds only that it's REQUIRED and never auto-resolved, which reinforces rather than extends the schema. Since the parameter is simple (one field, no enum, no nested objects), the baseline 3 is appropriate; the description doesn't add semantic detail beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear action: 'Delete a team' — a specific verb ('Delete') with a specific resource ('a team'). Among siblings, team_delete is distinct from team_close, team_status, and team_list, and the name itself communicates the destructive intent clearly. It could benefit from noting scope (e.g., permanent vs soft delete), but the core purpose is clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description emphasizes that team_id is REQUIRED and never auto-resolved, which is a meaningful usage constraint. It doesn't explicitly say when NOT to use this or name a sibling alternative, but the destructive nature combined with the sibling set (team_close, team_status) makes the intended usage reasonably clear. Close siblings like team_close are not explicitly differentiated, so a 4 rather than 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

team_listA

List teams — active ones by default, newest first.

Default response is a COMPACT projection (view="compact" + hint - trimmed, NOT missing fields): each row keeps id / name / status / kind / project_id / created_at. The unfiltered full-row list measured 148,173 chars across 316 teams on the real install, past the MCP result ceiling; teams accumulate one row per Workflow run and per CC session, so the list only ever grows.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax teams to return (default 50, capped at 200)
fieldsNo"compact" (default, trimmed rows) / "all" (full team rows)compact
offsetNoPagination offset (default 0)
statusNoFilter by lifecycle status - "active" (default) / "completed" / "archived" / "" for every teamactive

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It richly discloses behavioral traits: the compact projection trims (NOT drops) fields, the full-list would exceed the MCP result ceiling at 148,173 chars / 316 teams, and teams accumulate per Workflow run/CC session so the list grows unbounded. This is excellent behavioral disclosure that justifies the default compact mode.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is efficient — three sentences, front-loaded with the core purpose in the first sentence, then progressively detailed behavioral context. Each sentence earns its place: purpose/order, projection behavior, and the size/rationale. Slightly verbose with the measured character count but that empirical detail is genuinely useful justification.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and 100% schema coverage on parameters, the description is complete for this complexity level. It explains defaults, ordering, projection differences, and crucially the size/rationale that prevents agent confusion about why compact is the default. The empirical data about the result ceiling is exceptional context that prevents failed calls.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four parameters (limit, fields, offset, status) are documented in the schema. The description adds value by explaining the compact projection semantics (trimmed vs missing fields) and the size rationale behind defaults, going slightly beyond the schema. Baseline 3 is appropriate since schema already covers parameter meanings well.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clear verb+resource+scope: 'List teams — active ones by default, newest first.' It precisely states what the tool does, the default filtering, and ordering. While 'team_list' vs 'team_status' siblings could be confused, the description clearly distinguishes it as a listing operation of teams.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains default behavior (active teams, newest first) and the default compact projection. It doesn't explicitly name alternatives, but the context of listing teams is clear enough, and the description of default vs 'all' fields gives usage context. No explicit when-not-to-use guidance against siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

team_statusA

Get a team's status summary — team info + members + active tasks.

Hits /status (not the bare team row): the plain team endpoint carries no member or task fields, so callers asking "what is this team doing" got a row with nothing actionable in it.

Default response is a COMPACT projection (view="compact" + hint - trimmed, NOT missing fields). The upstream summary embeds the entire roster and every active task as full rows, which measured 170,331 chars on a real 173-member workflow team and 69,660 on a 51-member session team - both past the MCP result ceiling, i.e. the tool simply did not work on the teams that most needed it. Members and tasks are projected here, offline members fold into a count plus digest, and the API route and Dashboard JSON are untouched.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax member rows to return after the offline split (default 30, capped at 200)
fieldsNo"compact" (default, trimmed rows) / "all" (full member and task rows)compact
team_idYesTeam ID or team name
include_offlineNoInclude offline members as rows instead of a count plus digest (default False)
offline_previewNoHow many most-recent offline members to show in the digest (default 5; ignored when include_offline is True)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It excellently discloses a critical behavioral trait: the default compact projection with trimmed rows and offline members folded into counts/digests, justified by concrete size measurements (170,331 and 69,660 chars) that would otherwise break the MCP ceiling. It also clarifies API route and Dashboard JSON are untouched. This is substantial behavioral disclosure beyond what the schema conveys.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose in the first line, then dives into implementation detail in the second paragraph. The detail is dense but earned — it explains WHY the compact projection exists with concrete data. Slightly long for a tool description but every sentence justifies itself; could be trimmed slightly, hence 4.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a read/observation tool with an output schema present, complex projection logic, and strong rationale documented. The description fully explains the default behavior, the reasoning behind it (with real size measurements), the exception paths (offline members folding into digest), and explicitly clarifies that underlying API and Dashboard JSON are untouched. For a tool with this complexity, the description is remarkably complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already fully documents all 5 parameters. The description adds context to the fields parameter ('compact' means trimmed rows, not missing fields) and explains what includes_offline does (fold into count plus digest), which complements rather than repeats the schema. This adds genuine value on top of 100% schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool returns 'a team's status summary — team info + members + active tasks' and distinguishes it by explaining it hits /status rather than the bare team endpoint. It explicitly differentiates from sibling 'team_list' by noting the plain team row carries nothing actionable, making the 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when this tool is appropriate (callers asking 'what is this team doing') and contrasts it with the bare team row. It does not explicitly name sibling alternatives or state when NOT to use it, but the context and framing (addressing the limitation of the plain team endpoint) gives clear usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

usage_attributionA

Report token usage together with how much of it can actually be accounted for.

Read-only. Every token number comes back alongside its denominator (dispatches_total) and its metric label, because a token count without those two is meaningless: this repo carries two orthogonal metrics that measure 5-25x apart, and sub-agent usage coverage is currently far below 100%. There is deliberately no total field — 95.6% of the four layers is cache_read, so a lone total is just a cache-read count in disguise.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoLook-back window in days, counted on row creation time. 0 means all history. Never windowed on measurement time — that would drop unmeasured rows out of the denominator and pin coverage at 100%.
scopeNoAttribution level — project / session / workflow_run / agent / task. Leave empty to get the coverage matrix (all dispatch paths plus per-hop link coverage) instead of one scope's usage.
scope_idNoID at that level. Empty means "do not filter on this dimension", i.e. aggregate across the whole ledger.
populationNoDispatch path — "subagent" or "leader_session". These are never merged: one leader session can outweigh every sub-agent combined, which would drown the sub-agent numbers.subagent

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure, and it delivers exceptionally: it states 'Read-only' explicitly, reveals the two-orthogonal-metric quirk (5-25x apart), discloses the sub-agent coverage shortfall, warns that population paths are never merged, and explains why there's no total field (95.6% cache_read). This is deep, honest behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is lean and front-loaded, with the core purpose in the first sentence. Every subsequent sentence earns its place by clarifying a behavioral invariant (denominator/label pairing, two-metric gap, 95.6% cache_read, no total). It covers rich context without padding or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has an output schema, return-value explanation is delegated. The description handles the complex semantics—dual metrics, sub-agent coverage shortfalls, population non-merging, windowing semantics—comprehensively, which is exactly the depth needed for a tool with these quirks. Combined with a 4-param all-optional schema, this is fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents all 4 parameters thoroughly. The description reinforces key semantics by explaining the day-windowing rationale (never on measurement time) and the population non-merging invariant, adding meaning beyond the schema's field names. It doesn't need to over-compensate given full schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb+resource ('Report token usage together with how much of it can actually be accounted for') with a clear, distinctive scope. It differentiates itself from read-report siblings by emphasizing the denominator/metric-label pairing and the deliberate absence of a total field, which makes this tool's unique role unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly explains when usage makes sense (accounted-for token reporting) and the 'Read-only' framing signals safe usage context. It doesn't explicitly name alternative tools for token reporting, but it does clarify internal semantics (no total field, why denominators matter, why population is never merged) that guide correct invocation. Marginal missing piece is explicit when-not-to-use guidance against siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_completionA

Verify whether a task is truly complete.

Checks:

  1. Task status == completed

  2. At least one memo record exists (task_memo_add was called)

  3. A summary-type memo exists (task_memo_add type='summary' was called)

Use this after an agent reports completion to ensure all artifacts are present.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYesTask ID to verify

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries burden. Lists three checks but doesn't disclose whether the tool has side effects (likely read-only) or what happens on failure. Output schema exists but behavioral details are partially inferred.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well-structured with bullet points and usage note. Concise at ~50 words, though the phrase 'task_memo_add' could be clarified as a tool reference.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given one parameter and existing output schema, description covers purpose, checks, and usage timing. Minor gap: no mention of return value or error handling, but partially mitigated by output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with param description 'Task ID to verify'. Description adds no additional semantics beyond what schema provides, so baseline score applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool verifies task completion with specific checks, distinguishing it from sibling tools like task_status or task_memo_read which query but don't verify completeness.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states 'Use this after an agent reports completion' providing clear usage context. Could be improved by specifying when not to use (e.g., before completion) or mentioning alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workflow_getA

Get a Workflow run's archive (totals + summary/result + per-agent telemetry).

Default response is a COMPACT projection (view="compact" + hint - trimmed, NOT missing fields). A big run's full archive does not fit: a real 166-agent run measured 268,753 chars, of which prompt_preview and result_preview alone were 53%. Compact keeps every scalar on the run, excerpts its result/summary, and projects the agent rows down to identity / phase / cost / state plus the os_agent_id drill-down key.

Both views keep planned_agent_count and dynamic_nodes on the run. Read them together: planned_agent_count is the static lower bound (literal agent() calls), dynamic_nodes counts runtime-width fan-out nodes, so agent_count > planned_agent_count is expected whenever dynamic_nodes > 0.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax agent rows to return in compact view (default 40)
wf_idYesWorkflow run id (e.g. "wf_8e92fe01-67c").
fieldsNo"compact" (default, trimmed rows) / "all" (full archive)compact
include_agentsNoWhen True, also fetch the per-agent telemetry rows.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description provides extensive behavioral detail beyond what annotations (none exist) and schema offer. It explains the default compact projection, field omissions, detailed size example (268,753 chars), and how agent rows are trimmed. It also clarifies that the compact view retains scalar data and excerpts results, and explains the relationship between planned_agent_count and dynamic_nodes. No annotations are provided, so the description fully carries the burden.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is informative but somewhat lengthy (over 600 characters). It front-loads the main purpose in the first line, which is good, but subsequent details about size examples and field interpretations could be more tightly organized. Some redundancy exists between the description and schema (e.g., mentioning 'compact' default), but the extra context is valuable enough to earn its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (4 parameters including a view selector, boolean toggle, and size limit), the output schema exists, and annotations are absent, the description provides robust context about behavior and edge cases (large runs, field projection logic). It explains how to interpret response fields like dynamic_nodes, which is not in the schema. However, it does not mention error handling or permission requirements.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% (all 4 parameters described in schema). The description adds value by explaining how parameters like fields=compact work in practice (what gets trimmed, example sizes) and how include_agents relates to the compact view's projections. However, it does not describe the limit parameter's effect beyond what schema already states, but overall it deepens understanding significantly.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the tool retrieves a workflow run's archive including totals, summary/result, and per-agent telemetry. It clearly distinguishes the 'compact' view from the full archive, though the sibling list includes workflow_list which lists runs, not retrieving their data, so there is no direct sibling confusion.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use the compact view versus the full archive, and discusses how to interpret planned_agent_count and dynamic_nodes. However, it does not explicitly state when to use this tool vs alternatives in the sibling list, nor does it mention preconditions or fallback options.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workflow_listA

List CC ultracode/Workflow runs tracked by the OS observability layer.

planned_agent_count is a STATIC LOWER BOUND (literal agent() calls in the launch script), not a target. dynamic_nodes counts the fan-out nodes (pipeline / .map / while) whose width is only known at runtime, so a run with dynamic_nodes > 0 legitimately ends with agent_count > planned_agent_count - that is expected, not a miscount. planned_agent_count == 0 means no static parse was recorded (typically a run ingested by offline file reconcile), i.e. the plan is unknown rather than zero.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of runs to return (default 20).
statusNoFilter by status: "planned" / "running" / "completed" / "interrupted" (empty = all).
project_idNoFilter by project ID (empty = all projects).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden. It thoroughly discloses behavioral traits: explains that planned_agent_count is a 'static lower bound', dynamic_nodes can cause legitimate agent count increases, and planned_agent_count==0 means unknown plan (not zero). This is excellent transparency for the tool's domain-specific semantics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Very concise. First sentence immediately states core purpose. Additional two sentences add critical domain knowledge without fluff. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with full schema coverage and an output schema present, the description is complete. It explains all non-obvious behavioral aspects needed to correctly interpret results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (all 3 parameters documented). Description adds no parameter-specific details beyond what the schema already provides, which is fine per guidelines (baseline 3).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it lists 'CC ultracode/Workflow runs tracked by the OS observability layer', using specific verb 'List' and resource 'workflow runs'. Distinguishes well from sibling tools like 'workflow_get' (singular) and 'workflow_reconcile' (different action).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides detailed context on when to use this tool vs alternatives by explaining the meaning of fields like planned_agent_count and dynamic_nodes, which helps the agent interpret results correctly. However, it doesn't explicitly state when NOT to use it or name alternative tools for different use cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workflow_reconcileA

Reconcile finished Workflow runs from disk into the OS (repair after OS was offline).

Scans ~/.claude/projects/<slug>/*/workflows/wf_*.json and ingests each run's full telemetry (tokens/duration/per-agent). Idempotent — safe to re-run.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idNoLimit the scan to a single CC session's workflows (empty = all sessions).
project_dirNoLimit the scan to the project owning this directory (empty = all projects).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It details the scan path, ingests telemetry, and states idempotency and safety to re-run, offering good behavioral insight 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with two clear paragraphs: first states purpose and when to use, second details behavior and parameters. No extraneous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the existence of an output schema, return values are covered. The description covers scan scope, idempotency, and file path, making it complete for a reconciliation tool with two optional parameters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, providing clear parameter descriptions. The description adds context about scanning file paths and ingesting telemetry 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'reconcile' and the resource 'finished Workflow runs' with context 'from disk into the OS'. It distinguishes itself from sibling tools like workflow_get and workflow_list by specifying a repair function after OS offline.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly mentions 'repair after OS was offline', providing a clear when-to-use scenario. It does not explicitly mention when not to use or list alternatives, but the context is sufficient for typical use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 6 tool updatesv1.12.3
    • Changedchannel_mentions3 fields changed
      • removedInput schema / properties / agent_name / default
        Removed value: -""
      • changedInput schema / properties / agent_name / description
        Previous value: -"Agent name to look up mentions for (without '@' prefix).\n        Leave empty to use the current agent's name from context."New value: +"要查的收件人名,如 \"leader-cc\"。带不带 \"@\" 前缀都可以。\n**必填**:早先这个参数可留空并声称\"从上下文取当前 agent 名\",实现却是\n硬编码字面量 \"agent\",留空等于去查一个真的叫 agent 的收件人。"
      • addedInput schema / required
        Added value: +[
        +  "agent_name"
        +]
    • Addedchannel_read_ack
    • Changedchannel_send2 fields changed
      • changedInput schema / properties / mentions / description
        Previous value: -"List of @mention tags, e.g. [\"@agent-name\", \"@team-name\"]."New value: +"List of mention tags, e.g. [\"leader-cc\"] or [\"@leader-cc\"]."
      • addedInput schema / properties / project_id
        Added value: +{
        +  "default": "",
        +  "description": "归属项目;留空按当前工作目录自动归属(与 task_memo / report\n同一套模式)。归属为空的消息照发照存,但**不进任何项目的未读**——\n收件人不会被提示,只能主动读到。",
        +  "type": "string"
        +}
    • Addedchannel_unread
    • Addedchannel_wait
    • Changedos_restart_api2 fields changed
      • addedInput schema / properties / dry_run
        Added value: +{
        +  "default": false,
        +  "description": "Only preflight imports and return the startup plan, without\nshutting down, spawning, or updating shared runtime files.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / source_root
        Added value: +{
        +  "default": "",
        +  "description": "Explicit ai-team-os repository root to import and start.\nEmpty preserves the current environment. Restore by explicitly\npassing the original repository root through this same flow.",
        +  "type": "string"
        +}
  2. 4 tool updatesv1.11.3
    • Addedecosystem_refresh
    • Addedecosystem_repo_events
    • Addedecosystem_tag_list
    • Addedlink_query
  3. 93 tool updatesv1.11.2
    • Changedagent_activity_query2 fields changed
      • addedInput schema / properties / fields
        Added value: +{
        +  "default": "compact",
        +  "description": "\"compact\" (default, excerpted I/O) / \"all\" (full records)",
        +  "type": "string"
        +}
      • changedInput schema / properties / limit / description
        Previous value: -"Maximum number of records to return, default 20"New value: +"Maximum number of records to return, default 20 (compact view\ncaps it at 50)"
    • Removedagent_heartbeat
    • Changedagent_list5 fields changed
      • addedInput schema / properties / fields
        Added value: +{
        +  "default": "compact",
        +  "description": "\"compact\" (default, trimmed rows) / \"all\" (full agent rows)",
        +  "type": "string"
        +}
      • addedInput schema / properties / include_offline
        Added value: +{
        +  "default": false,
        +  "description": "Include offline members as full rows instead of a\ncount plus digest (default False)",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / limit
        Added value: +{
        +  "default": 50,
        +  "description": "Max member rows to return after the offline split (default 50,\ncapped at 200)",
        +  "type": "integer"
        +}
      • addedInput schema / properties / offline_preview
        Added value: +{
        +  "default": 5,
        +  "description": "How many most-recent offline members to show in the\ndigest (default 5; ignored when include_offline is True)",
        +  "type": "integer"
        +}
      • addedInput schema / properties / offset
        Added value: +{
        +  "default": 0,
        +  "description": "Pagination offset into the member rows (default 0)",
        +  "type": "integer"
        +}
    • Removedagent_register
    • Addedagent_reuse_recommend
    • Changedagent_template_list1 field changed
      • addedInput schema / properties / fields
        Added value: +{
        +  "default": "compact",
        +  "description": "\"compact\" (default, trimmed rows) / \"all\" (full listing)",
        +  "type": "string"
        +}
    • Changedagent_template_recommend1 field changed
      • changedInput schema / properties / task_type / description
        Previous value: -"Task type, e.g., \"backend\", \"frontend\", \"data-analysis\""New value: +"Task type or project type, e.g., \"backend\", \"frontend\",\n\"web-app\", \"api-service\", \"data-pipeline\", \"library\",\n\"refactor\", \"bugfix\""
    • Removedagent_trust_scores
    • Removedagent_trust_update
    • Changedbriefing_add1 field changed
      • addedInput schema / properties / tags
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Free-form topic tags for filtering the queue (e.g. [\"release\"])"
        +}
    • Changedbriefing_list2 fields changed
      • addedInput schema / properties / project_id
        Added value: +{
        +  "default": "",
        +  "description": "Restrict to one project. Empty (default) lists every\nproject's items — a decision inbox must not hide anything by\ndefault, and pre-2026-07-27 rows carry no project stamp at all.\nPass \"current\" for the project this session is working in.",
        +  "type": "string"
        +}
      • addedInput schema / properties / tag
        Added value: +{
        +  "default": "",
        +  "description": "Restrict to items carrying this exact tag",
        +  "type": "string"
        +}
    • Removedcross_project_inbox
    • Removedcross_project_send
    • Removedecosystem_clear_manual_status
    • Removedecosystem_data_source_create
    • Removedecosystem_mark_no_value
    • Removedecosystem_pin_active
    • Removedecosystem_recipes
    • Removedecosystem_refresh
    • Removedecosystem_repo_events
    • Addedecosystem_repo_manual_status
    • Changedecosystem_scan2 fields changed
      • addedInput schema / properties / dry_run / description
        Added value: +"When True, run every gh query and report what would be\nwritten without touching the DB — use it to size a scan before\npaying for the writes."
      • addedInput schema / properties / min_stars / description
        Added value: +"Popularity floor for a repo to enter the archive. Lower it\n(e.g. 1000) for a wide full sweep, raise it to only refresh the\nwell-known head of the ecosystem. Values <= 1000 mark the run as\nstrategy=\"full\", above that as \"incremental\"."
    • Removedecosystem_scan_profile_update
    • Changedecosystem_search2 fields changed
      • addedInput schema / properties / fields
        Added value: +{
        +  "default": "compact",
        +  "description": "\"compact\" (default, trimmed projection) / \"all\" (full rows).",
        +  "type": "string"
        +}
      • addedInput schema / properties / project_id / description
        Added value: +"Restrict the search to one project's archive. Empty (default)\nresolves the project from the current session — only pass it to read\nanother project's archive on purpose."
    • Changedecosystem_search_by_capability6 fields changed
      • addedInput schema / properties / limit / description
        Added value: +"Max rows per page (default 30, server max 200)."
      • changedInput schema / properties / match_mode / description
        Previous value: -"\"all\" (AND, default) / \"any\" (OR)."New value: +"\"all\" (AND, default) — repo must carry every tag;\n\"any\" (OR) — repo carries at least one, use it to widen a\nsearch that returned too few hits."
      • addedInput schema / properties / max_stars / description
        Added value: +"Popularity ceiling; 0 (default) = no limit. Set it to\nexclude the famous head and surface lesser-known projects."
      • addedInput schema / properties / min_stars / description
        Added value: +"Popularity floor; 0 (default) keeps niche repos in."
      • addedInput schema / properties / offset / description
        Added value: +"Rows to skip — pagination cursor for the next page."
      • changedInput schema / properties / sort / description
        Previous value: -"stars / recency / relevance."New value: +"stars (default) / recency (recently pushed first) /\nrelevance (relevance_score desc)."
    • Changedecosystem_tag_dispatch_llm3 fields changed
      • changedInput schema / properties / agent_template / default
        Previous value: -"researcher"New value: +"general-purpose"
      • changedInput schema / properties / agent_template / description
        Previous value: -"Sub-agent template (default 'researcher')."New value: +"subagent_type for each sub-agent. Must be one the\nAgent tool accepts (agent_template_list shows them); defaults to\nthe built-in 'general-purpose'."
      • removedInput schema / properties / team_name
        Removed value: -{
        -  "default": "ecosystem-platform",
        -  "description": "Sub-agent team name (default 'ecosystem-platform').",
        -  "type": "string"
        -}
    • Removedecosystem_tag_list
    • Changedecosystem_trigger_debate3 fields changed
      • addedInput schema / properties / suggested_advocate / description
        Added value: +"Agent name to argue for adopting the repos.\nReturned as a suggestion — the caller may override it when\ncalling debate_start."
      • addedInput schema / properties / suggested_critic / description
        Added value: +"Agent name to attack the adoption case.\nReturned as a suggestion, overridable at debate_start."
      • addedInput schema / properties / suggested_judge / description
        Added value: +"Agent name to rule on the debate. Returned as a\nsuggestion, overridable at debate_start."
    • Removedecosystem_unpin
    • Removederror_budget_status
    • Removederror_budget_update
    • Changedevent_list6 fields changed
      • addedInput schema / properties / entity_id
        Added value: +{
        +  "default": "",
        +  "description": "Filter to one entity (task / agent / meeting id)",
        +  "type": "string"
        +}
      • addedInput schema / properties / fields
        Added value: +{
        +  "default": "compact",
        +  "description": "\"compact\" (default, trimmed projection) / \"all\" (full rows)",
        +  "type": "string"
        +}
      • changedInput schema / properties / limit / description
        Previous value: -"Maximum number of events to return, default 50"New value: +"Maximum number of events to return, default 50 (compact view\ncaps the window at 60 rows; fields=\"all\" is uncapped)"
      • addedInput schema / properties / project_id
        Added value: +{
        +  "default": "",
        +  "description": "Scope to a project — resolves to that project's teams and\nreturns their team/agent/task events (empty = no project scoping;\npass \"auto\" to use the active project)",
        +  "type": "string"
        +}
      • addedInput schema / properties / source
        Added value: +{
        +  "default": "",
        +  "description": "Exact event source, e.g. \"team:<id>\" / \"agent:<id>\" / \"repository\"",
        +  "type": "string"
        +}
      • addedInput schema / properties / type
        Added value: +{
        +  "default": "",
        +  "description": "Exact event type, e.g. \"task.completed\" / \"agent.created\"",
        +  "type": "string"
        +}
    • Removedfile_lock_acquire
    • Removedfile_lock_check
    • Removedfile_lock_list
    • Removedfile_lock_release
    • Changedfind_skill2 fields changed
      • changedInput schema / properties / category / description
        Previous value: -"Category filter for level=2 (e.g., \"frontend\", \"security\").\n      Empty string returns all categories."New value: +"Category filter for level=2 (e.g., \"frontend\", \"security\",\n      \"integration\"). Empty string returns all categories."
      • changedInput schema / properties / skill_id / description
        Previous value: -"Skill identifier for level=3 detail lookup\n      (e.g., \"vibesec\", \"superpowers\", \"claude-mem\")."New value: +"Skill identifier for level=3 detail lookup\n      (e.g., \"vibesec\", \"superpowers\", \"claude-mem\",\n      \"github-integration\")."
    • Addedfleet_dispatch
    • Removedgit_auto_commit
    • Removedgit_create_pr
    • Removedgit_status_check
    • Removedguardrail_check
    • Removedguardrail_check_payload
    • Removedlink_query
    • Changedlink_trace1 field changed
      • changedInput schema / properties / id / description
        Previous value: -"Seed ID"New value: +"Identifier of the seed object, in whatever form ``kind`` uses —\na uuid for task/report/memo, a run id like wf_cbad7348, a commit sha."
    • Removedloop_advance
    • Removedloop_next_task
    • Removedloop_pause
    • Removedloop_resume
    • Removedloop_review
    • Removedloop_start
    • Removedloop_status
    • Changedmeeting_create1 field changed
      • changedInput schema / properties / team_name / description
        Previous value: -"Team name for Agent spawn (used in launch_call.params.team_name)"New value: +"会议归属的团队名(仅用于 OS 侧归属解析);不会写进 launch_call\n—— CC Agent 的 team_name 参数已废弃且被忽略"
    • Changedmemory_add2 fields changed
      • changedInput schema / properties / content / description
        Previous value: -"记忆内容(≤ 400 字;超长请改指针条目)"New value: +"记忆内容(单条 ≤ 400 字,且须放得进本桶字符配额;超长改指针条目)"
      • changedInput schema / properties / scope / description
        Previous value: -"global(全局)/ project(当前项目)/ user(用户级)"New value: +"global(全局)/ project(当前项目)/ user(用户级)。\n写 global 前自问:**这条对任意目录的任意会话都成立吗?** 提及具体\n项目/仓库/书稿/某次任务的一律 scope=project——未注册目录会落入本目录\n指纹临时桶(\"dir:...\"),只被本目录的会话继承,绝不广播成全局记忆。"
    • Changedmemory_invalidate4 fields changed
      • addedInput schema / properties / content_match
        Added value: +{
        +  "default": "",
        +  "description": "唯一定位子串,在有效条目正文中精确匹配(与 memory_id 二选一)",
        +  "type": "string"
        +}
      • addedInput schema / properties / memory_id / default
        Added value: +""
      • changedInput schema / properties / memory_id / description
        Previous value: -"要失效的方向层记忆 id"New value: +"要失效的方向层记忆 id(与 content_match 二选一)"
      • removedInput schema / required
        Removed value: -[
        -  "memory_id"
        -]
    • Changedmemory_reconcile_apply1 field changed
      • changedInput schema / properties / operations / description
        Previous value: -"操作列表(见上)"New value: +"操作列表,每条一个 dict,按 op 字段分派为\nmerge / invalidate / score / promote / keep(各字段见工具说明)。\n一次可混装多种 op;单条出错只返回该条 error,不阻断其余。"
    • Changedmemory_search2 fields changed
      • changedInput schema / properties / scope_id / default
        Previous value: -"system"New value: +""
      • changedInput schema / properties / scope_id / description
        Previous value: -"Scope ID, default \"system\""New value: +"Scope ID;**留空**时服务端按上下文推导(global→system、\nuser→user、project→当前项目或未注册目录的指纹临时桶)。只有需要\n跨作用域精确指定时才显式传(如某 team 的 scope_id)。"
    • Changedmodel_config_get1 field changed
      • addedInput schema / properties / usage_days
        Added value: +{
        +  "default": 7,
        +  "description": "Aggregation window for usage stats (default 7, max 90)",
        +  "type": "integer"
        +}
    • Removedos_report_issue
    • Removedos_resolve_issue
    • Removedpattern_record
    • Removedpattern_search
    • Removedphase_create
    • Removedphase_list
    • Removedpipeline_advance
    • Removedpipeline_create
    • Removedpipeline_status
    • Removedprompt_version_list
    • Removedscheduler_create
    • Removedscheduler_delete
    • Removedscheduler_list
    • Removedscheduler_pause
    • Removedsend_notification
    • Removedtask_auto_match
    • Removedtask_compare
    • Removedtask_decompose
    • Changedtask_execution_trace1 field changed
      • addedInput schema / properties / include_stats
        Added value: +{
        +  "default": false,
        +  "description": "False (default) — timeline only (memo records + task\nlifecycle events, chronological). True — adds `checkpoints`\n(decision/summary points only) and `stats` (duration, step count,\nsubtask count, memo-type breakdown).",
        +  "type": "boolean"
        +}
    • Changedtask_list_project8 fields changed
      • addedInput schema / properties / fields
        Added value: +{
        +  "default": "compact",
        +  "description": "\"compact\" (default, trimmed projection) / \"all\" (full rows)",
        +  "type": "string"
        +}
      • changedInput schema / properties / include_completed / description
        Previous value: -"Include completed tasks in response (default False)"New value: +"Include completed tasks (default False; project scope only)"
      • changedInput schema / properties / limit / description
        Previous value: -"Max number of active tasks to return (default 50)"New value: +"Max number of active tasks to return (default 50; project scope only)"
      • changedInput schema / properties / offset / description
        Previous value: -"Pagination offset for active tasks (default 0)"New value: +"Pagination offset for active tasks (default 0; project scope only)"
      • changedInput schema / properties / priority / description
        Previous value: -"Filter by priority: \"critical\" / \"high\" / \"medium\" / \"low\" (optional)"New value: +"Filter by priority: \"critical\" / \"high\" / \"medium\" / \"low\"\n(optional; comma-separated accepted for multiple)"
      • changedInput schema / properties / project_id / description
        Previous value: -"Project ID (optional, auto-uses active project if empty)"New value: +"Project ID (optional, auto-uses active project if empty;\nignored when team_id is given)"
      • changedInput schema / properties / status / description
        Previous value: -"Filter by status: pending/running/blocked/completed (default all active)"New value: +"Filter by status: pending/running/blocked/completed\n(default all active; project scope only)"
      • addedInput schema / properties / team_id
        Added value: +{
        +  "default": "",
        +  "description": "Team ID or name — narrows the wall to one team (optional)",
        +  "type": "string"
        +}
    • Removedtask_replay
    • Changedtask_run5 fields changed
      • addedInput schema / properties / assigned_to
        Added value: +{
        +  "default": "",
        +  "description": "Agent name/id this task is meant for (optional)",
        +  "type": "string"
        +}
      • changedInput schema / properties / depends_on / description
        Previous value: -"List of dependency task IDs (optional, task auto-unlocks when dependencies complete)"New value: +"Dependency task IDs — task auto-unlocks when they complete"
      • addedInput schema / properties / horizon
        Added value: +{
        +  "default": "",
        +  "description": "\"short\" (default) / \"mid\" / \"long\"",
        +  "type": "string"
        +}
      • addedInput schema / properties / priority
        Added value: +{
        +  "default": "",
        +  "description": "\"critical\" / \"high\" / \"medium\" (default) / \"low\"",
        +  "type": "string"
        +}
      • addedInput schema / properties / tags
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Free-form tags for filtering the wall"
        +}
    • Removedtask_subtasks
    • Removedtaskwall_view
    • Changedteam_briefing4 fields changed
      • addedInput schema / properties / fields
        Added value: +{
        +  "default": "compact",
        +  "description": "\"compact\" (default, trimmed rows) / \"all\" (full briefing)",
        +  "type": "string"
        +}
      • addedInput schema / properties / include_offline
        Added value: +{
        +  "default": false,
        +  "description": "Include offline members as rows instead of a count\nplus digest (default False)",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / limit
        Added value: +{
        +  "default": 30,
        +  "description": "Max member rows to return after the offline split (default 30,\ncapped at 200)",
        +  "type": "integer"
        +}
      • addedInput schema / properties / offline_preview
        Added value: +{
        +  "default": 5,
        +  "description": "How many most-recent offline members to show in the\ndigest (default 5; ignored when include_offline is True)",
        +  "type": "integer"
        +}
    • Changedteam_close1 field changed
      • changedInput schema / properties / team_id / description
        Previous value: -"Team ID or name (optional, auto-uses active team if empty)"New value: +"Team ID or name (required — use team_list to find it)"
    • Removedteam_create
    • Removedteam_knowledge
    • Changedteam_list4 fields changed
      • addedInput schema / properties / fields
        Added value: +{
        +  "default": "compact",
        +  "description": "\"compact\" (default, trimmed rows) / \"all\" (full team rows)",
        +  "type": "string"
        +}
      • addedInput schema / properties / limit
        Added value: +{
        +  "default": 50,
        +  "description": "Max teams to return (default 50, capped at 200)",
        +  "type": "integer"
        +}
      • addedInput schema / properties / offset
        Added value: +{
        +  "default": 0,
        +  "description": "Pagination offset (default 0)",
        +  "type": "integer"
        +}
      • addedInput schema / properties / status
        Added value: +{
        +  "default": "active",
        +  "description": "Filter by lifecycle status - \"active\" (default) / \"completed\"\n/ \"archived\" / \"\" for every team",
        +  "type": "string"
        +}
    • Removedteam_setup_guide
    • Changedteam_status4 fields changed
      • addedInput schema / properties / fields
        Added value: +{
        +  "default": "compact",
        +  "description": "\"compact\" (default, trimmed rows) / \"all\" (full member and task rows)",
        +  "type": "string"
        +}
      • addedInput schema / properties / include_offline
        Added value: +{
        +  "default": false,
        +  "description": "Include offline members as rows instead of a count\nplus digest (default False)",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / limit
        Added value: +{
        +  "default": 30,
        +  "description": "Max member rows to return after the offline split (default 30,\ncapped at 200)",
        +  "type": "integer"
        +}
      • addedInput schema / properties / offline_preview
        Added value: +{
        +  "default": 5,
        +  "description": "How many most-recent offline members to show in the\ndigest (default 5; ignored when include_offline is True)",
        +  "type": "integer"
        +}
    • Addedusage_attribution
    • Removedwatchdog_check
    • Removedwhat_if_analysis
    • Changedworkflow_get2 fields changed
      • addedInput schema / properties / fields
        Added value: +{
        +  "default": "compact",
        +  "description": "\"compact\" (default, trimmed rows) / \"all\" (full archive)",
        +  "type": "string"
        +}
      • addedInput schema / properties / limit
        Added value: +{
        +  "default": 40,
        +  "description": "Max agent rows to return in compact view (default 40)",
        +  "type": "integer"
        +}
  4. 166 tool updatesv1.9.0
    • First observedagent_activity_query
    • First observedagent_heartbeat
    • First observedagent_list
    • First observedagent_register
    • First observedagent_template_list
    • First observedagent_template_recommend
    • First observedagent_trust_scores
    • First observedagent_trust_update
    • First observedagent_update_status
    • First observedbriefing_add
    • First observedbriefing_dismiss
    • First observedbriefing_list
    • First observedbriefing_resolve
    • First observedchannel_mentions
    • First observedchannel_read
    • First observedchannel_send
    • First observedcontext_resolve
    • First observedcross_project_inbox
    • First observedcross_project_send
    • First observeddebate_code_review
    • First observeddebate_start
    • First observeddecision_log
    • First observeddiagnose_task_failure
    • First observeddismiss_project_registration
    • First observedecosystem_apply_architecture_md
    • First observedecosystem_apply_debate_result
    • First observedecosystem_apply_quality_review
    • First observedecosystem_apply_shallow_summary
    • First observedecosystem_claim_review
    • First observedecosystem_claim_shallow
    • First observedecosystem_clear_manual_status
    • First observedecosystem_data_source_create
    • First observedecosystem_deep_review_cancel
    • First observedecosystem_deep_review_list
    • First observedecosystem_deep_review_request
    • First observedecosystem_deep_review_request_batch
    • First observedecosystem_deep_review_status
    • First observedecosystem_diff_period
    • First observedecosystem_index_diff_latest
    • First observedecosystem_index_update
    • First observedecosystem_link_debate_meeting
    • First observedecosystem_link_integration_task
    • First observedecosystem_mark_as_reference
    • First observedecosystem_mark_no_value
    • First observedecosystem_pin_active
    • First observedecosystem_quick_setup
    • First observedecosystem_rebuild_queries_from_repos
    • First observedecosystem_recipes
    • First observedecosystem_refresh
    • First observedecosystem_release_claim
    • First observedecosystem_repo_events
    • First observedecosystem_repo_get
    • First observedecosystem_repo_tags
    • First observedecosystem_scan
    • First observedecosystem_scan_history
    • First observedecosystem_scan_periodic
    • First observedecosystem_scan_profile_update
    • First observedecosystem_scan_status
    • First observedecosystem_search
    • First observedecosystem_search_by_capability
    • First observedecosystem_shallow_queue_status
    • First observedecosystem_start_integration
    • First observedecosystem_summary_by_tag
    • First observedecosystem_summary_health
    • First observedecosystem_summary_top_n
    • First observedecosystem_summary_weekly
    • First observedecosystem_tag_apply_batch
    • First observedecosystem_tag_apply_llm_result
    • First observedecosystem_tag_dispatch_llm
    • First observedecosystem_tag_list
    • First observedecosystem_trigger_debate
    • First observedecosystem_unpin
    • First observederror_budget_status
    • First observederror_budget_update
    • First observedevent_list
    • First observedfailure_analysis
    • First observedfile_lock_acquire
    • First observedfile_lock_check
    • First observedfile_lock_list
    • First observedfile_lock_release
    • First observedfind_skill
    • First observedgit_auto_commit
    • First observedgit_create_pr
    • First observedgit_status_check
    • First observedguardrail_check
    • First observedguardrail_check_payload
    • First observedlink_query
    • First observedlink_trace
    • First observedloop_advance
    • First observedloop_next_task
    • First observedloop_pause
    • First observedloop_resume
    • First observedloop_review
    • First observedloop_start
    • First observedloop_status
    • First observedmeeting_attendance_check
    • First observedmeeting_conclude
    • First observedmeeting_create
    • First observedmeeting_list
    • First observedmeeting_read_messages
    • First observedmeeting_send_message
    • First observedmeeting_template_list
    • First observedmeeting_update
    • First observedmemory_add
    • First observedmemory_invalidate
    • First observedmemory_list
    • First observedmemory_reconcile_apply
    • First observedmemory_reconcile_candidates
    • First observedmemory_search
    • First observedmodel_config_get
    • First observedmodel_config_set
    • First observedos_health_check
    • First observedos_report_issue
    • First observedos_resolve_issue
    • First observedos_restart_api
    • First observedpattern_record
    • First observedpattern_search
    • First observedphase_create
    • First observedphase_list
    • First observedpipeline_advance
    • First observedpipeline_create
    • First observedpipeline_status
    • First observedproject_create
    • First observedproject_delete
    • First observedproject_list
    • First observedproject_summary
    • First observedproject_update
    • First observedprompt_effectiveness
    • First observedprompt_version_list
    • First observedreport_list
    • First observedreport_read
    • First observedreport_save
    • First observedscheduler_create
    • First observedscheduler_delete
    • First observedscheduler_list
    • First observedscheduler_pause
    • First observedsend_notification
    • First observedtask_auto_match
    • First observedtask_compare
    • First observedtask_create
    • First observedtask_decompose
    • First observedtask_execution_trace
    • First observedtask_list_project
    • First observedtask_memo_add
    • First observedtask_memo_read
    • First observedtask_replay
    • First observedtask_run
    • First observedtask_status
    • First observedtask_subtasks
    • First observedtask_update
    • First observedtaskwall_view
    • First observedteam_briefing
    • First observedteam_close
    • First observedteam_create
    • First observedteam_delete
    • First observedteam_knowledge
    • First observedteam_list
    • First observedteam_setup_guide
    • First observedteam_status
    • First observedunified_search
    • First observedverify_completion
    • First observedwatchdog_check
    • First observedwhat_if_analysis
    • First observedworkflow_get
    • First observedworkflow_list
    • First observedworkflow_reconcile

TDQS

B3.1/5.0

Scored across 116 tools

Disambiguation2/5

The set contains many functionally overlapping families: ecosystem_scan / ecosystem_scan_periodic / ecosystem_refresh / ecosystem_index_update all trigger scans with subtly different semantics, and ecosystem_summary_top_n / _health / _by_tag / _weekly are near-identical summary readers. Task, memo, memory and briefing tools likewise blur boundaries (task_memo_read vs task_execution_trace vs unified_search; memory_list vs memory_search vs memory_reconcile_candidates). Descriptions are unusually long and do disambiguate, but relying on multi-paragraph prose to separate 100+ tools means misselection is likely.

Naming Consistency4/5

Almost everything is snake_case with a domain prefix plus action (project_create, team_list, meeting_conclude, channel_send), which is a clear, predictable pattern. Deviations are minor and mostly historical: a few verb-first or prefix-less names (unified_search, find_skill, verify_completion, decision_log, event_list, usage_attribution) break the domain_verb shape. No camelCase/snake_case mixing.

Tool Count1/5

116 tools is an extreme over-extension of the surface; the rubric treats 50+ as a 1. Whole families exist only because functionality was never consolidated (scan vs scan_periodic vs refresh vs index_update; four summary endpoints; two task-wall entry points folded from older tools). The count makes discovery and correct selection impractical for an agent.

Completeness3/5

The surface is broad, covering projects, tasks, teams, agents, meetings/debates, memory layers, ecosystem pipeline stages, reports, workflows, channels and fleet dispatch. But core lifecycle gaps remain: there is no team_create or agent_create (both appear auto-generated), no task_delete, and memory deletion is only approximated by invalidate. Agents can work around these, but an 'OS' with 116 tools should not have missing create/delete on its central entities.

Maintenance

ActivityActive
ResponsivenessSlow

Related MCP Connectors

Related MCP Servers