Skip to main content
Glama

project-mcp

Intent-based MCP server for project documentation — Maps natural language to the right sources automatically

npm version Node.js License: MIT MCP

When users say "project", "docs", or "todos", project-mcp automatically searches the right directories—no configuration needed. It understands intent, not just directory names.


⚡ Quick Start

Install

npm install project-mcp

Related MCP server: Planer MCP Server

Configure

Add to .mcp.json:

{
	"mcpServers": {
		"project": {
			"command": "npx",
			"args": ["-y", "project-mcp"]
		}
	}
}

That's it. The server automatically finds and indexes:

  • .project/ — Operational truth (plans, todos, status)

  • Root markdown files — README.md, DEVELOPMENT.md, etc.

  • docs/ — Reference documentation


Table of Contents


🎯 Why project-mcp?

The Problem: AI agents need to search project documentation, but:

  • Users say "project" not ".project/"

  • Different queries need different sources

  • Manual source mapping is error-prone

  • No standard way to organize project knowledge

The Solution: Intent-based search that maps language to sources automatically:

User Says

Searches

"project" / "the project"

.project/ + root files + docs/

"docs" / "documentation"

Only docs/

"plan" / "todos" / "roadmap" / "status"

Only .project/


🛠️ Available Tools (47)

Search Tools

Tool

Description

Use When

search_project

Intent-based search across all sources

User says "project" or asks about status/plans

search_docs

Search reference documentation only

User specifically asks for "docs"

get_doc

Get full file content

You know the exact file path

list_docs

List all documentation files

Browsing available docs

get_doc_structure

Get directory structure

Understanding organization

Project Management Tools

Tool

Description

Use When

init_project

Initialize .project/ with all standard files

Starting a new project

manage_project_file

Smart create/update based on content analysis

Auto-detect which file to update

create_or_update_roadmap

Create or update ROADMAP.md

Planning milestones and phases

create_or_update_todo

Create or update TODO.md

Managing project-wide todos

create_or_update_status

Create or update STATUS.md

Tracking project health

create_or_update_index

Create or update index.md (contract file)

Defining source mappings

create_or_update_decisions

Create or update DECISIONS.md

Recording architecture decisions

check_project_state

Check which project files exist

Before making changes

Documentation Tools

Tool

Description

Use When

create_doc

Create new doc in docs/

Adding application documentation

update_doc

Update existing doc in docs/

Modifying reference docs

add_release_note

Add versioned release notes

Documenting releases

update_architecture_doc

Create/update architecture docs

Documenting system design

list_doc_categories

List documentation categories

Understanding docs structure

Backlog Tools

Tool

Description

Use When

add_to_backlog

Add single item to BACKLOG.md

Quick task creation

get_backlog

Read backlog with filtering/sorting

Viewing queued work

update_backlog_item

Update priority, title, tags, phase

Adjusting backlog items

remove_from_backlog

Delete item without promoting

Removing cancelled work

import_tasks

Parse plan/roadmap and bulk add to BACKLOG.md

Populating from roadmap

promote_task

Move task from BACKLOG to active work (creates YAML)

Starting work on a backlog item

Task Management Tools

Tool

Description

Use When

create_task

Create active task directly (bypass backlog)

Urgent/immediate work

get_task

Read specific task by ID with full details

Viewing task details

update_task

Update any task field, transition status

Modifying existing tasks

delete_task

Permanently remove a task (with confirmation)

Removing cancelled tasks

search_tasks

Search tasks by keyword in title/content

Finding specific tasks

get_next_task

Get dependency-aware next task(s) to work on

Determining what to do

list_tasks

List/filter tasks with summary dashboard

Reviewing all tasks

sync_todo_index

Generate TODO.md dashboard from active tasks

Updating the overview

Archive Tools

Tool

Description

Use When

archive_task

Move completed task to archive/

Cleaning up done work

list_archived_tasks

List tasks in archive with filtering

Reviewing completed history

unarchive_task

Restore task from archive to active

Reopening completed work

Decision & Status Tools

Tool

Description

Use When

add_decision

Record ADR with structured format

Documenting architecture choices

get_decision

Read specific decision by ADR ID

Viewing decision details

list_decisions

List/filter architecture ADRs

Reviewing past decisions

update_project_status

Quick timestamped status update

Reporting progress

add_roadmap_milestone

Add milestone with deliverables

Planning future work

get_roadmap

Read roadmap content

Viewing planned work

Thoughts Tools

Tool

Description

Use When

process_thoughts

Process brain dump files into tasks

Converting notes to actionable tasks

archive_thought

Archive processed thought files

Cleaning up processed notes

list_thoughts

List unprocessed thought files

Reviewing pending brain dumps

list_archived_thoughts

List processed thought history

Reviewing what was processed

get_thought

Read specific thought file

Viewing thought content

Quality Tools

Tool

Description

Use When

lint_project_docs

Validate documentation against standards

Before commits, ensuring quality


📋 Task Management System

Tasks flow from planning → backlog → active → archive. Only active tasks (10-30 items) are YAML files.

Workflow

