Skip to main content
Glama

Progressor

npm Test License: GPL v3

An Agent works through "Ship OAuth login": Tasks tick off, a Detour branches off and merges back, a second Detour recalibrates the plan, and the Goal finishes, all live on the dashboard

The dashboard follows an Agent through a Goal: Tasks tick off, a Detour is merged back, another one recalibrates the plan, and a stop is opened to copy it as a prompt. Watch as video.

Progressor keeps an AI coding Agent and you, the Developer, focused on the same Goal across long sessions, context compression and distractions. It is an MCP server: your Agent's app starts it, and the Agent uses its tools to keep a live record of what is planned, what is done, and what came up along the way.

The record is plain markdown inside your project, in .progressor/, so it is readable, diffable and travels with the repo. See GLOSSARY.md for the words used here and docs/markdown-format.md for the file format.

Install

With Claude Code, from your project folder:

claude mcp add progressor -- npx -y progressor-mcp

Any other MCP client can run the same command over stdio: npx -y progressor-mcp. Progressor needs Node 22 or later. It keeps its files in the folder the client starts it in; set PROGRESSOR_ROOT to use another folder.

An Agent can forget to call get_status, especially after its context has been compressed. With Claude Code you can take that out of its hands: two hooks put the plan in front of the Agent automatically.

  • At session start, on resume and after compaction, the Agent gets the full status: the Goal, the current Task and its summary, any open Detour, the next Task and your Standing Instructions.

  • On every message, it gets one line, such as [Progressor] Goal: Ship OAuth login · Task: t2 Fix callback redirect loop · Next: t3 End-to-end tests. The line is left out when no Goal is being worked on.

The hooks run on every message, so install Progressor once, globally, for a fast start:

npm install -g progressor-mcp

Then add this to .claude/settings.json in your project (or to ~/.claude/settings.json for every project). If the file already has a hooks section, add these two entries to it:

{
  "hooks": {
    "SessionStart": [{ "hooks": [{ "type": "command", "command": "progressor-mcp hook session-start" }] }],
    "UserPromptSubmit": [{ "hooks": [{ "type": "command", "command": "progressor-mcp hook prompt" }] }]
  }
}

The hook reads .progressor/ straight from disk, so it needs no running server, and it prints nothing in projects that don't use Progressor. It never blocks or fails a message: if anything goes wrong, it stays silent. Without a global install, use npx -y progressor-mcp hook ... as the command instead; it works the same, just a little slower.

Related MCP server: RepoRecall

How it works

  1. Goals live on the Roadmap, .progressor/roadmap.md. Each Goal has a Plan File, .progressor/goals/<goal>.md, with its Tasks. Every Task has a short title, the files it touches and a one-to-two-line summary of the fix or change it makes.

  2. Each Agent conversation is a Session. A Session claims one Goal, so two conversations never work on the same Goal at once. When the conversation ends, the Claim is released and the Goal is paused until a Session claims it again.

  3. At the start of a conversation, and after its context has been compressed, the Agent calls get_status to see the Goal, the current Task, any open Detour, the next Task and your Standing Instructions. With the Claude Code hooks, it is handed this status automatically.

  4. When the Agent has to do something that is not the current Task, it declares a Detour with a Reason instead of drifting silently. It ends the Detour in one of three ways:

    • Merge back: a small fix, done; the plan is unchanged.

    • Return: back to the plan, optionally adding the Detour's intended work as new Tasks at the end.

    • Recalibration: the remaining Tasks are dropped and replaced by a new Task list.

  5. Features that come up but are not needed now are parked as Ideas, and can later be promoted to a Task or a Goal.

  6. Lasting rules you give the Agent ("ask me before recalibrating") are saved as Standing Instructions and shown in every get_status, so they survive context compression and new conversations.

You steer by talking to the Agent; it is the only writer of the .progressor/ files. You can still edit them by hand: Progressor keeps everything it does not recognise and only rewrites the lines it changes.

Every item has a ref such as progressor://ship-oauth-login/t2 that you can paste into the chat; the Agent looks it up with get_item.

The dashboard

