Skip to main content
Glama

record_attempt

Log each fix attempt with its outcome (worked, failed, partial) to track troubleshooting progress and prevent repeating mistakes on the current issue.

Instructions

Record a fix attempt on the current issue.

MANDATORY: call IMMEDIATELY after each distinct fix attempt — do NOT
batch multiple attempts into one call.

`outcome` must be 'worked', 'failed', or 'partial'. Pass `issue_id`
explicitly to attach to a specific issue; otherwise the attempt
attaches to the active issue. If no active issue exists, an implicit
parent issue is auto-created from this attempt's text (L-008).

Side effects: appends an `attempt` event and updates the issue file.
Does NOT close the issue — call record_fix for that.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
outcomeNoResult of the attempt. Must be exactly one of 'worked', 'failed', or 'partial'. Defaults to 'failed' — the safer default when an outcome is uncertain.failed
projectNoWhich project this call is about — a registered id, alias, or absolute path (e.g. 'ossdrop'). Omit it when the server was started for a single repo, or when an active project is set with `pjm project use`. Call list_projects to see the registered names.
summaryYesOne-line description of what you tried (e.g., 'tried contain: layout — preview still jumps').
issue_idNoOptional zero-padded issue ID (e.g., '0042') to attach this attempt to. When omitted, attaches to the active issue; if no active issue exists, an implicit parent issue is auto-created from this attempt's text.
locationNoOptional file path or component touched by this attempt.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.3.2
    • addedInput schema / properties / project
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Which project this call is about — a registered id, alias, or absolute path (e.g. 'ossdrop'). Omit it when the server was started for a single repo, or when an active project is set with `pjm project use`. Call list_projects to see the registered names.",
      +  "title": "Project"
      +}
  2. Changed5 schema fields changedv0.1.3
    • addedInput schema / properties / issue_id / description
      Added value: +"Optional zero-padded issue ID (e.g., '0042') to attach this attempt to. When omitted, attaches to the active issue; if no active issue exists, an implicit parent issue is auto-created from this attempt's text."
    • addedInput schema / properties / location / description
      Added value: +"Optional file path or component touched by this attempt."
    • addedInput schema / properties / outcome / description
      Added value: +"Result of the attempt. Must be exactly one of 'worked', 'failed', or 'partial'. Defaults to 'failed' — the safer default when an outcome is uncertain."
    • addedInput schema / properties / outcome / pattern
      Added value: +"^(worked|failed|partial)$"
    • addedInput schema / properties / summary / description
      Added value: +"One-line description of what you tried (e.g., 'tried contain: layout — preview still jumps')."
  3. First observedv0.1.1

TDQS

A4.5/5.0
Behavior5/5

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

With no annotations to carry the burden, the description explicitly discloses side effects: it 'appends an attempt event and updates the issue file,' auto-creates an implicit parent issue when none exists, and clarifies it does not close the issue. This is exactly the behavioral context an agent needs for a mutating tool.

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?

The description is well-structured with MANDATORY, outcome, issue-attachment, and side-effect sections, and it front-loads the purpose. A few sentences restate schema details, but the overall size is justified by the behavioral caveats.

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?

An output schema is present so return values need no explanation. The description covers side effects, auto-created parent issues, and the record_fix boundary. It could more explicitly distinguish itself from log_issue/add_decision, but the 'fix attempt' framing supplies that context.

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 baseline is 3. The description reinforces the outcome enum and issue_id fallback, and adds the rationale that 'failed' is the safer default, but does not add substantial meaning beyond the already-detailed schema.

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?

Opens with a specific verb and resource ('Record a fix attempt on the current issue') and immediately differentiates itself from the closest sibling by stating 'Does NOT close the issue — call record_fix for that.' An agent can tell this tool from record_fix, log_issue, and add_note contextually.

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?

The MANDATORY line gives an explicit invocation trigger ('immediately after each distinct fix attempt') and an exclusion ('do NOT batch multiple attempts'). It also explains when to pass issue_id versus rely on the active issue, and directs the agent to record_fix for closing.

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