Skip to main content
Glama
paultaki
by paultaki

critique_loop

Read-onlyIdempotent

Lint any AI loop design against an anti-pattern rubric, returning a 0–10 score, per-check fixes, and related catalog loops.

Instructions

Lint any loop design — the operator's own, or one you drafted — against the AI Loop Library anti-pattern rubric: verifier present and objective, stop condition, budget, one-change-per-round, durable state, same-check-every-round, micro-metric objective (MVL), human gates on risky surfaces, defined trigger. Returns a 0–10 score, per-check fixes, and related catalog loops. Deterministic text lint, not a model — 'missing' means 'not stated'.

Input Schema

NameRequiredDescriptionDefault
loop_descriptionYesThe loop design in plain words: objective, trigger, action, verification, stop condition, budget, risk handling

Output Schema

NameRequiredDescriptionDefault
gradeYes
scoreYes
findingsYes
critical_missingYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv2.1.0
    • addedInput schema / additionalProperties
      Added value: +false
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "critical_missing": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "findings": {
      +      "items": {
      +        "properties": {
      +          "check": {
      +            "type": "string"
      +          },
      +          "fix": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "label": {
      +            "type": "string"
      +          },
      +          "status": {
      +            "enum": [
      +              "pass",
      +              "missing"
      +            ],
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "check",
      +          "label",
      +          "status",
      +          "fix"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "grade": {
      +      "type": "string"
      +    },
      +    "score": {
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "score",
      +    "grade",
      +    "critical_missing",
      +    "findings"
      +  ],
      +  "type": "object"
      +}
  2. Addedv2.0.0

TDQS

A4.4/5.0
Behavior4/5

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

Adds meaningful context beyond the readOnly/idempotent annotations: it discloses that this is a deterministic text lint rather than a model, and that 'missing' means 'not stated' rather than absent — a crucial interpretive caveat. It stops short of describing limits such as length caps or determinism guarantees on scoring.

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 core action and scope, then the rubric list, then the return shape. The nine-item check enumeration is long but earns its place by telling the agent what to include; the trailing clause about determinism could be tightened.

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?

With an output schema handling return values and annotations covering safety, the description fills the remaining gaps: the rubric criteria, the deterministic-lint caveat, and the return shape. Nothing material to correct invocation 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?

With a single parameter at 100% schema coverage, the baseline is already 3-4; the description goes further by enumerating the rubric dimensions (verifier, stop condition, budget, MVL, human gates…) that loop_description should cover, effectively telling the agent what content to supply.

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 ('lint any loop design') and immediately distinguishes it from the design/browse siblings by its rubric-linting scope. An agent can tell it apart from design_loop or get_loop without opening the schema.

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?

Gives clear context for when to call it ('the operator's own, or one you drafted'), which covers both review and self-check scenarios. It does not, however, name an alternative or an explicit when-not condition relative to siblings like design_loop or render_run_protocol.

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