Skip to main content
Glama

Release Readiness Check

release_readiness_check
Read-onlyIdempotent

Evaluate if a GitHub branch or PR is ready to ship by checking CI, open bugs, changelog, checklist, and rollback guidance.

Instructions

Pre-release assessment: CI status, open bugs, CHANGELOG, release checklist, rollback template.

Required token scopes:

  • repo, or public_repo for public-only repos (checks, issues, and file contents access)

Args:

  • owner, repo: Repository coordinates.

  • baseRef (string?): Deprecated compatibility field; ignored.

  • headRef (string?): Branch, tag, or commit SHA to release (defaults to default branch).

  • pullNumber (number?): Uses the PR head commit for CI status.

Returns: isReady flag, blocking issues, CI status, docs check, release checklist, rollback template.

Input Schema

NameRequiredDescriptionDefault
repoNoGitHub repo. Falls back to GITHUB_REPO.
ownerNoGitHub owner. Falls back to GITHUB_OWNER.
baseRefNoDeprecated compatibility field; currently ignored.
headRefNoBranch, tag, or commit SHA to release. Defaults to default branch.
pullNumberNoIf provided, checks the PR's head commit CI status.
rollbackPlanEvidenceNoCaller-provided rollback runbook/reference and whether it was tested.

Output Schema

