Skip to main content
Glama

Review a week and re-plan

review_week
Read-onlyIdempotent

Use this when a plan from plan_lanes has ended and the user says what got done, such as "here is my list with what I ticked, plan next week". Input tips: send checklist, the todo_text with [x] on finished lines, pasted whole; it carries the lanes and the hours. Without the text, send lanes as the earlier answer returned them (build required), done and not_done task titles or ids, and hours_per_week. One of checklist or lanes is required. Optional: start_date, days, days_off, next_steps for the build lane, swap_in to move a parked interest into the open slot, keep_hours. Returns the done count per lane, the changes it made (carried build steps, a paused side quest when build stalled, fewer hours after a week under 40%), and the next plan in the same shape as plan_lanes, with new todo_text. Tie-break with plan_lanes: every review of a plan that is in this chat comes here. Not for a first plan (use plan_lanes), a calendar booking or a diagnosis.

Input Schema

NameRequiredDescriptionDefault
daysNoHow many days to plan, 3 to 7. Defaults to the length of the pasted plan, else 7.
doneNoFinished tasks, up to 60: titles as written, such as "Build: Indie iOS app: set up the Xcode project", or ids such as "d1-1". Needed with lanes; with checklist the [x] marks are enough.
lanesNoOnly when no checklist is sent: the lanes object plan_lanes or review_week returned, build required, such as {"build": {"name": "Indie iOS app"}, "open": {"name": "Guitar"}}. Send done, not_done and hours_per_week with it.
spineNoThe user's own one-sentence direction that ties the interests together. Leave it out to get a first guess.
swap_inNoName of a parked interest the user wants in the open slot now, such as "Guitar"; the current side quest is parked with a bookmark.
days_offNoWeekdays with no tasks, such as ["Sun"]. Defaults to the days off in the pasted plan.
not_doneNoUnfinished tasks, up to 60: titles or ids, such as "d3-1".
checklistNoThe main input: the todo_text from plan_lanes or review_week with each finished line ticked as [x], sent whole from its first line "Lane plan: ...", up to 8000 characters. Its header lines carry the lanes, the hours and the parking lot, so nothing else is needed. Send checklist or lanes; one of them is required.
keep_hoursNoKeep hours_per_week even when less than 40% got done. By default the next plan uses 20% fewer hours then.
next_stepsNoNew next steps for the build lane, such as ["add notifications"]; they come after the carried ones.
start_dateNoFirst day of the plan as YYYY-MM-DD, such as "2026-10-08". Use today in the user's time zone, even mid-week; do not move it to a Monday or to tomorrow unless the user asked to start then. Defaults to today in UTC.
hours_per_weekNoHours for the next plan, 1 to 80, such as 10. Defaults to the hours in the pasted text; needed with lanes.

Output Schema

