Skip to main content
Glama

memory_resolve

Resolve git conflicts in memory files by listing conflicted files or performing a field-level 3-way merge; semantic conflicts are reported, not auto-resolved.

Instructions

List git-conflicted memory files, or attempt a field-level 3-way merge of one. Semantic conflicts are reported, never auto-resolved. Run it when a git pull or merge leaves memory files conflicted; the merged file is written in place (undo with git if the merge is wrong). For PR review state rather than file conflicts, use memory_pr_status. (MCP server and the open-memex resolve CLI; the opencode native plugin does not expose this tool.)

Input Schema

NameRequiredDescriptionDefault
targetNoMemory id or file path to resolve. Omit to list conflicts.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Adds substantial context beyond the annotations: the merge is field-level 3-way, semantic conflicts are reported and never auto-resolved, the merged file is written in place, and recovery is via git. The write-in-place behavior is consistent with readOnlyHint=false and destructiveHint=false (reversible, undoable). It also discloses environment availability (MCP server and CLI, not the opencode native plugin), which annotations cannot express.

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 two modes, then trigger, then alternative, then availability. Nearly every sentence earns its place, though the trailing parenthetical about server/CLI/plugin exposure reads as a footnote and slightly dilutes the core instruction.

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?

There is no output schema, but the description covers both operational modes, the non-auto-resolution policy for semantic conflicts, the in-place write and its undo path, the sibling alternative, and runtime availability. Nothing an agent needs to invoke this 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% and the schema already states "Omit to list conflicts," so the baseline is 3. The description adds the mode semantics behind each branch — omitting lists conflicted files, supplying a target attempts a merge — which clarifies the parameter's effect rather than just its type.

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 two specific verbs on one resource (list git-conflicted memory files; attempt a field-level 3-way merge of one), and the branch condition is tied to the single `target` parameter. It explicitly names memory_pr_status as the sibling for a different conflict domain, so an agent can route 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 an explicit trigger ("Run it when a git pull or merge leaves memory files conflicted") plus an explicit exclusion and alternative ("For PR review state rather than file conflicts, use memory_pr_status"). Both when-to-use and when-not-to-use are stated outright.

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