NameRequiredDescriptionDefault
repoYes
policyYes
headRefYes
isReadyYes
ciStatusYes
ciSummaryYes
hasChangelogYes
openBugCountYes
policyDigestYes
policySourcesYes
trustBoundaryNo
blockingIssuesYes
policyDegradedYes
headShaResolvedNo
appliedPolicyRulesYes
ciEvidenceIncompleteNo
rollbackPlanEvidenceYes
bugEvidenceIncompleteNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv1.11.0
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • changedOutput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
  2. Changed4 schema fields changedv1.9.0
    • addedOutput schema / properties / bugEvidenceIncomplete
      Added value: +{
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / ciEvidenceIncomplete
      Added value: +{
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / headShaResolved
      Added value: +{
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / trustBoundary
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "callerAndRepositoryContent": {
      +      "const": "untrusted",
      +      "type": "string"
      +    },
      +    "instructionHandling": {
      +      "const": "never_execute",
      +      "type": "string"
      +    },
      +    "permissionHandling": {
      +      "const": "never_expand",
      +      "type": "string"
      +    },
      +    "secretHandling": {
      +      "const": "never_reveal",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "callerAndRepositoryContent",
      +    "instructionHandling",
      +    "secretHandling",
      +    "permissionHandling"
      +  ],
      +  "type": "object"
      +}
  3. Changed10 schema fields changedv1.8.0
    • changedInput schema / properties / baseRef / description
      Previous value: -"Base ref for comparison. Defaults to default branch."New value: +"Deprecated compatibility field; currently ignored."
    • changedInput schema / properties / headRef / description
      Previous value: -"Head ref to release. Defaults to default branch."New value: +"Branch, tag, or commit SHA to release. Defaults to default branch."
    • addedInput schema / properties / rollbackPlanEvidence
      Added value: +{
      +  "description": "Caller-provided rollback runbook/reference and whether it was tested.",
      +  "properties": {
      +    "reference": {
      +      "maxLength": 500,
      +      "minLength": 1,
      +      "type": "string"
      +    },
      +    "tested": {
      +      "type": "boolean"
      +    }
      +  },
      +  "required": [
      +    "reference",
      +    "tested"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / appliedPolicyRules
      Added value: +{
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "id": {
      +        "type": "string"
      +      },
      +      "source": {
      +        "const": "repository",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "id",
      +      "source"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / policy
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "defaultWorkType": {
      +      "enum": [
      +        "docs",
      +        "feature",
      +        "bugfix",
      +        "refactor",
      +        "security",
      +        "release",
      +        "infra"
      +      ],
      +      "type": "string"
      +    },
      +    "degraded": {
      +      "type": "boolean"
      +    },
      +    "found": {
      +      "type": "boolean"
      +    },
      +    "protectedPaths": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "releaseBlockingLabels": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "requireChangelog": {
      +      "type": "boolean"
      +    },
      +    "requireCodeOwnersForProtectedPaths": {
      +      "type": "boolean"
      +    },
      +    "requireIssueLink": {
      +      "type": "boolean"
      +    },
      +    "requireRollbackPlan": {
      +      "type": "boolean"
      +    },
      +    "requiredChecks": {
      +      "items": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "appId": {
      +            "exclusiveMinimum": 0,
      +            "maximum": 9007199254740991,
      +            "type": "integer"
      +          },
      +          "name": {
      +            "type": "string"
      +          },
      +          "source": {
      +            "const": "check_run",
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "name",
      +          "source",
      +          "appId"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "requiredReviewerRuleIds": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "riskRuleIds": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "schemaVersion": {
      +      "const": 1,
      +      "type": "number"
      +    }
      +  },
      +  "required": [
      +    "found",
      +    "degraded",
      +    "schemaVersion",
      +    "requiredChecks",
      +    "protectedPaths",
      +    "riskRuleIds",
      +    "requiredReviewerRuleIds",
      +    "releaseBlockingLabels",
      +    "requireIssueLink",
      +    "requireCodeOwnersForProtectedPaths",
      +    "requireChangelog",
      +    "requireRollbackPlan"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / policyDegraded
      Added value: +{
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / policyDigest
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / policySources
      Added value: +{
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "blobSha": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "digest": {
      +        "type": "string"
      +      },
      +      "kind": {
      +        "enum": [
      +          "default",
      +          "repository"
      +        ],
      +        "type": "string"
      +      },
      +      "path": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "ref": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      }
      +    },
      +    "required": [
      +      "kind",
      +      "path",
      +      "ref",
      +      "blobSha",
      +      "digest"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / rollbackPlanEvidence
      Added value: +{
      +  "anyOf": [
      +    {
      +      "additionalProperties": false,
      +      "properties": {
      +        "reference": {
      +          "type": "string"
      +        },
      +        "source": {
      +          "const": "caller",
      +          "type": "string"
      +        },
      +        "tested": {
      +          "type": "boolean"
      +        }
      +      },
      +      "required": [
      +        "reference",
      +        "tested",
      +        "source"
      +      ],
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "repo",
      -  "headRef",
      -  "isReady",
      -  "ciStatus",
      -  "ciSummary",
      -  "openBugCount",
      -  "blockingIssues",
      -  "hasChangelog"
      -]New value: +[
      +  "repo",
      +  "headRef",
      +  "isReady",
      +  "ciStatus",
      +  "ciSummary",
      +  "openBugCount",
      +  "blockingIssues",
      +  "hasChangelog",
      +  "rollbackPlanEvidence",
      +  "policy",
      +  "policyDigest",
      +  "policySources",
      +  "appliedPolicyRules",
      +  "policyDegraded"
      +]
  4. First observedv1.5.0

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive/openWorld, so the safety profile is covered. The description adds genuinely useful context beyond that: required token scopes (repo, or public_repo for public-only) and the deprecated-but-ignored baseRef field, which the agent cannot learn from annotations alone.

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-loads the purpose, then uses clean labeled sections (scopes, args, returns) with no filler. It is well-sized for a multi-check assessment, though the Args section is largely redundant with the schema.

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?

For a 6-param tool with a nested object and an output schema, the description covers auth scopes, arg roles, and a summary of the return shape, which is sufficient. The only gap is the unmentioned rollbackPlanEvidence input, whose meaning is nonetheless carried by 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 the schema already documents each field and the baseline is 3. The description largely restates those param meanings and notably omits rollbackPlanEvidence (a nested object) from its Args list, adding little semantic value over the schema.

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 opening line gives a specific verb+resource scope ('Pre-release assessment') and enumerates the concrete checks (CI status, open bugs, CHANGELOG, release checklist, rollback template), so an agent knows exactly what it gathers. It does not name or distinguish itself from close siblings like quality_gate_status or sdlc_evidence_packet, so it falls short of full sibling differentiation.

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?

Framing it as a 'pre-release assessment' implies the usage context (just before cutting a release), but there is no explicit when/when-not guidance and no routing to alternatives such as quality_gate_status. The agent must infer the decision point from the tool name and title.

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