Skip to main content
Glama

Check drift from the plan

check_drift

Detect project drift by comparing PROGRESS.md and dependencies against the finalized scope and architecture, flagging unplanned libraries, missing stack components, and features absent from the roadmap.

Instructions

Compare a project's actual state (PROGRESS.md checkboxes and package.json dependencies in target_dir) against the finalized scope and architecture from a session. Flags installed libraries that contradict the scope (e.g. a payment library when scope said no payments), stack pieces from the architecture that aren't installed yet, and planned features that don't appear in any roadmap sprint. Call this periodically during implementation, not just once at the start.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
session_idYes
target_dirYesAbsolute path to the project directory to inspect (should contain PROGRESS.md and/or package.json).

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.2

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the full behavioral burden. It discloses what the tool checks, how it identifies drift, and that it 'flags' discrepancies rather than modifying anything. It does not describe the return format, but the behavioral intent is transparent and actionable.

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

Conciseness5/5

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

The description is three sentences with no filler. The core purpose is front-loaded, the drift categories are concrete, and the usage advice earns its place at the end.

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 and no annotations, the description provides enough for correct invocation: it identifies both required inputs, explains what is compared, and gives concrete drift examples. A return-value description would be nice but is not necessary for selecting or calling the tool.

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

Parameters3/5

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

target_dir is already described in the schema and the description reinforces it. session_id has no schema description and the description only refers to it indirectly as 'from a session,' so the agent must infer its meaning from sibling tool names. This is partial compensation for the 50% schema coverage gap, but not complete.

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

Purpose5/5

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

The description states a specific verb and resource: 'Compare a project's actual state... against the finalized scope and architecture from a session.' It names concrete evidence sources (PROGRESS.md checkboxes, package.json dependencies) and enumerates the three types of drift it flags, making it clearly distinguishable from sibling tools like evaluate_project_scope or get_session.

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 when to use the tool: 'Call this periodically during implementation, not just once at the start.' It does not name alternative tools or provide when-not-to-use conditions, but the periodic implementation context is clear enough for an agent to select it appropriately.

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