While your Agent's app is running Progressor, open http://localhost:4747/ in a browser. It is one dashboard for every project you use Progressor in: pick the project in the sidebar. Each get_status ends with a Dashboard: line that links straight to that conversation's project (http://localhost:4747/?project=<id>), so the Agent can hand it to you; the server prints it to its log too. It is served by the same process as the MCP tools, so there is nothing else to install or start.

The dashboard shows the selected Goal in one of three views, picked in the top bar (⇢ Across, ⇣ Down, ☰ List). The view is remembered by your browser and kept in the address (&view=vertical, &view=checklist), so a link shows the same thing:

  • Metro, horizontal (the default): a metro map running left to right.

  • Metro, vertical: the same map running top to bottom, so a long plan scrolls down. The mouse wheel scrolls it; Ctrl + wheel (or a pinch) zooms.

  • Checklist: the Tasks as a list in plan order, each with its files and summary, and each Detour indented under the Task it branched from with how it ended and its Reason.

On the maps, Tasks are stops on a line with their files as small chips, Detours are orange branches labelled with how they ended (Merge back, Returned, Recalibrated or open), and Tasks dropped by a Recalibration stay on the old line, faded. A banner shows what is happening now: the current Task, or the open Detour and where it branched from. The sidebar has the project switcher (each project's name and folder) and the Roadmap with each Goal's progress, under the full path of the project folder it comes from. Your Standing Instructions and the parked Ideas are in the ❓ Help menu in the top bar. Only one project is shown at a time, and the page updates by itself as its markdown changes.

  • Zoom with the mouse wheel or the + / − buttons, pan by dragging the background, and fit the whole map with ⤢. Stops can be dragged; they spring back when you let go.

  • Click any Task, Detour, Idea or Standing Instruction for its details (a Task's summary, a Detour's Reason) and Copy as prompt: a self-describing text (what it is, its status, its progressor:// ref, file and line, its Goal, its summary, where it branched from, its Reason, its neighbours and the files it touches) to paste into your Agent chat.

  • Open in file opens the Plan File at the item's line, or the code a Task touches, in your editor.

  • The Detours switch hides the Detours from the view only; [ collapses the sidebar. The sun / moon button switches between light and dark.

  • When a Goal is finished it turns green and gets a green dot in the sidebar until you open it; then it moves to the Done group at the bottom. Right-click a Goal to hide it from the list, or to move a finished one to Done without opening it.

  • ⚙️ Settings sets the view a Goal opens in (Across, Down or List), the theme (light, dark or match the system), the editor for "Open in file", whether finished Goals wait for you or go to Done straight away, and whether hidden Goals are shown. Settings are saved in that browser.

The dashboard is view-only: you change the plan by talking to the Agent. Hiding a Goal or moving it to Done changes only what your browser shows. To add work to a finished Goal, ask the Agent: claiming the Goal again reopens it, and the new Tasks join the same list.

Choosing the editor

"Open in file" uses VS Code by default. Pick another editor under Open files in in the dashboard's ⚙️ Settings (remembered in that browser), or set it for the project with PROGRESSOR_EDITOR in the MCP server's environment:

claude mcp add progressor -e PROGRESSOR_EDITOR=cursor -- npx -y progressor-mcp

PROGRESSOR_EDITOR

Opens

vscode (default), vscode-insiders, vscodium, cursor, windsurf, zed

the file at the line, by its full path

idea (or jetbrains), webstorm, pycharm, phpstorm, goland, rider, rubymine, clion, rustrover

the file in the open project, through JetBrains Toolbox

a URL template, such as myeditor://open?file={path}&line={line}

anything else: {path} is the full path, {relPath} the path inside the project, {project} the folder name and {line} the line

One dashboard for every project

Every Progressor server adds its project folder to a per-user list, ~/.progressor/projects.json (PROGRESSOR_REGISTRY points it elsewhere). Whichever Progressor process holds the port serves every project on that list, reading each project's .progressor/ files straight from disk; the others link to it. If that process ends, the next Progressor server to start, or the next get_status from one already running, takes over. Projects whose folder or .progressor/ has gone are not shown. To take a project off the list, delete its entry from the file.

The dashboard listens on the loopback address only (127.0.0.1, and ::1 where there is IPv6), port 4747 by default (PROGRESSOR_PORT changes it). A port held by another program is skipped for the next free one. Set PROGRESSOR_DASHBOARD=off to run without the dashboard.

Workspaces: every project in a folder

If your projects live under one folder, open the dashboard on it from anywhere, with no Agent running:

progressor-mcp dashboard C:\Programming

Progressor looks through that folder and its subfolders for projects: folders with a .progressor/roadmap.md. It skips node_modules, .git, build output and other hidden or dependency folders, and goes 5 levels deep. Nothing is created or changed; a folder only becomes a project once an Agent adds a Goal in it. The dashboard opens in your browser on an overview of that Workspace, with each project's Goals in progress, how far along they are, and a green note when a Goal has finished since you last looked. Click a project or a Goal to open it.

The folder is remembered as a Workspace in ~/.progressor/workspaces.json, so the dashboard keeps showing its projects, grouped under it in the project switcher, even when it is started by an Agent later. New projects in a Workspace show up within a few minutes, or straight away when you run the command again. progressor-mcp dashboard --forget <folder> stops showing a Workspace; --no-open prints the address without opening the browser. Without a folder, the command uses the current one.

When the dashboard shows more than one project, its start page is the overview of them all (🗂 All projects in the switcher).

Example

# Ship OAuth login

## Tasks

- [x] Add the /login route ^t1
  - summary: Serve the login page and redirect to the provider with the client ID and state.
  - code: `src/routes/login.ts`
- [/] Fix callback redirect loop ^t2
  - summary: Callback re-sets the session cookie on every hit; only set it after token exchange.
  - code: `src/auth/callback.ts`
  - code: `src/auth/session.ts:42`
- [ ] Add logout ^t3

## Detour: Fix flaky token refresh ^d1

- branched from: ^t2
- reason: The callback tests fail randomly because token refresh races the cookie write
- status: open

Tools

Tool

What it does

get_status

Summary of the claimed Goal, current Task, open Detour, next Task and Standing Instructions.

get_item

Looks up any item by ref, with its file and line.

add_goal

Adds a Goal to the Roadmap, with an optional Task list.

claim_goal

Claims a Goal for this Session (pausing any other it held).

release_goal

Releases the Claim; the Goal is paused.

complete_goal

Marks the claimed Goal done.

add_tasks

Appends Tasks (title, files and summary) to the claimed Goal.

start_task

Marks a Task in progress (one at a time).

update_task

Changes a Task's title, summary or files.

complete_task

Marks a Task done, recording the files it touched and its final summary.

drop_task

Drops a Task with a reason.

start_detour

Declares a Detour, with a Reason, branching from the current Task.

end_detour

Ends the open Detour: merge back, return or recalibrate.

record_idea

Parks an Idea for later.

promote_idea

Turns an Idea into a Task or a Goal.

add_standing_instruction

Saves a lasting rule from the Developer.

Development

npm install
npm test
npm run build

npm run build compiles the server to dist/ and bundles the dashboard (React, in src/ui/) into dist/ui/; node dist/cli.js starts the server on stdio. To try the dashboard without an MCP client, serve it for one or more project folders (by default the sample in test/fixtures/sample-project). It runs on port 4800 with a throwaway project list, so it never takes the real dashboard's place:

node scripts/dashboard.mjs test/fixtures/sample-project

npm run dev:ui rebuilds the page on every change; reload the browser to see it. The server side of the dashboard is in src/dashboard/: the HTTP server and API (http.ts), the project list (registry.ts), the file watcher (watch.ts), and the pure logic shared with the page: the metro map layout (graph.ts), the Copy-as-prompt text (prompt.ts) and the editor links (editor.ts).

Support

Progressor is free and open source. If it keeps you on track, you can buy me a coffee. The link is also in the dashboard's Help menu.

License

Copyright (C) 2026 Rachit Asthana

Progressor is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. It is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See LICENSE for the full text.

Available Tools

16 tools
add_goalAdd GoalA

Add a Goal to the end of the Roadmap, with an optional initial Task list. Does not claim it.

ParametersJSON Schema
NameRequiredDescriptionDefault
tasksNo
titleYesThe outcome, such as 'Ship OAuth login'.

TDQS

A3.6/5.0
Behavior3/5

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

No annotations exist, so the description carries the full burden. It does disclose two real behaviors: the goal is appended at the end of the Roadmap, and creation leaves it unclaimed. It says nothing about permissions, whether the task list is created atomically, or what identifies the new goal afterwards.

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, zero waste, and the discriminating fact ('Does not claim it') is placed last where it lands hardest. Nothing is repeated from the schema or title.

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 two-parameter creation tool with no output schema and no annotations, the definition covers the essentials: what is created, where it goes, the optional payload, and its post-creation state. The remaining gap is the claim workflow, which is left implicit rather than explained.

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 50%: the nested task fields are well documented in the schema, while the 'tasks' array itself has no description. The description adds that the task list is optional and 'initial', which is real semantic value, but it does not explain the relationship between goal and tasks beyond that.

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

Purpose4/5

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

States a specific verb and resource ('Add a Goal') plus the placement scope ('to the end of the Roadmap') and the optional payload. It also pre-empts the most likely sibling confusion by noting it does not claim the goal, though it never names claim_goal directly.

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 negation 'Does not claim it' implies claim_goal is the follow-up step, but the description never states when to use this versus claim_goal or release_goal, nor any prerequisite. Usage is only inferable from the sibling list.

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

add_standing_instructionAdd Standing InstructionB

Save a lasting rule from the Developer about how you should work, such as 'ask me before recalibrating'. It is shown in every get_status.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYes

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It does disclose two real traits: the rule is lasting/persistent and it is injected into every get_status, which is meaningful visibility context. It says nothing about whether an instruction can be edited, removed, or conflicts with existing ones, which is a notable gap for a permanent write.

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

Conciseness4/5

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

Two short sentences, front-loaded with the action and backed by a single illustrative example. Nothing is wasted, though the get_status clause is more of a UI detail than essential selection 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 one-parameter tool with no output schema, the description covers what it does and where the result appears. It omits the lifecycle story (can a standing instruction be superseded or deleted?) and any conflict behavior, which is the main thing an agent would want before making a lasting commitment.

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 0%, but there is only one trivially-typed string parameter ('text'). The description compensates partially by giving an example of the rule content ('ask me before recalibrating'), clarifying what the string should contain, but adds no length or formatting guidance.

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

Purpose4/5

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

States a specific verb and resource ('Save a lasting rule from the Developer about how you should work') and grounds it with a concrete example. Mentioning that it surfaces in get_status helps separate it from transient siblings like record_idea, though it never names a sibling it could be confused with.

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

Usage Guidelines3/5

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

Usage is implied by 'lasting rule ... about how you should work', which tells the agent this is for durable preferences rather than one-off notes. There is no explicit when-not guidance and no alternative tool named, so the agent must infer the boundary against record_idea or add_goal.

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

add_tasksAdd TasksA

Append Tasks to the claimed Goal's plan. For work that is not part of the plan, declare a Detour instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
tasksYes

TDQS

A3.7/5.0
Behavior3/5

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

No annotations exist, so the description carries the full behavioral burden. 'Append' correctly conveys additive, non-destructive semantics and the 'claimed Goal' phrasing discloses a precondition, but there is nothing about ordering, idempotency, failure modes, or whether appended tasks are returned with identifiers.

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 short sentences, both front-loaded: the primary action first, then the routing rule for the alternative. No filler or repetition.

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

Completeness3/5

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

For a simple single-parameter append tool with a well-documented nested schema, the description covers purpose, precondition, and the alternative path. With no annotations and no output schema, it should say more about what the call returns or what happens on invalid input, which is a real gap.

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 top-level schema coverage is 0% and the description adds no information about the 'tasks' parameter. However, the nested item schema documents title, summary, and code with concrete examples, so the schema itself does much of the work even though the description does not compensate.

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

Purpose4/5

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

States a specific verb ('Append') and resource ('Tasks to the claimed Goal's plan'), so an agent knows exactly what the tool mutates. It also implicitly scopes the tool to an existing claimed Goal, which distinguishes it from add_goal or add_standing_instruction, though it never explicitly contrasts those siblings.

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

Usage Guidelines4/5

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

The second sentence gives an explicit exclusion and routing rule: work outside the plan belongs in a Detour instead. The phrase 'the claimed Goal' also signals the precondition that a goal must already be claimed, but that prerequisite is implied rather than stated.

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

claim_goalClaim GoalA

Claim a Goal for this Session, so only this Session works on it. Releases (pauses) any Goal this Session held before. Fails if another running Session holds it. Claiming a done Goal reopens it: its finished Tasks stay done, and add_tasks adds the new work to the same list.

ParametersJSON Schema
NameRequiredDescriptionDefault
goalYesThe Goal ID, such as 'ship-oauth-login'.
takeoverNoTake the Goal from another running Session. Only when the Developer asks for it.

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does so well: it discloses the side effect of releasing prior claims, the failure mode with a competing session, and the reopen semantics for done Goals. It leaves out what happens to the paused Goal's tasks and any auth/takeover guardrails beyond the schema's note.

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 tight sentences, front-loaded with the core action and scope, then side effects, then the reopen edge case. No filler and every clause carries information.

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

Completeness4/5

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

No output schema or annotations exist, so the description must stand alone, and it covers side effects, failure conditions, and the done-Goal interaction with add_tasks. Only the fate of the released Goal's tasks and explicit alternative routing are missing.

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

Parameters3/5

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

Schema coverage is 100%, so both params (goal, takeover) are already documented, and the description adds no format or syntax detail beyond the schema. Baseline 3 is appropriate when the schema does the heavy lifting.

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

Purpose4/5

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

States a specific verb ("Claim") and resource ("a Goal") plus its exclusive-scope effect ("so only this Session works on it"), which sets it apart from release_goal/complete_goal operationally. However, it never names a sibling, so the agent must infer the contrast on its own.

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

Usage Guidelines4/5

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

Gives concrete operating conditions: it releases any previously held Goal, fails if another running Session holds it, and reopens done Goals. It stops short of explicitly routing the agent to alternatives (release_goal, complete_goal) or stating when not to use it.

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

complete_goalComplete GoalA

Mark the claimed Goal done and release it.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It does usefully disclose the compound effect of marking done AND releasing the goal (a side effect not visible in the empty schema), but it says nothing about irreversibility, required permissions, or what happens if no goal is currently claimed.

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 short sentence with the action and its side effect front-loaded. No filler, nothing redundant.

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 zero-param mutation with no annotations and no output schema, the description covers the action but omits the error/precondition behavior (what if the goal is not claimed) and how it relates to release_goal. Adequate but with clear gaps.

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 takes zero parameters, so there is nothing for the description to disambiguate. Baseline 4 applies; the description correctly implies the target is implicit rather than passed as an argument.

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

Purpose4/5

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

States a specific verb ('Mark ... done') plus a compound effect ('release it') on a specific resource (the Goal). The word 'Goal' does distinguish it from the sibling complete_task, but it does not explicitly differentiate from release_goal, which overlaps on the release half of the action.

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

Usage Guidelines3/5

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

Usage is only implied: 'the claimed Goal' signals a precondition that a goal must first be claimed (via claim_goal). It never states when to prefer this over release_goal or complete_task, so the agent must infer the routing.

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

complete_taskComplete TaskB

Mark a Task done, recording the files it touched and, if it changed, the final summary of what it did.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeNoFiles the Task touched, optionally with :line; added to the ones it has.
taskYesThe Task ID, such as 't3'.
summaryNoOne or two sentences on the fix or change the Task makes, such as 'Callback re-sets the session cookie on every hit; only set it after token exchange.'

TDQS

B3.3/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 usefully discloses the recording behavior and that summary is only needed 'if it changed', but says nothing about idempotency, whether completion is reversible, what state transitions occur, or permission requirements.

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

Conciseness5/5

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

A single front-loaded sentence with no filler: the action comes first, then the side effects. Every clause earns its place.

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 no-annotation, no-output-schema mutation tool this covers the intent and recorded data but omits the surrounding lifecycle context an agent needs (prerequisites, resulting state, error conditions). Adequate but with clear 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 coverage is 100%, so all three parameters are already documented in the schema. The description restates the code/summary semantics ('files it touched', 'final summary') but adds no format or edge-case detail beyond the schema, so the baseline 3 applies.

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 gives a specific verb ('Mark ... done') and resource ('a Task'), plus the side effects it records (files touched, summary). It is clearly distinguishable from complete_goal and drop_task by resource, though it never explicitly names a sibling to contrast with.

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?

There is no guidance on when to call this versus drop_task, update_task, or release_goal, nor any stated prerequisite (e.g. whether the task must first be claimed or started). Usage is only inferable from the verb 'Mark a Task done'.

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

drop_taskDrop TaskB

Drop a Task that is no longer needed, with a reason. To replace the whole remaining plan, recalibrate instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
taskYes
reasonYes

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden, and it does not state whether dropping is reversible, what happens to the goal's progress accounting, whether the task disappears from history, or any permission requirement. It only implies that a justification must accompany the drop, which is thin for a mutation operation with zero annotation coverage.

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

Conciseness5/5

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

Two short sentences with no filler, and the primary action plus its condition lead the description ahead of the alternative. Every clause carries information.

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

Completeness2/5

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

For a two-parameter mutation tool with no annotations, no output schema, and 0% schema coverage, the description leaves too much unsaid: consequences of the drop, how the task is referenced, and how it differs from complete_task. It is adequate only at the level of naming the action.

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?

Schema description coverage is 0% across two parameters, so the description must compensate but largely does not. 'With a reason' maps a rationale to the reason field, but it says nothing about how to identify the task argument (ID, name, or reference) or any format constraint.

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

Purpose4/5

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

States a specific verb+resource ('Drop a Task') plus the condition that qualifies it ('no longer needed'), which is more than a restatement of the title. However, it never explicitly names or contrasts the nearest sibling, complete_task, so an agent must infer the drop-vs-complete distinction on its own.

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

Usage Guidelines4/5

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

Gives a clear when-condition ('no longer needed') and routes a related-but-different scenario to an alternative ('to replace the whole remaining plan, recalibrate instead'). The weakness is that the alternative named, 'recalibrate', is not present in the sibling list, and the more likely confusion with complete_task is left unaddressed.

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

end_detourEnd DetourA

End the open Detour. 'merge back': it was small and is done; the plan is unchanged. 'return': go back to the plan, appending tasks for the Detour's intended work if any. 'recalibrate': drop every remaining Task and replace them with tasks.

ParametersJSON Schema
NameRequiredDescriptionDefault
tasksNoTasks to append (return) or the new Task list (recalibrate).
endingYes

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it discloses that 'merge back' leaves the plan unchanged, 'return' appends tasks, and 'recalibrate' destructively drops all remaining Tasks. It omits whether ending is reversible, what happens to the Detour's own work under 'merge back', and any permission requirements.

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

Conciseness4/5

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

Front-loads the action, then gives one crisp clause per mode with zero filler. The terse phrasing (e.g., 'it was small and is done') is efficient but occasionally requires inference.

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 two-parameter control tool with no output schema and no annotations, the description covers both parameters and their behavioral consequences well. It could state the post-ending effect on the Detour/plan state more fully, but nothing essential for calling it is missing.

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

Parameters4/5

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

Schema coverage is only 50%, but the description compensates by explaining how `tasks` is interpreted per mode — appended on 'return', replacing the list on 'recalibrate' — which is meaning beyond the schema's generic 'Tasks to append (return) or the new Task list (recalibrate)'.

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

Purpose4/5

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

States a specific verb and resource ('End the open Detour') and immediately disambiguates the three ending modes, so an agent can distinguish this from siblings like start_detour or complete_task. It does not explicitly name a sibling it must not be confused with, keeping it short of a 5.

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

Usage Guidelines4/5

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

Gives clear conditions for each ending value: 'merge back' when the Detour was small and done, 'return' to resume the plan, 'recalibrate' to replace tasks. This effectively answers when to pick each mode, though it offers no explicit exclusions or prerequisites (e.g., what counts as an 'open' Detour).

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

get_itemGet itemB
Read-only

Look up a Goal, Task, Detour, Idea or Standing Instruction by its ref, with its file and line.

ParametersJSON Schema
NameRequiredDescriptionDefault
refYesA ref such as progressor://login/t2 or progressor://roadmap/i1.

TDQS

B3.4/5.0
Behavior3/5

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

The readOnlyHint: true annotation already establishes this as a safe read, so the bar is lower. The description adds useful return-value context ("with its file and line"), but says nothing about what happens when the ref is unknown or whether lookups are cached/scoped.

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?

One sentence that front-loads the action, enumerates the resource scope, and closes with the return payload. No filler 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?

With no output schema, the description usefully notes that file and line come back, covering the main unknown for a lookup tool. A brief note on missing-ref behavior or scope would make it fully complete, but nothing essential to invoking it is absent.

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 single ref parameter is documented with concrete example values in the schema itself. The description's "by its ref" adds no format or syntax detail beyond that, so the baseline of 3 applies.

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

Purpose4/5

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

States a concrete verb ("Look up") plus the full set of entity types it resolves (Goal, Task, Detour, Idea, Standing Instruction) and the lookup key (ref), so an agent knows exactly what resource is involved. It does not, however, differentiate itself from the sibling get_status, which an agent could plausibly confuse it with.

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 says the tool takes a ref but never states when to prefer it over siblings like get_status or the various mutation tools, nor any preconditions (e.g. the ref must already exist). Usage is only inferable from the parameter shape.

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

get_statusGet statusA
Read-only

Compact summary of this Session's Goal, current Task, open Detour, next Task and the Developer's Standing Instructions. Call it at the start of every conversation and after context compression.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

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

readOnlyHint=true already establishes this is a safe read. Beyond that, the description discloses the payload contents, which is genuinely useful given there is no output schema to reveal the return shape. It stops short of noting cost, freshness, or truncation 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?

Two sentences, zero filler, with the payload contents front-loaded and the invocation timing immediately after. Every clause 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?

With no parameters and no output schema, the description does the heavy lifting by listing the returned fields, and it adds invocation timing. A note on cost or staleness would make it fully self-sufficient, but nothing essential is missing for correct invocation.

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 takes zero parameters, so the schema has nothing to document and there is no parameter semantics to add. Baseline of 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?

The description names a concrete deliverable and enumerates its contents (Goal, current Task, open Detour, next Task, Standing Instructions), so an agent knows exactly what comes back. It is clearly distinguishable from siblings like get_item, which retrieves a single item.

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

Usage Guidelines4/5

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

It gives explicit, prescriptive timing: at the start of every conversation and after context compression. That is a clear use context, though it names no alternative tool or when-not condition.

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

promote_ideaPromote IdeaA

Turn an Idea into a Task at the end of the claimed Goal, or into a new Goal on the Roadmap.

ParametersJSON Schema
NameRequiredDescriptionDefault
toYes
ideaYesThe Idea ID, such as 'i2'.

TDQS

A3.7/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden, yet it omits the most consequential facts for a mutation: whether the source Idea is consumed/removed or kept, whether the promotion is reversible, and what error occurs when 'task' is chosen with no claimed Goal. It does disclose one useful behavior — new tasks are appended at the end of the claimed Goal — which keeps it above a total blank.

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 tight sentence with the verb and both branches front-loaded and no filler. Nothing could be removed without losing 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?

For a two-parameter, non-nested tool with no output schema, the description covers the input-to-outcome mapping adequately, but it stops short of the post-state (is the Idea gone?) and failure conditions. Given no annotations to fall back on, the minimum-viable coverage is met but clear gaps remain.

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 50%: the schema documents 'idea' as an ID like 'i2' but leaves the 'to' enum bare. The description compensates by mapping each enum value to a distinct outcome ('task' = appended to the claimed Goal, 'goal' = new entry on the Roadmap), which is exactly the semantic the enum lacks.

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

Purpose5/5

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

States a specific transformation verb-resource pair ('Turn an Idea into a Task ... or into a new Goal') and names both possible outputs, which makes it clearly distinguishable from siblings like record_idea, add_goal, and add_tasks. An agent can tell what comes in (an Idea) and what comes out (a Task or a Goal) without opening the schema.

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

Usage Guidelines3/5

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

Usage is only implied: promote an idea when it should become work rather than stay on the idea list. The phrase 'at the end of the claimed Goal' hints at a prerequisite (a goal must already be claimed), but the description never states when to choose 'task' over 'goal', nor what happens if no goal is claimed. No alternatives are named.

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

record_ideaRecord IdeaB

Park a feature or improvement that came up but is not needed now, instead of doing it.

ParametersJSON Schema
NameRequiredDescriptionDefault
noteNo
titleYes

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It implies a write/capture action but says nothing about persistence, where the idea goes, whether it is surfaced later, or whether duplicates are allowed. For a mutation tool with zero annotation coverage this is a real gap.

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 front-loaded sentence with no filler; the core action and its intent are stated immediately and nothing is repeated.

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

Completeness3/5

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

For a simple two-parameter creation tool with no output schema, the description covers the purpose adequately, but with no annotations and no parameter documentation it leaves behavior and field usage unspecified. Minimum viable, with clear gaps.

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?

Schema description coverage is 0% and neither parameter is documented in the schema. The description adds no meaning for 'title' vs 'note' (required vs optional, what each should contain), so the agent gets no help on how to populate the two fields.

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 gives a specific verb ('Park') and resource ('a feature or improvement') and clarifies the deferred-intent semantics with 'is not needed now, instead of doing it'. It is distinguishable from most siblings, though it never names the obvious counterpart promote_idea, so sibling routing is left to inference.

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?

'came up but is not needed now, instead of doing it' implies the trigger condition (capture work you are choosing not to do yet). However, it names no alternative tools (e.g. add_tasks, add_goal, promote_idea) and states no exclusions, so the agent must infer when this is preferred over simply creating a task.

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

release_goalRelease GoalA

Release this Session's Claim, leaving the Goal paused for a later Session.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 the full burden. It usefully discloses the resulting state (claim released, goal paused and resumable), but says nothing about preconditions (a claim must currently be held), failure behavior, or authorization.

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 with no waste; the outcome (releasing the claim) is front-loaded and the consequence (paused goal) follows immediately.

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 state-mutating tool with no annotations and no output schema, the description covers the outcome but omits the precondition that a claim must exist and what happens if none does. Adequate but with a clear gap for a mutation call.

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?

Zero parameters and 100% schema coverage, so there is nothing for the description to disambiguate. Baseline 4 applies for a parameterless tool.

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

Purpose4/5

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

States a specific verb+resource ('Release this Session's Claim') and the resulting state ('leaving the Goal paused'). It is effectively the inverse of the sibling claim_goal and reads clearly against complete_goal, though it never names the sibling it pairs with.

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?

'leaving the Goal paused for a later Session' implies the when: pause-and-resume-later rather than finish (complete_goal) or acquire (claim_goal). No explicit when-not or named alternative is given, so the routing is inferred rather than stated.

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

start_detourStart DetourA

Declare that the work is splitting off from the planned Tasks, before doing it. Branches from the current Task. Only one Detour can be open.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesWhat the Detour does, such as 'Fix flaky token refresh'.
reasonYesWhy the work has to split off from the plan now.

TDQS

A3.5/5.0
Behavior3/5

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

No annotations exist, so the description carries the full burden. It does disclose one genuine behavioral constraint ('Only one Detour can be open') and the branching semantics, which is useful. But it omits what happens if a detour is already open, what state the call creates, and any permissions or irreversibility considerations expected of a mutation tool.

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

Conciseness4/5

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

Three short sentences, front-loaded with the core action, then the branching behavior, then the constraint. No filler, though the phrasing of the first sentence is slightly convoluted ('splitting off from the planned Tasks, before doing it').

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 an unannotated mutation tool with no output schema, the description covers intent and one constraint but leaves the outcome of the call and the failure mode for a second detour unstated. Adequate to call correctly, incomplete for understanding consequences.

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

Parameters4/5

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

Schema description coverage is 100% and both required parameters carry clear descriptions with examples, so the baseline is already met by the schema. The description adds no parameter-level detail, but with two well-documented string params nothing more is needed.

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

Purpose4/5

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

States a concrete action ('Declare that the work is splitting off from the planned Tasks') and the resource it operates on (a Detour branching from the current Task). It implicitly contrasts with sibling start_task by framing the work as diverging from the plan, but it never names start_task or end_detour, so the differentiation stays inferential.

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?

'before doing it' gives a timing cue for when to call, and 'Only one Detour can be open' signals a precondition. However, it never states when NOT to use it (e.g., planned work should use start_task) or points at end_detour as the closing counterpart, both of which exist as siblings.

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

start_taskStart TaskA

Mark a Task in progress. Only one Task can be in progress at a time.

ParametersJSON Schema
NameRequiredDescriptionDefault
taskYesThe Task ID, such as 't3'.

TDQS

A3.5/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 and does disclose one meaningful trait: the singleton in-progress constraint. It omits the consequence of violating that constraint (error vs. implicit stop of the current task), idempotency on an already-started task, and any permission requirements.

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

Conciseness5/5

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

Two short sentences, action stated first, constraint second — no filler and nothing that could be trimmed without losing 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 one-parameter state-transition tool with a fully documented schema and no output schema, this is close to adequate. The gap is the failure mode when another task is already in progress, which is the most likely real-world call condition and is left unexplained.

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 single 'task' parameter is documented with an example format ('t3'). The description adds no further meaning about the identifier beyond the schema, so the baseline of 3 applies.

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

Purpose4/5

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

States a specific verb+resource ('Mark a Task in progress'), which cleanly separates it from complete_task, drop_task, and update_task siblings. It stops short of naming those siblings or contrasting the state transitions explicitly, so it is clear but not fully differentiated.

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?

It supplies a precondition ('Only one Task can be in progress at a time'), which implies when the call is appropriate. However, it never says when to prefer this over complete_task/drop_task/update_task, nor what the agent should do if a task is already in progress.

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

update_taskUpdate TaskA

Change a Task's title, summary or files, for instance when the fix turns out different from the plan. Leaves its status alone.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeNoThe Task's files, optionally with :line; replaces the ones it has.
taskYesThe Task ID, such as 't3'.
titleNoA short title for the Task, a few words, such as 'Fix callback redirect loop'.
summaryNoOne or two sentences on the fix or change the Task makes, such as 'Callback re-sets the session cookie on every hit; only set it after token exchange.'

TDQS

A3.8/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 behavioral burden. It discloses one meaningful trait – status is untouched – but says nothing about permissions, reversibility, whether omitted fields are preserved, or what the call returns. That is a real gap for a mutation tool, though the status guarantee is genuinely useful.

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 short sentences with zero filler; the field list is front-loaded and the behavioral caveat is placed last where it reads as a constraint rather than a footnote.

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 four-parameter mutation tool with no annotations and no output schema, the description covers what changes and what deliberately does not. It leaves minor gaps around return behavior and required context, but nothing that would cause an agent to call it incorrectly.

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

Parameters3/5

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

Schema description coverage is 100%, so all four parameters are already documented, including the replace-semantics of 'code'. The description's mention of title/summary/files mirrors the schema without adding format or constraint detail, making the baseline 3 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?

States a specific verb (change) plus the resource (Task) and enumerates the mutable fields: title, summary, files. The clause 'Leaves its status alone' implicitly separates it from the status-mutating siblings (complete_task, start_task, drop_task), though no sibling is named explicitly.

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

Usage Guidelines4/5

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

Gives a concrete trigger condition ('when the fix turns out different from the plan') and an implicit exclusion via the status caveat, which routes status changes to start_task/complete_task/drop_task. It stops short of explicitly naming the alternatives or listing preconditions.

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. 16 tool updatesv0.2.1
    • First observedadd_goal
    • First observedadd_standing_instruction
    • First observedadd_tasks
    • First observedclaim_goal
    • First observedcomplete_goal
    • First observedcomplete_task
    • First observeddrop_task
    • First observedend_detour
    • First observedget_item
    • First observedget_status
    • First observedpromote_idea
    • First observedrecord_idea
    • First observedrelease_goal
    • First observedstart_detour
    • First observedstart_task
    • First observedupdate_task

TDQS

A3.7/5.0

Scored across 16 tools

Disambiguation5/5

The tools map cleanly to distinct entities and state transitions: goals, tasks, detours, ideas, standing instructions, and status reads. Pairs such as complete_goal vs release_goal and start_task vs update_task are differentiated by outcome, so an agent should not confuse them.

Naming Consistency5/5

All 16 tools use consistent snake_case verb_noun names (get_status, add_goal, start_detour, promote_idea), with no mixed conventions. The pattern is predictable across entities.

Tool Count4/5

16 tools is slightly above the typical 3-15 range but still reasonable for a stateful workflow manager covering goals, tasks, detours, ideas, and instructions. Each tool maps to a distinct operation, with little evident redundancy.

Completeness3/5

Core goal/task/detour lifecycle is covered, including claiming, starting, completing, and dropping work. However, there is no tool to list/read the full Roadmap or to update/delete goals, ideas, or standing instructions, which are notable gaps for discovery and maintenance.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    A structured project memory MCP server that persists plans, builds, reviews, and decisions across AI coding sessions and tools, enabling continuous project management with a dashboard.
    11
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Provides persistent, local-first memory for coding agents with Markdown as the source of truth, exposed via CLI, loopback API, MCP, and Codex hooks for context retrieval and durable writes.
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Enables coding agents to store, search, and retrieve long-term memory as plain Markdown files with a disposable SQLite index, including note management, decision/bug tracking, and codebase symbol lookup via MCP.
    8
    MIT