Skip to main content
Glama

resolve_drift

Records a human resolution for a detected drift anchor — fix, supersede, acknowledge, dismiss, harden, or soften — so violations get closed out, parked with a review date, or escalated to a blocking gate.

Instructions

Record a resolution for a drifting anchor — the human feedback loop.

6 actions: • fix — "we fixed the code/reality to match intent" → state becomes aligned • supersede — "intent evolved, this is the new direction" → state becomes aligned • acknowledge — "we know, parking it for now" → state becomes held (with optional review date) • dismiss — "false positive, not actually drifting" → edges dismissed AND the gate stops firing on it (hit_term: just that word; gate:false: close the edges but keep the gate watching) • harden — "re-injected but still violated, enforce it" → card_policy.gate_mode=hard (PreToolUse will BLOCK) • soften — "back off to a warning" → gate_mode=soft

WHEN TO CALL: • After drift_status shows 🔴 drift or 🟡 review items • When the user says "that's fixed" / "ignore that" / "we changed direction" • When acknowledging a known gap with a review date

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "anchor_id": "<anchor_id>",
      "action": "<action>"
    },
    "name": "resolve_drift"
  }
}

Input Schema

NameRequiredDescriptionDefault
gateNoFor dismiss: false = these detections were false positives, close them, but KEEP the gate watching this anchor (its signals still fire). Use when the anchor's rule is right and only this evidence was wrong — e.g. a lexical hit in a file that is not what the rule is about. Default true also silences the gate (whole anchor, or just hit_term).
actionYesResolution action. With candidate_id (an orphaned proposal): 'surface' keeps it visible for the human, 'dismiss' retires it.
hit_termNoFor dismiss: silence only this match term (the word the gate quoted back at you). Omit to silence the whole anchor at the gate — prefer the term, so the anchor's real detections keep working.
anchor_idYesThe drift_anchor ID to resolve
rationaleNoWhy this resolution (recorded for audit trail)
candidate_idNoResolve an orphaned proposal (from recall({ dream: true })) instead of an anchor: pass its candidate_id with action surface | dismiss and a rationale that references the North Star. (Absorbs resolve_proposal.)
review_afterNoFor acknowledge: ISO date to re-check (e.g. "2026-07-04")
superseded_byNoFor supersede: the new anchor ID that replaces this one

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.17.0

TDQS

A4.5/5.0
Behavior5/5

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

With no annotations, the description carries the full behavioral burden and does so well: it discloses state transitions for fix/supersede/acknowledge, the gate-silencing effect of dismiss, the hit_term vs whole-anchor behavior, and that harden causes PreToolUse to BLOCK while soften only warns. These are exactly the side effects an agent needs before invoking a mutation.

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 front-loaded, uses bullets, and every section is relevant to a complex 8-parameter mutation tool. The action list is somewhat long and says '6 actions' while the schema enum has 7 including 'surface', a minor structural inaccuracy.

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?

Given the complex action set, mutation side effects, and lack of annotations or output schema, the description covers trigger conditions and behavioral outcomes well. It does not mention the 'surface' action in its action list and does not describe the response, leaving small gaps for an agent invoking it.

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 description coverage is 100%, so the baseline is 3, but the description adds substantial meaning by mapping each action to its resulting state and enforcement behavior. It does not explain every parameter because the schema already does, and it leaves out the schema's 'surface' action, so it is not quite complete.

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: 'Record a resolution for a drifting anchor' and frames it as the human feedback loop. The action taxonomy makes clear this is the mutation counterpart to drift_status, so an agent can distinguish it from read-only sibling tools.

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?

The WHEN TO CALL section gives explicit triggers: after drift_status shows drift/review items, when the user says 'that's fixed' or 'ignore that', and when acknowledging a known gap with a review date. It lacks explicit when-not guidance or alternatives beyond drift_status, and the action list omits the schema's 'surface' action.

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