ROADMAP.md ──→ import_tasks ──→ BACKLOG.md ──→ promote_task ──→ todos/*.md ──→ archive_task ──→ archive/
  (plan)        (extract)         (queue)        (activate)      (work)        (complete)       (history)
               hundreds ok      hundreds ok     10-30 files     YAML files

Stage

Files

Purpose

Planning

ROADMAP.md

Phases, milestones, high-level

Backlog

BACKLOG.md

Prioritized queue, hundreds of items OK

Active

todos/*.md

YAML files with full metadata, 10-30 items

Archive

archive/*.md

Completed work history

Task File Format (Active Tasks)

---
id: AUTH-001
title: Implement OAuth authentication
project: AUTH
priority: P0
status: todo
owner: cursor
depends_on:
  - AUTH-002
blocked_by: []
tags:
  - security
  - feature
estimate: 2d
due: 2025-01-15
created: 2025-12-29
updated: 2025-12-29
---

# AUTH-001: Implement OAuth authentication

## Description

Implement OAuth 2.0 authentication flow...

## Subtasks

- [ ] Set up OAuth provider
- [ ] Implement callback handler
- [x] Configure environment variables

## Notes

Agent Execution Loop

┌─────────────────────────────────────────────────────────────┐
│  1. promote_task(task_id: "AUTH-001")                       │
│     → Creates todos/AUTH-001.md from BACKLOG.md             │
└─────────────────────┬───────────────────────────────────────┘
                     │
                     ▼
┌─────────────────────────────────────────────────────────────┐
│  2. get_next_task()                                         │
│     → Returns AUTH-001 (dependencies met, highest priority) │
└─────────────────────┬───────────────────────────────────────┘
                     │
                     ▼
┌─────────────────────────────────────────────────────────────┐
│  3. update_task(id: "AUTH-001", status: "in_progress")      │
│     → Agent works on the task                               │
└─────────────────────┬───────────────────────────────────────┘
                     │
                     ▼
┌─────────────────────────────────────────────────────────────┐
│  4. update_task(id: "AUTH-001", status: "done")             │
└─────────────────────┬───────────────────────────────────────┘
                     │
                     ▼
┌─────────────────────────────────────────────────────────────┐
│  5. archive_task(task_id: "AUTH-001")                       │
│     → Moves to archive/, keeps todos/ small                 │
└─────────────────────────────────────────────────────────────┘

Key Features

  • Backlog-first: Plan hundreds of items in BACKLOG.md, promote to active as needed

  • Small active queue: Only 10-30 YAML task files at a time, not hundreds

  • Stable IDs: {PROJECT}-{NNN} format (e.g., AUTH-001, API-042)

  • Dependencies: depends_on array - task won't appear in get_next_task until deps are done

  • Priority Sorting: P0 (critical) → P3 (low) in all views

  • Status Workflow: todoin_progressblocked | reviewdone

  • Archive history: Completed work preserved in archive/ for reference


🏗️ Project Structure Guide

my-project/
├── .project/                    # Operational truth (current state)
│   ├── index.md                 # Contract file (defines source mappings)
│   ├── BACKLOG.md               # Prioritized work queue (hundreds of items OK)
│   ├── TODO.md                  # Task dashboard (auto-generated)
│   ├── ROADMAP.md               # Project roadmap and milestones
│   ├── STATUS.md                # Current project status
│   ├── DECISIONS.md             # Architecture and design decisions
│   ├── todos/                   # Active tasks (10-30 YAML files)
│   │   ├── AUTH-001.md
│   │   └── AUTH-002.md
│   └── archive/                 # Completed tasks (history)
│       └── AUTH-000.md
│
├── docs/                        # Reference truth (long-form docs)
│   ├── README.md
│   ├── architecture/
│   └── guides/
│
├── README.md                    # Project overview
└── CONTRIBUTING.md              # Contribution guidelines

What Goes Where?

.project/ — Operational Truth

Purpose: Current state, plans, decisions, and active work.

File

Purpose

index.md

Contract file (defines how agents interpret sources)

BACKLOG.md

Prioritized work queue (future tasks, hundreds OK)

TODO.md

Task dashboard (auto-generated by sync_todo_index)

ROADMAP.md

Future plans, milestones, upcoming features

STATUS.md

Current project status, recent changes, health

DECISIONS.md

Architecture decisions, trade-offs, rationale

todos/

Active task files (10-30 items, YAML frontmatter)

archive/

Completed tasks (history, reference)

docs/ — Reference Truth

Purpose: Long-form documentation, guides, and reference materials.

  • Architecture documentation

  • API references

  • How-to guides

  • Technical specifications


🎨 Intent Mapping

The server uses intent detection to route queries to the right sources:

User Query
    │
    ├─ "project" / "the project"
    │  └─→ Searches: .project/ + root files + docs/
    │
    ├─ "docs" / "documentation"
    │  └─→ Searches: docs/ only
    │
    ├─ "plan" / "todos" / "roadmap" / "status"
    │  └─→ Searches: .project/ only
    │
    └─ Default
       └─→ Searches: All sources

How It Works

  1. User query: "What's the project status?"

  2. Intent detection: Keywords "status" → intent plan

  3. Source mapping: plan → searches only .project/

  4. Results: Returns .project/STATUS.md, .project/TODO.md, etc.


📝 Documentation Examples

Example: .project/index.md (Contract File)

# Project Knowledge Index

## Contract for AI Agents

When a user says **"project"**, the canonical sources of truth are:

1. **`.project/`** — Current state, plans, todos, decisions
2. **Root markdown files** — README.md, DEVELOPMENT.md, etc.
3. **`docs/`** — Long-form reference documentation

## Principles

- **Natural language stays natural** - Users say "project" not ".project/"
- **Agents don't guess** - Explicit mappings defined here
- **Intent over structure** - Language maps to intent, not directory names

Example: Task Creation

{
	"tool": "create_task",
	"arguments": {
		"title": "Implement OAuth authentication",
		"project": "AUTH",
		"priority": "P0",
		"owner": "cursor",
		"description": "Add OAuth 2.0 support for Google and GitHub",
		"depends_on": ["AUTH-002"],
		"estimate": "2d",
		"tags": ["security", "feature"]
	}
}

Example: Getting Next Task

{
	"tool": "get_next_task",
	"arguments": {
		"owner": "cursor",
		"limit": 3
	}
}

Returns tasks sorted by priority where all dependencies are complete.

Example: Initialize Project

{
	"tool": "init_project",
	"arguments": {
		"project_name": "My App",
		"project_description": "A web application for task management"
	}
}

Creates .project/ with all standard files: index.md, TODO.md, ROADMAP.md, STATUS.md, DECISIONS.md, and todos/ directory.

Example: Import Tasks to Backlog

{
	"tool": "import_tasks",
	"arguments": {
		"source": ".project/ROADMAP.md",
		"project": "APP",
		"dry_run": true
	}
}

Parses the roadmap and adds tasks to BACKLOG.md. Use dry_run: true to preview first.

Example: Promote Task to Active Work

{
	"tool": "promote_task",
	"arguments": {
		"task_id": "APP-001",
		"owner": "cursor",
		"estimate": "2h"
	}
}

Moves task from BACKLOG.md to todos/APP-001.md with full YAML frontmatter.

Example: Archive Completed Task

{
	"tool": "archive_task",
	"arguments": {
		"task_id": "APP-001"
	}
}

Moves completed task from todos/ to archive/ to keep active queue small.


⚙️ Configuration

Custom Documentation Directory

{
	"mcpServers": {
		"project": {
			"command": "npx",
			"args": ["-y", "project-mcp"],
			"env": {
				"DOCS_DIR": "/path/to/documentation"
			}
		}
	}
}

Custom Working Directory

{
	"mcpServers": {
		"project": {
			"command": "npx",
			"args": ["-y", "project-mcp"],
			"cwd": "/path/to/project/root"
		}
	}
}

🧪 Development

# Clone repository
git clone https://github.com/pouyanafisi/project-mcp.git
cd project-mcp

# Install dependencies
npm install

# Run tests
npm test

# Test the server
node src/index.js

📚 Documentation


🤝 Contributing

Contributions welcome! See CONTRIBUTING.md for guidelines.


📄 License

MIT License - see LICENSE for details.


Get StartedDocumentationExamplesReport Issue

Available Tools

42 tools
add_decisionA

Adds a single architecture decision record (ADR) to DECISIONS.md. Creates a structured entry with title, context, decision, and consequences sections.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesTitle of the decision (e.g., "Use PostgreSQL for primary database").
contextNoThe context and problem statement that led to this decision.
decisionYesThe decision that was made.
consequencesNoThe positive and negative consequences of the decision.
statusNoStatus of the decision. Default: "accepted".accepted
tagsNoTags for categorization (e.g., ["database", "infrastructure"]).

TDQS

A3.5/5.0
Behavior3/5

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

No annotations provided, so the description must disclose behaviors. It states the tool writes to a file and creates structured sections, but does not mention whether it appends or overwrites, error conditions, or if it modifies existing entries. Gaps remain 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?

Two sentences with no wasted words. The first sentence front-loads the action and target, the second adds detail on structure. Ideal 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 6 parameters, no output schema, and no annotations, the description covers purpose and structure but lacks usage guidelines, behavioral transparency, and parameter cooperation details. It is minimally adequate but could provide more context for effective 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 baseline is 3. The description adds context by grouping params into sections (title, context, decision, consequences) but does not elaborate on individual parameter semantics beyond the existing 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 states a specific verb ('Adds') and resource ('architecture decision record to DECISIONS.md'), clearly distinguishing it from sibling tools like 'get_decision' (read) and 'create_or_update_decisions' (update/upsert).

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 'create_or_update_decisions' or 'list_decisions'. The context implicitly suggests it's for adding new records, but no when-not-to-use or prerequisites are provided.

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

add_roadmap_milestoneA

Adds a milestone or phase to ROADMAP.md. Creates a structured entry with title, description, target date, and deliverables.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesMilestone title (e.g., "v1.0 Release", "Q1 2025").
descriptionNoDescription of the milestone.
target_dateNoTarget date (e.g., "2025-03-01", "Q1 2025").
deliverablesNoList of deliverables for this milestone.
statusNoStatus of the milestone. Default: "planned".planned

TDQS

A3.5/5.0
Behavior2/5

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

No annotations exist, so the description carries full burden. It states it 'creates a structured entry' but does not disclose whether it appends, overwrites, or updates existing entries. No mention of file locking, error handling, or side effects.

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

Conciseness5/5

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

A single sentence front-loads the action and resource, then lists key fields. No redundancy or filler. Efficient and to the point.

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

Completeness3/5

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

Given 5 parameters and no output schema, the description provides basic purpose but lacks details on ordering, formatting conventions, or interaction with the existing file. It is adequate but not thorough for a file-modifying 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?

All 5 parameters have schema descriptions (100% coverage), so baseline is 3. The description merely repeats field names (title, description, target date, deliverables) without adding new semantic nuance or usage examples 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 ('Adds') and the resource ('milestone or phase to ROADMAP.md'). It specifies the content it creates (title, description, target date, deliverables), distinguishing it from sibling tools like 'create_or_update_roadmap' which likely manages the entire file.

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

Usage Guidelines3/5

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

The description does not provide explicit guidance on when to use this tool versus alternatives. While the purpose is clear, it lacks context on prerequisites (e.g., the existence of ROADMAP.md) or exclusions (e.g., when to use 'create_or_update_roadmap' instead).

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

add_to_backlogA

Adds a single item to BACKLOG.md. Use this for quick task creation without bulk import. Items are added to the specified priority section and can later be promoted to active work.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesThe task title/description.
projectYesProject prefix for the task ID (e.g., "AUTH", "API").
priorityNoPriority level. Default: "P2".P2
tagsNoOptional tags for categorization.
phaseNoOptional phase/milestone this task belongs to.
subtasksNoOptional subtasks to include.

TDQS

A4/5.0
Behavior3/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 the tool adds to a priority section and mentions later promotion, but lacks details on side effects like file creation or overwrite behavior.

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

Conciseness5/5

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

Three sentences, each adding unique value: action, usage context, and lifecycle hint. 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?

Covers purpose, usage, and lifecycle but does not describe output expectations. With no output schema, a brief note on result would be helpful but is 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 description coverage is 100%, so baseline is 3. The description adds no extra semantics beyond what the input schema already provides for each parameter.

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 'Adds a single item to BACKLOG.md' with a specific verb and resource, and distinguishes from the sibling tool 'import_tasks' by mentioning 'without bulk import'.

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 for quick task creation without bulk import', providing clear context. However, it does not explicitly name alternative tools for bulk import or 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.

archive_taskA

Archives a completed task by moving it from todos/ to archive/. Keeps the active task queue small and focused. Archived tasks are preserved for history but excluded from get_next_task.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYesThe task ID to archive (e.g., "AUTH-001"). Must have status "done".
forceNoArchive even if not marked done. Default: false.

TDQS

A4/5.0
Behavior3/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 mutation (moving) and the behavioral effect (excluded from get_next_task). However, it does not discuss reversibility (though unarchive_task exists) or any permissions or side effects.

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

Conciseness5/5

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

The description is two sentences long, front-loads the key action, and contains no superfluous words. 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?

The description adequately explains the purpose, effect, and state after archiving. Given the tool's simplicity and the presence of a sibling unarchive_task, it covers the essentials. No output schema exists, but the description does not need to explain return values for this mutation 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%; both parameters have detailed descriptions in the schema. The description adds no additional meaning beyond what the schema already provides, so a baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the verb (archives), resource (task), and the effect (moving from todos to archive). It distinguishes from siblings like delete_task (deletion) and unarchive_task (reversal) by noting that archived tasks are preserved for history and excluded from get_next_task.

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

Usage Guidelines4/5

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

The description implies when to use (for completed tasks to keep queue focused) and mentions a precondition (task must have status 'done'). However, it does not explicitly state when not to use or list alternative tools beyond the sibling context.

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

archive_thoughtA

Archives a processed thought file by moving it to .project/thoughts/todos/.archive/. Use this after you've created tasks from a thought file to keep the active thoughts folder clean. Also logs the archive action with timestamp and created task IDs.

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesThe thought file to archive (e.g., "my-ideas.md").
created_tasksNoArray of task IDs that were created from this thought (e.g., ["AUTH-001", "AUTH-002"]).
notesNoOptional notes about the processing (e.g., "Consolidated 5 items into 2 tasks").

TDQS

A4.4/5.0
Behavior4/5

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

The description discloses that the tool moves the file to a specific directory and logs the archive action with timestamp and created task IDs. Since no annotations are provided, the description carries the full burden and adequately conveys the key behavioral traits, though it could be more explicit about side effects like file deletion.

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 every word adds value. It efficiently conveys purpose, usage, and a side effect 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?

Given no annotations or output schema, the description covers the essential aspects: action, when to use, and logging behavior. It could be slightly more complete by mentioning recoverability or error cases, but it is sufficient for a straightforward file operation.

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 has 100% description coverage, so the description adds marginal value. However, it ties the 'created_tasks' parameter to the logging action and reinforces the purpose of 'file' and 'notes', enhancing understanding 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 the verb 'Archives' and the resource 'processed thought file' with a specific destination path. It effectively distinguishes itself from sibling tools like 'archive_task' (which archives tasks) and 'process_thoughts' (which processes thoughts), making its unique purpose obvious.

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 after creating tasks from a thought file, providing clear context for its use. It does not explicitly state when not to use it or mention alternatives, but the context is sufficient for an agent to understand the appropriate scenario.

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

check_project_stateA

Checks the current state of project management files. Returns which files exist (.project/index.md, ROADMAP.md, TODO.md, STATUS.md, DECISIONS.md) and provides a summary of project state. Use this before making changes to understand what exists.

ParametersJSON Schema
NameRequiredDescriptionDefault

No 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 explains the tool returns file existence and a summary, but does not detail the summary format, error cases, or whether it also reads file contents. For a simple check, this is adequate but lacks depth.

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: first states action and outputs, second gives usage guidance. No redundant words, front-loaded with key 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?

For a simple state check with no parameters and no output schema, the description covers the tool's scope by listing specific files checked. It could elaborate on what the 'summary' includes, but overall it is complete enough for an AI agent to invoke 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?

The input schema has zero parameters with 100% schema coverage. No parameter explanation is needed, and the description correctly adds no extraneous param info. Baseline 4 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 checks the current state of project management files, lists specific files (.project/index.md, ROADMAP.md, TODO.md, STATUS.md, DECISIONS.md), and provides a summary. This verb-resource combination is distinct from sibling tools like get_doc or get_roadmap.

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 advises 'Use this before making changes to understand what exists,' giving clear when-to-use guidance. It does not explicitly list alternative tools, but the purpose is sufficiently distinct among siblings.

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

create_or_update_decisionsB

Creates or updates the DECISIONS.md file in .project/ directory. Use this when documenting architecture decisions, trade-offs, or rationale. Helps maintain a decision log for the project.

ParametersJSON Schema
NameRequiredDescriptionDefault
contentYesThe decision content to add. Should include the decision, context, trade-offs, and rationale.
decisionTitleNoOptional: Title for the decision entry. If not provided, will extract from content or use a timestamp.
replaceNoIf true, replaces the entire file. If false (default), merges with existing content.

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 must convey behavioral traits. It states 'creates or updates' but does not disclose potential destructive behavior (e.g., replacing the file) unless reading the replace parameter. No mention of side effects, auth requirements, or impact on existing content.

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 clear sentences that are front-loaded and easy to parse. No wasted words, though could be slightly more concise.

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

Completeness3/5

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

Given the tool has 3 well-described parameters and no output schema, the description adequately explains purpose but lacks details on file format, creation behavior for missing files, and differentiation from similar siblings. 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?

The input schema has 100% coverage with detailed descriptions for all parameters. The tool description adds no additional meaning 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.

Purpose4/5

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

The description clearly states the tool creates or updates a DECISIONS.md file in .project/ directory for documenting architecture decisions, trade-offs, or rationale. It is specific about the verb and resource, but does not explicitly differentiate from sibling 'add_decision'.

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 gives a clear use case ('when documenting architecture decisions...') but does not mention when to use alternatives like 'add_decision' or when not to use this tool. Provides context but no exclusions.

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

create_or_update_indexB

Creates or updates the index.md file in .project/ directory. This is the contract file that defines how agents should interpret sources. Use this when setting up project structure or updating source mappings.

ParametersJSON Schema
NameRequiredDescriptionDefault
contentYesThe contract content to add. Should define source mappings and how agents should interpret different queries.
replaceNoIf true, replaces the entire file. If false (default), merges with existing content.

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 fully disclose behavior. It only mentions the basic action (create/update) and merge/replace behavior. It lacks details on potential side effects, permissions needed, or what happens to existing content when merging. This is insufficient 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.

Conciseness5/5

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

The description is extremely concise with only two sentences. The first sentence clearly states the action and resource, and the second provides context and usage. No unnecessary words or 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?

For a tool with moderate complexity (2 params, no output schema), the description provides adequate context: purpose, usage scenario, and basic behavior. It does not explain return values, but given the simplicity, this is acceptable. Siblings are many but the tool's focus is unique 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?

The schema covers both parameters with descriptions (100% coverage). The tool description repeats the schema's content description without adding new semantics. Given high schema coverage, a baseline score of 3 is appropriate as the description adds no extra value.

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

Purpose4/5

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

The description clearly identifies the tool's action (creates or updates) and resource (index.md in .project/), and explains its role as a contract file. However, it does not explicitly differentiate from sibling tools like 'sync_todo_index' or 'manage_project_file', though the focus on index.md makes it distinct.

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 states when to use the tool ('when setting up project structure or updating source mappings'), which is helpful. However, it does not provide guidance on when not to use it or mention alternatives, leaving some ambiguity about overlap with sibling tools.

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

create_or_update_roadmapA

Creates or updates the ROADMAP.md file in .project/ directory. Use this when planning future work, milestones, or phases. If the file exists, intelligently merges new content with existing roadmap.

ParametersJSON Schema
NameRequiredDescriptionDefault
contentYesThe roadmap content to add. Can be a new section, milestone, or phase. The tool will merge with existing content if the file exists.
sectionNoOptional: The section to add to (e.g., "Q1 2025", "Phase 1", "Future Considerations"). If not provided, will append to appropriate section or create new.
replaceNoIf true, replaces the entire file. If false (default), merges with existing content.

TDQS

A3.6/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. It mentions merging behavior but does not detail the 'intelligent' merge logic, possible side effects, or failure scenarios. Essential behavioral traits like file locking or permission requirements 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 with two sentences that cover purpose, usage context, and merge behavior. Every word adds value, and the structure is front-loaded with the core action.

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

Completeness4/5

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

Given the tool has 3 parameters and no output schema, the description adequately explains the primary function and merge behavior. However, it omits details about return values, error handling, and edge cases like empty content or file creation failures.

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 adds the notion of 'intelligent merging', but this is vague and does not significantly enhance understanding beyond the schema's parameter descriptions.

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 the tool creates/updates the ROADMAP.md file in the .project/ directory. While it differentiates from siblings by specifying a separate file, it does not explicitly contrast with tools like 'add_roadmap_milestone' or 'create_or_update_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 advises using this tool 'when planning future work, milestones, or phases', providing context. However, it lacks guidance on when not to use it or alternatives, such as using 'add_roadmap_milestone' for adding specific milestones.

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

create_or_update_statusA

Creates or updates the STATUS.md file in .project/ directory. Use this when updating project health, recent changes, metrics, or current phase. Automatically updates the "Last Updated" timestamp.

ParametersJSON Schema
NameRequiredDescriptionDefault
contentYesThe status update content. Can include current phase, health status, recent changes, metrics, risks, or next milestone.
updateTypeNoOptional: Type of update: "phase", "health", "changes", "metrics", "risks", "milestone", "general". Helps organize the update appropriately.
replaceNoIf true, replaces the entire file. If false (default), merges with existing content.

TDQS

A3.8/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. It reveals that the tool automatically updates the 'Last Updated' timestamp, which is useful. However, it does not clarify the difference between create and update behavior, nor mention any side effects like overwriting or merging.

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 every word adds value. No unnecessary text.

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 moderate complexity (3 params, no output schema, no annotations), the description provides sufficient context for the tool's basic usage. It could mention that no output is returned, but it's 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 coverage is 100%, so the parameters are already well-described. The description reinforces that 'content' holds the update and 'replace' controls merging, but adds no new semantic detail 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 creates or updates the STATUS.md file in the .project/ directory. It specifies the resource and action, but does not distinguish it from the sibling tool 'update_project_status', which may 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 gives clear when-to-use context: when updating project health, recent changes, metrics, or current phase. However, it does not mention when not to use it or suggest alternative sibling tools for similar tasks.

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

create_or_update_todoA

Creates or updates the TODO.md file in .project/ directory. Use this when adding tasks, marking items complete, or updating task status. Intelligently organizes tasks into sections (In Progress, Next Up, Blocked, Completed).

ParametersJSON Schema
NameRequiredDescriptionDefault
contentYesThe task or todo item to add. Can be a single task or multiple tasks. Use markdown checkbox format: "- [ ] Task description".
sectionNoOptional: The section to add to: "in_progress", "next_up", "blocked", "completed". If not provided, defaults to "next_up".
markCompleteNoOptional: Task description to mark as complete. Will move from current section to "Completed" section.
replaceNoIf true, replaces the entire file. If false (default), merges with existing content.

TDQS

A3.9/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 fully disclose behavior. It mentions 'intelligently organizes tasks into sections' but doesn't explain the criteria or whether it merges intelligently. It doesn't describe side effects, idempotency, or return values. Vague on how content and markComplete interact.

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 that front-load the main purpose. Every sentence adds information without redundancy. Efficient and clear.

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

Completeness3/5

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

The tool has 4 parameters and no output schema. The description covers main use cases but lacks details on return value, interaction of parameters (e.g., can content and markComplete be used together?), and the 'intelligently organizes' behavior. More completeness would be beneficial for a complex 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 baseline is 3. The description adds value by explaining markdown checkbox format for content, enumerating sections with defaults, and clarifying that markComplete moves tasks to Completed. This goes 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 uses specific verbs ('creates or updates', 'adding tasks', 'marking complete') and identifies the resource ('TODO.md file in .project/ directory'). It clearly distinguishes from sibling tools that handle individual tasks or other files.

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

Usage Guidelines4/5

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

Explicitly states when to use: 'when adding tasks, marking items complete, or updating task status'. Does not explicitly state when not to use, but the context of sibling tools (e.g., delete_task, list_tasks) implies alternatives for other operations.

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

create_taskA

Creates a new task with YAML frontmatter metadata. Uses Jira-like IDs (e.g., AUTH-001, API-042) for stable references. Supports dependencies, priorities, estimates, due dates, and tags. Agents can determine execution order by checking dependencies and priorities.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesThe title of the task (e.g., "Implement OAuth authentication", "Fix login bug").
projectYesProject/Epic identifier used in the task ID (e.g., "AUTH", "API", "FRONTEND"). Will be uppercased. The task ID will be {PROJECT}-{NNN}.
descriptionNoDetailed description of the task. Can include markdown formatting.
ownerNoWho is responsible for this task (e.g., "cursor", "john-doe", "backend-team").
priorityNoPriority level: "P0" (critical/blocker), "P1" (high), "P2" (medium/default), "P3" (low).P2
statusNoCurrent status: "todo" (not started), "in_progress" (being worked on), "blocked" (waiting on something), "review" (needs review), "done" (completed).todo
depends_onNoArray of task IDs this task depends on (e.g., ["AUTH-001", "AUTH-002"]). Task cannot start until dependencies are done.
blocked_byNoArray of task IDs or external blockers (e.g., ["AUTH-003", "waiting-on-api-key"]). Different from depends_on - these are blockers that prevent progress.
estimateNoTime estimate (e.g., "2h", "1d", "3d", "1w"). Use h=hours, d=days, w=weeks.
dueNoDue date in YYYY-MM-DD format (e.g., "2025-01-15").
tagsNoArray of tags for categorization (e.g., ["security", "urgent", "tech-debt", "feature"]).
subtasksNoArray of subtask descriptions. Will be rendered as a checklist in the task.

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description carries full burden. It discloses the ID format and supported features (dependencies, priorities) but does not mention side effects, permissions, or whether creation triggers any indexing or notifications.

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 4 sentences and front-loaded with the main purpose. It is reasonably concise, though a few words could be trimmed without loss of meaning.

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

Completeness3/5

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

Given the tool has 12 parameters and no output schema, the description provides high-level capability overview but lacks details on return values or how the created task is represented. The mention of YAML frontmatter hints at output but is insufficient for complete 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%, so the schema already describes all parameters. The description adds value by explaining Jira-like IDs and the fact that agents can use dependencies/priorities for execution order, but it does not deeply 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 'creates' and resource 'task', and distinguishes the tool from siblings like 'update_task', 'delete_task', etc., by specifying features like YAML frontmatter and Jira-like IDs.

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

Usage Guidelines3/5

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

The description does not explicitly state when to use this tool versus alternatives like 'create_or_update_todo' or 'import_tasks'. It mentions agents can use dependencies and priorities to determine execution order, providing some context but lacking clear exclusions.

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

delete_taskA

Permanently deletes a task from todos/. Use with caution - this cannot be undone. Consider using archive_task instead for completed tasks.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe task ID to delete (e.g., "AUTH-001").
confirmNoMust be true to confirm deletion. Default: false.

TDQS

A4.5/5.0
Behavior4/5

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

The description discloses key behaviors: permanence and irreversibility. With no annotations present, this is sufficient for a simple delete operation, though it does not cover potential auth requirements or side effects.

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

Conciseness5/5

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

Two sentences, front-loaded with the core action, followed by safety caution and alternative suggestion. 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's simplicity (2 parameters, no output schema), the description fully covers what an agent needs to know: purpose, irreversibility, and alternative 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 coverage is 100%, so the schema already documents both parameters. The description adds no additional meaning beyond what the schema provides, warranting a 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?

The description clearly states the verb 'deletes' and resource 'task from todos/' and distinguishes it from the sibling tool 'archive_task' for alternative action.

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

Usage Guidelines5/5

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

Explicitly advises caution due to permanence and recommends using 'archive_task' for completed tasks, providing clear guidance on when to use this tool versus alternatives.

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

get_backlogA

Reads and returns the current backlog contents with optional filtering. Shows tasks organized by priority with counts and summary.

ParametersJSON Schema
NameRequiredDescriptionDefault
priorityNoFilter by priority level.
projectNoFilter by project prefix.
include_promotedNoInclude already-promoted items. Default: false.

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description carries full burden. It indicates a read operation but does not disclose potential side effects, error conditions, or performance characteristics. The mention of 'counts and summary' adds some output 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?

Two sentences with no redundancy. Action is front-loaded, and output format is succinctly described.

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?

Adequately describes output format (priority-organized with counts and summary) for a read tool. Lacks details on error handling or pagination, but is sufficient given the simplicity.

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 description adds no additional meaning beyond the schema's parameter descriptions. Baseline 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?

Clearly states the action ('Reads and returns'), the resource ('current backlog contents'), and the format ('organized by priority with counts and summary'). Distinguishes from sibling tools like add_to_backlog and remove_from_backlog.

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. Does not mention when not to use it or suggest sibling tools like add_to_backlog for modification.

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

get_decisionA

Reads a specific architecture decision by ADR ID. Returns the full decision content including context, decision, and consequences.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe ADR ID to retrieve (e.g., "ADR-001", "001", or just "1").

TDQS

A4.3/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 indicates a read operation but lacks details on side effects, authentication needs, or rate limits. 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?

Two sentences convey all necessary information without any fluff. Highly efficient and front-loaded.

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 read operation with one parameter and no output schema, the description is sufficiently complete. It covers what the tool does and what it returns.

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 schema has 100% coverage for the single parameter, and the description adds value by explaining the ID format (e.g., 'ADR-001', '001', '1'). This goes beyond the schema description.

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

Purpose5/5

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

The description clearly states it reads a specific architecture decision by ADR ID, and specifies the returned content includes context, decision, and consequences. It effectively distinguishes from siblings like list_decisions and add_decision.

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

Usage Guidelines4/5

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

The description implies when to use (when you need a specific decision's details), but does not explicitly state when NOT to use or provide alternatives. However, the context of siblings makes it clear.

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

get_docA

Get the full content of a specific file. Supports files from .project/, root-level, or docs/. Use the path as returned from search results.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to the file. Can be relative to project root (e.g., ".project/index.md", "README.md", "docs/architecture/ARCHITECTURE_SPEC.md").

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 carries full burden. It discloses supported file locations and that it returns full content. Does not mention potential limitations like file size or encoding, but is reasonable for a simple retrieval 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?

Two sentences with no filler. Purpose is front-loaded, and additional context is efficiently provided. 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 low complexity (one parameter, no output schema, no annotations), the description is mostly complete. It covers purpose and path usage. The return format could be implied (full content as text), but no further detail is needed.

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 'path' parameter. Description adds value by specifying supported directories and suggesting using paths from search results, which clarifies permissible values 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 'Get the full content of a specific file' with specific supported directories and path usage guidance, distinguishing it from sibling tools like search_docs or list_docs.

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

Usage Guidelines4/5

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

Explicitly advises to use the path from search results, indicating when to use this tool. Does not explicitly mention when not to use or alternatives, but is sufficient for the context.

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

get_doc_structureA

Get the complete documentation directory structure with file paths and descriptions. Useful for understanding the organization of documentation.

ParametersJSON Schema
NameRequiredDescriptionDefault

No 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 disclosure. It describes a read operation ('Get') without mentioning any side effects, permissions, or potential costs. While it does not contradict annotations (none exist), it lacks details about behavior, such as whether the operation is cheap or if caching applies. This is adequate for a simple retrieval but not exemplary.

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, consisting of two short sentences. The first sentence clearly states the tool's purpose and output. The second provides context on usage. No extraneous information is present, and the key points are front-loaded.

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

Completeness4/5

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

Given the tool has no parameters and no output schema, the description is nearly complete. It explains what the tool returns ('file paths and descriptions') and its utility. Missing is a more detailed description of the output format (e.g., flat list or nested structure), but the description is sufficient for understanding the tool's basic function.

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 no parameters, so the input schema provides full coverage (100%). The description does not need to add parameter information. Per the guidelines, 0 parameters warrant 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 clearly states the action ('Get') and the resource ('complete documentation directory structure'), specifying it includes file paths and descriptions. This distinguishes it from sibling tools like list_docs or get_doc, which operate on individual documents or lists.

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 includes 'Useful for understanding the organization of documentation', which implies when to use the tool. However, it does not explicitly exclude cases or suggest alternatives, such as noting when to use list_docs instead. The guidance is present but minimal.

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

get_next_taskA

Returns the next task(s) that should be worked on. Considers: dependencies (only returns tasks whose dependencies are done), priority (P0 first), status (excludes done/blocked), and optionally filters by owner or project. This is the key tool for agentic execution - call this to know what to do next.

ParametersJSON Schema
NameRequiredDescriptionDefault
ownerNoFilter by owner. Only return tasks assigned to this owner.
projectNoFilter by project. Only return tasks from this project.
include_blockedNoInclude blocked tasks in results. Default: false.
limitNoMaximum number of tasks to return. Default: 5.

TDQS

A4.5/5.0
Behavior4/5

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

The description discloses that it returns tasks with done dependencies, high priority, and non-done/blocked status. It also mentions optional filters. Although no annotations are provided, the description sufficiently covers behavioral traits for a read operation.

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

Conciseness5/5

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

The description is concise (two sentences), front-loaded with the purpose, and uses efficient language. Every sentence adds value 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?

The description covers the tool's purpose, considerations, and usage hint. It is complete for a tool with four optional parameters and no output schema, as the return type (tasks) is clear from 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?

Schema coverage is 100% with good parameter descriptions. The description adds value by explaining how parameters (e.g., owner, project) interact with the tool's logic, going 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 returns the next task(s) to work on based on dependencies, priority, and status. It explicitly distinguishes itself as the key tool for agentic execution, which differentiates it from sibling tools like list_tasks or search_tasks.

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 guidance by stating 'call this to know what to do next' and explaining the filtering logic. It does not explicitly mention when not to use it or compare to alternatives, but the context is strong.

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

get_roadmapA

Reads the current roadmap content from ROADMAP.md. Returns milestones, phases, and planned work.

ParametersJSON Schema
NameRequiredDescriptionDefault
sectionNoOptional: Return only a specific section/milestone.

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations provided, the description captures the basic read-only nature and return content. However, it lacks details on potential side effects, authorization needs, or any other behavioral traits beyond the straightforward read operation.

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

Conciseness5/5

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

The description is concise at two sentences, directly stating the action and output without any redundant or unnecessary 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 tool's simplicity (one optional parameter, no output schema), the description adequately covers its purpose and return value. It explains what the tool does and what it returns, which is 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 description coverage is 100% for the single optional parameter 'section'. The description adds no extra meaning beyond what the input schema already provides, so it meets 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 reads the current roadmap content from ROADMAP.md and returns milestones, phases, and planned work. It specifies the verb 'reads' and the resource, and distinguishes from sibling tools like get_backlog or get_decision.

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

Usage Guidelines2/5

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

The description does not provide explicit guidance on when to use this tool versus alternatives, nor does it mention when not to use it or list any prerequisites. It simply implies the context of reading the roadmap.

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

get_taskA

Reads and returns a specific task by ID. Shows all metadata including frontmatter, description, subtasks, and notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe task ID to read (e.g., "AUTH-001").

TDQS

A4/5.0
Behavior4/5

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

Explicitly calls this a 'reads' operation, implying read-only behavior. Discloses returned fields (frontmatter, description, subtasks, notes). With no annotations, the description adequately conveys the tool's side-effect-free nature.

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

Conciseness5/5

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

Two efficient sentences with no wasted words. Front-loaded with main action and required input, then lists what is returned.

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

Completeness4/5

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

For a simple get-by-id tool with one parameter and no output schema, the description adequately explains what is returned. Could optionally mention that the output includes the full task object, but the listed fields suffice.

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 the single parameter with an example. Description reinforces 'by ID' but adds no new semantic details beyond what the schema provides. Schema coverage is 100%, 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?

Clearly states action (reads/returns) and resource (specific task by ID). Distinguishes from siblings like list_tasks or search_tasks by specifying retrieval of a single task's full metadata.

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 when you have a task ID and need all metadata, but lacks explicit guidance on when to prefer this over siblings like get_next_task or search_tasks. No exclusions or conditions provided.

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

get_thoughtC

Reads a specific thought file and returns its raw content for review.

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesThe thought file to read (e.g., "my-ideas.md").
categoryNoThe category/subdirectory. Default: "todos".todos
from_archiveNoRead from archive instead of active thoughts. Default: false.

TDQS

C2.9/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 convey behavioral traits. It indicates a read operation but omits details like permissions required, side effects (none expected), or any limitations (e.g., file size). The lack of disclosure beyond the basic action leaves behavioral gaps.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no filler. Every word contributes to the core purpose, achieving maximum conciseness without sacrificing 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?

With no output schema, the description should clarify the return format or structure. It merely states 'raw content for review', which is insufficient for an agent to know how to interpret the result. Additionally, it does not explain the file format or any encoding, making the description incomplete given the tool's three 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?

The input schema has 100% coverage with descriptions for all three parameters. The tool description adds no further meaning beyond the schema, so it meets the baseline expectation. No contradictions or enhancements observed.

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 (Reads), resource (specific thought file), and outcome (returns raw content). It distinguishes from sibling tools like list_thoughts or archive_thought by focusing on a single file retrieval, though it could be more explicit about the specific file selection mechanism.

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 list_thoughts or get_doc. The description does not mention exclusions, prerequisites, or context, leaving the agent to infer usage from the name alone.

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

import_tasksA

Parses a plan document and imports tasks to BACKLOG.md (not individual files). Use this to populate the backlog from a roadmap or requirements doc. Tasks stay in BACKLOG until promoted to active work via promote_task.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceYesPath to the source file to parse (e.g., "ROADMAP.md", ".project/ROADMAP.md"). Can also be raw markdown content if source_type is "content".
source_typeNoType of source: "file" (path to file) or "content" (raw markdown). Default: "file".file
projectYesProject prefix for task IDs (e.g., "AUTH", "API"). Required.
phaseNoOptional: Only import tasks from a specific phase/section.
default_priorityNoDefault priority for tasks. Default: "P2".P2
dry_runNoIf true, shows what would be imported without modifying BACKLOG.md. Default: false.

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 bears full burden. It discloses the main action (import to BACKLOG.md) and mentions dry_run via schema. However, it lacks details on side effects (e.g., overwrites or appends?), error handling, idempotence, or what happens on duplicate tasks.

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 (49 words) front-loaded with action. Every sentence adds value, with no fluff or repetition of schema details.

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?

No output schema exists, so description should hint at return value or side effects. It does not mention what the tool returns (if anything). For a file-modifying tool, more details on confirmation or error outcomes 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 has 100% description coverage for all 6 parameters. Description adds no extra meaning beyond 'parses a plan document' and importing to BACKLOG.md. Baseline 3 is appropriate since 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?

Description clearly states it parses a plan document and imports tasks to BACKLOG.md, not individual files. It explicitly contrasts with personal creation and mentions promotion via promote_task, distinguishing it from siblings like add_to_backlog, create_task, and promote_task.

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 to populate the backlog from a roadmap or requirements doc.' It also explains the task lifecycle (stay in BACKLOG until promoted) and references promote_task. No explicit 'when not to use' for alternatives, but the purpose is clear enough for a capable agent.

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

init_projectA

Initializes the .project/ directory with all standard files following strict templates. Creates index.md (contract), TODO.md (dashboard), BACKLOG.md (prioritized work queue), ROADMAP.md, STATUS.md, DECISIONS.md, and todos/ directory. Use this to bootstrap a new project with proper structure.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_nameYesName of the project. Used in headers and metadata.
project_descriptionNoBrief description of the project.
overwriteNoIf true, overwrites existing files. Default: false (skip existing).

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 must convey behavioral traits. It mentions file creation and overwrite behavior (skip vs. overwrite). However, it does not specify whether the tool replaces the entire .project/ directory or what happens if it already exists without the overwrite flag, which could be important for the agent.

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, focused sentence followed by a list of files, with the usage guidance appended. Every sentence is relevant and 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?

Given the absence of annotations and output schema, the description covers the tool's purpose, inputs, and behavior reasonably well. It does not describe the return value, but that is acceptable for a setup tool with no output schema. The file list is helpful for the agent to understand the impact.

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%, but the description adds value by linking parameters to the files created and stating that 'project_name' is used in headers and metadata, which goes beyond the schema's description. The overwrite parameter's behavior is also clarified.

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

Purpose5/5

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

The description explicitly states it 'Initializes the .project/ directory with all standard files' and lists the specific files created. This clearly distinguishes it from sibling tools like create_or_update_index or add_decision, which operate on individual components rather than bootstrapping the entire structure.

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 includes 'Use this to bootstrap a new project with proper structure,' providing a clear when-to-use signal. It does not explicitly mention when not to use or alternatives, but the context of sibling tools makes this somewhat implicit.

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

lint_project_docsA

Validates project documentation against standards. Checks for required files, valid frontmatter, broken dependencies, missing fields, and formatting issues. Can auto-fix common problems. Run this before commits to ensure documentation quality.

ParametersJSON Schema
NameRequiredDescriptionDefault
fixNoIf true, automatically fix issues that can be auto-corrected (missing timestamps, formatting, etc.). Default: false (report only).
strictNoIf true, enforce stricter rules (all tasks must have estimates, due dates, descriptions). Default: false.
scopeNoWhat to lint: "all" (everything), "tasks" (only task files), "docs" (only documentation files). Default: "all".all

TDQS

A4.1/5.0
Behavior3/5

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

With no annotations, the description must fully disclose behavior. It states validation and auto-fix capability, implying mutation, but does not describe side effects, idempotency, or run safety. Partially 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?

Three sentences efficiently cover purpose, capabilities, and usage advice. No redundant text; each sentence serves a 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?

For a tool with 3 optional parameters and no output schema, the description provides sufficient context: what it checks, when to use, and auto-fix option. Covers all necessary aspects.

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 parameters are well-documented in schema. The description adds high-level context but no additional semantics per parameter beyond the schema defaults and enums.

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

Purpose5/5

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

The description clearly states the tool validates project documentation against standards, listing specific checks (required files, frontmatter, dependencies, etc.) and the ability to auto-fix. It is distinct from sibling tools, which are mostly CRUD operations and project management functions.

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

Usage Guidelines4/5

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

Explicitly advises to run before commits to ensure quality, providing clear context. However, it does not mention when not to use or alternatives, though no direct sibling linter exists.

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

list_archived_tasksB

Lists tasks in the archive/ directory. Shows completed work history with optional filtering by project or date.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectNoFilter by project prefix.
limitNoMaximum number of tasks to return. Default: 20.

TDQS

B3.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 the full burden. It mentions optional filtering but does not disclose other behaviors such as default ordering, pagination, or what happens if no tasks match. For a read operation, the description is adequate but lacks some details.

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 efficient and front-loaded. It clearly states the main action and context. However, the inaccuracy about date filtering slightly detracts from its conciseness 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?

Given the tool's simplicity (2 optional parameters, no output schema), the description covers the core functionality. It lacks details on ordering, pagination behavior, and the absence of a date parameter is confusing. It is minimally adequate.

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

Parameters2/5

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

The input schema has 100% description coverage, so baseline is 3. However, the description claims filtering by date, which is not a parameter, creating a contradiction. This inaccuracy reduces the score, as it does not add meaning and may mislead.

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 (lists tasks), the resource (archive/ directory), and the context (completed work history). It distinguishes from siblings like 'list_tasks' and 'archive_task'. However, it mentions optional filtering by date, but the input schema does not include a date parameter, which is a minor inaccuracy.

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 completed work history, suggesting it is for archived tasks rather than active ones. However, there is no explicit guidance on when to use this tool versus alternatives like 'list_tasks' or 'search_tasks', 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.

list_archived_thoughtsA

Lists all archived thought files with their processing history. Shows what thoughts were processed, when, and what tasks were created.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of archived thoughts to show. Default: 20.

TDQS

A3.5/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. Only states basic listing behavior, missing details like read-only nature, empty result handling, or performance 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?

Two sentences, front-loaded with action. No wasted words, clear and efficient.

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

Completeness3/5

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

Adequate for a simple listing tool, mentions what info is shown. Lacks details on ordering, pagination, or whether full thought content is included. No output schema, so more context would help.

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% for the single parameter 'limit', with good description. Tool description does not add any extra meaning beyond the schema, so baseline 3 is appropriate.

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

Purpose5/5

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

Clearly states action (lists) and resource (archived thought files). Adds detail on what info is shown (processing history, timestamps, tasks). Distinguishes from sibling 'list_thoughts' by focusing on archived ones.

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

Usage Guidelines3/5

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

Implies usage for archived thoughts, but no explicit guidance on when to use versus alternatives like 'list_thoughts'. Lacks when-not-to-use or prerequisites.

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

list_decisionsA

Lists all architecture decisions from DECISIONS.md with optional filtering by status or tag.

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNoFilter by status.
tagNoFilter by tag.

TDQS

A3.7/5.0
Behavior3/5

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

No annotations provided, so description must disclose behavior. It states read operation (list) and filtering, but doesn't mention if it's read-only, what happens if file missing, or return format. 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.

Conciseness5/5

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

Single sentence, 14 words, no fluff. Front-loaded with verb and resource. Efficiently conveys core functionality.

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?

No output schema exists, so description should clarify what the list contains. It doesn't mention return format (e.g., list of titles, IDs). Adequate but incomplete for an agent to fully understand output.

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 description adds minimal value. It restates optional filtering but doesn't explain enum values (e.g., empty string) or tag semantics 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?

Description clearly states it lists architecture decisions from a specific file (DECISIONS.md) with optional filtering. Differentiates from siblings like get_decision (single) and add_decision (add).

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?

Implied usage for listing decisions, but no explicit guidance on when to use vs. alternatives (e.g., get_decision for details) or when not to use. Many sibling tools exist without differentiation.

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

list_docsA

List all available documentation files organized by category. Use this to discover what documentation is available or to get an overview of the documentation structure.

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryNoOptional: Filter by category. Options: product, architecture, operations, api, guides, reference, or leave empty for all.

TDQS

A4.1/5.0
Behavior3/5

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

No annotations, so description provides basic behavior: list operation with category organization. Lacks details on output format, but acceptable 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?

Two concise sentences with no waste, front-loaded with action.

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?

Fully sufficient for a simple list tool with one optional parameter and no output schema; covers discovery and overview 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 has high coverage (100%) with enum, description adds minimal context ('organized by category') 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 lists documentation files by category, distinct from sibling tools like get_doc (specific retrieval) and search_docs (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?

Explicitly says to use for discovering documentation or getting an overview; implicitly suggests alternatives like get_doc for specific files, but doesn't name them.

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

list_tasksB

Lists all tasks with optional filtering. Returns a summary view of tasks organized by status and priority.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectNoFilter by project.
ownerNoFilter by owner.
statusNoFilter by status.
priorityNoFilter by priority.
tagNoFilter by tag.

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description must fully disclose behavior. It briefly notes the output format (summary view by status/priority) but omits important details like read-only nature, pagination, authorization requirements, or limits. The description is insufficient for a safe agent invocation.

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 that communicates purpose and key features without waste. However, it could be slightly more structured (e.g., separate filtering from output summary) but remains effective.

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

Completeness2/5

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

Given the tool has 5 optional parameters and no output schema or annotations, the description should explain how filters behave (e.g., AND logic), the output format in more detail, and any limitations. The current description leaves significant gaps 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 the baseline is 3. The description adds context that filters are optional and output is organized, but it does not clarify filter combination logic or the meaning of empty strings in enum fields. Thus it provides marginal added value over the schema.

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

Purpose5/5

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

The description clearly states the action ('Lists all tasks'), the resource ('tasks'), and key features: optional filtering and organization by status and priority. It effectively distinguishes from sibling tools like 'get_task' (single task) and 'search_tasks' (full-text search).

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 over siblings such as 'search_tasks' or 'list_archived_tasks'. The description implies it is for listing all tasks with filters but does not provide exclusion criteria or mention alternatives.

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

list_thoughtsB

Lists all thought files in the .project/thoughts/ directory structure. Shows available brain dump files organized by category.

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryNoOptional: Filter by thought category. Currently supported: "todos".
include_archivedNoInclude archived thoughts in the listing. Default: false.

TDQS

B3.2/5.0
Behavior3/5

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

The description implies a read-only operation, but does not detail behavior like sorting, empty results, or error handling. With no annotations, it carries the burden but provides only minimal transparency.

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

Conciseness4/5

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

Two sentences, no fluff. Efficient for a simple tool, though slightly more structure could improve readability.

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

Completeness3/5

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

The description covers the basic purpose and directory, but lacks mention of return format or behavior for edge cases. No output schema increases the need for description 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 mentions 'organized by category' which hints at the category parameter, but adds no extra meaning beyond the schema descriptions.

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 lists thought files in a directory, organized by category. It distinguishes from siblings like list_archived_thoughts by not mentioning archived, but does not explicitly exclude 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 versus alternatives like list_archived_thoughts or get_thought. Context about filtering or common use cases is absent.

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

manage_project_fileA

Smart tool that automatically determines which project file to create or update based on context. Use this when making changes to the project - it will check project state and determine if index.md, ROADMAP.md, TODO.md, STATUS.md, or DECISIONS.md should be created/updated. This is the primary tool for managing project documentation during development.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesThe action being performed: "planning" (creates/updates ROADMAP), "task" (creates/updates TODO), "status_change" (creates/updates STATUS), "decision" (creates/updates DECISIONS), "contract" (creates/updates index), "auto" (automatically determines based on content).
contentYesThe content to add or update. For "auto" mode, describe what you're doing and the tool will determine the appropriate file.
fileTypeNoOptional: Force a specific file type. If not provided and action is "auto", the tool will determine automatically.

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 must fully disclose behavior. It mentions automatic file determination based on context but does not detail side effects (e.g., overwrite vs. append), permissions needed, or what happens if a file is missing. The description provides moderate transparency but lacks depth.

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

Conciseness5/5

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

The description is two sentences long, with no redundant words. The first sentence clearly states the function, and the second provides usage context, making it efficient and front-loaded.

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

Completeness4/5

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

The tool has 3 parameters with 2 enums and no output schema. The description adequately covers the tool's purpose and usage, but lacks details on return behavior or error handling. For its complexity, it is mostly 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 how the 'action' parameter maps to file types and how 'auto' mode works, going beyond the schema's enum 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: automatically determining which project file to create or update based on context. It specifies the files involved (index.md, ROADMAP.md, etc.) and positions itself as the primary tool for project documentation changes, distinguishing it from 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?

The description says 'Use this when making changes to the project' and explains the automatic determination logic. However, it does not explicitly state when to use sibling tools (e.g., create_or_update_todo) instead, leaving some ambiguity for precise actions.

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

process_thoughtsA

Reads brain dump markdown files from .project/thoughts/todos/ and returns the content along with project context for analysis.

This tool gathers:

  1. Raw thought content - The unstructured brain dump as written

  2. Project context - Existing tasks, roadmap milestones, decisions for reference

  3. Task format guide - The YAML structure for creating tasks

YOU (the LLM) should then analyze the content to:

  • Understand the user's intent (explicit, shadow/underlying, practical)

  • Identify logical task groupings (consolidate related items)

  • Determine appropriate priorities based on context

  • Create well-structured tasks using create_task

  • After creating tasks, use archive_thought to archive the processed file

The tool does NOT automatically create tasks - it provides you with everything needed to make intelligent decisions about task creation.

ParametersJSON Schema
NameRequiredDescriptionDefault
fileNoSpecific thought file to process (e.g., "my-ideas.md"). If not provided, processes all files in thoughts/todos/.
projectYesProject prefix for task IDs when you create tasks (e.g., "AUTH", "API").

TDQS

A4.3/5.0
Behavior4/5

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

No annotations provided, so description bears full burden. It discloses read-only behavior (reads files) and that no automatic task creation occurs. Could mention if any side effects, but likely none.

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

Conciseness4/5

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

Well-structured with bullet points and clear sections. Front-loaded with main action. Some repetition in listing gathered items, but overall appropriately sized for 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?

Covers what tool does, returns, and intended subsequent actions. Lacks explicit comparison to sibling tools like list_thoughts, but sufficient given the detailed workflow guidance. Output schema absent but not critical for this read-and-analyze 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 descriptions already cover both parameters (file optional, project required) with examples. Description adds context about project as task ID prefix, but does not significantly enhance beyond schema's 100% coverage.

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

Purpose5/5

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

The description clearly states the tool reads brain dump markdown files and returns content with project context. It distinguishes from siblings like list_thoughts, get_thought, and archive_thought by explaining its analysis-oriented role.

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 outlines the workflow: analyze content, create tasks using create_task, then archive with archive_thought. It also states the tool does not auto-create tasks, setting clear expectations and alternatives.

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

promote_taskA

Promotes a task from BACKLOG.md to an active YAML task file in todos/. Use this when starting work on a backlog item. Creates a full task file with YAML frontmatter, dependencies, and metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYesThe task ID to promote from backlog (e.g., "AUTH-001").
ownerNoWho will work on this task. Default: "unassigned".unassigned
priorityNoPriority override. If not set, uses priority from backlog.
depends_onNoTask IDs this depends on (e.g., ["AUTH-002"]). Only active tasks can be dependencies.
estimateNoTime estimate (e.g., "2h", "1d", "3d").
dueNoDue date in YYYY-MM-DD format.

TDQS

A3.9/5.0
Behavior3/5

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

Describes the creation of a full task file with YAML frontmatter and dependencies. However, it omits key behavioral details such as whether the backlog entry is removed or updated, and there are no annotations to supplement safety or side-effect information.

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 that front-load the core purpose and function. Every word contributes value, with no redundancy or irrelevant detail.

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

Completeness3/5

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

Given 6 parameters, no output schema, and no annotations, the description provides adequate context for the basic operation but lacks details on return values, error handling, and the fate of the backlog entry. Slightly incomplete for a tool with moderate complexity.

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

Parameters3/5

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

Schema coverage is 100%, so the baseline is 3. The description adds context about the overall action (e.g., creating a full task file) but does not elaborate on individual parameters beyond what the schema provides. This meets the minimum for a well-covered 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 specific action (promote), the resource (task from BACKLOG.md to active YAML file), and distinguishes from sibling tools like add_to_backlog or create_task by focusing on promotion rather than creation or addition.

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 usage context: 'Use this when starting work on a backlog item.' This guides the agent on when to invoke. However, it does not mention when not to use it or suggest alternatives, 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.

remove_from_backlogA

Removes an item from BACKLOG.md without promoting it. Use for tasks that are no longer needed or were added by mistake.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYesThe task ID to remove (e.g., "AUTH-001").
reasonNoOptional reason for removal (for logging).

TDQS

A4/5.0
Behavior3/5

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

The description discloses the core behavior (removal without promotion) but does not elaborate on whether the removal is permanent, reversible, or requires confirmation. With no annotations, 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, 15 words, front-loaded with the action and purpose. No extraneous information.

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

Completeness4/5

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

Given the tool's simplicity, no output schema, and presence of sibling tools, the description is largely complete. It could mention whether removal is a soft or hard delete, but overall it provides sufficient context for an 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?

Input schema has 100% description coverage for both parameters, so baseline is 3. The description adds no additional context about the parameters 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 'Removes' and the resource 'item from BACKLOG.md'. It differentiates from sibling tools like 'promote_task' by adding 'without promoting it'.

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 says 'Use for tasks that are no longer needed or were added by mistake', providing clear context on when to use this tool. It implicitly distinguishes from promote but does not explicitly state when not to use it or list alternatives.

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

search_docsA

Search only the docs/ directory for reference documentation. Use this when the user specifically asks for "docs" or "documentation". Returns relevant documentation chunks with file paths and content snippets.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch query. Can be a single word, multiple words, or a phrase. The search is semantic and will find relevant content even with partial matches.
categoryNoOptional: Filter by documentation category. Options: product, architecture, operations, api, guides, reference, or leave empty for all.
maxResultsNoMaximum number of results to return. Default is 10, maximum is 50.

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 describes semantic search and return format but does not explicitly state that the tool is read-only or non-destructive. The behavioral traits are adequately implied but not fully disclosed.

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

Conciseness5/5

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

The description is concise with two sentences, front-loaded with purpose and usage guidance. No unnecessary words or 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?

Given no output schema, the description mentions return format (chunks with paths and snippets) which is sufficient. It covers when to use and all parameters are detailed in schema. Slightly lacks details on output structure but adequate for agent 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%, so baseline is 3. The description adds value by clarifying the scope (docs/ directory) and the semantic nature of search with partial matches, which is not present in the schema parameter descriptions.

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

Purpose5/5

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

The description clearly states the tool searches only the docs/ directory for reference documentation, returning relevant chunks with file paths and snippets. It distinguishes from sibling tools like search_project and get_doc by specifying scope and purpose.

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

Usage Guidelines4/5

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

Explicitly advises using this tool when the user specifically asks for 'docs' or 'documentation', providing clear usage context. However, it does not explicitly mention when not to use it or compare directly with alternative tools like search_project.

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

search_projectA

Search across project sources with smart intent detection. IMPORTANT: "project docs" means APPLICATION documentation (docs/ + DECISIONS.md), NOT project management. Use intent "project_docs" when user says "project docs/documents/documentation" to search application documentation. Use intent "plan" for project management (status, todos, roadmap, backlog).

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch query. Can be a single word, multiple words, or a phrase. The search is semantic and will find relevant content even with partial matches.
intentNoIntent type to map to sources. "project_docs" searches docs/ + DECISIONS.md (application documentation). "docs" searches only docs/. "plan/todos/roadmap/status/operational" searches .project/ (project management). "project" searches everything. "decisions" searches only DECISIONS.md.
maxResultsNoMaximum number of results to return. Default is 10, maximum is 50.

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations, the description fully discloses behavioral traits: smart intent detection, semantic search, and specific source mappings. It explains how different intents map to different directories, which goes beyond basic functionality.

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 plus a critical clarification about 'project docs'. Every sentence adds value, front-loading the important intent distinction. No 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 no output schema, the description covers search behavior, source mapping, and intent guidance. It lacks detail on edge cases (e.g., empty results) but is sufficient for a search tool with semantic matching.

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 description adds significant meaning beyond the schema by detailing the intent parameter's mapping (e.g., 'project_docs' vs 'plan') and clarifying ambiguous terms like 'project docs'. This helps the agent choose correct intent.

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 searches across project sources with intent detection. It specifies different sources (docs/, DECISIONS.md, .project/) and distinguishes from sibling tools like search_docs and search_tasks by covering multiple sources with intent mapping.

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

Usage Guidelines4/5

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

The description provides clear context on when to use each intent, especially the important distinction between 'project docs' (application docs) vs 'plan' (project management). However, it does not explicitly mention when NOT to use this tool or suggest alternatives like search_docs for docs-only searches.

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

search_tasksB

Search tasks by keyword in title, description, or content. Returns matching tasks with relevance ranking.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch query (matches title, description, content).
projectNoFilter by project.
statusNoFilter by status.
include_archivedNoInclude archived tasks in search. Default: false.
limitNoMaximum results to return. Default: 10.

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, placing full burden on the description. While it mentions 'relevance ranking', it does not explain the ranking mechanism, whether results are sorted, or what fields are searched beyond title/description/content. It also lacks details on side effects (none, read-only), auth, rate limits, or pagination behavior beyond a limit parameter.

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

Conciseness5/5

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

The description is a single sentence that efficiently conveys the core purpose and output. No extraneous or redundant information is present, making it highly concise and well-structured.

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

Completeness2/5

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

Given the tool has 5 parameters, no output schema, and no annotations, the description is insufficiently complete. It does not specify return field details (e.g., which task fields are returned), search behavior nuances (e.g., exact vs fuzzy matching), or how to interpret the relevance ranking. A more comprehensive description would address these gaps.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all parameters. The description adds 'relevance ranking' context but does not elaborate on how each parameter affects search behavior beyond what the schema provides. For example, it does not explain how the 'project' filter interacts with the search or whether 'include_archived' overrides the default filtering.

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: 'Search tasks by keyword in title, description, or content. Returns matching tasks with relevance ranking.' It uses a specific verb-resource pair and specifies the scope of search and output format, effectively distinguishing it from sibling tools like list_tasks (which returns all tasks) and search_docs (which searches documents).

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

Usage Guidelines3/5

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

The description implies usage for keyword-based task search but provides no explicit guidance on when to use this tool versus alternatives like search_docs, search_project, or get_task. It lacks when-to-use, when-not-to-use, or prerequisite information, relying on implied context from the tool name and sibling set.

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

sync_todo_indexA

Syncs the parent TODO.md file with all tasks. Generates a dashboard view with tasks organized by status, priority counts, dependency graph, and execution order. This provides a bird's eye view of all work.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNoOutput format: "dashboard" (default, visual overview), "table" (compact table), "kanban" (by status columns).dashboard

TDQS

A3.6/5.0
Behavior2/5

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

No annotations provided, so description bears full burden. It mentions syncing (potentially modifying the index file) but doesn't clarify if it's read-only, destructive, or requires specific permissions. Lacks detail on 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?

Two sentences, no redundancy. First sentence states the core action, second elaborates on output. Extremely concise and front-loaded.

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

Completeness4/5

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

Given low complexity (1 param, no output schema), description covers purpose, output type, and parameter options. Missing only behavioral details, so nearly 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?

Single parameter 'format' with 100% schema coverage. The description adds context about dashboard as default but doesn't significantly enhance schema meaning, meeting 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 syncs a TODO.md file with all tasks and generates a dashboard view. It distinguishes from sibling tools like create_task or get_task by focusing on high-level syncing and overview.

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 when-to-use or when-not-to-use guidance. The description implies it's for getting an overview, but doesn't compare to alternatives or state prerequisites.

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

unarchive_taskA

Restores a task from archive/ back to todos/ for further work. Use when a completed task needs to be reopened.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYesThe task ID to unarchive (e.g., "AUTH-001").
statusNoStatus to set on restore. Default: "todo".todo

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. It states that the task is restored for further work, implying it becomes editable again, but does not describe potential side effects (e.g., preserving history) or prerequisites. For a simple state change, this is adequate but lacks depth.

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 primary action, and contains no superfluous information. Every word contributes to understanding.

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

Completeness4/5

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

Given the tool's simplicity, no output schema, and high schema coverage, the description covers the essential purpose and usage. It does not specify behavior for edge cases (e.g., unarchiving a non-archived task), but for typical use it is 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%, so baseline is 3. The description adds minimal value beyond the schema: it implies the task_id is the one to unarchive and mentions the default status 'todo' in the action context, but does not elaborate on the meaning or constraints of the 'status' parameter.

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 'Restores' and the resource 'task', specifies the transition from 'archive/' to 'todos/', and distinguishes it from the sibling 'archive_task' by indicating it is the inverse 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?

The description explicitly states when to use the tool: 'Use when a completed task needs to be reopened.' This provides clear context, though it does not explicitly mention when not to use it, the intended use case is well-defined.

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

update_backlog_itemA

Updates an item in BACKLOG.md. Can change priority, title, tags, or phase without promoting to active work.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYesThe task ID to update (e.g., "AUTH-001").
titleNoNew title for the task.
priorityNoNew priority level (will move to new section).
tagsNoNew tags (replaces existing).
phaseNoNew phase/milestone.

TDQS

A3.7/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 mentions updating a file and not promoting, but omits details like file creation behavior, error handling, permissions, idempotency, and return value. This is insufficient 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.

Conciseness5/5

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

The description is a single sentence that efficiently conveys the tool's purpose and a key constraint without any redundant information.

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

Completeness3/5

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

For a tool with 5 parameters, 100% schema coverage, no output schema, and no annotations, the description is adequate but lacks details on side effects, return values, and error conditions. It covers the essential purpose but not enough for complete 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?

The input schema has 100% coverage with descriptions for each parameter. 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 the verb 'Updates', the resource 'item in BACKLOG.md', and specifies the fields it can change (priority, title, tags, phase). It also distinguishes from siblings by noting it does not promote to active work.

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

Usage Guidelines4/5

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

The description implies when to use (for backlog item updates without promotion) but does not explicitly state when not to use or mention alternative tools like promote_task. The sibling list provides context but the description lacks direct exclusions.

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

update_project_statusC

Quick status update for the project. Adds a timestamped entry to STATUS.md with the current status, changes, or notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
statusYesCurrent status summary (e.g., "On track", "Blocked by API issues").
healthNoProject health indicator.
changesNoList of recent changes or updates.
blockersNoCurrent blockers or risks.
next_milestoneNoNext milestone or goal.

TDQS

C2.9/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 action (appends to STATUS.md) and timestamping, but lacks information on safety (it is likely destructive), required permissions, or side effects beyond the action.

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

Conciseness5/5

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

The description is a single sentence that front-loads the core purpose and mechanism. It is efficient with no wasted words.

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

Completeness2/5

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

Given the lack of annotations and output schema, the description should provide more context about the function's behavior and return value. It does not explain what happens to existing entries, how the timestamp is generated, or what the user should expect after invocation.

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 explains all parameters. The description adds minimal extra meaning ('timestamped', 'quick'), but does not go beyond what the schema provides for parameter semantics.

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 adds a timestamped entry to STATUS.md with status, changes, or notes. This distinguishes it from similar siblings like 'create_or_update_status' by emphasizing quickness and timestamping, though not explicitly differentiating.

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 'create_or_update_status'. The description does not provide context for when a quick update is appropriate.

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

update_taskB

Updates an existing task by ID. Can update any field including status, priority, owner, dependencies, etc. Use this to transition tasks through workflow states.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe task ID to update (e.g., "AUTH-001").
titleNoNew title for the task.
descriptionNoNew description. Use "append:TEXT" to append to existing description.
ownerNoNew owner for the task.
priorityNoNew priority level.
statusNoNew status. Transitioning to "done" will set completed date.
depends_onNoNew dependency list. Use "add:ID" or "remove:ID" to modify existing.
blocked_byNoNew blocked_by list.
estimateNoNew time estimate.
dueNoNew due date (YYYY-MM-DD).
tagsNoNew tags list. Use "add:TAG" or "remove:TAG" to modify existing.
add_subtaskNoAdd a new subtask to the task.
complete_subtaskNoMark a subtask as complete (partial match on subtask text).

TDQS

B3.4/5.0
Behavior2/5

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

Without annotations, the description should disclose side effects and constraints. It mentions updating but does not warn about potential overriding of lists, required permissions, or consequences of status transitions. The special syntax for append/add/remove is only in the schema, not 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?

The description is two sentences long, directly stating the purpose and a key use case. It is concise without any unnecessary information, making it easy for an agent to parse.

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 13 parameters, no output schema, and no annotations, the description is insufficient. It does not explain return values, valid status transitions, error handling, or how the tool interacts with siblings like promote_task. More detail would be needed for complete 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?

Since schema description coverage is 100%, the baseline is 3. The description highlights a few fields (status, priority, etc.) and the workflow transition use case, which adds some context, but does not significantly enhance understanding beyond the schema.

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

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 updates existing tasks by ID and can modify various fields like status, priority, and owner. It distinguishes from sibling tools such as create_task or delete_task by focusing on updates and workflow transitions.

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 advises using this tool to transition tasks through workflow states, which is helpful. However, it does not explicitly differentiate from similar tools like promote_task or specify when not to use this tool, leaving some ambiguity.

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. 42 tool updates
    • First observedadd_decision
    • First observedadd_roadmap_milestone
    • First observedadd_to_backlog
    • First observedarchive_task
    • First observedarchive_thought
    • First observedcheck_project_state
    • First observedcreate_or_update_decisions
    • First observedcreate_or_update_index
    • First observedcreate_or_update_roadmap
    • First observedcreate_or_update_status
    • First observedcreate_or_update_todo
    • First observedcreate_task
    • First observeddelete_task
    • First observedget_backlog
    • First observedget_decision
    • First observedget_doc
    • First observedget_doc_structure
    • First observedget_next_task
    • First observedget_roadmap
    • First observedget_task
    • First observedget_thought
    • First observedimport_tasks
    • First observedinit_project
    • First observedlint_project_docs
    • First observedlist_archived_tasks
    • First observedlist_archived_thoughts
    • First observedlist_decisions
    • First observedlist_docs
    • First observedlist_tasks
    • First observedlist_thoughts
    • First observedmanage_project_file
    • First observedprocess_thoughts
    • First observedpromote_task
    • First observedremove_from_backlog
    • First observedsearch_docs
    • First observedsearch_project
    • First observedsearch_tasks
    • First observedsync_todo_index
    • First observedunarchive_task
    • First observedupdate_backlog_item
    • First observedupdate_project_status
    • First observedupdate_task

TDQS

A3.7/5.0

Scored across 42 tools

Disambiguation4/5

Most tools have clear, distinct purposes (e.g., create_task, archive_task, get_task). A few tools like manage_project_file vs specific create/update tools could cause minor confusion, but descriptions clarify their roles.

Naming Consistency4/5

Predominantly uses verb_noun pattern (create_task, get_task, delete_task). Some variations like add_ vs create_or_update_ and manage_project_file, but overall consistent and readable.

Tool Count4/5

42 tools is on the higher end, but each tool serves a distinct purpose in project management (CRUD for tasks, backlog, decisions, roadmap, etc.). Slightly over but reasonable given the comprehensive scope.

Completeness5/5

Covers full lifecycle for tasks, backlog, decisions, roadmap, status, documentation, and thoughts. Includes search, linting, and import/export features. No obvious gaps for project management.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers