Skip to main content
Glama

advance_project

Refines one completed agent result into a new project context version, then starts the next workflow role and waits for progress. Use it to move a multi-agent project forward safely.

Instructions

PM refines one completed Agent result; backend starts the next role and waits for progress. Continue this turn whenever workflow says so. The patch is committed as a new Context version first. Requires read-write project authorization. If an earlier round was interrupted, use resume_pending_dispatch instead. If the result has a non-null action_required, do NOT end your turn: perform it immediately (usually wait_for_task again). If it has a non-null meeting_mode_notice, your reply to the user MUST begin with meeting_mode_notice.text verbatim as its first line.

Input Schema

NameRequiredDescriptionDefault
patchYesThe PM's refinement of exactly one completed Agent execution: its id must be the only entry of source_execution_ids.
project_idYesRegistered project id, as returned by list_projects.
plan_contentNoThe reviewed implementation plan. Required when the completed execution was SA; must be omitted for every other role.
wait_secondsNoHow long to wait for the workflow to settle after this call, in seconds (default 50). It returns earlier when the work settles.

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed12 schema fields changedv0.1.3
    • addedInput schema / $defs / ContextPatch / properties / author_role / description
      Added value: +"Always PM for callers; SYSTEM is reserved for ccc-mcp automation and is rejected."
    • addedInput schema / $defs / ContextPatch / properties / base_context_version / description
      Added value: +"Context version this patch was written against, from get_context or collect_context_updates. A different current version is rejected as a Version Conflict."
    • addedInput schema / $defs / ContextPatch / properties / changes / description
      Added value: +"Context sections to replace, keyed by section name: status, next_action, summary, unresolved_questions, invariants, architecture, source_document_refs, agent_results, workspace_changes. project_name and purpose are immutable."
    • addedInput schema / $defs / ContextPatch / properties / semantic_review_ack / description
      Added value: +"Must be true for a PM patch: confirms the PM read the diff, because semantic equivalence cannot be proven. A patch without it is rejected."
    • addedInput schema / $defs / ContextPatch / properties / source_document_refs / description
      Added value: +"Evidence files as {path, sha256}; get the hash from get_source_reference."
    • addedInput schema / $defs / ContextPatch / properties / source_execution_ids / description
      Added value: +"Execution ids whose reports justify this change. Their agent results are removed from the working Context on commit; the raw reports stay in the audit trail."
    • addedInput schema / $defs / ContextPatch / properties / source_task_ids / description
      Added value: +"Task ids whose reports justify this change (provenance)."
    • addedInput schema / $defs / ContextPatch / properties / update_reason / description
      Added value: +"Why the context changes, recorded in the version history."
    • addedInput schema / properties / patch / description
      Added value: +"The PM's refinement of exactly one completed Agent execution: its id must be the only entry of source_execution_ids."
    • addedInput schema / properties / plan_content / description
      Added value: +"The reviewed implementation plan. Required when the completed execution was SA; must be omitted for every other role."
    • addedInput schema / properties / project_id / description
      Added value: +"Registered project id, as returned by list_projects."
    • addedInput schema / properties / wait_seconds / description
      Added value: +"How long to wait for the workflow to settle after this call, in seconds (default 50). It returns earlier when the work settles."
  2. First observedv0.1.0

TDQS

A4.4/5.0
Behavior5/5

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

Annotations only say non-read-only, non-destructive, closed-world; the description adds substantive behavior well beyond that: the patch is committed as a new Context version first, read-write project authorization is required, and the backend dispatches the next role and blocks up to wait_seconds. It also gives turn-continuation rules for action_required and a mandatory verbatim prefix from meeting_mode_notice, which are critical behaviors no annotation conveys.

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?

Content is front-loaded with purpose, then alternative, then post-call handling in a logical order, and each sentence carries operational weight. However, the awkward line wrapping splits sentences mid-clause and the multi-clause 'If the result has...' block could be tightened into a compact bulleted set of rules.

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?

With an output schema present and annotations covering the safety profile, the description need not explain return values; instead it covers what an agent actually needs — auth requirement, version-conflict implication, alternative tool for interrupted rounds, and mandatory follow-up actions on the response. Nothing essential for a correct call is missing.

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?

Schema description coverage is 100%, so the schema already documents project_id, patch fields, plan_content role-gating, and wait_seconds semantics. The description adds only indirect context (the patch becomes a new Context version), so the baseline 3 applies rather than a higher score for value added.

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 ('PM refines one completed Agent result; backend starts the next role') with a clear scope of one execution, and explicitly names the sibling it is not (resume_pending_dispatch) for interrupted rounds. An agent can distinguish it from commit_context_patch or propose_context_patch without opening schemas.

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 explicit conditions for use ('Continue this turn whenever workflow says so') and an explicit exclusion with the alternative to use instead ('If an earlier round was interrupted, use resume_pending_dispatch instead'). The trigger phrase 'whenever workflow says so' is somewhat circular, but the exclusion plus the post-call handling rules make the routing clear.

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