Skip to main content
Glama
Cafelatte1

FronyBoard

upsert_milestone

Create or update a quarterly milestone when a user sets or changes a quarter goal, with goal text and status; omitted fields keep current values.

Instructions

Use it when the user sets or changes a quarter's goal (quarter goal, milestone).

Create or update a quarterly milestone — a year's goal for one quarter.

`year` is YYYY (its overview must exist), `quarter` is Q1-Q4, `goal` is one line in the
user's language (a new milestone needs one), `status` is planned | active | done
(opening the period flips planned to active, close_period sets done; a milestone added to
a quarter already open starts active).
Omitted fields keep their current value. A milestone is optional — tasks never need one.

Input Schema

NameRequiredDescriptionDefault
keyYes
goalNo
yearYes
statusNo
quarterYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.3/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 load and does well: it discloses upsert semantics ('Omitted fields keep their current value'), the status lifecycle and automatic transitions (opening the period flips planned to active, close_period sets done, new milestones in an open quarter start active), and a validation rule (a new milestone needs a goal). It says nothing about permissions or failure modes when the year overview is missing, which is the remaining gap.

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-loaded with the when-to-use sentence followed by the one-line definition, then parameter detail — a sensible order. There is mild redundancy between the trigger sentence and 'Create or update a quarterly milestone', but the status-lifecycle parenthetical is dense, useful information rather than padding.

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 5-parameter mutation tool with no annotations and no output schema, the description covers nearly everything an agent needs: intent, upsert defaults, lifecycle side effects, and most parameter formats. The unexplained required `key` parameter is the one substantive hole.

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 0%, so the description must compensate and largely does: it defines year format (YYYY with an existing overview), quarter values (Q1-Q4), goal format (one line, user's language, required for creation) and the status enum (planned | active | done) with its transition rules. However, the required `key` parameter is never explained, leaving an agent to guess its meaning and format.

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 verb and resource — 'Create or update a quarterly milestone — a year's goal for one quarter' — and the leading trigger sentence anchors it to the user intent ('sets or changes a quarter's goal'). It is clearly distinguishable from siblings like open_period and close_period, which only affect the milestone's status.

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 an explicit usage trigger ('when the user sets or changes a quarter's goal') plus a when-not/optionality note ('A milestone is optional — tasks never need one') and a prerequisite ('its overview must exist'). It stops short of naming an alternative tool for the goal-setting case, but no sibling actually competes for that job.

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