init_plan
Initializes PLAN.md only when missing, safely preserving existing plans for persistent project task tracking.
Instructions
Initialize PLAN.md if missing (idempotent).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| project_root | Yes |
Initializes PLAN.md only when missing, safely preserving existing plans for persistent project task tracking.
Initialize PLAN.md if missing (idempotent).
| Name | Required | Description | Default |
|---|---|---|---|
| project_root | Yes |
Changes observed during successful MCP inspections.
v1.1.0Input schema / properties / project_root / maxLengthAdded value: +4096v0.1.0Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does disclose the key behavioral trait: the operation is idempotent and will not clobber an existing PLAN.md ('if missing'). It omits other relevant behavior — whether a template/skeleton is written, whether a parent directory must exist, and whether anything is returned — which matters for a filesystem-writing tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with no filler, and the condition ('if missing') and the safety guarantee ('idempotent') are both front-loaded. Every token earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter initializer this covers what happens and the idempotence guarantee, but with no annotations, no output schema, and no parameter descriptions, the agent still cannot know what content lands in PLAN.md or how to confirm success. Adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
One parameter at 0% schema description coverage, so the description must compensate; it implies PLAN.md is scoped to the project, but never names project_root or explains that the file is created at that path. The parameter name is largely self-documenting, which keeps this from dropping further.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Initialize PLAN.md'), and the 'if missing' qualifier separates it from read_plan and update_plan_section, which operate on an existing plan. It does not explicitly name those siblings, but the create-vs-read-vs-edit distinction is clear enough to select correctly among the plan family.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The '(idempotent)' note implies it is safe to call unconditionally before any plan work, which is a usable cue. However, it never states exclusions or alternatives — e.g., that update_plan_section should be used instead once PLAN.md exists, or how it relates to init_task/init_agents — so the agent must infer the surrounding workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.