Skip to main content
Glama

command_policy_check

Read-only

Check whether an argv-based command request is allowed by the harness command policy without executing it.

Instructions

Evaluate whether an argv-based command request is allowed by the harness command policy without executing it.

Input Schema

NameRequiredDescriptionDefault
cwdYesCommand working directory; must be inside workspace_root.
argvYesCommand argv array. Shell strings are not accepted.
timeoutNoDuration such as 30s or 2m; max 15m.
audit_log_idNoOptional caller-provided audit log correlation id.
shell_reasonNoRequired reason when shell_allowed is true.
env_allowlistNoAllowed environment variable names.
shell_allowedNoWhether shell interpreter argv[0] is allowed.
write_allowedNoWhether workspace writes are allowed.
authority_fileNoHTTP only: from `issueops mcp authorize`; omit over stdio.
workspace_rootYesWorkspace root boundary.
network_allowedNoWhether network access is allowed.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

B3.3/5.0
Behavior3/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 is consistent, reinforcing that nothing is executed. It adds no behavioral context beyond that: no mention of what a denial looks like, whether policy results are cached, or the HTTP-vs-stdio authority_file nuance already buried in the schema.

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?

A single tight sentence with the key constraint (non-executing) placed at the end for emphasis, and no filler. It is efficient, though for an 11-parameter policy tool a small amount of structural elaboration would have earned its place.

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

Completeness2/5

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

This is a high-complexity tool: 11 parameters, conditional requirements, and no output schema. The description says nothing about the shape of the result (allow/deny verdict, reasons, violations), leaving the agent unable to anticipate the return value from the definition alone.

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 11 parameters, including the shell_reason/authority_file conditional requirements, are documented in structured fields. The description adds no additional meaning such as how argv and shell_allowed interact, so it sits at the baseline.

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?

The description gives a specific verb ("Evaluate") and resource ("argv-based command request ... harness command policy") plus the crucial scope qualifier "without executing it." That qualifier separates it from execution-oriented siblings like command_fake_run or issueops_execution, though it never names an alternative directly.

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?

"Without executing it" implies a pre-flight/dry-check role, which is useful contextual guidance. However, it never states when to prefer this over command_policy_audit, command_fake_run, or atomic_commit_preflight, so the agent must infer the boundary.

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