Skip to main content
Glama

create_plan

Creates a structured PLAN.md project plan file when none exists, providing a powernote-style skeleton. Avoids overwriting existing files unless explicitly forced with a flag.

Instructions

Bootstrap a new PLAN.md when none exists (powernote-style skeleton). Default path: ./PLAN.md in cwd. Refuses overwrite unless force=true.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
goalNo
forceNoOverwrite existing file if true.
titleYes
plan_pathNoOptional path to PLAN.md (relative to cwd or absolute). Default: walk up from cwd to nearest PLAN.md.
philosophyNo
seed_majorNoInclude v0.1 / v0.1.0 starter shell (default true).

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.7.0

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations, the description must carry full behavioral disclosure. It does reveal safety behavior around overwrites and the default path, but it omits the skeleton's contents and side effects. More critically, the description's default path './PLAN.md in cwd' conflicts with the schema's plan_path description, which says the default is to walk up from cwd to the nearest PLAN.md, making actual behavior ambiguous.

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-load the purpose, then the path and overwrite constraint. Each sentence adds a distinct piece of information with no filler or unnecessary details.

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 6-parameter creation tool with no annotations and no output schema, the description is too sparse: it omits what the skeleton contains, how title, goal, philosophy, and seed_major affect the output, and what happens on failure or success. The path contradiction also leaves the agent without a reliable behavioral model.

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 only 50%, leaving title, goal, and philosophy undocumented, and the description does not explain these parameters. It repeats force's overwrite behavior already present in the schema and gives a default path that contradicts plan_path's schema description, failing to compensate for the coverage gap.

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 the verb 'bootstrap' with a specific resource, 'a new PLAN.md', and states the condition 'when none exists' and the default location. This clearly distinguishes it from sibling tools like create_major or create_iteration, which operate on plan components rather than the root file.

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 phrase 'when none exists' gives an explicit precondition, and 'Refuses overwrite unless force=true' signals when the force parameter is required. It does not name alternative tools such as check_plan or update tools, so it provides clear context but no explicit exclusions or when-not-to-use guidance.

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