Skip to main content
Glama

gates_lint

Read-only

Lint gate specs, plan-file gate lines, and ledgers without running CHECK commands to flag rules that cannot be met as written.

Instructions

Check gate specs, the gate lines of a plan file, or existing ledgers without running any CHECK: ledger spec rules (one argv command, segment split on |), the argv tokenizer, the command policy gates_check would apply, and EXPECT regex compilation. Problems mean the gate cannot be met as written regardless of the implementation. Writes nothing.

Input Schema

NameRequiredDescriptionDefault
cwdNoCHECK working directory for the policy judgment, and base for relative plan_file and files. Defaults to the agent project directory.
filesNoExisting gate ledger files to lint.
gatesNoGate specs: "ID: outcome | CHECK: command | EXPECT: expectation".
plan_fileNoPlan file whose one-line gate specs or ledger-form gates are linted. Lines that mention CHECK: in another form are reported as not linted.
env_allowlistNoEnvironment variable allowlist the CHECKs will run with. Defaults to HOME,PATH.
write_allowedNoJudge CHECKs as gates_check with write access would run them. Default true.
authority_fileNoHTTP only: from `issueops mcp authorize`; omit over stdio.
workspace_rootNoWorkspace root boundary for the policy judgment. Defaults to cwd.
network_allowedNoJudge CHECKs as gates_check with network access would run them. Default false.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, and the description reinforces with "Writes nothing" while adding a genuinely non-obvious trait: CHECK commands are not executed, only their argv/tokenization/policy/regex are statically validated. That is real context beyond the annotations. It stops short of describing the shape of a reported problem or how partial linting (unrecognized CHECK lines) surfaces.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Only three sentences, and the scope statement is front-loaded, but the middle sentence is a run-on that splices a list of lint targets onto "without running any CHECK" with a colon, forcing re-parsing. The density costs more clarity than the brevity saves.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a nine-parameter lint tool with no required parameters and no output schema, the description should state the selection rule among gates, plan_file, and files (one-of, or all applied together) and what a "problem" result looks like. Instead it covers the semantics of what is validated but leaves the invocation contract to the schema.

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 all nine parameters are self-documented and the baseline is 3. The description adds only a little gloss on the CHECK grammar (one argv command, segments split on "|") and says nothing about how cwd, workspace_root, env_allowlist, write_allowed, and network_allowed interact to form the policy judgment.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ("Check"/lint) and enumerates the three resources it accepts: gate specs, gate lines of a plan file, or existing ledgers. It also implicitly separates itself from the sibling gates_check by saying it does not run any CHECK. The wording is dense and grammatically tangled ("without running any CHECK: ledger spec rules ..."), but the read-vs-execute distinction is recoverable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied rather than stated: the phrase "Problems mean the gate cannot be met as written regardless of the implementation" suggests using this before gates_check or before writing implementation code. It never explicitly says "use this before gates_check" nor when-not to use it, nor that you must supply at least one of gates/plan_file/files.

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