NameRequiredDescriptionDefault
daysYesThe plan day by day, from start_date.
lanesYesEach interest in its lane. Send this object back as review_week.lanes to review the week without the text.
notesYesShort sentences on choices the tool made, such as a guessed spine or an interest moved to the parking lot. Often empty.
spineYesThe one sentence that points the lanes at the same direction.
budgetYesMinutes per lane over the whole plan; build, reading, open and review add up to total_minutes.
reviewYesThe count of last week's tasks. The review task itself is not counted.
statusYesAlways ok; a call that cannot plan returns an error instead.
changesYesPlain sentences on what the review changed for the next plan: carried build steps, a paused side quest, fewer hours, a swap from the parking lot. Tell them to the user.
next_stepYesWhat to tell or ask the user next.
todo_textYesThe plan as paste-ready text: header lines (Lane plan, Spine, the lanes, Parking lot), then one "- [ ] title (minutes) #id" line per task. Give it word for word; review_week reads it back.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed109 schema fields changed
    • changedInput schema / properties / checklist / description
      Previous value: -"The plan text from todo_text with each finished line ticked as [x], sent whole from its first line \"Lane plan: ...\". Its 4 header lines carry the lanes, the hours and the parking lot, so nothing else is required."New value: +"The main input: the todo_text from plan_lanes or review_week with each finished line ticked as [x], sent whole from its first line \"Lane plan: ...\", up to 8000 characters. Its header lines carry the lanes, the hours and the parking lot, so nothing else is needed. Send checklist or lanes; one of them is required."
    • addedInput schema / properties / days_off / uniqueItems
      Added value: +true
    • changedInput schema / properties / done / description
      Previous value: -"Finished tasks: their titles as written, or their ids such as d1-1."New value: +"Finished tasks, up to 60: titles as written, such as \"Build: Indie iOS app: set up the Xcode project\", or ids such as \"d1-1\". Needed with lanes; with checklist the [x] marks are enough."
    • changedInput schema / properties / hours_per_week / description
      Previous value: -"Hours for the next plan. Defaults to the hours in the pasted text."New value: +"Hours for the next plan, 1 to 80, such as 10. Defaults to the hours in the pasted text; needed with lanes."
    • changedInput schema / properties / lanes / description
      Previous value: -"The lanes object plan_lanes or review_week returned. Needed only when no checklist is sent."New value: +"Only when no checklist is sent: the lanes object plan_lanes or review_week returned, build required, such as {\"build\": {\"name\": \"Indie iOS app\"}, \"open\": {\"name\": \"Guitar\"}}. Send done, not_done and hours_per_week with it."
    • addedInput schema / properties / lanes / properties / build / description
      Added value: +"The build lane as last returned, such as {\"name\": \"Indie iOS app\"}."
    • addedInput schema / properties / lanes / properties / build / properties / name / description
      Added value: +"Interest name."
    • addedInput schema / properties / lanes / properties / build / properties / note / description
      Added value: +"The note on it."
    • changedInput schema / properties / lanes / properties / build / type
      Previous value: -[
      -  "object",
      -  "null"
      -]New value: +"object"
    • addedInput schema / properties / lanes / properties / open / description
      Added value: +"The open lane as last returned, or null when it was empty."
    • addedInput schema / properties / lanes / properties / open / properties / name / description
      Added value: +"Interest name."
    • addedInput schema / properties / lanes / properties / open / properties / note / description
      Added value: +"The note on it."
    • addedInput schema / properties / lanes / properties / parking_lot / description
      Added value: +"Parked interests as last returned."
    • addedInput schema / properties / lanes / properties / parking_lot / items / properties / bookmark / description
      Added value: +"Where the user stopped."
    • addedInput schema / properties / lanes / properties / parking_lot / items / properties / name / description
      Added value: +"Interest name."
    • addedInput schema / properties / lanes / properties / reading / description
      Added value: +"The reading lane as last returned, or null when it was empty."
    • addedInput schema / properties / lanes / properties / reading / properties / name / description
      Added value: +"Interest name."
    • addedInput schema / properties / lanes / properties / reading / properties / note / description
      Added value: +"The note on it."
    • changedInput schema / properties / next_steps / description
      Previous value: -"New next steps for the build lane, after the carried ones."New value: +"New next steps for the build lane, such as [\"add notifications\"]; they come after the carried ones."
    • changedInput schema / properties / not_done / description
      Previous value: -"Unfinished tasks: titles or ids."New value: +"Unfinished tasks, up to 60: titles or ids, such as \"d3-1\"."
    • changedInput schema / properties / start_date / description
      Previous value: -"First day of the plan as YYYY-MM-DD. Use today in the user's time zone, even mid-week: do not move it to a Monday or to tomorrow unless the user asked to start then. Defaults to today (UTC)."New value: +"First day of the plan as YYYY-MM-DD, such as \"2026-10-08\". Use today in the user's time zone, even mid-week; do not move it to a Monday or to tomorrow unless the user asked to start then. Defaults to today in UTC."
    • changedInput schema / properties / swap_in / description
      Previous value: -"A parked interest the user wants in the open slot now; the current side quest is parked with a bookmark."New value: +"Name of a parked interest the user wants in the open slot now, such as \"Guitar\"; the current side quest is parked with a bookmark."
    • addedOutput schema / additionalProperties
      Added value: +false
    • addedOutput schema / properties / budget / additionalProperties
      Added value: +false
    • addedOutput schema / properties / budget / description
      Added value: +"Minutes per lane over the whole plan; build, reading, open and review add up to total_minutes."
    • addedOutput schema / properties / budget / properties / build / description
      Added value: +"Minutes for the build lane."
    • addedOutput schema / properties / budget / properties / build / minimum
      Added value: +0
    • addedOutput schema / properties / budget / properties / open / description
      Added value: +"Minutes for the side quest; 0 when it is empty or paused."
    • addedOutput schema / properties / budget / properties / open / minimum
      Added value: +0
    • addedOutput schema / properties / budget / properties / reading / description
      Added value: +"Minutes for the reading lane; 0 when it is empty."
    • addedOutput schema / properties / budget / properties / reading / minimum
      Added value: +0
    • addedOutput schema / properties / budget / properties / review / description
      Added value: +"Minutes for the review task on the last work day."
    • addedOutput schema / properties / budget / properties / review / minimum
      Added value: +0
    • addedOutput schema / properties / budget / properties / total_minutes / description
      Added value: +"All planned minutes: the weekly hours scaled to the days of the plan."
    • addedOutput schema / properties / budget / properties / total_minutes / minimum
      Added value: +0
    • addedOutput schema / properties / changes / description
      Added value: +"Plain sentences on what the review changed for the next plan: carried build steps, a paused side quest, fewer hours, a swap from the parking lot. Tell them to the user."
    • addedOutput schema / properties / days / description
      Added value: +"The plan day by day, from start_date."
    • addedOutput schema / properties / days / items / additionalProperties
      Added value: +false
    • addedOutput schema / properties / days / items / description
      Added value: +"One day of the plan."
    • addedOutput schema / properties / days / items / properties / date / description
      Added value: +"The day as YYYY-MM-DD."
    • addedOutput schema / properties / days / items / properties / items / description
      Added value: +"The tasks of the day in order; empty on a day off."
    • addedOutput schema / properties / days / items / properties / items / items / additionalProperties
      Added value: +false
    • addedOutput schema / properties / days / items / properties / items / items / properties / id / description
      Added value: +"Task id, d<day>-<n>, such as \"d2-1\" for the first task of day 2. review_week accepts it in done or not_done."
    • addedOutput schema / properties / days / items / properties / items / items / properties / minutes / description
      Added value: +"Minutes for the task."
    • addedOutput schema / properties / days / items / properties / items / items / properties / minutes / minimum
      Added value: +1
    • addedOutput schema / properties / days / items / properties / items / items / properties / tag / description
      Added value: +"The lane of the task, or review for the weekly review task on the last work day. A carried build step keeps tag build and its title ends with \" (carried)\"."
    • addedOutput schema / properties / days / items / properties / items / items / properties / tag / enum
      Added value: +[
      +  "build",
      +  "reading",
      +  "open",
      +  "review"
      +]
    • addedOutput schema / properties / days / items / properties / items / items / properties / title / description
      Added value: +"Task title that starts with its lane, such as \"Build: Indie iOS app: set up the Xcode project\"."
    • addedOutput schema / properties / days / items / properties / minutes / description
      Added value: +"Sum of the task minutes on this day."
    • addedOutput schema / properties / days / items / properties / minutes / minimum
      Added value: +0
    • addedOutput schema / properties / days / items / properties / off / description
      Added value: +"True on a day off; it has no tasks."
    • addedOutput schema / properties / days / items / properties / weekday / description
      Added value: +"The weekday as a 3-letter name."
    • addedOutput schema / properties / days / items / properties / weekday / enum
      Added value: +[
      +  "Sun",
      +  "Mon",
      +  "Tue",
      +  "Wed",
      +  "Thu",
      +  "Fri",
      +  "Sat"
      +]
    • addedOutput schema / properties / lanes / additionalProperties
      Added value: +false
    • addedOutput schema / properties / lanes / description
      Added value: +"Each interest in its lane. Send this object back as review_week.lanes to review the week without the text."
    • addedOutput schema / properties / lanes / properties / build / additionalProperties
      Added value: +false
    • addedOutput schema / properties / lanes / properties / build / description
      Added value: +"The build lane; there is always one."
    • addedOutput schema / properties / lanes / properties / build / properties / minutes / description
      Added value: +"Minutes this lane gets over the whole plan."
    • addedOutput schema / properties / lanes / properties / build / properties / minutes / minimum
      Added value: +0
    • addedOutput schema / properties / lanes / properties / build / properties / name / description
      Added value: +"Interest name, as the user gave it."
    • addedOutput schema / properties / lanes / properties / build / properties / note / description
      Added value: +"The user's note on it; empty when none was given."
    • addedOutput schema / properties / lanes / properties / build / properties / time / description
      Added value: +"The same minutes in words, such as \"6 h\" or \"1 h 30 min\", or \"none this plan\" when minutes is 0. Repeat it as is."
    • addedOutput schema / properties / lanes / properties / build / properties / why / description
      Added value: +"One sentence on why this interest has this lane."
    • changedOutput schema / properties / lanes / properties / build / type
      Previous value: -[
      -  "object",
      -  "null"
      -]New value: +"object"
    • addedOutput schema / properties / lanes / properties / open / additionalProperties
      Added value: +false
    • addedOutput schema / properties / lanes / properties / open / description
      Added value: +"The open lane, or null when no interest fills it."
    • addedOutput schema / properties / lanes / properties / open / properties / minutes / description
      Added value: +"Minutes this lane gets over the whole plan."
    • addedOutput schema / properties / lanes / properties / open / properties / minutes / minimum
      Added value: +0
    • addedOutput schema / properties / lanes / properties / open / properties / name / description
      Added value: +"Interest name, as the user gave it."
    • addedOutput schema / properties / lanes / properties / open / properties / note / description
      Added value: +"The user's note on it; empty when none was given."
    • addedOutput schema / properties / lanes / properties / open / properties / time / description
      Added value: +"The same minutes in words, such as \"6 h\" or \"1 h 30 min\", or \"none this plan\" when minutes is 0. Repeat it as is."
    • addedOutput schema / properties / lanes / properties / open / properties / why / description
      Added value: +"One sentence on why this interest has this lane."
    • addedOutput schema / properties / lanes / properties / parking_lot / description
      Added value: +"Interests that wait this plan, each with a bookmark; nothing is dropped."
    • addedOutput schema / properties / lanes / properties / parking_lot / items / additionalProperties
      Added value: +false
    • addedOutput schema / properties / lanes / properties / parking_lot / items / properties / bookmark / description
      Added value: +"Where to pick it up next time."
    • addedOutput schema / properties / lanes / properties / parking_lot / items / properties / name / description
      Added value: +"Interest name."
    • addedOutput schema / properties / lanes / properties / reading / additionalProperties
      Added value: +false
    • addedOutput schema / properties / lanes / properties / reading / description
      Added value: +"The reading lane, or null when no interest fills it."
    • addedOutput schema / properties / lanes / properties / reading / properties / minutes / description
      Added value: +"Minutes this lane gets over the whole plan."
    • addedOutput schema / properties / lanes / properties / reading / properties / minutes / minimum
      Added value: +0
    • addedOutput schema / properties / lanes / properties / reading / properties / name / description
      Added value: +"Interest name, as the user gave it."
    • addedOutput schema / properties / lanes / properties / reading / properties / note / description
      Added value: +"The user's note on it; empty when none was given."
    • addedOutput schema / properties / lanes / properties / reading / properties / time / description
      Added value: +"The same minutes in words, such as \"6 h\" or \"1 h 30 min\", or \"none this plan\" when minutes is 0. Repeat it as is."
    • addedOutput schema / properties / lanes / properties / reading / properties / why / description
      Added value: +"One sentence on why this interest has this lane."
    • addedOutput schema / properties / next_step / description
      Added value: +"What to tell or ask the user next."
    • addedOutput schema / properties / notes / description
      Added value: +"Short sentences on choices the tool made, such as a guessed spine or an interest moved to the parking lot. Often empty."
    • addedOutput schema / properties / review / additionalProperties
      Added value: +false
    • addedOutput schema / properties / review / description
      Added value: +"The count of last week's tasks. The review task itself is not counted."
    • addedOutput schema / properties / review / properties / by_lane / description
      Added value: +"The same count per lane; a lane with no tasks last week is left out."
    • addedOutput schema / properties / review / properties / by_lane / items / additionalProperties
      Added value: +false
    • addedOutput schema / properties / review / properties / by_lane / items / properties / done / description
      Added value: +"Tasks done in this lane."
    • addedOutput schema / properties / review / properties / by_lane / items / properties / done / minimum
      Added value: +0
    • addedOutput schema / properties / review / properties / by_lane / items / properties / lane / description
      Added value: +"Lane name."
    • addedOutput schema / properties / review / properties / by_lane / items / properties / lane / enum
      Added value: +[
      +  "build",
      +  "reading",
      +  "open"
      +]
    • addedOutput schema / properties / review / properties / by_lane / items / properties / not_done / description
      Added value: +"Tasks not done in this lane."
    • addedOutput schema / properties / review / properties / by_lane / items / properties / not_done / minimum
      Added value: +0
    • addedOutput schema / properties / review / properties / done / description
      Added value: +"Tasks ticked or named as done."
    • addedOutput schema / properties / review / properties / done / minimum
      Added value: +0
    • addedOutput schema / properties / review / properties / done_percent / description
      Added value: +"done as a share of all tasks, 0 to 100. Under 40 means fewer hours next plan unless keep_hours is true."
    • addedOutput schema / properties / review / properties / done_percent / maximum
      Added value: +100
    • addedOutput schema / properties / review / properties / done_percent / minimum
      Added value: +0
    • addedOutput schema / properties / review / properties / not_done / description
      Added value: +"Tasks not done."
    • addedOutput schema / properties / review / properties / not_done / minimum
      Added value: +0
    • addedOutput schema / properties / spine / additionalProperties
      Added value: +false
    • addedOutput schema / properties / spine / description
      Added value: +"The one sentence that points the lanes at the same direction."
    • addedOutput schema / properties / spine / properties / sentence / description
      Added value: +"The spine sentence. Ask the user whether it fits."
    • addedOutput schema / properties / spine / properties / source / description
      Added value: +"given: the user's own words from spine. derived: a first guess from the lanes."
    • addedOutput schema / properties / status / description
      Added value: +"Always ok; a call that cannot plan returns an error instead."
    • addedOutput schema / properties / todo_text / description
      Added value: +"The plan as paste-ready text: header lines (Lane plan, Spine, the lanes, Parking lot), then one \"- [ ] title (minutes) #id\" line per task. Give it word for word; review_week reads it back."
  2. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Discloses behavior beyond the annotations: the automatic hour reduction when a week is under 40% complete and the keep_hours override, the paused side quest when build stalls, carried build steps, and the returned done count per lane and next todo_text. Annotations only cover safety (readOnly, idempotent); the description carries the substantive behavioral load.

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?

Dense but front-loaded with the use case and the tie-break before the input/output tips. Slightly repetitive (the 'checklist or lanes required' rule appears twice, once here and once in the schema), but every sentence conveys routing or behavioral information.

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

Completeness5/5

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

For a 12-parameter tool with nested lane objects and an output schema, the description still covers both input modes, defaults (start_date, days, hours), requiredness, and the shape of the returned next plan. Nothing an agent needs to invoke it correctly 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 100%, so baseline would be 3, but the description adds real meaning: it explains the checklist/lanes mutual requirement, that checklist headers already carry lanes/hours/parking lot, and that swap_in parks the current side quest with a bookmark. This goes beyond the schema's field-level docs.

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+resource (review a prior plan and produce the next plan) and distinguishes itself from plan_lanes with an explicit tie-break rule: 'every review of a plan that is in this chat comes here.' An agent can route between the two without opening either schema.

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

Usage Guidelines5/5

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

Gives the trigger ('when a plan from plan_lanes has ended and the user says what got done'), the alternative ('Not for a first plan (use plan_lanes), a calendar booking or a diagnosis'), and the input-mode choice (checklist vs lanes, one required). Explicit when and when-not.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.