Skip to main content
Glama

Prepare sourced follow-up

prepare_follow_up
Read-only

Validate source-backed follow-up records against live note IDs, hashes, and exact excerpts; returns append journal plans only, never writes.

Instructions

Validate sourced actions, interactions, objectives and state revisions against live note IDs/hashes and exact source excerpts. Existing target history headings are required. Person targets require contextual identity confirmation; clarify homonyms first. Returns bounded append_journal plans, never writes. Validation is structural, not a truth verdict. Use stable record/revision IDs, then apply with existing writers and verify receipts. Refused: a source note that is the target itself; a source_excerpt under 20 non-blank characters; an event_date after tomorrow (UTC); a due_date before the event_date. Under retrieval redaction, secret-shaped text in a persisted field is refused with the field named; the rest of the source note is not examined. Schema constraints, repeated because some clients strip them: required: record_id, revision, kind, target_path, target_id, expected_hash, heading, source_path, source_hash, source_excerpt, summary; extra fields refused; at most 20 records per call, checked at runtime; record_id: pattern ^[A-Za-z0-9][A-Za-z0-9_.-]{0,127}$; revision: pattern ^[A-Za-z0-9][A-Za-z0-9_.-]{0,127}$; previous_revision: pattern ^[A-Za-z0-9][A-Za-z0-9_.-]{0,127}$, or null, default null; kind: one of action, interaction, decision, objective, project_state; target_path: 1 to 4000 characters; target_id: pattern ^[0-9A-HJKMNP-TV-Z]{26}$; expected_hash: pattern ^[0-9a-f]{64}$; heading: 1 to 256 characters; source_path: 1 to 4000 characters; source_hash: pattern ^[0-9a-f]{64}$; source_excerpt: 1 to 4000 characters; summary: 1 to 4000 characters; event_date: ISO date, or null, default null; owner: at most 256 characters, or null, default null; due_date: ISO date, or null, default null; status: one of unknown, proposed, open, in_progress, waiting, completed, cancelled, default "unknown"; identity_confirmed: boolean, default false; identity_basis: at most 1000 characters, or null, default null

Input Schema

NameRequiredDescriptionDefault
recordsYes

Output Schema

NameRequiredDescriptionDefault
plansNo
statusNo
committedNo
validationNo
next_actionNo
writes_enabledNo
already_recordedNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed8 schema fields changedv0.1.17
    • addedOutput schema / description
      Added value: +"Read-only validation and existing-writer plans, never a committed receipt."
    • removedOutput schema / properties / already_recorded / default
      Removed value: -null
    • removedOutput schema / properties / committed / default
      Removed value: -null
    • removedOutput schema / properties / next_action / default
      Removed value: -null
    • removedOutput schema / properties / plans / default
      Removed value: -null
    • removedOutput schema / properties / status / default
      Removed value: -null
    • removedOutput schema / properties / validation / default
      Removed value: -null
    • removedOutput schema / properties / writes_enabled / default
      Removed value: -null
  2. Addedv0.1.5

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already establish readOnlyHint=true/destructiveHint=false, and the description reinforces this ('never writes', 'Validation is structural, not a truth verdict') while adding rich context: bounded plans, explicit refusal cases, and redaction behavior that names the offending field without examining the rest of the note.

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 purpose and the never-writes scope, then refusals, then constraints. The schema restatement is lengthy, but it is explicitly justified ('repeated because some clients strip them') and thus defensible rather than padding.

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 for return values, the description supplies everything else an agent needs: refusal rules, redaction semantics, identity-confirmation gating, batching limit, and the follow-on writer workflow. Nothing material is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the nested FollowUpRecord has no per-field docs, so the description carries the full burden — and it does, restating required fields, patterns, enums, defaults, and the 20-record runtime cap. This compensates completely 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?

State a specific verb+resource: validates sourced actions/interactions/objectives/state revisions against live note IDs/hashes and excerpts, returning bounded plans rather than writing. This clearly distinguishes it from the sibling writer append_journal and from get_follow_up.

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?

Tells the agent exactly how to sequence: 'Use stable record/revision IDs, then apply with existing writers and verify receipts.' It also enumerates refusal conditions and the identity-confirmation requirement for person targets, so when-to-use and when-not-to-use are explicit.

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