Skip to main content
Glama

Verify a fix

yof_verify
Read-onlyIdempotent

Re-scan one file to confirm a reported finding is fixed. Returns fixed status, reason, and redacted remaining matches; run yof_check_diff afterward to cover the rest of the change.

Instructions

Re-scan one file on this computer and report whether a finding is gone. Use it right after fixing something yof_check, yof_check_diff or yof_fix_prompt pointed to; it reads only that file, so run yof_check_diff afterwards to cover the rest of the change. With no rule_id it looks for every key rule (secret.*); a package rule needs package and asks npm, PyPI and OSV unless offline is true. A missing file, or one over 1 MB, counts as fixed. Returns file, rule, fixed (true, false, or null when a registry did not answer), why, and for key rules the matches still there, redacted.

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": {
      "file": "<file>"
    },
    "name": "yof_verify"
  }
}

Input Schema

NameRequiredDescriptionDefault
fileYesThe file to re-scan, relative to the project root.
offlineNotrue skips the npm, PyPI and OSV lookups, so nothing leaves this computer; package problems are then not reported. Default false.
packageNoThe package name. Required when rule_id is a package rule (package.*).
rule_idNoThe rule id to look for, for example secret.stripe_live. Default: every key rule.

Output Schema

NameRequiredDescriptionDefault
whyYesThe reason, in plain words.
fileYesThe file re-scanned.
ruleYesThe rule checked, or null for every key rule.
fixedYestrue when gone, false when still there, null when a registry did not answer.
stillNoKey matches still in the file (key rules).
packageNoThe package (package rules).
reminderNoFor a removed key: replace it at the provider too.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changedv0.3.2
    • changedInput schema / properties / offline / description
      Previous value: -"Skip the package-registry lookups (no network at all). Default false."New value: +"true skips the npm, PyPI and OSV lookups, so nothing leaves this computer; package problems are then not reported. Default false."
    • changedInput schema / properties / package / description
      Previous value: -"For a package rule: the package name."New value: +"The package name. Required when rule_id is a package rule (package.*)."
    • changedInput schema / properties / rule_id / description
      Previous value: -"The rule id to look for."New value: +"The rule id to look for, for example secret.stripe_live. Default: every key rule."
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "file": {
      +      "description": "The file re-scanned.",
      +      "type": "string"
      +    },
      +    "fixed": {
      +      "description": "true when gone, false when still there, null when a registry did not answer.",
      +      "type": [
      +        "boolean",
      +        "null"
      +      ]
      +    },
      +    "package": {
      +      "description": "The package (package rules).",
      +      "type": "string"
      +    },
      +    "reminder": {
      +      "description": "For a removed key: replace it at the provider too.",
      +      "type": "string"
      +    },
      +    "rule": {
      +      "description": "The rule checked, or null for every key rule.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "still": {
      +      "description": "Key matches still in the file (key rules).",
      +      "items": {
      +        "properties": {
      +          "line": {
      +            "description": "Line.",
      +            "type": "integer"
      +          },
      +          "rule": {
      +            "description": "Rule id.",
      +            "type": "string"
      +          },
      +          "value": {
      +            "description": "Prefix plus REDACTED.",
      +            "type": "string"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "why": {
      +      "description": "The reason, in plain words.",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "file",
      +    "rule",
      +    "fixed",
      +    "why"
      +  ],
      +  "type": "object"
      +}
  2. First observedv0.3.1

TDQS

A4.6/5.0
Behavior5/5

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

Goes well beyond the readOnly/idempotent annotations by disclosing that it reads only the one file, that package rules trigger npm, PyPI and OSV lookups unless offline is true, that a missing or >1 MB file counts as fixed, and that results are redacted. The network behavior is consistent with openWorldHint=true.

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 most decision-relevant fact (single-file scope), and every sentence carries new information. The second sentence is a long compound chain that reads telegraphically, but nothing is redundant filler.

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?

Covers prerequisite context, network side effects, required companions, edge cases, and the returned fields even though an output schema exists. For a four-parameter verification tool with an openWorld profile, nothing essential 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 file, offline, package and rule_id, including the 'every key rule' default and the package-rule requirement. The description restates those semantics rather than adding syntax, ordering or value-format guidance beyond them.

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 scope: re-scans exactly one file and reports whether a finding is gone. The single-file boundary distinguishes it cleanly from yof_check_diff, which is named in the next sentence.

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?

Explicitly says to run it right after a fix prompted by yof_check, yof_check_diff or yof_fix_prompt, and prescribes yof_check_diff afterwards to cover the rest of the change. It also states when a rule_id is optional versus when a package name is required.

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