Gluecron
Server Details
AI-native git hosting — repos, PRs, issues, CI gates, and AI code review over MCP (60 tools).
- Status
- Healthy
- Uptime
- 99.6% over 74 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
TDQS
Scored across 117 tools
Several tool pairs are near-duplicates with no clear boundary: gluecron_explain_repo vs gluecron_repo_explain_codebase, gluecron_read_file vs gluecron_repo_read_file, gluecron_search_repos vs gluecron_repo_search, gluecron_list_tokens vs gluecron_list_repo_tokens, and gluecron_generate_commit_message vs gluecron_generate_pr_description. The PR surface is also crowded (get_pr, pr_status_summary, get_pr_checks, list_pr_conflicts, list_ready_to_merge) and the CI surface (ci_health, ci_queue_status, ci_executor, list_runners) has fuzzy boundaries. Individual descriptions are rich, but an agent has real risk of picking the wrong twin.
Everything is snake_case with a gluecron_ prefix, which is good, but there are two inherited naming families: a newer verb_object scheme (search_repos, read_file, list_prs) and a legacy repo_* scheme (repo_search, repo_read_file, repo_list_issues, repo_health, repo_explain_codebase). Some names are noun-only or abstract (handover, whoami, ship_spec, acquire_lease), so the verb_noun predictability breaks in places.
117 tools is far beyond what an agent can select among reliably and massively exceeds the 3-15 sweet spot. Many are niche (backup_status, learning_status, security_ioc_hits, import_action, purge_repo) and would only ever be used by site admins, yet they compete with everyday tools in the same flat surface.
Coverage is genuinely broad: repo lifecycle (create/update/delete/restore/purge/fork), files/commits/diffs/branches, issues, PRs with reviews/conflicts/merge train, CI runs and queue, tokens, secrets, variables, search, and security scanning. Minor gaps remain — no list_branches or list_commits, no plain list_issues for private/authenticated contexts, no release listing despite release-note generation — but agents can work around them via search and get_commit.
Available Tools
117 toolsgluecron_acquire_leaseAInspect
Grab an exclusive lease on a PR, issue, branch or file path in a repository you can write, for one of your agent sessions. Pass owner+repo with a bare key (PR/issue number, branch name, path), or target_id ':'. Returns lease null when another agent holds an active lease.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | No | Repository name (optional, with owner) | |
| owner | No | Repository owner (optional, with repo) | |
| target_id | Yes | PR/issue number, branch name or file path (with owner+repo, or a session scoped to a repo); '<repository id>:<key>'; or a PR/issue id | |
| duration_ms | No | Lease duration, clamped to 1 second – 1 hour (default 5 minutes) | |
| target_type | Yes | 'issue' | 'pr' | 'branch' | 'file_path' | |
| agent_session_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=false and destructiveHint=false; the description goes beyond that by disclosing that a null lease is returned when another agent holds an active lease, and by stating the write-access prerequisite. It stops short of explaining expiry/renewal semantics beyond what the schema's duration_ms already says.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences with the core action and constraint front-loaded, no filler. Dense enough to be a little packed, but every clause carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 6-parameter coordination tool with no output schema and minimal annotations, the description covers the write prerequisite, the return semantics (null on contention), and addressing modes. Missing only a pointer to the release counterpart and lease-expiry expectations, which are minor relative to what's covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 83%, so the schema already documents target_id, duration_ms, target_type, owner, and repo. The description usefully synthesizes the two target-addressing patterns, but mostly restates format information the schema provides, so it sits at the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb (acquire) and resource (exclusive lease) scoped to PRs, issues, branches, or file paths, and states the precondition 'in a repository you can write.' It's clearly distinct from the sibling gluecron_release_lease, though it never names that counterpart explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explains the two addressing modes (owner+repo with a bare key, or target_id '<repository id>:<key>') and ties the tool to 'one of your agent sessions.' It gives clear invocation context but does not say when to prefer this over, or pair it with, the release counterpart, nor when to avoid leasing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_ai_cost_summaryARead-onlyInspect
Return AI spend rollups. Scope by one of: user_id (self), repo {owner,repo}, or agent_session_id. Defaults to caller's user spend.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | No | ||
| owner | No | ||
| scope | No | 'user' (default) | 'repo' | 'agent' | |
| agent_session_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. Description adds scoping and default behavior but does not disclose return format, data freshness, or other behavioral traits like rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is concise (two sentences) and front-loaded with the core purpose and scope options. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema is provided, and the description does not explain the rollup structure (fields, time period). The agent lacks full context to interpret the return value appropriately.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 25%. Description adds meaning by explaining how to combine scope, repo, owner, and agent_session_id. However, it introduces 'user_id' which is not a parameter in the schema, potentially causing confusion.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns AI spend rollups and specifies scope options (user, repo, agent). It distinguishes itself from sibling tools that perform mutations or unrelated queries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear instructions on how to scope by user, repo (owner+repo), or agent_session_id, and notes default behavior. Does not explicitly mention when not to use or alternatives, but sibling tools are sufficiently distinct.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_apply_patchAInspect
Commit a patch to a branch without sending whole files — the way to change a few lines of a large file. patch is a unified diff as git diff prints it (one commit, message required) OR git format-patch mbox output (each patch becomes its own commit with the patch's own message and author, like git am; message is ignored). Applied server-side with git apply --cached against the branch head (created from base_branch if missing); blank context lines a transport stripped to empty lines, or trimmed off the end of the patch, are restored first (git still checks them against the file). expected_head_sha makes it compare-and-swap (all zeros = branch must not exist yet). Meets the same branch protection, rulesets and secret scan as a git push, and fires CI/webhooks like one. Patch limit 2 MiB. Requires 'repo' scope. Returns {branch, commit_sha, parent_sha, files_changed, files, commits, created} (+ blank_context_lines_restored / trimmed_blank_context_lines_restored when a repair was needed).
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | ||
| owner | Yes | ||
| patch | Yes | Unified diff (`git diff`, a/ b/ prefixes) or `git format-patch` mbox text. Max 2 MiB. | |
| branch | Yes | Target branch (short name). Created if it does not exist. | |
| message | No | Commit message. Required for a unified diff; ignored for mbox input (each patch carries its own). | |
| base_branch | No | Branch to fork from when `branch` does not exist yet (default: the repo's default branch). | |
| expected_head_sha | No | Optional compare-and-swap: the 40-hex sha you expect `branch` to point at. Refused if it moved. All zeros = the branch must not exist. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes far beyond the annotations (readOnlyHint=false, destructiveHint=false): discloses server-side `git apply --cached` against branch head, branch creation from `base_branch`, blank-context-line restoration, compare-and-swap semantics, branch protection/ruleset/secret-scan enforcement, CI/webhook firing, 2 MiB limit and required 'repo' scope.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core purpose and keeps every sentence information-bearing with no filler. However, it is one dense parenthesis-heavy paragraph, and a bulleted split of format rules vs side effects would be easier to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex mutation tool with no output schema, the description covers the safety/side-effect profile, permission scope, size limit, failure-relevant CAS behavior, and even enumerates returned fields. Nothing an agent needs to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 71%, and the description reinforces/interprets key parameters: `message` required vs ignored by format, `expected_head_sha` all-zeros meaning 'branch must not exist', and `base_branch` as the fork point. It adds interaction semantics beyond the schema, though much of it partially duplicates existing schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Commit a patch to a branch') and immediately distinguishes the mechanism from alternatives: 'without sending whole files — the way to change a few lines of a large file.' An agent can tell it apart from write_file / atomic_multi_file_commit without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explains precisely when each input format applies: unified diff = one commit with `message` required, format-patch mbox = one commit per patch with own message/author and `message` ignored. The 'change a few lines of a large file' framing implies when to prefer it over whole-file writes, but sibling tools are never named as alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_approve_prAInspect
Approve a pull request: records an 'approved' review by the caller — the same review the web form and POST /api/v2/repos/:owner/:repo/pulls/:number/reviews write, so it counts toward branch protection's required approvals and clears the caller's own earlier request for changes. The PR must be open; its author cannot approve it. Requires write access and 'repo' scope. To request changes use gluecron_request_changes. Returns {reviewId, number, state, url}.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | Optional review comment (Markdown) | |
| repo | Yes | Repo name | |
| owner | Yes | Repo owner — username or organisation slug | |
| number | Yes | PR number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=false and destructiveHint=false, so the description carries real added weight: it explains the review counts toward branch protection's required approvals, that it clears the caller's own earlier request for changes, the auth/scope requirements, and the open-PR/author constraints. This is exactly the behavioral context annotations cannot convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Dense but front-loaded: the core action leads, followed by equivalence/effect, preconditions, permissions, the alternative tool, and the return shape. Every clause adds decision-relevant information with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Although there is no output schema, the description supplies the return shape ({reviewId, number, state, url}), and covers preconditions, permissions, side effects, and the sibling alternative. Nothing needed to invoke or select the tool is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so owner, repo, number, and body are already documented (including the Markdown nature of body). The description adds no per-parameter syntax or format detail beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Approve a pull request') and immediately disambiguates by naming the sibling alternative gluecron_request_changes. It also clarifies the semantic meaning of the action (records an 'approved' review, same as the web form/POST endpoint), so an agent can distinguish it from close_pr, merge_pr, or dismiss_review.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit preconditions are given: the PR must be open and its author cannot approve it. It names the alternative tool (gluecron_request_changes) and states the inverse case. Requirements (write access and 'repo' scope) are spelled out, leaving little to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_assign_issueAIdempotentInspect
Assign (or, with remove: true, unassign) users on an issue or pull request. Real assignees since 2026-10-12 — up to 10 per thread, only users who can read the repository; the old assignee:<username> labels were migrated. Pass assignee (one username) or assignees (array). type is 'issue' (default) or 'pull_request'. Requires 'repo' scope and write access. Returns {assigned, skipped:[{username, reason}], removed, assignees}.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | ||
| type | No | issue (default) | pull_request | |
| owner | Yes | ||
| number | Yes | ||
| remove | No | Unassign the given users instead (default false) | |
| assignee | No | Username to assign | |
| assignees | No | Usernames to assign, strings (alternative to `assignee`) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint=false, idempotentHint=true, destructiveHint=false), it discloses concrete behavioral traits: a hard cap of 10 assignees per thread, the constraint that only repo readers can be assigned, the required 'repo' scope plus write access, and the exact return shape. These are meaningful operational facts not present in structured fields, and idempotentHint is consistent with the assign semantics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action and reverse mode, then layers constraints, parameters, and return shape efficiently. It is dense and slightly packed with migration trivia, but essentially every clause carries information an agent needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema, the description covers permissions, limits, parameter conventions, and the response structure, and the annotations cover the safety profile. An agent has everything required to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 57%, but the description compensates by explaining the assignee-vs-assignees alternative, the type default ('issue' or 'pull_request'), and the remove flag. The three required params (owner, repo, number) are self-descriptive by name, so little is left ambiguous.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (assign/unassign) and resource (users on an issue or PR), and the parenthetical 'remove: true' immediately disambiguates the reverse operation. It is clearly separable from siblings like gluecron_label_issue and gluecron_comment_issue without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explains the in-tool branch (remove: true to unassign) and the migration away from `assignee:<username>` labels, giving clear operational context. It does not, however, name an alternative tool or an explicit when-not-to-use condition, so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_atomic_multi_file_commitAInspect
Apply a set of file writes + deletes as a single atomic commit on a branch (creates the branch if it doesn't exist). The killer agent tool: blob/tree/commit/ref-update sequence. Each change is {path, content?, content_base64?, deleted?}. Meets the same branch protection, rulesets and secret scan as a git push, and fires CI/webhooks like one. Requires 'repo' scope.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | ||
| owner | Yes | ||
| branch | Yes | ||
| changes | Yes | Array of {path, content?|content_base64?, deleted?} entries. | |
| message | Yes | ||
| base_branch | No | Branch to fork from when `branch` doesn't yet exist (default: repo default). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations: it discloses the underlying blob/tree/commit/ref-update sequence, that branch protection/rulesets/secret scan apply as with a push, that CI/webhooks fire, that the branch is created if missing, and the required 'repo' scope. This is exactly the behavioral context an agent needs for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action and the change-entry format early; every sentence carries information. The parenthetical 'The killer agent tool' is marketing filler that adds no selection value, costing a point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-required-param mutation tool with no output schema, the description covers mechanics, safety gates, side effects, and auth scope. It omits conflict/non-fast-forward behavior and what the response returns, but those are minor gaps given the coverage provided.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only 33% schema coverage, the description compensates by documenting the shape of each `changes` entry ({path, content?, content_base64?, deleted?}) and the branch-creation semantics tied to `base_branch`. The remaining params (owner, repo, branch, message) are self-evident, so this is close to complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (apply), resource (file writes + deletes as one atomic commit), and scope (on a branch, creating it if absent). This clearly distinguishes it from single-file siblings like gluecron_write_file, gluecron_delete_file, and gluecron_create_branch.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'single atomic commit' framing plus branch-creation behavior gives clear context for when this tool is the right choice over per-file writes. It never explicitly names an alternative or states exclusions, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_backup_statusAInspect
Site admins only (needs an 'admin'-scoped token). Backup and restore-drill health: whether the newest backup set is verified on an offsite target and how old it is, whether offsite copies are immutable (Object Lock), when a restore drill last passed, whether the backup worker is running, plus targets (host/bucket, never keys), schedule and recent runs. A stale, failed, local-only or never-drilled backup reads RED. Pass start: 'backup' or 'drill' to queue one for the worker (picked up within 15 minutes; audit-logged). Returns {health, reasons, targets, problems, schedule, runs, started?}.
| Name | Required | Description | Default |
|---|---|---|---|
| start | No | Optional: 'backup' or 'drill' — queue one now |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (readOnlyHint=false, destructiveHint=false) only signal a non-read, non-destructive call. The description goes well beyond: it names the required admin scope, discloses that queueing is picked up within 15 minutes and audit-logged, and explains the RED-vs-healthy interpretation rule. That is substantial context the structured fields do not carry.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Dense but front-loaded: the admin restriction and the core purpose lead, then the health criteria, then the trigger and return shape. Every clause carries information, though the single long paragraph is heavier than ideal for scanning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the return contract itself, listing {health, reasons, targets, problems, schedule, runs, started?} and the RED-state semantics. Combined with the auth, trigger, and timing details, an agent has everything needed to call and interpret it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and there is only one parameter, so the baseline is 3. The description adds real meaning beyond the schema by explaining the consequence of setting start (queued for the worker, 15-minute pickup, audit-logged) rather than just restating the enum values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (backup and restore-drill health) with concrete facets: newest backup set verification/age, Object Lock immutability, drill pass history, worker liveness, targets, schedule and runs. No sibling tool touches backups, so it is trivially distinguished. An agent knows exactly what this returns before 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives prerequisites (admin-scoped token) and a clear trigger action: pass start: 'backup' or 'drill' to queue work, with the 15-minute pickup window noted. It does not state explicit when-not-to-use conditions, but no alternative backup tool exists to route against, so this is close to complete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_cancel_workflow_runBDestructiveInspect
Cancel a queued/running workflow run. Requires 'repo' scope.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | ||
| owner | Yes | ||
| run_id | Yes | The run's id, or a unique leading part of it (8+ hex characters) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the bar is lower. The description adds genuinely new context: which run states are eligible (queued/running) and the required OAuth scope, both of which affect whether the call will succeed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short, front-loaded sentences with no filler; the action and its prerequisite come first. It is efficient, though arguably too terse for a destructive mutation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive mutation with annotations covering the safety profile and no output schema, the essentials are present. However, it says nothing about idempotency, effect on the run's jobs, or the meaning of two of the three parameters, leaving real gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% – run_id is documented with a useful leading-hex-part hint, but owner and repo carry no meaning in either schema or description. The description's mention of 'repo scope' refers to OAuth scope, not the repo parameter, so it does not compensate for the gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (cancel) plus the resource (workflow run) and narrows the scope to 'queued/running', which distinguishes it from read-oriented siblings like get_workflow_run and get_workflow_logs. It does not name any sibling explicitly, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only guidance is a prerequisite ('Requires repo scope'), which tells the agent about auth but not when to choose this over alternatives or when not to use it. Usage is implied by the verb rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_chat_continueAInspect
Send another message to an existing repo chat. Returns the assistant's reply. If the AI service does not answer this fails with a JSON-RPC error carrying {chat_id, ai_error} rather than returning apology copy as a reply.
| Name | Required | Description | Default |
|---|---|---|---|
| chat_id | Yes | ||
| message | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes well beyond the annotations by disclosing the failure behavior: if the AI service does not answer, it fails with a JSON-RPC error carrying {chat_id, ai_error} instead of returning apology copy. It also states that the tool returns the assistant's reply, which is not derivable from the readOnly or destructive flags.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two tight sentences that front-load the core action, then add return-value and error-disclosure information. Every sentence adds value and there is no redundant filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter tool with no output schema, the description covers what it does, what it returns, and how it fails. It does not explain how to obtain chat_id or explicitly connect to the sibling gluecron_chat_with_repo, but 'existing repo chat' is enough context for invocation in most cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides only names and types with zero description coverage, but the description compensates by characterizing chat_id as the identifier of an existing repo chat and message as the content of the follow-up message. Given only two simple string parameters, this is sufficient semantic guidance, though it could explicitly name the parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening phrase 'Send another message to an existing repo chat' names a specific verb, resource, and continuation scope, which clearly distinguishes it from starting a new chat such as gluecron_chat_with_repo. It also states the return value, the assistant's reply.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Another message to an existing repo chat' clearly implies this is the continuation tool, for use after a chat already exists, which separates it from sibling gluecron_chat_with_repo. It does not explicitly name the alternative or state a when-not-to-use condition, so it falls one step short of fully explicit routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_chat_with_repoAInspect
Start a new chat with a repo: creates a chat row, sends the first user message, streams + persists the assistant reply. Returns {chat_id, reply}. If the AI service does not answer this fails with a JSON-RPC error carrying {chat_id, ai_error} — it never returns apology copy as a reply. Requires authentication.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | ||
| owner | Yes | ||
| title | No | Chat title (optional) | |
| message | Yes | Initial user message |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description reveals several non-obvious behaviors: it creates and persists a chat row, streams the reply, returns {chat_id, reply}, fails via JSON-RPC error with {chat_id, ai_error} instead of apology copy, and requires authentication. This adds substantial context beyond the annotations (readOnlyHint=false, destructiveHint=false), with no contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three tight sentences: purpose/action first, return value second, failure behavior and auth third. Every sentence earns its place, with no repetition or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Without an output schema, the description explains the return shape and error behavior. It covers authentication and persistence. Missing items are explicit definitions for owner/repo and any rate-limit or streaming specifics, but for a moderately complex chat-start tool this is largely complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%, and the description only clarifies 'message' as the first user message. The required parameters 'owner' and 'repo' are not semantically explained beyond the tool name's reference to 'repo'; 'title' is covered in the schema. This partially compensates for the gap but leaves required parameters under-documented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Start a new chat with a repo', then details the actions: creates a chat row, sends the first user message, streams and persists the reply. This clearly distinguishes the tool from siblings like gluecron_chat_continue (new vs. continue) and explain/agent-session tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context that this is for starting a new chat, implicitly separating it from continuing an existing chat (gluecron_chat_continue). It does not explicitly name alternatives or state 'when not to use', so it falls short of a 5, but the intended usage is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_ci_executorAInspect
Where CI runs and why: mode (external | in-process), declaration (external | in-process | auto) and its source (CI_EXECUTOR on the box, the estate-wide setting, or auto), runners configured / reachable / busy / slots, lastSeenAt, state (ok | degraded | unconfigured | in-process) and holdReason — the sentence every queued run shows when no runner can take it. In-process never runs while external runners are configured. Site admins (admin scope) also get per-runner rows and may pass declare (external | in-process | auto) to set the estate-wide setting, audited (the answer then carries saved). Same as GET/PUT /api/v2/ci/executor and /admin/runners.
| Name | Required | Description | Default |
|---|---|---|---|
| declare | No | Site admins: set the estate-wide declaration to external, in-process or auto. Omit to read only. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations mark readOnlyHint=false and destructiveHint=false, so the mutation capability is flagged, but the description adds real context beyond that: the write requires admin scope, is audited, and the response then carries `saved`. It also explains the holdReason semantics and the in-process/external precedence rule, which annotations do not cover.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose is front-loaded, but the body is a dense run-on paragraph dense with parentheticals and jargon ('declaration and its source', 'CI_EXECUTOR on the box'). It is information-rich yet hard to scan, so structure is only adequate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the response burden and does so reasonably: it names the returned fields (mode, declaration, source, runners, lastSeenAt, state, holdReason, saved, per-runner rows). It stops short of describing pagination/format but is otherwise complete for both the read and admin-write paths.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description goes further: it explains that `declare` sets the estate-wide setting with enum values external/in-process/auto, that omitting it is read-only, and that the write is audited and returns `saved`. That is meaningful added context over the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening 'Where CI runs and why' plus the enumerated fields (mode, declaration, source, runners, state, holdReason) clearly frame this as a CI executor status/configuration tool. It is distinguishable from siblings like gluecron_ci_queue_status and gluecron_list_runners, though it never explicitly contrasts itself with them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It notes that site admins (admin scope) may pass `declare` to write the estate-wide setting, and that in-process never runs while external runners are configured, which is useful context. However, it gives no explicit when-to-use-this-vs-alternative routing (e.g. vs list_runners or ci_queue_status), leaving the agent to infer usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_ci_healthBRead-onlyInspect
CI health, the same as GET /api/v2/ci/health and /admin/ci: status, the paging rules (queue p95, runner silent, timeout rate, heavy on the app box, runner_slow: a runner over 2x slower than its pool's fastest on the same heavy jobs), queue wait p50/p95 by work class, outcome rates, capacity, runnerSpeed24h (each runner's slowdown against its pool), and measures: capacity:compute_trigger (Tallrig ESTATE_PLAN §5's compute row: p95 push-to-start over 5 min for 7 days, or busy slots over 70% for 7 days) with firing, value, window, source and each day. Site admins (admin scope) also get dashboard (CAP-0.4) for 24 h and 7 d: startTimes (queue → start p50/p95 by class and pool), duplicateMinutes (lease time on a tree, workflow and job that already had a green job), poolCost (minutes per pool; a cost only where CI_POOL_COST_PER_MINUTE sets one, else 'cost not configured'), notMerged (merge-train dequeue and auto-merge reasons, counted), nonBillable (platform repositories on our machines vs customers'), testSelection (CAP-1.4: minutes saved by test selection and reuse, against full-run medians). Every number carries source: the table or setting it was read from. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only/non-destructive, and the description's 'Read-only' merely repeats that. What it does add is auth behavior—site admins get the extra `dashboard` block—plus precise metric definitions (e.g. runner_slow, compute_trigger firing conditions) that help interpret results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single dense run-on sentence enumerating dozens of return fields, with the auth-scope caveat buried mid-paragraph. It is neither front-loaded nor scannable, and several clauses ('each day', 'a cost only where...') are awkward filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the field inventory is the only return-value documentation, and it is thorough, including per-field `source` provenance and admin-only sections. It still omits response shape/format details, but for a zero-parameter read tool it is close to sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4. The description correctly implies no input is needed, and there is nothing parameter-related for it to clarify.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening names the resource ('CI health') and pins it to concrete endpoints, so an agent knows it retrieves CI health metrics. However, it never uses a verb and never distinguishes itself from siblings like gluecron_ci_queue_status or gluecron_ci_executor, leaving overlap ambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance and no comparison to the many CI-related siblings. The only conditional information is the admin-scope gating of `dashboard`, which describes access rather than task selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_ci_queue_statusARead-onlyInspect
How full the shared CI queue is, and what to do about it: level (ok / busy / saturated), runs queued and running, runner slots, estimated minutes before a new run starts, and — with owner+repo — that repository's queued/running runs, its share of CI work, the slots it may hold while others wait (per work class, and across classes), a recommendation (e.g. batch changes into fewer pushes), and explanation: each work class's queued/running runs (interactive, review, push, schedule) and, for each of the repository's queued runs, its class and why it waits (code + sentence, from the claim plan itself). The same ciQueue block the write tools return. Ask before a burst of pushes. Also executor: where CI runs (external runners or in-process), runners configured / reachable / busy, and holdReason when no runner can take a run. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | No | Optional, with owner | |
| owner | No | Optional, with repo: report this repository's part of the queue |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, and "Read-only" merely restates that. The description does add real context beyond annotations: the `holdReason` when no runner can take a run, the `explanation` codes for why a run waits, and the note that this is the same `ciQueue` block the write tools return. It omits auth/permission requirements and any rate-limit behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is front-loaded with the purpose, and the length is partly justified because there is no output schema to carry the return-value detail. However, it is essentially one enormous run-on sentence stitched together with em-dashes and parentheticals, which makes it hard to scan for the single fact an agent needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the full burden of describing returns and does so thoroughly — levels, counts, slots, ETA, per-repo scoping, work-class breakdown, recommendation, and executor/holdReason states. Combined with annotations covering the safety profile and 100% param coverage, an agent has everything needed to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and both params are optional, so the schema baseline applies. The description still adds meaning: it explains that supplying owner+repo switches the response to that repository's runs, its share of CI work, the slots it may hold, a recommendation, and per-run wait explanations — detail the terse schema strings do not carry.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening clause states a specific resource and scope: reporting how full the shared CI queue is, with level, queued/running runs, slots and ETA. It is clear what the tool does, but it never explicitly distinguishes itself from the close sibling `gluecron_ci_executor`, which the description also folds in as an `executor` output block.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a concrete use case: "Ask before a burst of pushes," and frames the tool as answering "what to do about it." There are no exclusions and no named alternatives, so it stops short of full when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_clone_urlARead-onlyInspect
Return the authenticated HTTPS clone URL for a repo + a credential-helper hint. Use this instead of embedding tokens in URLs. Returns {url, owner, repo, defaultBranch, hint} using the repo's stored casing.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | Repo name | |
| owner | Yes | Repo owner username |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds useful behavioral context by specifying the returned fields, the credential-helper hint, and that the repo's stored casing is preserved. This goes beyond the annotations and helps set expectations for the response.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences each earn their place: the core action, the important security/usage guidance, and the exact return shape. No filler or redundancy, and the most important information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only lookup tool with 100% schema coverage and annotations for safety, the description is complete. It names the parameters, the output fields, and the key behavior about stored casing. With no output schema present, the explicit return shape sufficiently fills that gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for both required parameters, so the schema already fully documents owner and repo. The description does not add additional parameter-level meaning beyond what the schema provides, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns an authenticated HTTPS clone URL for a repo, along with a credential-helper hint. The verb 'Return' plus the specific resource and output fields make the purpose unambiguous and distinct from the sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly instructs when to use this tool: when a clone URL is needed and to avoid embedding tokens in URLs. It does not name an alternative tool or provide when-not-to-use conditions, but the guidance is clear and actionable for the primary use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_close_issueADestructiveIdempotentInspect
Close an open issue. Requires authenticated caller with write access. Idempotent — closing an already-closed issue is a no-op. Returns {state}.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | Repo name | |
| owner | Yes | Repo owner — username or organisation slug | |
| number | Yes | Issue number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate idempotency and destructive intent; the description adds value by spelling out the authenticated-write-access requirement, the concrete no-op behavior on already-closed issues, and the return shape. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short, information-dense sentences with no filler. The core action is front-loaded, and each supporting sentence covers a distinct useful behavior: auth, idempotency, and return value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity and rich annotations, the description covers the essential behavioral context. It could be slightly more explicit about the actual content of the returned state (e.g., 'closed'), but the tool remains fully callable without that detail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents all three parameters with 100% coverage, so the description need not repeat parameter details. It adds no extra parameter semantics beyond the schema, which matches the baseline for full schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Close') on a specific resource ('open issue'), making the tool's purpose immediately clear. The name and description also naturally distinguish it from close_pr and reopen_issue.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives useful context by noting that authenticated write access is required, which is a prerequisite. However, it does not explicitly discuss when to prefer this tool over alternatives like close_pr or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_close_prADestructiveIdempotentInspect
Close an open pull request without merging. Requires authenticated caller with write access. Idempotent. Returns {state}.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | Repo name | |
| owner | Yes | Repo owner — username or organisation slug | |
| number | Yes | PR number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds the auth requirement and return value ({state}) beyond what annotations provide. It also states 'without merging,' which clarifies behavior. The idempotent claim is redundant with annotations, but the extra context about auth and return is valuable. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the primary action, then provides necessary context (auth, idempotency, return). It is concise, with no filler words, and every clause adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 3-parameter tool with no output schema, the description covers the essential aspects: purpose, auth, idempotency, and return value. It doesn't discuss error handling (e.g., if PR is already closed), but that is not critical for a basic tool. The information is sufficient for an agent to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 all three parameters (owner, repo, number). The description does not add any additional parameter-specific meaning, so it meets the baseline for high coverage without further elaboration.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Close an open pull request without merging.' It specifies the resource (pull request) and the distinguishing condition (without merging), which differentiates it from merge_pr and close_issue. The verb 'close' is specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the use case by saying 'without merging,' which contrasts with merge_pr, but it doesn't explicitly name alternatives or state when not to use it. It does provide a prerequisite ('Requires authenticated caller with write access'), which gives context but not explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_comment_issueAInspect
Add a comment to an existing issue. Requires authenticated caller with write access. Returns {commentId}.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Comment body (Markdown) | |
| repo | Yes | Repo name | |
| owner | Yes | Repo owner — username or organisation slug | |
| number | Yes | Issue number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a mutating but non-destructive operation. The description adds useful context beyond annotations by disclosing the write-access requirement and the return payload {commentId}. It does not cover side effects in detail, but with annotations present and a simple action, this is sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three short sentences, each earning its place: action, auth prerequisite, and return value. It is front-loaded with the core purpose and contains no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 4-parameter action with fully documented schema and clear annotations, the description covers the essential missing information: auth requirement and return shape. There is no output schema, but the {commentId} mention fills that gap. Nothing needed to invoke the tool correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters are already documented in the schema. The description adds no new parameter-level detail; it only mentions the return value. This meets the baseline but does not exceed it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Add a comment to an existing issue' (comment, issue). It clearly distinguishes this from sibling tools like gluecron_create_issue (creation), gluecron_close_issue (state change), and especially gluecron_comment_pr (pull request comments) by scoping to issues.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear usage context: use it for existing issues, and it states the prerequisite of an authenticated caller with write access. It does not explicitly name alternatives or exclusions such as 'use comment_pr for pull requests,' so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_comment_prAInspect
Add a comment to a pull request. Requires authenticated caller with write access. Returns {commentId}.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Comment body (Markdown) | |
| repo | Yes | Repo name | |
| owner | Yes | Repo owner — username or organisation slug | |
| number | Yes | PR number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is not read-only and not destructive. The description adds meaningful context beyond annotations by requiring authenticated write access and revealing the return shape as {commentId}. This gives the agent useful behavioral expectations without contradicting the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one tight sentence that front-loads the core action, then adds the two most important operational facts: auth requirement and return value. There is no filler or redundant restatement of the title or schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple four-parameter mutation with no output schema, the description covers the essential context: action, auth requirement, and return value. It does not discuss error cases or rate limits, but the operation is simple enough that this is not a critical gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all four parameters. The description adds no extra parameter-level detail, which is acceptable given that the schema already carries the semantic load. A baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb-resource pair: add a comment to a pull request. It clearly distinguishes this from the sibling gluecron_comment_issue by naming the target resource (pull request), so an agent can choose correctly without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the primary use case obvious and adds a prerequisite: authenticated write access. It does not explicitly mention alternatives for commenting on issues, but the purpose itself and the sibling naming provide enough context for this straightforward operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_commit_pr_conflict_resolutionAInspect
Commit the saved resolutions for a PR's conflicts ON THE PR HEAD as a two-parent merge commit (old head, base tip) — never on the base branch — moved through the push gates so CI runs on it before anything merges. Every unresolved file needs a draft (gluecron_resolve_pr_conflict) or an entry in resolutions; files the merge rules settle are settled automatically. Both shas are compare-and-swapped: a branch that moved since is refused with nothing changed. The commit carries Conflict-Resolution: trailers; a gluecron[bot] comment records it. Requires write access and 'repo' scope.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | Repo name | |
| owner | Yes | Repo owner — username or organisation slug | |
| number | Yes | PR number | |
| message | No | Optional subject line (default: Merge branch '<base>' into <head>) | |
| base_sha | Yes | baseSha from gluecron_list_pr_conflicts | |
| head_sha | Yes | headSha from gluecron_list_pr_conflicts | |
| resolutions | No | Optional explicit list instead of the saved drafts: [{path, how: manual | choice | ai | ai-edited | keep-mine | keep-main, content?}] — content is required unless how is keep-mine / keep-main |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well past the annotations: the commit runs through the push gates so CI executes before anything merges, both shas are compare-and-swapped so a moved branch is refused with nothing changed, and the call emits `Conflict-Resolution:` trailers plus a gluecron[bot] comment. It also discloses the auth requirement (write access and 'repo' scope), which annotations do not cover.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the action and the critical scope constraint ('never on the base branch') in the first sentence, and every later clause carries distinct information (gates, CAS, side effects, auth). It is dense and long-ish, but no sentence is filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex mutation with no output schema, the description supplies everything an agent needs: where the commit lands, what prerequisite resolution state is required, the concurrency-failure mode, the side effects, and the permissions needed. Nothing material is implied only by the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds real meaning: `base_sha`/`head_sha` are compare-and-swap guards, not just IDs, and `resolutions` is an alternative supply path to saved drafts with merge-rule fallback for settled files. The enum values and content requirement are left to the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (commit) and resource (saved PR conflict resolutions) plus precise scope: it lands on the PR HEAD as a two-parent merge commit and never on the base branch. That scope line alone separates it from gluecron_merge_pr and gluecron_resolve_pr_conflict.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear precondition for calling it – every unresolved file needs a draft from gluecron_resolve_pr_conflict or an entry in `resolutions` – and names that sibling explicitly. It stops short of stating when *not* to use it (e.g. against a non-conflicted PR or before drafts exist), so it isn't a full when/when-not pairing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_create_agent_sessionAInspect
Mint a new agent-multiplayer session. Returns the plaintext token exactly once (store it). Requires 'admin' scope.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Human-readable session name (unique per owner) | |
| repository_id | No | Optional id of a repository you can write, to scope the session to | |
| branch_namespace | No | Optional branch namespace override | |
| budget_cents_per_day | No | Daily budget cap in cents (default 500) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=false and destructiveHint=false, leaving the auth and secret-handling burden to the description — and the description delivers: 'admin' scope required, and the token is returned exactly once and must be stored. That one-time-secret behavior is a critical trait an agent could not infer from structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the action, then the return-value caveat, then the auth requirement. Every sentence earns its place with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly supplies the key return fact (single-use plaintext token) rather than leaving it unknown. Parameter semantics are fully covered by the schema. Minor gap: it doesn't say what a session is subsequently used for, but nothing needed to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters (name, repository_id, branch_namespace, budget_cents_per_day) are already documented in the schema. The description adds no parameter-level detail beyond the auth scope, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise verb+resource ('Mint a new agent-multiplayer session') that is clearly distinct from the many create_* siblings (create_branch, create_issue, create_pr) — none of those produce a session token. An agent can route to it 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a hard prerequisite ('Requires admin scope'), which is genuinely useful for deciding whether the call can succeed. However, it never says when to prefer this over alternatives or what condition triggers session creation, so usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_create_branchAInspect
Create a new branch ref pointing at an existing sha. Mirrors POST /api/v2/repos/.../git/refs. Gated like a push of the new branch (rulesets, secret scan of commits no other ref reaches) and fires CI/webhooks. Requires 'repo' scope. Returns {ref, sha}.
| Name | Required | Description | Default |
|---|---|---|---|
| sha | Yes | Target commit sha (40-hex) | |
| repo | Yes | ||
| owner | Yes | ||
| branch | Yes | New branch name (short form) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations (readOnlyHint=false, destructiveHint=false) by disclosing the gating behavior (rulesets, secret scan of unreachable commits), CI/webhook side effects, and required 'repo' scope. This is rich context an agent needs before invoking. It does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences with zero filler; behavioral constraints and the response shape are front-loaded and each clause does distinct work.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description usefully declares the return shape {ref, sha}, covers auth scope, side effects, and gating. It falls short on when-to-use guidance and does not document the owner/repo parameters, but overall it is complete enough for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%; owner and repo lack descriptions while sha and branch are documented in the schema. The description adds only marginal parameter context (existing sha target, short-form branch name), with no format or constraint details beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Create a new branch ref') and clarifies the target is an existing sha, plus maps to the underlying API endpoint. This distinguishes it from sibling write tools like gluecron_apply_patch or gluecron_create_pr.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains what happens when the tool runs (gating, CI) but provides no explicit when-to-use vs alternatives guidance. There is no mention of when a branch should be created versus using gluecron_create_pr, gluecron_fork_repo, or other ref-manipulation tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_create_deploy_tokenAInspect
Mint a short-lived, repository-scoped HTTPS clone credential (a deploy token) for a sandbox or CI box that has no PAT. By default it returns NO token: {id, exchangeUrl, exchangeExpiresAt, gitConfig, url}. Run the gitConfig lines right before the first clone/fetch (the URL is single-use and dies in 60 s) and git fetches the token itself, so it never enters your transcript. Read-only by default; read_only: false asks for push access and is granted only if you have write access. Expires in 2 h by default (expires_in_hours, max 24). Needs owner / collaborator / team / org access to the repo (public read is not enough) and 'repo' scope. Audit-logged. Pass token_id (an id this tool returned) for a fresh exchange URL for the same grant; each exchange rotates the secret. deliver: "token" returns a read-only secret in the result instead (refused for push access: a push-capable secret in an agent's transcript outlives the run). Revoke the grant with gluecron_revoke_token {type: "deploy", id}.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | Repo name | |
| owner | Yes | Repo owner — username or organisation slug | |
| title | No | Where the token will be used (default 'agent clone (MCP)') | |
| deliver | No | "exchange" (default): a single-use 60 s URL git's credential helper spends — the secret never appears here. "token": a read-only secret in this result (refused with read_only: false). | |
| token_id | No | A fresh exchange URL for this existing grant (one you created) instead of a new grant. | |
| read_only | No | Default true. false = clone AND push (requires write access). | |
| expires_in_hours | No | Lifetime in hours (default 2, max 24, min 5 minutes) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses rich behavior beyond the annotations: no token returned by default, single-use URL expiring in 60 s, 2 h default lifetime, permission/scope requirements, audit logging, rotation of the secret on each exchange, and refusal of deliver:'token' for push access. 'Read-only by default' refers to token scope, not the minting operation, so it is consistent with readOnlyHint=false.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the purpose and the surprising default (returns NO token), then layers the operational detail. Dense but almost every sentence earns its place; the backticked field lists make it slightly busy but not wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-param credential-minting tool with no output schema, it explains the return shape (id, exchangeUrl, gitConfig, url), the gitConfig usage flow, expiry, permissions, and revocation. An agent has everything needed to call it correctly and safely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is already 100%, but the description adds real semantics: what token_id does (fresh exchange for existing grant, rotates secret), what deliver:'exchange' vs 'token' means, and that read_only:false needs write access. This goes beyond the schema field text.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb+resource: 'Mint a short-lived, repository-scoped HTTPS clone credential (a deploy token)', which is more precise than the tool name alone. It clearly scopes the intended consumer (sandbox/CI with no PAT). It does not explicitly differentiate against siblings like gluecron_clone_url or gluecron_create_repo_token, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete when-to-use context (has no PAT), explains the token_id redemption path, and routes revocation to gluecron_revoke_token. It does not compare against the other token/clone-url siblings, so the alternative-selection guidance is incomplete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_create_issueAInspect
Create a new issue on a Gluecron repository. Requires authenticated caller with write access on the target repo. Returns {number, url}.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | Issue body (Markdown). Optional. | |
| repo | Yes | Repo name | |
| owner | Yes | Repo owner — username or organisation slug | |
| title | Yes | Issue title |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds useful behavioral detail beyond the annotations by disclosing the authentication and authorization requirement and specifying the return shape as '{number, url}'. Since the annotations already indicate readOnlyHint=false and destructiveHint=false, the description's added context is meaningful, though it does not address side effects or idempotency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three short sentences and each one earns its place: the action, the access requirement, and the return value. There is no filler, repetition, or unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that there is no output schema, describing the return as {number, url} is valuable. The description also covers the key behavioral requirement (write access) and leaves parameter semantics to the complete schema. It could go slightly further by addressing potential error cases or alternative tool routes, but it is sufficiently complete for a simple creation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the parameters owner, repo, title, and body are all already described in the input schema. The description does not need to add parameter-level detail; it also does not go beyond the schema, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Create a new issue') on a specific resource ('a Gluecron repository'), making the tool's purpose unambiguous. It also distinguishes itself from related siblings like gluecron_create_pr, gluecron_close_issue, and gluecron_assign_issue by making clear it is specifically for creating a new issue.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the primary use case — creating a new issue — and gives a useful access prerequisite by requiring an authenticated caller with write access. However, it does not explicitly say when to prefer this tool over alternatives or when to avoid it, such as distinguishing it from creating a pull request or commenting on an existing issue.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_create_prAInspect
Open a new pull request. head_branch is required; base_branch defaults to the repo default branch. Requires authenticated caller with write access. Returns {number, url}.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | PR body (Markdown). Optional. | |
| repo | Yes | Repo name | |
| owner | Yes | Repo owner — username or organisation slug | |
| title | Yes | PR title | |
| base_branch | No | Target branch (default: repo default branch) | |
| head_branch | Yes | Branch with the changes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a mutating, non-destructive operation(?). The description adds valuable behavioral detail: the required authenticated write access, the base_branch default behavior, and the return shape {number, url}. This goes beyond what annotations and schema provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, each carrying necessary information: the action, the key parameter behavior, and the auth/return contract. No filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core requirements, auth prerequisite, default branch behavior, and return format, which is complete enough for a tool with no output schema. It could add a brief note distinguishing from open_draft_pr, but that is more of a selection aid than a calling requirement.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all parameters already have descriptions. The description largely repeats schema details like head_branch being required and base_branch defaulting to the repo default branch witout adding new semantic information beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Open a new pull request.' It is clear and actionable. However, it does not explicitly differentiate from the sibling tool open_draft_pr, so an agent must infer that this tool is for non-draft PRs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives useful prerequisites: head_branch is required, base_branch has a default, and the caller needs write access. It does not explicitly compare to alternatives like open_draft_pr or merge_pr, so usage guidance is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_create_repo_tokenAInspect
Mint a fine-grained repository token (gcft_…) for ONE repository and return it once. It authenticates the REST API (/api/v2 and the GitHub-compatible /api/v3), git over HTTPS and the container registry (images under owner/repo, by contents) for that repository only. permissions sets none/read/write for contents, issues, pull_requests, statuses and actions (admin and settings are never grantable); expires_in is optional: omit it (or "never") for no expiration, or give seconds or "30m", "12h", "7d", "1y" (min 5 minutes, max 1 year). Effective access is always held to YOUR current access to the repo, re-checked on every use, and branch protection applies as it does to you. Needs 'repo' scope. Audit-logged. Returns {id, name, repository, permissions, expiresAt, tokenPrefix, token}.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Where the token will be used, e.g. 'gatetest deploy box' | |
| repo | Yes | Repo name | |
| owner | Yes | Repo owner — username or organisation slug | |
| expires_in | No | Optional lifetime: "30m" / "12h" / "7d" / "1y", or a number of seconds (5 minutes to 1 year). Omit, or "never", for no expiration. | |
| permissions | Yes | Object of level per permission — keys contents, issues, pull_requests, statuses, actions, runners; values none | read | write (runners: none | read only — it lists the owner's CI runners via GET /api/v2/repos/:owner/:repo/actions/runners and reads nothing of the repository); omitted keys are none; at least one must be read or write. Example: {"actions": "read"}, or {"runners": "read"} for a runner audit. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare the non-read-only, non-destructive profile; the description adds substantial behavior beyond them: the token is returned exactly once, effective access is capped by the caller's current repo access and re-checked on every use, branch protection applies, and the action is audit-logged. A minor gap is that revocation/rotation lifetime management is only implied by the expiry rules rather than pointed at the revoke sibling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose and scope before the permission and expiry rules; nearly every clause carries information an agent needs. The single dense paragraph packing purpose, auth surface, permissions, expiry, access model and return shape is harder to scan than a short structured list would be, but there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a credential-minting mutation with a nested permissions object and no output schema, the description covers prerequisites ('repo' scope), authorization semantics, expiry bounds, the grantable key set, audit logging, and an inline description of the returned fields. Nothing an agent needs to call it safely is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already carries per-parameter detail (including the runners key, which the description omits). The description still adds non-obvious semantics — that admin and settings are never grantable, and the concrete expiry format bounds (min 5 minutes, max 1 year, 'never') — which go beyond a restatement of the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb and resource ('Mint a fine-grained repository token (gcft_…) for ONE repository') with an explicit scope constraint and a statement of what the credential unlocks (REST v2/v3, git over HTTPS, container registry for that repo only). This is clearly separable from siblings such as create_deploy_token, create_runner_registration_token and get_token without opening their schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage guidance is present for parameter choices (when to omit expires_in, which permission levels exist, that admin/settings are never grantable), and it states the 'repo' scope prerequisite. However, it never names an alternative tool or states when to prefer create_deploy_token, create_runner_registration_token or get_token instead, leaving the selection between credential-minting siblings to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_create_runner_registration_tokenAInspect
Create a one-time CI runner registration token for an owner (your username, an org you own or admin, or 'platform' as a site admin). A runner started with RUNNER_REGISTRATION_TOKEN= registers once and gets its own long-lived credential; that owner's CI then runs on it. Expires in an hour. Pass exclusive: true for a label-only runner (a Mac for Xcode, a GPU box): it takes only jobs whose runs-on names its labels (e.g. [self-hosted, macos, xcode]), never runs-on: self / ubuntu-*, and the account keeps its shared lane; repositories narrows it to some of the owner's repositories. Both are fixed for the runner's life. Returns {owner, token, expiresAt, exclusive, repositoryIds, gluecronUrl}.
| Name | Required | Description | Default |
|---|---|---|---|
| owner | Yes | Username, org slug, or 'platform' | |
| labels | No | Comma-separated labels the runner gets in addition to its own (e.g. gpu,arm64) | |
| exclusive | No | Label-only runner (default false): offered only jobs whose runs-on labels it all has, never the account's default lane. Fixed at registration; a heartbeat cannot change it. | |
| repositories | No | Exclusive runners only: comma-separated repository names of this owner it serves (default: all of them) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare non-readonly/non-destructive; the description adds real behavioral context beyond them: one-time token, one-hour expiry, runner obtains its own long-lived credential, and that exclusive/repositories are fixed for the runner's life. It also lists the return shape despite no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action, then semantics, then return value. Dense but each clause carries useful information; slightly long-sentence phrasing, but appropriate for a tool with non-obvious fixed-at-registration behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a mutation tool with no output schema, the description covers expiry, one-time nature, credential lifetime, flag effects, and the return fields — everything an agent needs to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description elaborates meaningfully beyond the schema: 'platform' as site-admin owner, exclusive runners never take runs-on: self/ubuntu-* and keep the account's shared lane, and repositories narrowing. This clarifies the effect of the flags, not just their types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (create a one-time CI runner registration token) and immediately distinguishes it from sibling token/runner tools by describing the one-time register-then-long-lived-credential flow. An agent can tell exactly what it produces.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explains the usage context clearly (a runner started with RUNNER_REGISTRATION_TOKEN registers once), and details when to use exclusive vs default and when to use repositories. It doesn't explicitly name a sibling alternative to avoid, but the scenario guidance is strong.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_delete_branchADestructiveIdempotentInspect
Delete a branch the way git push --delete would: write access, then branch protection (allow_deletion), rulesets and the push inspection apply; webhooks and CI fire. The default branch is never deleted. Pass expected_sha to delete only if the branch still points there. A missing branch is a not-found error. Mirrors DELETE /api/v3/repos/:o/:r/git/refs/heads/:branch. Audit-logged. Returns {branch, sha, deleted: true}.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | Repo name | |
| owner | Yes | Repo owner — username or organisation slug | |
| branch | Yes | Branch name, without refs/heads/ | |
| expected_sha | No | Delete only if the branch still points here (compare-and-swap); otherwise a conflict |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the destructiveHint=true annotation, it discloses permissions required (write access), protections that apply (allow_deletion, rulesets, push inspection), side effects (webhooks and CI fire), audit logging, error behavior, and the exact return payload.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core action and the default-branch safety rule, with each sentence adding a distinct behavioral fact. It is dense but nearly every clause earns its place; the API endpoint mirror is the only borderline redundant element.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive mutation with no output schema, the description covers permissions, protection interactions, side effects, failure modes, idempotency semantics, and return shape—everything an agent needs to invoke it safely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so owner/repo/branch/expected_sha are already documented. The description restates the expected_sha compare-and-swap behavior and branch-name convention but adds little beyond what the schema already conveys, matching the baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (delete a branch) and anchors it to a familiar behavior (`git push --delete`). It is unambiguously distinct from siblings like create_branch, delete_repo, or delete_file.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear conditions: the default branch is never deleted, expected_sha enables conditional deletion, and a missing branch yields not-found. It does not explicitly route to alternatives (e.g., create_branch), but the operational context is well covered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_delete_commentADestructiveIdempotentInspect
Delete a comment on an issue or pull request (by comment id), with its edit history. Its author or a repository writer only. A missing comment is a not-found error, never reported as deleted. Mirrors DELETE /api/v3/repos/:o/:r/issues/comments/:id. Audit-logged (who wrote it, never what it said). Returns {id, kind, number, deleted: true}.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | Repo name | |
| owner | Yes | Repo owner — username or organisation slug | |
| thread | No | ||
| comment_id | Yes | The comment's id (as listed by gluecron_list_pr_comments, or the #comment-<id> anchor) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare destructive/idempotent/no-readOnly; the description adds material facts beyond them: edit history is destroyed too, permissions required, a missing comment returns not-found instead of a false success, and the deletion is audit-logged without comment content. That is exactly the extra context an agent needs before a destructive call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Five tight clauses, each adding new information — target, permissions, error semantics, route, audit behavior, return shape — with the destructive scope front-loaded. No filler or repetition of the identifier.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive tool with no output schema, the description supplies the return shape ({id, kind, number, deleted: true}), the failure mode, audit behavior, and the upstream route. Only the nested thread parameter's role is left unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 75%, so the schema carries most of the load; the description reinforces only that deletion is keyed by comment id. The nested `thread` object (kind/number) is undocumented in both schema and description, so the description does not fully compensate for the remaining gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb+resource ('Delete a comment on an issue or pull request') plus scope ('with its edit history') and the underlying route DELETE /api/v3/repos/:o/:r/issues/comments/:id. It doesn't name the sibling it is distinguished from (gluecron_edit_comment), but the destructive intent is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides an authorization precondition ('Its author or a repository writer only') and an error contract for missing comments, which helps an agent decide whether the call can succeed. However it never states when to prefer this over gluecron_edit_comment or what to do instead when authorization fails.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_delete_fileADestructiveInspect
Delete a file from a branch via git plumbing. Requires the existing blob sha (optimistic concurrency) and 'repo' scope. Meets the same branch protection, rulesets and secret scan as a git push, and fires CI/webhooks like one. Mirrors DELETE /api/v2/contents.
| Name | Required | Description | Default |
|---|---|---|---|
| sha | Yes | Current blob sha (40-hex) | |
| path | Yes | ||
| repo | Yes | ||
| owner | Yes | ||
| branch | Yes | ||
| message | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only give destructiveHint=true; the description goes well beyond them, disclosing that the operation passes branch protection, rulesets and secret scan like a push, and that it fires CI/webhooks. It also names the required auth scope, which is exactly the behavioral context an agent needs for a destructive mutation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three dense sentences with the action and mechanism front-loaded, followed by requirements and side effects. No filler, every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists and the tool is a destructive mutation, so the description must stand alone; it covers side effects, auth scope and the API mapping well. It could still say what happens on a stale/mismatched sha or describe the failure response, which is the only notable gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 17% (just sha), so the description must carry the load. It usefully explains the sha as the 'existing blob sha' for optimistic concurrency, but leaves owner/repo/path/branch/message entirely unexplained, so it only partially compensates for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Delete a file from a branch') and adds the mechanism ('via git plumbing') plus the API equivalent ('Mirrors DELETE /api/v2/contents'). This clearly distinguishes it from siblings like gluecron_delete_repo and gluecron_write_file without needing to open a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides concrete preconditions: the existing blob sha (optimistic concurrency) and 'repo' scope are required. It does not, however, explicitly name when to prefer an alternative (e.g., apply_patch or write_file) or state exclusions, so it stops short of full when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_delete_repoADestructiveInspect
Delete a repository — a SOFT delete (2026-10-19): it disappears at once from git, web, REST, MCP, CI, webhooks, search and pages, its name stays reserved, and it can be restored with gluecron_restore_repo until restorable_until (90 days by default). Queued/running CI is cancelled and pending webhook deliveries are stopped. Only the repository OWNER (the personal owner, or an org owner for an org repository) or a site admin may — admin collaborators and org admins are refused, as in the web UI. Requires 'admin' token scope. Audited as repo.delete; the owner is notified. To remove it for good before then, use gluecron_purge_repo. Returns {deleted: true, soft: true, id, restorable_until}.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | Repo name | |
| owner | Yes | Repo owner — username or organisation slug |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare destructiveHint=true and readOnlyHint=false; the description goes far beyond by disclosing soft-delete semantics (immediate disappearance from git/web/REST/MCP/CI/webhooks/search, reserved name, 90-day restorable_until window), side effects (CI cancellation, webhook delivery stop), permission model, required token scope, audit event name, owner notification, and the exact return shape. This is exactly the extra context destructive operations need.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Content-dense with essentially no filler — every clause adds a fact an agent needs (soft vs hard, restore path, permissions, scope, return value). It is front-loaded with the most decision-relevant fact (soft delete). It loses a point for being a single very long run-on passage, which makes the permission/scope details harder to scan than a short bulleted structure would.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description supplies the return contract itself ({deleted, soft, id, restorable_until}) plus the restore deadline. Combined with permissions, scopes, and side effects, nothing material is missing for a destructive, non-idempotent tool with no structured return metadata.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% — both 'repo' and 'owner' are documented in the schema itself. The description only adds ownership context ('the personal owner, or an org owner for an org repository') which is about authorization rather than argument format, so the schema still carries the parameter burden. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (delete) and resource (repository) and immediately qualifies it as a SOFT delete, which is the key distinction from the other deletion-flavored siblings (gluecron_purge_repo). An agent can tell exactly what happens and how it differs from purge without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes the agent to alternatives and conditions: use gluecron_restore_repo to undo within the window, use gluecron_purge_repo to remove permanently before the window expires. It also states the authorization precondition (repository owner or site admin; admin collaborators and org admins refused) and the required 'admin' token scope, which is the deciding factor for whether the call will succeed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_delete_repo_secretADestructiveIdempotentInspect
Delete one workflow secret from a repository by name (cron_secret is read as CRON_SECRET). Idempotent: deleting a secret that is already gone succeeds with deleted:false, already_deleted:true, so a retry is safe. Workflows that reference it stop receiving it. Needs admin access to the repository and 'repo' scope. Audit-logged (name only). Returns {repository, name, deleted, already_deleted, at}.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Secret name | |
| repo | Yes | Repo name | |
| owner | Yes | Repo owner — username or organisation slug |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well past the annotations, which only flag destructive and idempotent. The description discloses the concrete idempotent response semantics (deleted:false, already_deleted:true), the downstream effect on workflows, required permissions (admin + 'repo' scope), and audit logging limited to the name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the action and target, then layers idempotency, side effects, permissions, and return shape in compact clauses. No filler or restatement of the schema, and each sentence carries distinct information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, the description summarises the return object ({repository, name, deleted, already_deleted, at}) and covers permissions, audit behaviour, and downstream impact. Nothing an agent needs to call this destructive tool correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and defines owner/repo/name adequately, so the baseline is 3. The description adds real meaning beyond the schema by explaining how the name value is normalised (cron_secret read as CRON_SECRET), which affects what callers should pass.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource with scope: 'Delete one workflow secret from a repository by name'. It is immediately distinguishable from siblings list_repo_secrets and set_repo_secret, and even clarifies the name-normalisation rule (cron_secret -> CRON_SECRET).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear operational context: retries are safe because deletion is idempotent, and workflows referencing the secret stop receiving it. It does not explicitly name alternative tools (set_repo_secret, list_repo_secrets) or state exclusions, so it stops short of the when/when-not/alternatives bar.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_delete_variableADestructiveIdempotentInspect
Delete an Actions variable by name. Pass owner + repo for a repository variable, owner + repo + environment for an environment variable, or org for an organisation variable (organisation variables need an admin-scoped token). A variable that does not exist is a not-found error, never reported as deleted. Audit-logged. Returns {name, deleted: true}.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Variable id, instead of name | |
| org | No | Organisation slug | |
| name | No | Variable name: letters, digits and _, not starting with a digit or GITHUB_ (stored upper-case) | |
| repo | No | Repo name | |
| owner | No | Repo owner — username or organisation slug (omit when passing org) | |
| environment | No | Environment name (or id) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructive=true and idempotent=true, yet the description adds what the agent actually needs: a missing variable is a not-found error and never falsely reported as deleted, the operation is audit-logged, and the org path needs an admin-scoped token. That is real behavioral context beyond the annotation set.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four short sentences, front-loaded with the action, then scope routing, then the error/idempotency guarantee, then the return shape. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description supplies the return shape ({name, deleted: true}), the auth requirement, the scope-selection contract, and the not-found failure mode. Nothing material for correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3, but the description adds the combination semantics the schema lacks: which parameters pair to select which variable scope, and that org needs elevated auth. It only omits the fact that `id` can be supplied instead of `name`, so the 'by name' phrasing under-describes the alternate key.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Delete an Actions variable by name') and immediately scopes it by the three variable tiers. The delete verb cleanly separates it from the get_variable/list_variables/set_variable siblings without needing to name them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete when-to-use routing: owner+repo for repo variables, owner+repo+environment for environment variables, org for organisation variables, plus the admin-token prerequisite for the org case. It stops short of naming alternatives or stating when not to use it (e.g. use set_variable to update instead).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_dismiss_reviewAInspect
Dismiss the standing 'changes requested' reviews on a PR (all of them, or one reviewer's), so they no longer hold the merge. Requires 'repo' scope and write access; the reason is required and audited.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | ||
| owner | Yes | ||
| number | Yes | ||
| reason | Yes | Why the request is dismissed (3-500 characters) | |
| reviewer | No | Only this reviewer's request (username). Optional. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=false and destructiveHint=false; the description adds real behavioral context beyond that: the required 'repo' scope, the write-access prerequisite, and that the reason is audited. It stops short of describing reversibility or the response, so it is not a full 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences: the action and its scope come first, the prerequisites and audit note second. No filler, and the parenthetical efficiently captures the two scoping modes.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema, the description covers effect, scoping, prerequisites, and the audit trail on the required reason. Only the return/confirmation behavior and whether dismissal is reversible are left unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 40%, but the description compensates partially: it clarifies that 'reviewer' is optional ('one reviewer's' vs 'all of them') and that 'reason' is mandatory and audited. owner/repo/number carry no added meaning, so the coverage gap is not fully closed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Dismiss') on a specific resource ('standing changes requested reviews on a PR') with explicit scope ('all of them, or one reviewer's'). The effect clause ('so they no longer hold the merge') makes the outcome unambiguous, and it is clearly distinguishable from the sibling gluecron_request_changes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives the operative context (reviews that block the merge) and the prerequisite ('Requires repo scope and write access'), plus the constraint that a reason is required. It does not name an alternative tool or state when not to use it, but the situation for invoking it is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_edit_commentADestructiveIdempotentInspect
Replace the text of a comment on an issue or pull request (by comment id). Its author or a repository writer only; the previous text is kept in the edit history; the same text again is unchanged; a concurrent edit is a conflict, never overwritten. Mentions the edit adds are notified. Mirrors PATCH /api/v3/repos/:o/:r/issues/comments/:id. Returns {id, kind, number, effect}.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | The new text (Markdown); the previous text is kept in the edit history | |
| repo | Yes | Repo name | |
| owner | Yes | Repo owner — username or organisation slug | |
| thread | No | ||
| comment_id | Yes | The comment's id (as listed by gluecron_list_pr_comments, or the #comment-<id> anchor) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations: the edit history retention qualifies what 'destructive' means here, 'same text again is `unchanged`' concretely explains idempotency, and the concurrent-edit conflict rule plus mention-notification behavior are otherwise undiscoverable. It even names the mirrored REST endpoint and return shape, which matters since there is no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the action and key, then layered with constraints, with no filler sentences. It is dense (endpoint mirror and return shape in the same paragraph) but every clause carries operative information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation with no output schema, it covers auth, reversibility, idempotency, concurrency, notifications, and the return shape. The only omission is the optional thread parameter, which the schema already types adequately.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 80%, so baseline is 3. The description restates the comment-id keying and confirms the body semantics, but adds nothing about the optional nested `thread` object (kind/number) that the schema leaves thin on purpose.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Replace the text of a comment'), the scope ('issue or pull request'), and the lookup key ('by comment id'). This clearly separates it from creating tools like gluecron_comment_issue/gluecron_comment_pr and from gluecron_delete_comment.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Names the authorization contract ('Its author or a repository writer only'), which tells the agent when the call will succeed. It does not explicitly point to alternatives such as delete_comment or re-commenting when the edit is not permitted, so it stops slightly short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_explain_failureARead-onlyInspect
Explain a failed CI run: for each failed step, its class (compile / test / flaky / dependency / env / infra / lint / security / unknown) and the rule that chose it, the normalised error signature, failing tests, the files the commit touched, prior occurrences of the same failure (this repo, your other repos with the same owner or org, and platform-wide counts only) with the fix rate, and a suggested fix — the commit / PR that fixed it last time plus its diff limited to the relevant files, or the class's standard remedy. Infra and flaky failures never suggest a code change. run_id is the run's full id; with owner + repo an 8+ hex prefix also works.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | No | Optional: repository name — needed only for a run-id prefix | |
| owner | No | Optional: repository owner — needed only for a run-id prefix | |
| run_id | Yes | The failed run's id (full uuid; an 8+ hex prefix when owner + repo are given) | |
| include_diff | No | Include the prior fix's diff, limited to the relevant files (default true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered; the description adds genuinely new behavioral context beyond that — 'Infra and flaky failures never suggest a code change', the cross-repo scoping ('this repo, your other repos with the same owner or org, and platform-wide counts only'), and the diff being limited to relevant files.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense but well-ordered sentence: purpose first, then the returned diagnostics in sequence, then the parameter caveat. Nothing is wasted, though the long clause chain is heavy to parse and could have been broken up.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description carries the full return-value burden and does so thoroughly — failure class taxonomy, fix-rate semantics, cross-repo visibility limits, diff scoping, and the infra/flaky exception. An agent knows what it will get and what constraints apply.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 run_id, owner, repo, and include_diff. The description's closing note about run_id being a full id or an 8+ hex prefix with owner+repo duplicates the schema text rather than extending it, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource — 'Explain a failed CI run' — and immediately enumerates the concrete diagnostics produced (failure class, error signature, failing tests, prior occurrences, suggested fix), which clearly separates it from siblings like get_workflow_logs or get_workflow_run that merely fetch raw data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The scenario is strongly implied (you use this to diagnose a run that already failed), but there is no explicit when-to-use/when-not guidance and no named alternatives such as get_workflow_logs for raw output or list_flaky_tests for flake stats. Usage must be inferred from the purpose statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_explain_repoARead-onlyInspect
Return the cached AI 'explain this codebase' Markdown for a repo. Pure read — never triggers a new generation (use the web UI for that).
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | ||
| owner | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds value beyond annotations by explicitly stating 'Pure read — never triggers a new generation', which aligns with the readOnlyHint and provides specific behavioral context about caching. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two short sentences that front-load the purpose and immediately add a critical behavioral constraint. Every word adds value, no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only retrieval tool with two standard parameters and no output schema, the description adequately covers core behavior (returns cached Markdown), return format hint (Markdown), and safety profile (read-only). No missing information given the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the description does not explain the 'owner' and 'repo' parameters beyond what is obvious from their names. With no additional parameter guidance, the description fails to help agents understand input format or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns cached AI Markdown for a repo. It uses specific verb 'Return' and resource 'cached AI explain this codebase Markdown', and distinguishes from tools that trigger new generations by explicitly saying 'never triggers a new generation'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context: use this when you want the cached explanation without triggering a new generation. It implicitly contrasts with other tools that generate new explanations, but does not explicitly name sibling alternatives like 'repo_explain_codebase'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_find_symbolBRead-onlyInspect
Find definitions of a symbol by name within a repo. Wraps src/lib/symbols.findDefinitions.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Symbol name | |
| repo | Yes | ||
| owner | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and destructiveHint=false, so the description adds little beyond the safe read behavior. It mentions wrapping a library but no further behavioral traits (e.g., what happens if symbol not found, multiple definitions).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence plus a note, which is appropriately concise and front-loaded. It conveys the core purpose without extraneous content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 3 required parameters, no output schema, and limited schema descriptions, the description does not provide enough context for correct invocation. Missing details on return format, error handling, and parameter relationships.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 33% (only 'name' described). The tool description does not add meaning to the parameters beyond what the schema provides. For a tool with low schema coverage, the description should compensate but does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it finds definitions of a symbol by name within a repo. The title 'Find symbol' supports this. It distinguishes from siblings by specifying a niche operation (symbol definition lookup) not covered by other tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives like semantic search or reading files. No when-not-to-use criteria or prerequisites mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_fork_repoAInspect
Fork a repository to the authenticated caller's namespace. Mirrors POST /:owner/:repo/fork. Returns {owner, repo, url}. Requires 'repo' scope.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | Source repo name | |
| owner | Yes | Source repo owner |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false and destructiveHint=false. The description adds transparency by specifying it mirrors POST /:owner/:repo/fork, returns {owner, repo, url}, and requires 'repo' scope. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, each adding value: first states the action, second provides API details, return format, and scope requirement. No redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with two parameters and no output schema, the description covers the core action, return values, and a scope prerequisite. It does not mention error handling or rate limits, but is sufficiently complete for typical use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with both parameters (repo, owner) described by the schema. The description does not add additional meaning beyond the schema, meeting the baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Fork a repository to the authenticated caller's namespace,' specifying the verb (fork), resource (repository), and destination. It distinguishes from sibling tools as there are no other fork tools, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes the requirement for a 'repo' scope, providing a prerequisite for use. However, it does not explicitly state when to use this tool versus alternatives, but since there are no directly competing fork tools, the guidance is adequate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_generate_commit_messageARead-onlyInspect
Generate a commit message for a diff. Same engine as gluecron_generate_pr_description but explicit for the commit-message use case.
| Name | Required | Description | Default |
|---|---|---|---|
| diff | Yes | ||
| style | No | 'conventional' (default) or 'plain' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and destructiveHint=false, so the tool's safety is clear. The description adds little beyond noting the same engine as a sibling, which is contextual but not behavioral. It doesn't disclose rate limits, auth needs, or output characteristics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is highly concise, using two efficient sentences that convey the purpose and key distinction without any fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple nature of the tool (2 parameters, no output schema), the description is minimally adequate but lacks details on the output format or commit message conventions. It is not fully complete for an agent to understand all implications.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 50% schema description coverage, the description does not compensate for the undocumented 'diff' parameter. The 'style' parameter has a brief description, but the tool description adds no further meaning to either parameter, leaving the agent to infer usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it generates a commit message for a diff, and explicitly distinguishes it from gluecron_generate_pr_description, ensuring the agent selects the correct tool for commit messages vs. PR descriptions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear context by mentioning the sibling tool, implying when to use this (commit messages) versus the other (PR descriptions). However, it does not explicitly state when not to use it or provide alternatives, leaving room for improvement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_generate_pr_descriptionARead-onlyInspect
Generate an AI commit-message-style description for a diff. Uses src/lib/ai-commit-message.ts under the hood; gracefully degrades to a heuristic when ANTHROPIC_API_KEY is missing. Returns {subject, body}.
| Name | Required | Description | Default |
|---|---|---|---|
| diff | Yes | Unified-diff body | |
| style | No | 'conventional' (default) or 'plain' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and destructiveHint=false, so the description adds value by disclosing the internal module ('src/lib/ai-commit-message.ts') and graceful degradation to heuristic when ANTHROPIC_API_KEY is missing. This goes beyond annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is highly concise with two sentences: first states the purpose, second adds implementation detail and return type. Every sentence serves a function with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description includes the return shape ({subject, body}). Parameter semantics are covered in the schema. The behavior (AI vs heuristic) is explained. Minor gaps (e.g., diff size limits) are not critical for a simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with both parameters ('diff' as 'Unified-diff body' and 'style' with default 'conventional' or 'plain'). The description does not add new parameter-level meaning but complements with return format and fallback behavior, resulting in a baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool generates an AI commit-message-style description for a diff, specifying the verb ('generate') and resource ('commit-message-style description for a diff'). It differentiates from siblings like 'gluecron_generate_commit_message' by focusing on PR descriptions from diffs and mentioning the internal implementation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for diff-to-PR-description conversion but lacks explicit when-to-use guidance or comparisons with alternatives. It does not mention when not to use it or suggest siblings like 'gluecron_generate_commit_message' for other contexts, providing only implicit context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_generate_release_notesARead-onlyInspect
Generate release notes between two tags. Wraps src/lib/ai-release-notes.generateReleaseNotes. Returns the rendered Markdown + section data.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | ||
| owner | Yes | ||
| to_tag | Yes | New tag | |
| from_tag | No | Previous tag (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and destructiveHint=false. The description adds that it wraps a specific function and returns Markdown and section data, providing output structure beyond annotations. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences. The first sentence captures the core functionality, and the second adds output details without verbosity. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (4 parameters, no output schema), the description covers purpose and output but lacks guidance on required parameters and usage context among many siblings. It does not explain that repo and owner are required or that from_tag is optional.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50% (only to_tag and from_tag have descriptions). The description mentions 'between two tags' but does not clarify the required owner and repo parameters or that from_tag is optional. It adds no new parameter details beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool generates release notes between two tags and specifies the output format (rendered Markdown + section data). This sets it apart from sibling tools like gluecron_generate_commit_message or gluecron_generate_pr_description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use (generating release notes between tags) but does not provide explicit guidance on when not to use it or suggest alternative tools. No usage context or exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_generate_testsAInspect
Generate tests for a PR via Claude. Wraps src/lib/ai-test-generator.generateTestsForPr. Mode 'follow-up-pr' opens a new PR; 'append-commit' commits onto the head branch. Requires 'repo' scope.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | 'follow-up-pr' or 'append-commit' | |
| repo | Yes | ||
| owner | Yes | ||
| number | Yes | PR number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate the tool is not read-only (readOnlyHint=false) and not destructive (destructiveHint=false). The description adds that it wraps a function and requires 'repo' scope, but does not disclose additional behaviors such as cost, rate limits, or side effects beyond creating PRs/commits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, each serving a distinct purpose: stating the main function, explaining modes, and noting scope requirement. No unnecessary words, and the purpose is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 4 parameters and no output schema, the description covers the essential aspects (purpose, modes, scope). However, it could be more complete by explaining what the tool returns (e.g., PR URL or commit SHA) or any asynchronous behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50% (mode and number have descriptions; repo and owner do not). The description adds context for the 'mode' parameter and mentions the required scope, but does not fully compensate for the missing schema descriptions. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's verb ('Generate tests') and resource ('for a PR'). The two modes are specified, distinguishing it from sibling tools like gluecron_generate_commit_message or gluecron_generate_pr_description, which serve different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the two modes ('follow-up-pr' and 'append-commit') and their outcomes, and mentions the required 'repo' scope. However, it does not explicitly state when to use this tool over alternatives or when not to use it, though no direct competing sibling exists.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_get_agent_budgetBRead-onlyInspect
Return spent / cap / remaining cents for an agent session.
| Name | Required | Description | Default |
|---|---|---|---|
| agent_session_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, indicating safe read-only behavior. The description adds no additional behavioral details beyond confirming it returns data. Since annotations cover the safety profile, a score of 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single efficient sentence that conveys the tool's purpose without extraneous words. It is well front-loaded and earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no output schema, annotations present), the description is mostly complete. It specifies what is returned (spent, cap, remaining cents) and hints at the input (agent session). Minor gaps exist (e.g., error behavior), but for a read-only tool, this is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter, agent_session_id, has no description in the schema (0% coverage). The description does not elaborate on its format, meaning, or constraints, providing no added value beyond the schema's type definition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns spent, cap, and remaining cents for an agent session, which directly describes the tool's function. The name 'gluecron_get_agent_budget' matches this purpose. No sibling tool appears to duplicate this functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives or any prerequisites. It merely states what the tool does, leaving the agent without contextual usage instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_get_branch_protectionARead-onlyInspect
Read the branch-protection rule that applies to a branch (exact name or the glob that covers it): required checks, require_pr_run, required approvals, AI / human review, green gates, force-push / deletion, auto-merge; plus merge_train {on, batch_max, effective_batch_max, host_ceiling} — whether the merge train runs for the repository and how many armed PRs it tests together. Read-only. Returns {protected: false, merge_train} when no rule applies, else {protected: true, pattern, matched_by, required_checks, …, merge_train}.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | Repo name | |
| owner | Yes | Repo owner — username or organisation slug | |
| branch | No | Branch name (default: the repo's default branch) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, and the description reinforces this with 'Read-only.' It adds useful behavioral detail beyond the annotations by describing the return payload for both no-rule and matching-rule cases, including merge_train fields and the protected false/true distinction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but front-loaded: it names the operation, lists relevant rule fields, explains merge_train, and states the return shapes. Every clause contributes useful information, though the field list could be more structurally organized for readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a three-parameter read-only tool with no output schema, the description provides the necessary return-value detail: it explains the protected false case with merge_train and the protected true case with pattern, matched_by, required_checks, and merge_train. This is sufficient for an agent to call and interpret the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents repo, owner, and branch. The description adds meaning beyond the schema by clarifying that the branch parameter accepts either an exact branch name or the glob that covers it, which is useful semantic guidance for selecting the right value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: read the branch-protection rule that applies to a branch. It specifies the scope (exact name or covering glob), enumerates the rule fields returned, and clearly distinguishes this read operation from the sibling set_branch_protection mutation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by 'Read the branch-protection rule' and the read-only note, but the description does not explicitly say when to use this versus alternatives such as set_branch_protection or when not to use it. The context is clear enough for basic selection, but there are no explicit routing instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_get_commitARead-onlyInspect
Fetch a single commit by SHA: metadata plus the list of files it changed (path, status, additions, deletions). Mirrors GET /api/v2/repos/.../commits/:sha. Patch bodies are NOT included — use gluecron_get_diff for those.
| Name | Required | Description | Default |
|---|---|---|---|
| sha | Yes | Commit SHA | |
| repo | Yes | ||
| owner | Yes | ||
| include_files | No | Include the files-changed summary and stats (default true). Set false to skip the diff read on very large commits. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Even with readOnlyHint=true and destructiveHint=false already declared, the description adds meaningful behavioral context: it details the response composition, states that patch bodies are deliberately omitted, and mirrors a specific REST endpoint. This goes beyond the annotations and helps the agent set correct expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is only two sentences, front-loads the core action, and packs in the endpoint reference, return-value summary, and a clear caveat with an alternative. Every sentence earns its place with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, single-commit fetch with no output schema, the description covers what the response contains, what it omits, and how to get the omitted content. It is sufficient for an agent to call the tool correctly and interpret the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50%: sha and include_files are described in the schema, while owner and repo are not. The tool description indirectly clarifies owner/repo via the endpoint pattern and clarifies the meaning of the file list, but it does not compensate fully for the undocumented parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with a specific verb and resource: 'Fetch a single commit by SHA' and lists exactly what is returned (metadata plus file changes with path, status, additions, deletions). It also explicitly contrasts with gluecron_get_diff by stating patch bodies are not included, so an agent can distinguish the two tools immediately.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives an explicit when-not-to-use instruction: 'Patch bodies are NOT included — use gluecron_get_diff for those.' This directly names the alternative and the condition that selects it, which is exactly what a usage guideline should provide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_get_diffARead-onlyInspect
Read the actual changes in a commit or a branch range. Pass sha for one commit against its first parent, or base+head for everything head adds since the merge base (what a PR proposes). Returns {files:[{path, oldPath?, status, additions, deletions, binary, patch, patchTruncated}], stats, truncated}. Patch text is byte-capped; set include_patch=false for a files-changed summary only.
| Name | Required | Description | Default |
|---|---|---|---|
| sha | No | Commit SHA — diffs it against its first parent | |
| base | No | Base ref (with `head`) | |
| head | No | Head ref (with `base`) | |
| repo | Yes | ||
| owner | Yes | ||
| include_patch | No | Include patch bodies (default true) | |
| max_patch_bytes | No | Total budget for patch text across all files (default 400000, max 2000000) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, and the description adds meaningful behavioral detail: it documents the return object shape, the `truncated` flag, and that patch text is byte-capped. This is valuable context beyond the structured fields and is consistent with the read-only annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three focused sentences with zero fluff: purpose, invocation modes, return shape, and truncation caveat are all front-loaded and each sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description wisely includes the return shape and truncation semantics. It covers both call modes and the summary-only switch. A minor gap is that it doesn't explicitly state `sha` and `base`+`head` are mutually exclusive, though `or` implies it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 71%, already covering most parameters, and the description adds the key relational semantics between `sha` vs `base`+`head`, plus the effect of `include_patch=false`. It doesn't detail `max_patch_bytes`, but that is already defined in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Read the actual changes in a commit or a branch range.' It clearly differentiates the tool from siblings like gluecron_get_commit or gluecron_get_pr by focusing on diff content and explicitly naming two diff modes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives concrete usage conditions: pass `sha` for one commit against its first parent, or `base`+`head` for the PR-style branch range. It doesn't name explicit alternatives or exclusions, but the context is clear enough for an agent to decide when to invoke it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_get_prARead-onlyInspect
Fetch the full detail record of a pull request (title, body, state, branches, draft, author, timestamps), plus mergeable (true / false / null unknown) and mergeState from the same conflict probe the merge gate uses: status up-to-date | clean | conflicts | unknown, the unresolved files with their kinds, the files the merge rules settle, and conflictsUrl. Authenticated callers only (the read tool surface still works anonymously).
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | Repo name | |
| owner | Yes | Repo owner — username or organisation slug | |
| number | Yes | PR number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds meaningful behavioral context: it is an authenticated call, and it explains mergeable semantics (true/false/null unknown), mergeState values, unresolved files, settled files, and conflictsUrl.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core action and avoids wasted filler. It is dense but somewhat long as a single sentence with nested parentheticals, though every clause provides useful return-value context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description carries the burden of explaining returns; it does so thoroughly by listing standard PR fields, mergeability, merge state values, unresolved files, settled files, and conflictsUrl. The authentication requirement is also disclosed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the schema already documents owner, repo, and number. The description adds no additional meaning about these parameters, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Fetch') and resource ('full detail record of a pull request'), and it enumerates the returned fields. It distinguishes itself from listing/search tools implicitly via 'full detail record' and the merge-probe details, but it does not explicitly name alternative sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the focus on full PR detail and merge conflict probe information, but the description never states when to use this instead of sibling tools like list_prs, search_prs, pr_status_summary, or list_pr_conflicts. The authentication note is an access constraint rather than usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_get_pr_checksARead-onlyInspect
List every check at a PR's current head — workflow runs, gates and commit statuses — with status, conclusion, whether branch protection requires it, and the run's log URL; plus each required check's state (passing / pending / failing / missing) and the merge gate's own CI verdict. A failed workflow run carries failure: the failed job and step, up to 8 file:line rows linked to the head sha, the tool's own guidance block ("What now?"), budget when a time budget rather than a test stopped the step (run conclusion timed_out: still blocks the merge), and the full step log URL — or {withheld, required, hint} when this credential may not read the run's logs (a private repository needs 'repo' scope). Read-only. Returns {head_sha, total_count, check_runs, required, ci}.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | Repo name | |
| owner | Yes | Repo owner — username or organisation slug | |
| number | Yes | PR number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry readOnlyHint, and the description restates 'Read-only' (mild redundancy) but goes well beyond: it discloses the withheld-log case and the required 'repo' scope for private repositories, the fact that a timed_out run still blocks merge, and the exact shape of the `failure` payload. That auth and blocking-behaviour context is real value the annotations cannot supply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is front-loaded with the core purpose, which is good, but the remainder is a single ~180-word sentence stitched together with em-dashes and nested clauses that is hard to parse on a quick read. The detail is largely justified given there is no output schema, but the structure could have been broken into scannable clauses.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, and the description compensates fully: it enumerates the returned fields (head_sha, total_count, check_runs, required, ci), the per-check state vocabulary, and the nested failure shape including the withheld variant. An agent can correctly interpret the response without any further documentation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and all three parameters (owner, repo, number) are documented in the schema, so the description does not need to explain them. It adds nothing parameter-specific beyond the phrase 'at a PR's current head', which merely reinforces what `number` means. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb and resource ('List every check at a PR's current head') and enumerates the covered sources (workflow runs, gates, commit statuses), so the agent knows exactly what is returned. It does not name the neighbouring tools (pr_status_summary, list_workflow_runs, get_workflow_run) that could be mistaken for it, so sibling differentiation is left implicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use or when-not statement and no named alternative, despite siblings like pr_status_summary and list_ready_to_merge covering overlapping ground. The merge-readiness framing hints at intent, but the agent must infer it from the return-shape description rather than from any stated guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_get_preview_urlARead-onlyInspect
Return the branch-preview URL + status for a (repo, branch) pair. Wraps branch-previews.getPreviewForBranch. Returns {ok:false, reason:'not enabled on this host'} when the host has no PREVIEW_DOMAIN (no preview would ever resolve).
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | ||
| owner | Yes | ||
| branch | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already indicate readOnlyHint=true and destructiveHint=false, establishing a safe read operation. The description adds value by disclosing that the tool wraps an internal function and returns a specific error shape when the host is misconfigured. The success return format is only partially described ('URL + status'), but the added context goes beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description consists of two concise sentences. The first states the primary action and inputs, and the second adds a critical error condition. Every sentence serves a purpose with no padding, making it highly efficient and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given three required parameters and no output schema, the description covers the error case but omits details about the success response shape. It also fails to explain the 'owner' parameter. While the tool is simple, the missing parameter guidance and incomplete output description leave moderate gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 0%, so the description must compensate for parameter meaning. However, the description mentions only 'repo' and 'branch', omitting the 'owner' parameter. It does not explain what each parameter represents or provide any insights beyond their names, leaving the agent with incomplete guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool returns a branch-preview URL and status for a given repository and branch pair. It specifies the verb 'return' and the resource 'branch-preview URL + status', and the mention of wrapping an internal function adds precision. Among siblings, no other tool serves this purpose, making it well-differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool should be used to retrieve a preview URL for a branch, and it provides a specific condition (host without PREVIEW_DOMAIN) that leads to an error response. While it doesn't explicitly state when not to use it or name alternatives, the unique functionality makes the usage context clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_get_tokenARead-onlyInspect
One of your tokens by type and id (from gluecron_list_tokens): everything list shows plus the audit trail (create, edits with a before/after diff, rotations, revocation). Never the secret. type is pat (personal access token, glc_), repo (repository token, gcft_) or deploy (deploy token, gcdt_). Same scopes as gluecron_list_tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Token id | |
| type | Yes | Token type: pat (personal access token, glc_), repo (repository token, gcft_) or deploy (deploy token, gcdt_) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With readOnlyHint=true already covering safety, the description adds genuinely useful behavior: the return includes the full audit trail (create, edits with before/after diff, rotations, revocation) and explicitly never exposes the secret. The 'same scopes as gluecron_list_tokens' note gives auth context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A dense single passage that front-loads the core purpose and return contents; nearly every clause earns its place. Minor redundancy in restating the type prefixes that the schema already carries.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description carries the return-value burden and does so by enumerating what the audit trail contains and what is withheld. Adequate for a two-parameter read tool, though it does not mention pagination or audit-trail size limits.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are already documented, and the description largely repeats the type vocabulary already present in the schema. The only added value is tying `id` back to gluecron_list_tokens, which is marginal beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('get one of your tokens by type and id') and immediately scopes it against the sibling list tool by noting the id comes from gluecron_list_tokens. An agent can distinguish this from gluecron_list_tokens without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies the workflow: call gluecron_list_tokens first to obtain the id, then use this to fetch the single token. It also states scope ('one of your tokens'), but it never explicitly contrasts when to use this versus the list call rather than reading both.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_get_variableARead-onlyIdempotentInspect
Read one Actions variable by name. Pass owner + repo for a repository variable, owner + repo + environment for an environment variable, or org for an organisation variable (organisation variables need an admin-scoped token). Not found is an error. Returns {name, value, createdAt, updatedAt}.
| Name | Required | Description | Default |
|---|---|---|---|
| org | No | Organisation slug | |
| name | Yes | Variable name: letters, digits and _, not starting with a digit or GITHUB_ (stored upper-case) | |
| repo | No | Repo name | |
| owner | No | Repo owner — username or organisation slug (omit when passing org) | |
| environment | No | Environment name (or id) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent and non-destructive, so safety needs no repeating. The description adds real context beyond them: organisation variables require an admin-scoped token, and a missing name is an error rather than an empty result.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences plus a return-shape clause, with purpose first, then scope selection, then auth and error behavior. Nothing is redundant with the schema or annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description supplies the return shape itself ({name, value, createdAt, updatedAt}), covers the auth requirement for the org scope, and states failure behavior. For a single-resource getter this is complete enough to call correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% so the baseline is 3, but the description goes further by explaining how the parameters combine (owner+repo, owner+repo+environment, org) to select the variable scope, which the individual property descriptions do not state.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: read one Actions variable by name. It is clearly distinguishable from siblings like gluecron_list_variables, gluecron_set_variable and gluecron_delete_variable, and scope is front-loaded.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit routing logic: owner+repo for a repository variable, owner+repo+environment for an environment variable, org for an organisation variable. It does not explicitly name the listing sibling as the alternative when the name is unknown, so there is no stated 'when not to use'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_get_workflow_logsARead-onlyInspect
Return a workflow run's logs plus a failure summary. Always includes run metadata (number, workflow, event, ref, sha), per-job and per-step status / exit code / duration, failedSteps (job / step) and testFailures (failing test names, read from each step's structured results parsed before its log was cut, or the reason they cannot all be named; null when no job failed). testFailures.details marks each failure flaky (an active forensic label with a repro, from another run — with its label and flip rate), known (also failing on the default branch's latest run), infra (timed out under load) or new, with its file, message, the targeted retry's verdict and this run's determinism-forensics finding (forensic: class, label, variable, repro) when they ran. A step whose log was cut carries fullLog (artifact download of the uncut output). step (a step name or 1-based position within its job) returns only that step's stdout/stderr; tail_lines keeps the last N lines. The full per-job logs are included only when neither is given. JSON-friendly companion to the ZIP-download endpoint. A private repository's logs require 'repo' scope (OAuth: write:repo); every token read is audited.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | ||
| step | No | Only this step's logs: its name (exact, else substring, case-insensitive) or its 1-based position within its job | |
| owner | Yes | ||
| run_id | Yes | The run's id, or a unique leading part of it (8+ hex characters) | |
| tail_lines | No | Keep only the last N lines of each returned log (max 5000) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only safety, and the description still adds real behavioral context beyond them: the 'repo' scope / OAuth write:repo requirement, that every token read is audited, and that a truncated step exposes `fullLog` as an artifact download. It stops short of stating pagination, size limits, or latency, which is the only remaining gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded, but the middle is a single dense run of nested parentheticals describing testFailures categories and forensic fields that is difficult to parse on one read. The detail is largely justified because there is no output schema, but the packing is heavy for the payload.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description carries the return shape itself: run metadata, per-job/per-step status, exit code, duration, failedSteps, testFailures with its classification taxonomy, and fullLog. Combined with the auth note this is close to complete, with only pagination/size expectations absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 60% schema coverage, the description compensates by explaining `step` (a name exact-then-substring case-insensitive, or 1-based position within its job) and the interaction rule that full logs appear only when neither `step` nor `tail_lines` is passed. It adds meaning beyond the schema, though `owner`/`repo` are left entirely to the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence names a specific verb and resource ('Return a workflow run's logs plus a failure summary') and adds a scope distinction via 'JSON-friendly companion to the ZIP-download endpoint'. It never names an actual sibling tool (e.g. get_workflow_run, explain_failure), so the differentiation is by shape of output rather than by sibling routing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied through parameter behavior rather than stated as guidance: '`step` ... returns only that step's stdout/stderr; `tail_lines` keeps the last N lines. The full per-job logs are included only when neither is given.' There is no explicit statement of when to prefer this over explain_failure or get_workflow_run, nor any exclusion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_get_workflow_runARead-onlyInspect
Fetch a workflow run's metadata + status. Mirrors GET /api/v2/repos/.../actions/runs/:id. Also says how it relates to automatic retries: retryOf / retryOfRunNumber (the run this one retries after a deploy or a lost runner) and retriedAs ({id, runNumber} of the run that retried this one, or null). A queued run that no runner can take carries queueReason (e.g. "waiting for a runner: 2 configured, 0 reachable, last seen 4m ago"). workClass (interactive / review / push / schedule — how the CI claim shares slots); a queued run carries queue ({code, text}: its place in the claim order, from the claim plan itself); a schedule run carries coalescedFires / lastCoalescedAt, and coalescedNote when later scheduled fires folded into it while it was queued.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | ||
| owner | Yes | ||
| run_id | Yes | The run's id, or a unique leading part of it (8+ hex characters) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description goes well beyond that by explaining run-relationship semantics (retryOf/retriedAs), queue-reason diagnostics, workClass slot sharing, and schedule coalescing — genuinely useful behavioral context for interpreting results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose in the first sentence, then dense field-level detail. Every sentence carries substantive information, though the long run-on field inventory lacks bullets and the meta phrasing "Also says how it relates to..." is slightly awkward.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the burden of explaining return values and does so thoroughly. Annotations cover safety; the only material gaps are error/not-found behavior and the undocumented owner/repo parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33%: run_id is documented (accepts a unique 8+ hex prefix) but owner and repo are bare strings. The description adds no meaning whatsoever for any parameter, so it fails to compensate for the low coverage as the rubric requires.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: "Fetch a workflow run's metadata + status," and anchors it to the upstream API route. It is clearly a single-run read, distinguishable by name from gluecron_list_workflow_runs, but the description never explicitly contrasts itself with that sibling or with gluecron_get_workflow_logs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use statement, no exclusions, and no named alternatives among the many workflow-related siblings (list_workflow_runs, get_workflow_logs, ci_queue_status). Usage is only implied by the described fields (inspecting retries, queue reasons, coalesced schedule fires), which is the definition of implied guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_handoverARead-onlyInspect
Start here when picking up work: the live state of a repository, read from git and CI rather than from a handoff doc. Returns summary (one paragraph), blockers (most urgent first), the default branch's CI per workflow (red streak, since when, last green run), the build this Gluecron instance serves and how many commits it is behind (when it is this repository), every open PR grouped green / pending / failing / draft as the merge gate judges it, PRs merged in the last merged_since_hours (default 48), the CI queue, and — when the default branch carries docs/plans/capacity-plan.json — plan: the next items, items in flight, decisions waiting on the owner and drift between the ledger and the PRs; and plans, the same for every docs/plans/*-plan.json ledger (each read with the idPrefix it declares, default CAP; at most 10). Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | Repo name | |
| owner | Yes | Repo owner — username or organisation slug | |
| merged_since_hours | No | Window for recently merged PRs (default 48, max 720) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, and the trailing 'Read-only' restates that rather than adding to it. The rest is genuinely additive: explicit return sections (summary, blockers, CI per workflow, merge gate grouping, queue), plus bounds such as at most 10 plan files and a 48h default / 720h cap window.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the selection cue and then a dense enumeration of return sections; almost every clause carries information an agent needs. It is one very long run-on sentence, which makes it harder to scan than it needs to be.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, and the description compensates thoroughly by enumerating each returned field, its ordering, and its conditional presence. For a complex aggregate-read tool, an agent has enough to call it and interpret the response.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters are already documented. The description only echoes `merged_since_hours` (default 48) and adds no semantics for `owner`/`repo` beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource — reading the live state of a repository from git and CI — and frames itself as the orientation entry point, explicitly contrasting with a handoff doc. Among siblings like repo_health, pr_status_summary and ci_queue_status, this reads as the aggregate starting tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Start here when picking up work' gives an explicit trigger condition, and the parenthetical on `plan`/`plans` tells the agent when those extra sections appear. It stops short of naming alternatives to avoid (e.g. repo_health, pr_status_summary) or stating when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_import_actionAInspect
Site admins only (needs an 'admin'-scoped token). Import a third-party GitHub Action at ONE tag, branch or full commit SHA into the Gluecron mirror namespace (gluecron-actions/--), so workflows that say uses: owner/repo@ref can run it. Workflow runs never fetch from github.com; an action that is not imported is skipped. Re-importing the same ref updates it to what upstream has now. Audit-logged. Returns {action, ref, sha, previousSha, mirror, upstreamUrl, hasActionYml}.
| Name | Required | Description | Default |
|---|---|---|---|
| ref | Yes | Tag, branch or full commit SHA, e.g. v7 | |
| action | Yes | Upstream action as workflows write it, e.g. actions/github-script | |
| upstream_url | No | Optional; default https://github.com/<owner>/<repo>.git |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=false and destructiveHint=false; the description goes well beyond by disclosing the admin-token requirement, the one-ref-per-import constraint, that re-importing a ref updates it to current upstream state, that the operation is audit-logged, and the skip behavior for unimported actions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the admin-only requirement, then purpose, then behavioral facts, with zero filler. Dense but every clause (skip semantics, idempotent re-import, audit log, return shape) carries actionable information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers the auth prerequisite, the mutation/idempotency profile matching the annotations, the operational consequence for workflows, and an inline enumeration of the response fields in the absence of an output schema. An agent has everything needed to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds real meaning: the mirror namespace is derived as gluecron-actions/<owner>--<repo>, only ONE tag/branch/full SHA may be imported per call, and it enumerates the returned fields despite no output schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (import) and resource (a third-party GitHub Action at one ref) and names the exact target namespace (gluecron-actions/<owner>--<repo>). No sibling tool performs this function, and the description makes that unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'when' is clear: needed so workflows writing `uses: owner/repo@ref` can run, because workflow runs never fetch from github.com and unimported actions are skipped. It also states the admin-scoped-token prerequisite. It does not name an alternative tool, but no close sibling exists.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_label_issueAInspect
Attach one or more labels to an issue. Labels are created if they don't yet exist on the repo. Requires 'repo' scope. Returns {labels}.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | ||
| owner | Yes | ||
| labels | Yes | Label names (strings) | |
| number | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that labels are auto-created if missing and specifies the return object. Annotations already indicate mutability (readOnlyHint false) and non-destructiveness, so the description adds useful context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, each adding necessary information. No fluff, front-loaded with the action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple labeling tool, it covers purpose, auto-creation, required scope, and return value. Minor omission: 'number' is not explicitly said to be the issue number, but it is clear from context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only 25% schema description coverage; the description does not elaborate on parameters like owner, repo, or number beyond the schema. For labels, the schema already describes 'Label names (strings)', so the description adds no extra meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with a specific verb ('Attach') and resource ('labels to an issue'), clearly distinguishing it from sibling tools like gluecron_unlabel_issue or gluecron_comment_issue.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
States the required 'repo' scope, which is a key usage constraint. It does not explicitly list when-not-to-use, but the purpose is straightforward and well understood.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_learning_statusARead-onlyInspect
Site admins only (needs an 'admin'-scoped token). Whether CI failures are being turned into lessons: classified failures, lesson.pattern events (matched to a docs/ops/CI_GATE_LESSONS.md row, or candidates), recurring candidates, and failures left without a lesson for over an hour, over 7 days. 'N failures, 0 lessons' reads RED. Also each pattern's count and register row, and the register. Counts only: no log text or repository. Returns {health, patterns, register}.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true/destructiveHint=false, and the description adds genuinely useful behavior beyond that: output is counts only with no log text or repository data, the returned shape is {health, patterns, register}, and the interpretation rule ("N failures, 0 lessons" reads RED). This is solid additive context for a read tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The auth gating and core purpose are front-loaded, and the detail is dense but mostly earns its place. It reads somewhat as a run-on sentence, but it is appropriately sized for the number of facets it lists.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a status tool with no params and no output schema, the description covers the auth requirement, the data scope, the return shape, and how to interpret the health value. That is nearly complete; only the absence of sibling routing keeps it from the top mark.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so per the rubric the baseline is 4. There is nothing beyond what the empty schema already conveys, but no semantic gap exists to fill.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific resource and scope: tracking whether CI failures are converted into lessons, with enumerated facets (classified failures, lesson.pattern events, recurring candidates, unlearned failures). This is clear and distinctive, though it never names or contrasts a sibling tool such as gluecron_ci_queue_status, so it stops short of full differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a real prerequisite constraint ("Site admins only, needs an 'admin'-scoped token"), which is useful gating context. However, it offers no when-to-use vs alternatives guidance and no explicit exclusions relative to the many other CI/status siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_list_deleted_reposARead-onlyInspect
List deleted repositories you can restore or purge: your personal ones and those of organizations you own (a site admin may pass all: true for the whole instance). Each has its id, full_name and restorable_until — after that date it is purged automatically. Read-only. Needs 'repo' scope. Returns {total_count, repositories:[{id, full_name, private, deleted_at, deleted_by, restorable_until}]}.
| Name | Required | Description | Default |
|---|---|---|---|
| all | No | Site admins only: every deleted repository on the instance |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds meaningful context beyond that: the 'repo' scope requirement, and the restorable_until semantics (the repo is purged automatically after that date), which is a behavioral trait an agent needs to reason about timing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action and scope, then auth requirement, then return shape. Dense but nearly every clause carries information; the only mild redundancy is repeating the `all` semantics already in the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description supplies the return shape ({total_count, repositories:[...]}) plus scope, auth scope, and purge timing. An agent has everything needed to call it and interpret results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single `all` parameter is already documented in the schema as 'Site admins only: every deleted repository on the instance'. The description restates this rather than adding new syntax or format detail, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (list deleted repositories) and immediately scopes it: personal ones plus orgs you own, with a site-admin exception. The phrase 'you can restore or purge' signals the sibling operations (restore_repo, purge_repo, delete_repo) it feeds, so the agent can place it without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clearly frames the use case (finding repositories eligible for restore or purge) and notes the admin-only `all: true` path, giving good context for when this tool applies. It stops short of naming alternatives or stating when NOT to use it, so it is strong context without explicit exclusion rules.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_list_flaky_testsARead-onlyInspect
List a repository's flaky tests. A test is flaky only with a forensic repro: when it failed, CI re-ran just that test in the same order, alone, with the clock shifted +137 ms and +1 s, in TZ=Pacific/Chatham and in a fixed random order, and a variable flipped its verdict N times in a row on the same git tree. Each entry has the test, file, state (active / expired / resolved, or unexplained = flipped with no repro, NOT flaky), label (clock-dependent, order-dependent, concurrency-dependent), the variable, the exact repro command, owner, expiry, issue number, flip rate and evidence runs. Information only — flaky tests are never skipped or quarantined; one targeted retry, and the merge gate excuses a failure only when that retry passed in the same run and the label is active.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | ||
| limit | No | Max tests (default 25, max 100) | |
| owner | Yes | ||
| window_days | No | Flip evidence from this many days back (default and max 30) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, but the description adds real behavioral context beyond them: the tool is 'information only', flaky tests are never skipped or quarantined, one targeted retry is allowed, and the merge gate excuses a failure only when the retry passed in the same run and the label is active. That downstream policy disclosure is genuinely useful, though some text is definitional domain detail rather than tool behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in the first sentence, but the single dense paragraph carries excessive spec-level detail (clock shifted +137 ms, TZ=Pacific/Chatham) that is not needed for tool selection or invocation. The entry-field enumeration is useful, but the repro minutiae crowd out routing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description does the heavy lifting by enumerating entry fields (test, file, state, label, variable, repro command, owner, expiry, issue, flip rate, evidence runs), so an agent can anticipate the return shape. It is nearly complete, missing only pagination/limit and window semantics, which the schema partly covers.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%: 'limit' and 'window_days' are documented in the schema, while 'repo' and 'owner' are self-evident required identifiers. The description mentions 'owner' and an evidence window indirectly via 'flip rate and evidence runs', but adds no syntax or format meaning beyond what the schema already provides, so baseline 3 fits.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List a repository's flaky tests') and then defines 'flaky' with concrete repro criteria, so an agent knows exactly what the result set contains. No sibling tool overlaps this concept (nothing else in the list deals with flaky tests), so the lack of explicit sibling contrast is not a gap.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the definition of flakiness and the note that 'unexplained = flipped with no repro, NOT flaky', which tells the agent what is excluded. However, it never says when to reach for this tool versus failure-oriented siblings like gluecron_explain_failure or gluecron_get_workflow_logs, and names no alternatives or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_list_pr_commentsARead-onlyInspect
List every comment on a pull request in chronological order: general comments (kind issue_comment), inline review comments (review_comment: path, line, thread {id, inReplyToId, position, replies, resolved, resolvedAt, resolvedBy}) and review summaries (review: state approved | changes_requested | commented). Each entry has author {login, type user|bot}, isAi (written by a model: false for gluecron[bot]'s own notes, e.g. a person's conflict resolution or a merge-train notice), onBehalfOf (on such a note, the person it was posted for), body, createdAt, updatedAt. A review thread is the inline comments on one file+line; the earliest is its root and holds the resolved state. Gluecron does not store a review comment's commit or diff side, so commitId and side are always null. Only approved (moderated) comments; unsubmitted draft reviews are private to their author and not listed. kind: all (default) | issue | review (review comments + review summaries). since: ISO-8601 — only entries updated at or after it. Paged: total is the full filtered count, nextOffset pages through it. Works anonymously on public repos; private repos need read access.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | all (default) | issue (general comments) | review (review comments + review summaries) | |
| repo | Yes | Repo name | |
| limit | No | Max entries (default 50, max 100) | |
| owner | Yes | Repo owner — username or organisation slug | |
| since | No | ISO-8601 timestamp; only entries updated at or after it | |
| number | Yes | PR number | |
| offset | No | Entries to skip. Use `nextOffset` from the previous response. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the read-only annotations, the description discloses moderation behavior (only approved comments; drafts are private), anonymous public-repo access versus private-repo read access, null `commitId`/`side` limitations, review-thread root/resolution semantics, and pagination behavior. This is unusually rich behavioral context for a read tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded and every major sentence adds useful detail about output shape, threading, moderation, or auth. It is dense and long for a single paragraph, but the length is justified by the complexity of PR comment semantics.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description carries the burden of explaining return values. It does so thoroughly: entry fields, author/isAi/onBehalfOf distinctions, review-thread structure, pagination, and access rules are all covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds real meaning for `kind` (issue vs review comments + summaries) and `since` (entries updated at or after the timestamp), and explains paging via `nextOffset`. It does not elaborate on `limit` or `offset` beyond schema, so it is strong but not exhaustive.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource: listing every comment on a pull request in chronological order. It immediately distinguishes the three comment categories (`issue_comment`, `review_comment`, `review`) and their key shapes, so an agent knows exactly what this tool returns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is clear: `kind` selects all/issue/review, `since` filters by update time, pagination uses `total`/`nextOffset`, and auth requirements are stated. It does not explicitly name alternatives such as `gluecron_get_pr` or `gluecron_pr_status_summary`, so it stops short of full when-to-use/when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_list_pr_conflictsARead-onlyInspect
What stands between a PR and a clean merge, as the merge gate, the PR page and the Conflicts tab see it (one shared probe): status up-to-date | clean | conflicts | unknown, mergeable, the base/head shas the answer is for, files settled with no one in the loop (ruleSettled: each with by = structured (structured, code-aware merge) or rules (the deterministic merge rules)), and each unresolved file with its kind in plain words (both edited / binary / deleted on one side / added on both / rename / submodule / too large), whether the browser can edit it or only keep one side, and any saved draft. With hunks: true, each editable file's diff3 text labelled by branch name and its hunks (id, mine, base, main) for gluecron_resolve_pr_conflict. Also the exact git commands for the command line. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | Repo name | |
| fresh | No | Bypass the ten-minute probe cache (default false) | |
| hunks | No | Include each editable file's marked-up content and hunks (default false) | |
| owner | Yes | Repo owner — username or organisation slug | |
| number | Yes | PR number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, and the description reinforces 'Read-only'. Beyond that it discloses the actual response shape an agent otherwise could not know without an output schema: the four status values, ruleSettled entries tagged 'structured' vs 'rules', per-file conflict kinds, editability, saved drafts, and that exact git commands are included. It does not discuss network/auth requirements beyond the schema-level cache note.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The content is dense and largely earns its place, but it is delivered as one sprawling sentence with nested parentheticals, making it hard to scan. The purpose is front-loaded, yet the enumeration of conflict kinds and hunk fields could be structured far more cleanly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter read tool with no output schema, the description does the heavy lifting on return contents and ties the output to the follow-up resolution tool. Only minor gaps remain, such as what an 'unknown' merge status means operationally and how the shared probe cache interacts with repeated calls (left to the `fresh` schema text).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3, but the description adds real meaning for `hunks: true` — that each editable file gets diff3 text labelled by branch name with hunks shaped as (id, mine, base, main) intended for gluecron_resolve_pr_conflict. That is semantics the schema does not convey. `fresh` is left to its schema description, so it is not a full 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states specifically that this reports what blocks a PR from merging: merge status, mergeable flag, base/head shas, settled vs. unresolved files, and drafts. It is more evocative than a clean verb+resource phrase ('What stands between a PR and a clean merge...'), but it clearly names the resource (a PR's conflicts) and points at gluecron_resolve_pr_conflict as the consumer of its hunks output, which separates it from generic siblings like gluecron_get_pr.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: this is the inspection step before calling gluecron_resolve_pr_conflict, and hunks:true is called out as the mode for that path. However, there is no explicit when-to-use vs. when-to-use-something-else (e.g., gluecron_pr_status_summary, gluecron_get_pr, gluecron_get_pr_checks) and no stated exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_list_prsARead-onlyInspect
List pull requests on a repo, filtered by state (open|closed|merged|all). Authenticated callers only. Returns up to 50 summary rows.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | Repo name | |
| limit | No | Max rows per page (default 50, max 100) | |
| owner | Yes | Repo owner — username or organisation slug | |
| state | No | open | closed | merged | all (default: open) | |
| offset | No | Rows to skip, for paging. Use `nextOffset` from the previous response. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so no safety contradiction exists. The description adds useful behavioral context beyond the annotations: authentication is required, the result set is capped at 50 summary rows, and filtering by state is supported. This is meaningful operational information without being redundant.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences with no filler. The main purpose and scope are front-loaded, and each sentence adds necessary information: what is listed, how it is filtered, who can call it, and what is returned.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list operation with rich parameter schemas, the description is largely complete: it covers the action, scope, authentication, state filter, and result size. Pagination is implicit through offset and nextOffset in the schema, and there is no output schema, so the 'summary rows' hint gives some shape. Missing only explicit guidance on paging behavior and sorting, which is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 all five parameters and their meanings. The description adds a general mention of state filtering and a 50-row cap, but does not add anything beyond what the parameter descriptions already provide. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action ('List pull requests on a repo') and the resource scope, with an explicit state filter. It is not a tautology and is readily distinguishable from get_pr and repo_list_issues, though it does not explicitly name the sibling search_prs as an alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only usage guidance is 'Authenticated callers only,' which is a prerequisite rather than a when-to-use instruction. It does not explain when to prefer this tool over gluecron_search_prs, gluecron_get_pr, or repo_list_issues, nor does it provide any exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_list_ready_to_mergeARead-onlyInspect
Pull requests that are green and clean and that nobody has merged: open, not a draft, CI green at the head, no gate failing or running, no standing request for changes, branch protection satisfied, no conflicts (the merge gate's own conflict probe), and auto-merge NOT armed. Each comes with a plain sentence ("Green and clean for 3 days — nobody has merged it"), whether you can merge it (canMerge) or arm it (canArm), and the merge / arm endpoints. Also waiting_on_you: open PRs where you are a requested reviewer or code owner and have not reviewed. Scope: owner + repo for one repository; org for an organisation; neither for every repository you can merge in. not_ready lists the other open PRs in scope with the first reason. To act: gluecron_set_auto_merge (arm) or gluecron_merge_pr. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| org | No | Organisation slug: every repository of the org you can read | |
| repo | No | Repo name (with owner) | |
| owner | No | Repo owner — username or organisation slug (with repo) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description reinforces this with an explicit 'Read-only' note while adding real behavioral detail: the qualifying criteria, the per-item shape (plain-language sentence, canMerge, canArm, merge/arm endpoints), and the auxiliary `waiting_on_you` and `not_ready` sections. That is substantial context beyond what the annotation conveys.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The qualifying predicate is front-loaded and every clause carries information; the scope and follow-up actions are appended efficiently. The main predicate sentence is a long run-on, but trimming it would lose qualifying criteria, so the density is justified.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description must describe returns — and it does, covering the per-PR payload fields, the human-readable sentence, and the two auxiliary lists. Combined with the scope rules and action pointers, an agent has everything needed to call it and interpret the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3; the description adds the important combination semantics — owner+repo for a single repository, org for an organisation, and neither for every repository you can merge in — the last of which the schema does not express. It largely restates the per-parameter meanings already in the schema, which keeps it from a 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a precise verb-plus-resource with an exact predicate: open, non-draft PRs with green head CI, no failing/running gates, no standing change requests, protection satisfied, no conflicts, and auto-merge not armed. That definition is specific enough to separate it from gluecron_list_prs, gluecron_pr_status_summary, and gluecron_search_prs without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states the scope rules (owner+repo, org, or neither) and routes the agent to the follow-up actions gluecron_set_auto_merge and gluecron_merge_pr, plus points to `not_ready` for non-qualifying PRs. It does not explicitly say when to prefer gluecron_list_prs or gluecron_search_prs instead, so it falls just short of naming an exclusion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_list_repo_secretsARead-onlyInspect
List a repository's workflow secrets — NAMES ONLY, with created/updated times; values are never returned. Use it to check that a secret such as CRON_SECRET exists before a workflow needs it. Needs admin access to the repository and 'repo' scope. Returns {repository, total_count, secrets:[{name, created_at, updated_at}]}.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | Repo name | |
| owner | Yes | Repo owner — username or organisation slug |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the read-only safety profile, but the description goes well beyond them: it discloses that secret values are never returned, that only names and timestamps come back, and that admin access plus 'repo' scope are required. It even spells out the response shape, which is exactly the behavioral context an agent needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tightly packed sentences: the key constraint (NAMES ONLY) is front-loaded, then usage, then prerequisites and return shape. No filler sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter read tool with no output schema, the description supplies the missing pieces: the return shape, the fact that values are excluded, and the auth/scope requirements. Nothing needed to call it correctly is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (owner and repo both documented), so the schema carries the parameter burden. The description adds no per-parameter syntax or format detail, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List a repository's workflow secrets') and immediately scopes it with 'NAMES ONLY, with created/updated times; values are never returned.' This distinguishes it cleanly from write-oriented siblings like gluecron_set_repo_secret and from token-listing tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly names the use case ('check that a secret such as CRON_SECRET exists before a workflow needs it') and states prerequisites ('admin access to the repository and repo scope'). It does not explicitly route to an alternative tool, but the surrounding sibling set is broad and no single obvious alternative applies.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_list_repo_tokensARead-onlyInspect
List the fine-grained repository tokens you have minted (never the secret): repository, permissions, state (active / expired / revoked), expiry and last use. Needs 'repo' scope.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds genuinely useful context beyond them: the secret value is never returned, the returned fields are enumerated, and an authorization scope ('repo') is required. It stops short of covering pagination or result volume, which are the remaining behavioral unknowns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, both front-loaded with the operation and then its scope requirement. The colon-delimited field list conveys a lot of information in minimal space with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema present, the description usefully enumerates the returned fields (repository, permissions, state, expiry, last use) and the scope requirement, which is most of what an agent needs. It leaves minor ambiguity about whether results span all repositories or one, and says nothing about result size or pagination.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4; there is nothing for the description to disambiguate. It also does not imply hidden filters the caller must supply, which keeps the zero-arg contract clean.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (list) and a precisely scoped resource (fine-grained repository tokens you have minted), and the 'never the secret' framing immediately separates it from gluecron_create_repo_token and gluecron_revoke_repo_token. An agent can identify the operation without opening any sibling schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for use (auditing tokens you own) and states the prerequisite scope need, 'Needs repo scope.' It does not explicitly name the create/revoke siblings as alternatives, so routing must be inferred from the verb rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_list_runnersARead-onlyInspect
List the CI runners registered to an owner (username, org slug, or 'platform'): id, name, url, labels, slots, online, last seen, revoked; allowSharedOverflow (the setting); and sharedLane, whether the owner's jobs actually run on shared runners: 'used (no own runners)', 'overflow allowed' or 'not used (own runners only)', explained in sharedLaneDetail. Needs a PAT with 'repo' scope (or a session) and the right to manage the owner's runners. For a read-only credential — a security audit watching for rogue runners — mint a repository token with {"runners": "read"} (gluecron_create_repo_token) and call GET /api/v2/repos/:owner/:repo/actions/runners: it lists the same runners and lane and can do nothing else (repository tokens are not accepted on /mcp).
| Name | Required | Description | Default |
|---|---|---|---|
| owner | Yes | Username, org slug, or 'platform' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnly/destructive; the description adds the real operational context an agent needs: required 'repo' scope PAT or session, authority to manage the owner's runners, and the caveat that repository tokens are rejected on /mcp. It also explains the derived sharedLane/sharedLaneDetail semantics, which is behavior beyond the annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded, but the single paragraph is dense, packing return-field enumeration, auth, a derived-field explanation and a full alternative API pathway into one run-on final sentence. Every clause is useful but the structure makes it harder to scan than it needs to be.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, and the description compensates fully by naming the returned fields and explaining the non-obvious sharedLane values and sharedLaneDetail. Auth and permission requirements are also covered, leaving nothing essential missing for a correct call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single owner parameter is already documented as 'Username, org slug, or 'platform''. The description restates the same three accepted forms without adding format details, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List the CI runners registered to an owner') and enumerates exactly what comes back (id, name, url, labels, slots, online, last seen, revoked, shared signmessages). This clearly separates it from siblings such as gluecron_revoke_runner or gluecron_create_runner_registration_token.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives the credential prerequisite and, for the read-only audit case, an explicit alternative path (mint a repo token with runners:read via gluecron_create_repo_token and call the REST endpoint). It names the sibling tool and the condition selecting it, though there is no general 'use X instead' routing against the other runner tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_list_tokensARead-onlyInspect
List your own tokens (never a secret): type, name, status (active / expiring / expired / revoked / never_used / stale), last 4 characters, scopes or permissions, repository, expiry, last use (time, IP, client), use count and rotation state. type is pat (personal access token, glc_), repo (repository token, gcft_) or deploy (deploy token, gcdt_), or omit it for all three (types your token's scopes cannot read are listed under omitted). PATs need 'user' scope to read; repository and deploy tokens need 'repo'.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Token type: pat (personal access token, glc_), repo (repository token, gcft_) or deploy (deploy token, gcdt_). Omit for all. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint annotation, it discloses important behavior: results are 'never a secret', returned fields are enumerated, status values are spelled out, and it explains that types your scopes cannot read appear under `omitted`, plus the auth/scope requirements. This is exactly the kind of auth-and-partial-result context annotations do not convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose and the 'never a secret' reassurance, then field list, then parameter/enum details, then permissions. The single long field enumeration is dense but each item conveys what the caller receives; no filler sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by enumerating the returned fields (type, name, status, last-4, scopes, repo, expiry, last use with IP/client, use count, rotation state) and explains permission requirements and the omitted-types behavior. An agent has everything needed to call and interpret it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the `type` parameter is already fully documented, and the description largely restates the same enum values and prefixes. It adds only the marginal note that omitting `type` returns all three and that unreadable types surface under `omitted`, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List your own tokens') with explicit scope and immediately clarifies it never returns secrets. The scope word 'own' and the enumerated token types distinguish it from single-token and repo-scoped siblings like get_token and list_repo_tokens.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear applicability context: it lists the caller's own tokens, tells you the token types available via `type`, and states the scopes needed to read each type ('user' scope for PATs, 'repo' for others). It does not, however, explicitly name a sibling to use instead when you want repo-scoped or single-token reads.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_list_treeARead-onlyInspect
List directory contents at a ref. path scopes the listing to a subtree and is honoured in BOTH modes; recursive: true walks the whole subtree instead of one level. Always returns the same shape: {path, ref, recursive, entries, truncated, totalCount}. Recursive entries carry full repo-relative paths; non-recursive entries carry names. A ref that does not exist is an error, never an empty listing.
| Name | Required | Description | Default |
|---|---|---|---|
| ref | No | Branch / tag / sha. Omit (or pass HEAD) for the default branch. | |
| path | No | Sub-path within the repo | |
| repo | Yes | ||
| owner | Yes | ||
| recursive | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint/destructiveHint annotations, the description discloses substantial behavior: both modes honor path, recursive toggles one-level vs whole-subtree, return shape is always the same, recursive vs non-recursive entry naming differs, and a nonexistent ref is an error. This is rich, non-obvious context that helps the agent predict outcomes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded, with the core action in the first sentence and every subsequent sentence adding distinct information about modes, return shape, or error behavior. No filler or redundant restatement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema present, the description wisely defines the exact return shape. It covers path behavior, recursive behavior, entry naming, and ref errors. Minor gaps remain, such as what truncated means or how pagination works, but these are not essential for a basic correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 40%, but the description compensates by explaining the two most behaviorally important parameters: path scoping and recursive semantics. It also adds meaning for ref by stating that a missing ref is an error. Only owner and repo are left to the schema, but those are standard repository identifiers and require little additional explanation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'List directory contents at a ref.' This clearly distinguishes it from sibling tools like gluecron_read_file and gluecron_find_symbol, which serve different purposes. The focus on directory listing is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to use the tool and how its modes behave: path scopes to a subtree, recursive walks the whole subtree. It does not explicitly name alternatives or state when not to use it, but the directory-listing purpose is enough for an agent to select it correctly in most cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_list_variablesARead-onlyIdempotentInspect
List Actions configuration variables (${{ vars.NAME }}) with their values. Pass owner + repo for a repository variable, owner + repo + environment for an environment variable, or org for an organisation variable (organisation variables need an admin-scoped token). Admin of the repository or organisation only. Paged: limit (≤100, default 30) / offset. Mirrors GET …/actions/variables. Returns {scope, total, limit, offset, nextOffset, variables:[{name, value, createdAt, updatedAt}]}.
| Name | Required | Description | Default |
|---|---|---|---|
| org | No | Organisation slug | |
| repo | No | Repo name | |
| limit | No | Page size, 1–100 (default 30) | |
| owner | No | Repo owner — username or organisation slug (omit when passing org) | |
| offset | No | Rows to skip (default 0) | |
| environment | No | Environment name (or id) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, but the description adds real context: org variables require an admin-scoped token, the caller must be a repo/org admin, and pagination defaults (limit ≤100, default 30; offset). That is meaningful disclosure beyond the structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four dense sentences, front-loaded with the purpose before routing, pagination, and return shape. Every sentence carries information; slightly compact/run-on but no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description helpfully specifies the return shape ({scope, total, limit, offset, nextOffset, variables:[...]}), and it covers auth scope, admin requirement, and pagination. Nothing needed to call the tool correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds combination semantics the schema does not encode (which parameters to pass together for each scope, and that org requires an admin token). It reinforces the limit default/ceiling already present in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) and resource (Actions configuration variables) and even shows the syntax (${{ vars.NAME }}). It is clearly distinguishable from the singular sibling gluecron_get_variable and from gluecron_list_repo_secrets, which handles a different resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit routing rules: owner+repo for repository scope, owner+repo+environment for environment scope, org for organisation scope, plus the admin prerequisite. It stops short of naming sibling alternatives (e.g. get_variable) or stating when not to use it, so it falls just below the top band.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_list_workflow_runsARead-onlyInspect
List a repository's workflow runs, newest first, with optional branch/status/event filters. Mirrors GET /api/v2/repos/.../actions/runs. The companion to gluecron_get_workflow_run / gluecron_cancel_workflow_run — this is how an agent finds the run ids to inspect or cancel (issue #10493: without it, stale queued runs could not be discovered from the tool surface at all).
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | ||
| event | No | push | pull_request | manual | schedule | ... | |
| limit | No | Max rows (default 30, max 100) | |
| owner | Yes | ||
| branch | No | Only runs for this branch (short name or refs/heads/...) | |
| offset | No | Rows to skip, for paging | |
| status | No | queued | running | success | failure | cancelled |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true/destructiveHint=false, so safety is covered; the description adds the ordering guarantee ('newest first') and the REST-equivalent behavior ('Mirrors GET /api/v2/repos/.../actions/runs'). It stops short of describing paging behavior or what a run record contains, which keeps it at a strong 4 rather than 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose and scope in the first sentence, and the routing hint follows immediately. The closing parenthetical citing issue #10493 is motivational rather than operational and is the one sentence that does not fully earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter read tool with no output schema, the definition covers purpose, ordering, filters and downstream use well; the main omission is any indication of the returned shape or paging semantics (offset/limit interplay) that an agent would need to iterate results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 71%, so most parameters are self-documenting; the description only re-lists branch/status/event as 'optional filters', which the schema already spells out (including branch ref syntax and status values). It adds no format or interaction detail beyond the schema, so the baseline 3 holds.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('List a repository's workflow runs'), plus ordering and filter scope, and explicitly differentiates from the siblings it feeds (get_workflow_run / cancel_workflow_run). An agent can place it precisely in the workflow-run tool family 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
States when to use it directly: 'this is how an agent finds the run ids to inspect or cancel', naming the two downstream tools it enables. The issue note reinforces the trigger condition (discovering stale queued runs), leaving nothing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_merge_prADestructiveInspect
Merge an open PR. Enforces the same checks as the HTTP merge flow: not a draft, head SHA resolves, GateTest+AI-review hard gates pass, branch-protection rules satisfied. M3: soft-blocks when the pre-merge risk score is critical unless confirm_high_risk: true is passed. Returns {merged, sha?, reason?, riskScore?}.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | Repo name | |
| owner | Yes | Repo owner — username or organisation slug | |
| number | Yes | PR number | |
| confirm_high_risk | No | When true, bypass the M3 risk-score soft-block on critical-band PRs. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds substantial behavioral detail beyond the annotations: it enumerates enforced checks, reveals the M3 soft-block behavior tied to the pre-merge risk score, explains how confirm_high_risk overrides it, and specifies the return shape. The destructiveHint is consistent with the merge action, and no contradiction exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two tight sentences with zero filler. It front-loads the core purpose ('Merge an open PR'), then packs behavioral caveats and return information in a logically ordered, scannable way.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Even though there is no output schema, the description explicitly includes the return shape {merged, sha?, reason?, riskScore?}. It also covers prerequisites, gate checks, and the risk-override condition, giving an agent enough context to invoke the tool correctly and interpret results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for all four parameters, so the baseline is 3. The description adds meaningful semantics for confirm_high_risk by explaining the M3 risk-score soft-block and the bypass behavior, going beyond the schema's simple 'bypass the M3 risk-score soft-block' phrasing. The other parameters are self-explanatory and require no extra description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Merge an open PR.' It clearly distinguishes this tool from siblings such as gluecron_close_pr, gluecron_create_pr, and gluecron_open_draft_pr by focusing on merging an existing, open PR and the checks involved.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context on when to use the tool: for merging an open PR that must satisfy the same checks as the HTTP merge flow. It does not explicitly name alternative tools or state when not to use it, but the context is specific enough for an agent to select it appropriately among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_open_draft_prAInspect
Open a draft pull request. Same payload as gluecron_create_pr but forces is_draft=true. Useful for AI-in-progress PRs that shouldn't run mergeability checks yet.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | ||
| repo | Yes | ||
| owner | Yes | ||
| title | Yes | ||
| base_branch | No | ||
| head_branch | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide `readOnlyHint: false` and `destructiveHint: false`, indicating mutability but no destruction. The description adds the key behavior that it forces `is_draft=true`, which is beyond what annotations convey. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler, delivers core message efficiently. Every sentence adds value: first defines purpose, second gives usage context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool is a specialized variant, the description adequately explains its unique feature (draft status) and use case. However, it assumes knowledge of the sibling tool's payload, and lacks any parameter documentation, which could hinder standalone usability for an agent unfamiliar with `gluecron_create_pr`.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 6 parameters with 0% description coverage. The description does not explain any parameters or their semantics. It only states 'Same payload as gluecron_create_pr', which is insufficient for an agent to know required fields or formats without consulting another tool's definition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool opens a draft pull request and distinguishes it from sibling `gluecron_create_pr` by noting the forced draft status. The verb 'open' and resource 'draft pull request' are explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use this tool: 'Useful for AI-in-progress PRs that shouldn't run mergeability checks yet.' This clearly implies when not to use it, and references the alternative `gluecron_create_pr` indirectly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_prioritize_workflow_runAIdempotentInspect
Move a QUEUED workflow run into the priority lane: the runner claims it ahead of the class order, highest level first (normal < high < critical), then oldest (issue #10898). The lane holds at most a third of the runner slots, so prioritizing many runs cannot starve the rest. Calling again on a prioritized queued run changes its level. Only queued runs; a running or finished run is reported, not changed. Requires 'repo' scope and write access; high and critical also require a site admin.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | ||
| level | No | normal (default) | high | critical — high and critical need a site admin | |
| owner | Yes | ||
| run_id | Yes | The run's id, or a unique leading part of it (8+ hex characters) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint=false, idempotentHint=true, destructiveHint=false), it discloses the scheduling semantics (priority lane, level ordering normal < high < critical, then oldest), the lane capacity cap of a third of runner slots preventing starvation, re-invocation changing level, and explicit auth requirements ('repo' scope, write access, site admin for high/critical). This is exactly the operational context an agent needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action, then layers ordering, capacity, repeat-call, state, and auth constraints in dense but non-redundant sentences. Every sentence adds information an agent would otherwise have to guess.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema, the description covers preconditions (queued only), side effects (claim ordering, lane capacity), idempotency behavior, and permission requirements. Nothing material to calling it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 50% (owner and repo undocumented), but the description compensates for the key parameter by explaining the level ordering and that high/critical require site admin, and echoing run-id targeting via 'queued run'. owner/repo remain undescribed but are self-evident conventions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: moving a QUEUED workflow run into a priority lane, with the exact claim ordering (level, then oldest). It is clearly distinguishable from siblings like cancel_workflow_run, list_workflow_runs, or get_workflow_run, which operate on runs but do not reorder scheduling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear when-to-use condition (only queued runs) and a when-not condition (a running or finished run is reported, not changed), plus repeat-call semantics. It does not name an alternative sibling tool, but the state constraint and level guidance are sufficient to route an agent correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_propose_doc_updateAInspect
Manual trigger for the AI doc-update flow: scans tracked sections on the default branch and opens a PR rewriting stale prose. Requires 'repo' scope.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | ||
| owner | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (readOnlyHint: false, destructiveHint: false) are generic. The description adds key behaviors: it rewrites prose, opens a PR, and requires 'repo' scope. This effectively communicates the mutation and permission needs beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, front-loading the core purpose ('Manual trigger for the AI doc-update flow') in a single sentence. While effective, it could be slightly more structured to separate purpose from requirements.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 2 common parameters and no output schema, the description adequately covers the main behavior and side effects (opens PR). It does not explain return values, but that is acceptable given the simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 2 parameters (owner, repo) with 0% description coverage. The description provides no explanation of these parameters, leaving the agent to infer their meaning. Given the low coverage, this is a significant gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool triggers an AI doc-update flow: scans tracked sections, rewrites stale prose, and opens a PR. The verb 'scans' and resource 'tracked sections' make the purpose specific and distinct from sibling tools like gluecron_propose_migration.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description indicates manual triggering and requires 'repo' scope, but does not explain when to use vs alternatives (e.g., gluecron_propose_migration) or when not to use. It provides partial guidance but lacks explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_propose_migrationBInspect
Propose a dependency-upgrade PR. Wraps src/lib/migration-assistant.proposeMajorMigration. Requires 'repo' scope.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | ||
| owner | Yes | ||
| base_sha | Yes | Commit sha to fork from | |
| changelog | No | Optional changelog text | |
| dependency | Yes | ||
| to_version | Yes | ||
| from_version | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate not read-only and not destructive. The description adds the scope requirement and internal function name, providing some context beyond annotations. However, it does not describe side effects, output, or implications of proposing a migration.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loading the core purpose. It is concise and avoids fluff, though it could integrate parameter guidance without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 7 parameters, no output schema, and low schema description coverage, the description is incomplete. It does not explain the migration process, expected output, side effects, or prerequisites beyond 'repo' scope. Context for a complex operation is lacking.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only 29% schema description coverage, the description adds no information about the 7 parameters. It fails to explain what owner, repo, dependency, from_version, to_version are, or how they are used. The description should compensate for low schema coverage but does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool proposes a dependency-upgrade PR, which is a specific verb+resource combination. It distinguishes from sibling tools like create_pr or propose_doc_update by focusing on dependency upgrades. Internal reference adds specificity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions 'Requires repo scope', indicating a prerequisite, but does not explain when to use this tool versus alternatives like create_pr or open_draft_pr. No explicit when-not or alternative suggestions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_provision_pr_sandboxAInspect
Provision (or re-provision) a sandbox for a PR. Wraps pr-sandbox.provisionSandbox. Requires 'repo' scope. Returns {ok:false, reason:'not enabled on this host'} when no sandbox provisioner runs on the host.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | ||
| owner | Yes | ||
| number | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate the tool is not read-only (readOnlyHint=false) and not destructive (destructiveHint=false). The description adds value by disclosing the internal wrapper (pr-sandbox.provisionSandbox), an auth requirement ('repo' scope), and a specific error return when the host lacks a provisioner. This contextualizes behavior beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences (45 words) and front-loaded with the primary purpose. The second sentence adds implementation context, and the third covers a key error case. No filler or redundant information. Every sentence contributes meaningfully.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Although the tool is simple with three clear parameters and no output schema, the description does not specify the success return value or side effects. It only documents the failure case. Annotations cover destructive intent, but the description omits whether provisioning creates resources or has any rate limits. Adequate but not fully thorough for a mutation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the burden of explaining parameters. The parameter names (repo, owner, number) are standard and self-explanatory for a PR sandbox tool, but the description does not explicitly define them, their formats, or constraints. For example, it does not confirm that 'number' is the PR number or clarify that 'repo' and 'owner' are GitHub identifiers.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool provisions or re-provisions a sandbox for a PR. The verb 'provision' and resource 'sandbox for a PR' are specific and distinct from sibling tools like create_pr, merge_pr, or get_pr. The mention of wrapping an internal function adds clarity without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions a prerequisite ('Requires repo scope') but provides no explicit guidance on when to use this tool versus alternatives. While no other tool provisions sandboxes, the description could clarify scenarios (e.g., after PR creation) or when re-provisioning is appropriate. The 'or re-provision' hint is mild guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_pr_status_summaryBRead-onlyInspect
Compute a one-shot status summary for a PR: state, risk score (and whether it describes the current head), CI state for the head commit as the merge gate sees it (with ci.failures: for each failed run, the failed step, up to 8 file:line rows linked to the head sha, the tool's own guidance block and the full step log URL, or {withheld, required, hint} when this credential may not read the run's logs), AI-review verdicts (trio), gate signals, merge — the conflict probe the merge gate uses (status up-to-date | clean | conflicts | unknown, unresolved files with kinds, files settled by structured merge or the merge rules, conflictsUrl), auto-merge (armed? last_attempt.reason says what it waits for or what happens next), and mergeTrain.lastDequeue — the merge train's newest receipt for a green merge preview it did not merge (which commit, which runs, why). Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | ||
| owner | Yes | ||
| number | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, but the description adds substantial behavioral context beyond them: CI failure shape with up to 8 file:line rows, log withholding when the credential cannot read logs, conflict-probe statuses, auto-merge wait reasons, and merge-train dequeue receipts. It does repeat "Read-only," but the surrounding detail earns credit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded, but the bulk is a single dense sentence packed with semicolon-delimited output details. Those details are relevant because no output schema exists, yet the run-on structure makes the definition harder to parse than necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description must explain return values, and it does so extensively. However, it completely omits input parameter semantics despite 0% schema description coverage, leaving a meaningful gap for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for owner, repo, and number, and the description never explains these inputs at all. Although the parameter names are conventional, the description does not compensate for the schema gap, making parameter meaning inferential only.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: "Compute a one-shot status summary for a PR," then enumerates the status facets it combines. This clearly distinguishes it as a consolidated PR-status read tool, though it never explicitly contrasts with siblings like get_pr, get_pr_checks, or list_pr_conflicts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Offers no explicit when-to-use, when-not-to-use, or named alternative guidance. Only phrases like "one-shot status summary" and "Read-only" imply context, leaving the agent to infer when this is preferable to sibling status tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_purge_repoADestructiveInspect
PERMANENTLY delete an already-deleted repository now, instead of waiting for its restore window to end. IRREVERSIBLE: the git data, LFS objects, issues, PRs, releases, packages, CI history and settings are removed and cannot be restored (data already in the instance's backups ages out on the backup schedule). Only works on a repository already deleted with gluecron_delete_repo; confirm must be its full name (owner/name). Owner (personal owner, or an org owner) or a site admin; needs 'admin' scope. Audited as repo.purge. Returns {purged: true, id, full_name}.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The deleted repository's id | |
| confirm | Yes | The repository's full name, owner/name, to confirm |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only provide the destructive/readOnly flags; the description goes well beyond them by enumerating exactly what is destroyed (git data, LFS, issues, PRs, releases, packages, CI history, settings), noting backups age out on schedule, and disclosing the audit event repo.purge. This is precisely the contextual depth a destructive tool needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the two most important facts (PERMANENTLY, IRREVERSIBLE) in caps, then consequences, preconditions, auth, audit, and return shape in a tight sequence. Dense but every clause carries decision-relevant information for a destructive action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, the description supplies the return shape ({purged: true, id, full_name}), the auth scope, the audit event, and the preconditions. Nothing an agent needs to safely invoke this irreversible tool is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds workflow meaning by tying `confirm` to a deliberate confirmation guard ('must be its full name (owner/name)') and clarifying that `id` refers to the deleted repository's id, making the pairing's intent explicit rather than merely restating types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('PERMANENTLY delete an already-deleted repository') and immediately distinguishes the action from waiting out the restore window. The reference to gluecron_delete_repo and the restore-window concept clearly separates it from sibling tools like gluecron_restore_repo and gluecron_delete_repo.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states the when ('now, instead of waiting for its restore window to end') and the hard precondition ('Only works on a repository already deleted with gluecron_delete_repo'). It also states the auth requirement (owner or site admin, 'admin' scope), so the agent knows exactly when this tool is callable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_read_fileARead-onlyInspect
Read a file from a repo at a given ref. Mirrors GET /api/v2/repos/:owner/:repo/contents/:path. Returns {path, size, content, encoding, totalLines}. Pass start_line / end_line (1-based, inclusive) to read only part of a text file. A text file over ~60 KB read with no range returns its first ~60 KB of whole lines with truncated: true, startLine/endLine and a hint — ask for the next range to read on.
| Name | Required | Description | Default |
|---|---|---|---|
| ref | No | Branch / tag / sha (default HEAD) | |
| path | Yes | ||
| repo | Yes | ||
| owner | Yes | ||
| encoding | No | 'utf8' (default) or 'base64' | |
| end_line | No | Last line to return (1-based, inclusive; clamped to the file's length). Text files only. | |
| start_line | No | First line to return (1-based, inclusive). Text files only. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish the read-only, non-destructive safety profile, and the description adds real behavioral context: the exact return shape, the ~60 KB truncation threshold, the truncated/startLine/endLine flags, and a hint to request the next range. It does not cover auth/permission requirements or binary-file handling, but it goes well beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action and scope before the parameter and truncation details, and nearly every sentence carries information. The endpoint-mirroring clause and the truncation explanation are slightly dense but not wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by enumerating returned fields and explaining the truncation contract, which is the main failure mode for this tool. Remaining gaps (permissions, binary/base64 handling) are minor for a read operation covered by readOnly annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is moderate (57%); owner/repo/path are undocumented but self-evident, while the description usefully reinforces the 1-based inclusive semantics of start_line/end_line and the text-file-only restriction. It adds only marginal detail beyond the schema and says nothing new about ref or encoding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Read a file from a repo at a given ref') and even maps it to the underlying REST endpoint, so the operation is unambiguous. However, it never distinguishes itself from the near-identical sibling gluecron_repo_read_file, which an agent could easily confuse it with.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explains the range-reading mode well (pass start_line/end_line to read part of a text file) and describes the ~60 KB truncation fallback, so usage of the parameters is implied. But it gives no guidance on when to choose this tool over gluecron_repo_read_file, list_tree, search_code, or get_diff.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_refactor_across_reposAInspect
Plan + execute a refactor that spans multiple repos owned by the caller. Wraps src/lib/multi-repo-refactor.ts. dry_run: true returns the plan only. Requires 'repo' scope.
| Name | Required | Description | Default |
|---|---|---|---|
| dry_run | No | When true, returns the plan and does NOT execute. | |
| description | Yes | Natural-language description | |
| repository_ids | No | Optional explicit repo IDs to scope the refactor to. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations list destructiveHint=false, but the description says it 'executes' a refactor, which may modify repos. The description does not disclose the actual side effects of execution (e.g., file modifications, commits), leaving ambiguity about behavioral traits. No additional context is provided beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is relatively concise with four short sentences. It front-loads the core purpose and adds details like dry_run and scope requirement. Could be slightly more streamlined, but no waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema is provided. The description describes inputs and the dry_run behavior but does not explain what the execution returns (e.g., success message, diff). For a tool with this complexity, more completeness about return values would help.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%. The description adds minimal value; it restates the dry_run behavior and mentions the implementation file (multi-repo-refactor.ts), but the schema already adequately describes each parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool plans and executes a refactor spanning multiple repos owned by the caller. It distinguishes itself from single-repo sibling tools like gluecron_write_file or gluecron_create_branch, which operate on a single repo.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions the dry_run option returns a plan only and requires 'repo' scope. It implies when to use (multi-repo refactor) but does not explicitly state when not to use it or suggest alternatives for single-repo refactors.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_release_leaseBIdempotentInspect
Release a lease by id. Idempotent. Returns {released}.
| Name | Required | Description | Default |
|---|---|---|---|
| lease_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=false and idempotentHint=true. The description adds that it is idempotent and returns {released}, which is consistent but adds minimal new behavioral context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise (three short sentences) and to the point. It wastes no words but could be slightly more informative without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple release operation with one parameter and no output schema, the description is fairly complete. However, it lacks explanation of what a lease is, which may be needed for full clarity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%. The description mentions 'by id' but does not explain the lease_id parameter or provide context about what a lease is. For a single parameter with no schema description, the description should elaborate more.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool releases a lease by ID and notes it is idempotent. The verb 'Release' and resource 'lease' are specific, and it distinguishes from the sibling tool 'gluecron_acquire_lease'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. The description only states what it does, not when it is appropriate or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_reopen_issueAIdempotentInspect
Reopen a previously closed issue. Requires authenticated caller with write access. Idempotent. Returns {state}.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | Repo name | |
| owner | Yes | Repo owner — username or organisation slug | |
| number | Yes | Issue number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds value beyond annotations: it discloses the auth requirement (not in annotations) and the return shape '{state}' (useful since no output schema exists). It restates idempotence, which is already in annotations, but the added auth and return context justify a 4. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, zero filler. The core action leads, then prerequisites, then behavior and return shape. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Complete for a simple 3-parameter mutation with no nested objects or output schema: purpose, auth requirement, idempotence, and return value are all covered. The only minor gap is the unspecified behavior if the issue is already open, but 'previously closed' scopes the intended use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% — all three parameters (owner, repo, number) are already documented. The description adds no parameter-level detail, so the schema carries the full burden; baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
'Reopen a previously closed issue' states a specific verb and resource with a clear state transition. It differentiates itself from sibling gluecron_close_issue (inverse), gluecron_create_issue (new vs existing), and comment_issue without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides a clear prerequisite — 'Requires authenticated caller with write access' — which tells an agent when it can even attempt the call. It does not explicitly name alternatives or exclusions (e.g., 'use close_issue for the inverse'), but the 'previously closed' scoping implies the appropriate condition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_repo_explain_codebaseARead-onlyInspect
Return the cached AI 'explain this codebase' Markdown for a public repo (most recent commit). Returns null when no cached explanation exists yet.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | Repo name | |
| owner | Yes | Repo owner — username or organisation slug |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark it read-only/non-destructive, and the description adds meaningful behavior: data is cached, only public repos are supported, freshness is tied to the most recent commit, and null is returned on cache miss. No annotation contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence carries the core operation and both important qualifications (cached, public, most recent commit, null behavior) with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only lookup with two fully documented parameters, the description covers input, scope, and return behavior (Markdown or null) despite no output schema. It could be slightly more complete by pointing to the generation sibling on cache miss.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for owner and repo, so baseline is 3. The description does not add parameter-level syntax or format details, but none are needed beyond the schema's owner/repo definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states a specific verb ('Return'), a precise resource (cached AI explain-codebase Markdown for a public repo), and a scope qualifier ('most recent commit'). The 'cached' and null-return behavior clearly differentiate it from the uncached gluecron_explain_repo sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use case—fetch a cached explanation when one exists—and signals cache miss with null, but it never explicitly names an alternative such as gluecron_explain_repo or states when to prefer it. Usage context is present but exclusion/alternative guidance is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_repo_healthARead-onlyInspect
Compute the current health report for a public repo: overall score (0-100), letter grade, per-category breakdown (security/testing/complexity/dependencies/documentation/activity), and a list of insights to fix next. Backed by computeHealthScore in src/lib/intelligence.ts.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | Repo name | |
| owner | Yes | Repo owner — username or organisation slug |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true and destructiveHint=false. The description adds useful behavioral context beyond that by specifying the output composition, the 0-100 score range, the categories covered, and that the report reflects current state. Minor gaps like error behavior remain, but they are not critical for a read-only computation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that communicates purpose and output shape efficiently. The implementation note 'Backed by computeHealthScore in src/lib/intelligence.ts' is slightly extra but not harmful; it does not prevent the description from being concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter, read-only tool with no output schema, the description is largely complete: it lists all key output dimensions an agent needs to judge the result. It omits exact handling of missing repos or private repos, but those are edge cases and the overall context is sufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and both parameters (owner, repo) already have descriptive names and explanations. The description adds only the 'public repo' framing and does not materially clarify parameter value formats or constraints beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource ('Compute the current health report for a public repo') and enumerates the concrete deliverable: score, grade, category breakdown, and insights. This clearly distinguishes the tool from sibling analysis tools like security_scan or explain_repo.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear context: this tool is for computing a current health report on a public repo. It does not explicitly name alternatives or list when-not-to-use cases, but no direct sibling tool competes with this exact responsibility, so the guidance is adequate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_repo_list_issuesARead-onlyInspect
List open issues for a public repository. Returns up to 50 ordered by most-recent.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | Repo name | |
| limit | No | Max rows per page (default 25, max 50) | |
| owner | Yes | Repo owner — username or organisation slug | |
| offset | No | Rows to skip, for paging. Use `nextOffset` from the previous response. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds useful behavioral context: it only lists open issues (not all issues), returns up to 50, and orders by most-recent. It doesn't mention that closed issues are excluded or that the repo must be public, but the description explicitly says 'public repository' and 'open issues', which are meaningful constraints beyond 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero waste. The core action and scope are front-loaded, and the pagination/ordering behavior is stated compactly. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list tool with 100% schema coverage and no output schema, the description is nearly complete. It covers scope, ordering, and pagination limits. It doesn't describe the response shape, but no output schema exists and the tool is simple enough that an agent can infer the return format from the parameters and the 'nextOffset' hint in the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 all four parameters. The description adds the 'open issues' filter and 'ordered by most-recent' behavior, which gives context for the limit/offset parameters, but doesn't add per-parameter meaning beyond what the schema provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('List'), a resource ('open issues'), a scope ('for a public repository'), and a concrete behavior ('Returns up to 50 ordered by most-recent'). This clearly distinguishes it from sibling tools like gluecron_search_issues (search) and gluecron_list_prs (pull requests).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use it: when you need open issues for a public repo, with pagination and ordering. It doesn't explicitly state when not to use it or name alternatives like search_issues, but the context is clear enough for an agent to select it correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_repo_read_fileARead-onlyInspect
Read a single file from a repository at a given ref (branch / tag / commit). Private repos are readable when the authenticated caller has access. Returns the text content (binary files rejected).
| Name | Required | Description | Default |
|---|---|---|---|
| ref | No | Branch / tag / commit. Defaults to the repository's actual default branch (which may not be 'main' — e.g. 'Main'). | |
| path | Yes | File path within the repo | |
| repo | Yes | Repo name | |
| owner | Yes | Repo owner — username or organisation slug |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, and the description adds meaningful behavioral details beyond those: private-repo access behavior and rejection of binary files. It does not mention error cases or size limits, but it provides enough extra context to justify a score above baseline.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: the core purpose appears in the first sentence, followed by two useful behavioral clarifications. Every sentence earns its place without repetition or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool, the description covers the essential return behavior (text content, rejects binary), access considerations, and ref semantics. It does not describe output details like encoding or non-binary error cases, but these are not strict gaps for an agent invoking the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters are already fully documented. The description adds no new parameter semantics beyond the schema's existing statements about path, owner, repo, and ref. A baseline of 3 is appropriate because the schema carries the explanatory burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Read a single file from a repository at a given ref (branch / tag / commit).' It is clearly distinct from write/delete/list tools and explicitly limits scope to a single file. However, it does not differentiate itself from the very similarly named sibling gluecron_read_file, which leaves some selection ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The use case is implied: fetch file content at a known ref. It also gives useful context that private repos require authenticated access and that binary files are rejected. But it contains no explicit when/when-not guidance or mention of alternatives such as gluecron_read_file or gluecron_list_tree.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_repo_searchARead-onlyInspect
Search Gluecron repositories by keyword (name + description), case-insensitively. Returns public repos plus any private repos owned by the authenticated caller. Default 20 per page, max 50; total is the full match count and nextOffset pages through it.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows per page (default 20, max 50) | |
| query | Yes | Search keyword (1-100 chars) | |
| offset | No | Rows to skip. Use `nextOffset` from the previous response. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly and non-destructive annotations, the description discloses case-insensitive matching, searchable fields, authentication ownership scope, and the full pagination contract (default/max per page, total count, nextOffset). This gives the agent a clear behavioral model with no contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences front-load the core action and then provide essential pagination detail. There is no filler, repetition, or unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description still explains what is returned, ownership visibility, and how pagination works. It would be fully complete if it named the fields of each returned repository item and explicitly addressed the sibling search_repos ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds value by explaining how offset relates to nextOffset and that total is the full match count, giving operational meaning to the pagination parameters beyond their schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the action: searching Gluecron repositories by keyword in name and description, with case-insensitive matching. It is specific about scope and distinguishes the tool's behavior, but it does not explicitly differentiate itself from the similarly named sibling gluecron_search_repos.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use or alternative guidance is provided, especially relative to the near-duplicate sibling gluecron_search_repos. The scope detail about public/private repos is contextual, but it does not tell an agent when to choose this tool over other search tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_request_changesAInspect
Request changes on a PR. Records a 'changes requested' review by the caller, which holds the PR on every merge path (web button, API, MCP merge, merge queue, merge train, autopilot) until the caller approves or someone with write access dismisses it (gluecron_dismiss_review), and posts the body as a comment. Requires 'repo' scope and write access.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Review body (Markdown) | |
| repo | Yes | ||
| owner | Yes | ||
| number | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations: it enumerates every merge path the review blocks (web, API, MCP merge, merge queue, merge train, autopilot), specifies the required 'repo' scope and write access, and notes the body is posted as a comment. This is exactly the behavioral context annotations alone could not provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One dense sentence, front-loaded with the action and its effect. Information-rich with little waste, though the long parenthetical list of merge paths makes it slightly unwieldy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema and only optimistic annotations, the description supplies the side effects, the blocking semantics, the permission requirements, and the escape hatch (dismissal). Nothing an agent needs to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 25% (only body is described), so the description must compensate. It clarifies that body is posted as a comment and mentions required 'repo' scope, but adds nothing about owner/repo/number semantics; partial compensation warrants a baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Request changes on a PR') and immediately clarifies the underlying mechanism ('Records a changes requested review'), which distinguishes it from gluecron_approve_pr and gluecron_dismiss_review among the siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implicitly conveys when to use it — to block merging until the caller approves — and explicitly names the dismissal counterpart gluecron_dismiss_review. It does not state explicit when-not conditions, but the merge-blocking context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_rerun_failed_jobsAInspect
Re-run a failed or cancelled workflow run at the SAME commit (same inputs, same PR merge preview) — the run page's Re-run. Gluecron re-runs every job of the run (per-job re-run does not exist yet); a successful or still-running run is refused. Joins an identical queued run instead of stacking another. Requires write access and 'repo' scope. Returns {runId, previousRunId, joinedExistingRun, url}.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | Repo name | |
| owner | Yes | Repo owner — username or organisation slug | |
| run_id | Yes | The run's id (uuid) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=false and destructiveHint=false; the description goes well beyond that with refusal semantics, the de-duplication behavior ('joins an identical queued run instead of stacking another'), the required write access and 'repo' scope, and the exact return shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The sentence is dense and front-loaded with the essential action, scope, and refusal rule before secondary details; parenthetical asides make it slightly cluttered but no sentence is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema, the description supplies the auth requirements, refusal conditions, idempotency behavior, and the returned field names, leaving nothing an agent needs to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so owner, repo, and run_id are already documented in the schema. The description adds no parameter-level format or constraint detail beyond what the schema provides, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Re-run a failed or cancelled workflow run') and pins the scope ('at the SAME commit (same inputs, same PR merge preview)'), which separates it cleanly from siblings like gluecron_trigger_workflow, gluecron_cancel_workflow_run, and gluecron_get_workflow_run.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete when-not conditions (a successful or still-running run is refused) and notes that per-job re-run does not exist yet, which tells the agent not to look for a granular variant. It stops short of naming sibling tools as explicit alternatives, so it is clear context rather than full when/when-not routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_resolve_pr_conflictAIdempotentInspect
Save a resolution for ONE conflicted file of a PR, as a draft for the exact (base_sha, head_sha) pair gluecron_list_pr_conflicts returned (a moved branch is refused: reload). Pass exactly one of: content (the whole resolved file — no conflict markers, at most 512 KiB), choices (hunk id → 'mine' | 'main' | 'both-mine-first' | 'both-main-first' | 'base' | {kind:'custom', lines:[…]}; applied server-side, a stale hunk id is refused), or keep ('mine' = the PR branch's version, 'main' = the base branch's; the only options for binary files and files one side deleted). Nothing is committed until gluecron_commit_pr_conflict_resolution. Requires write access and 'repo' scope.
| Name | Required | Description | Default |
|---|---|---|---|
| keep | No | 'mine' | 'main' — take one side whole | |
| path | Yes | The conflicted file's repo-relative path | |
| repo | Yes | Repo name | |
| owner | Yes | Repo owner — username or organisation slug | |
| number | Yes | PR number | |
| choices | No | Hunk id → mine | main | both-mine-first | both-main-first | base | {kind:'custom', lines} | |
| content | No | The whole resolved file | |
| base_sha | Yes | baseSha from gluecron_list_pr_conflicts | |
| head_sha | Yes | headSha from gluecron_list_pr_conflicts |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint=false, idempotentHint=true, destructiveHint=false), the description discloses that nothing is committed until a separate tool runs, that stale hunk ids and moved branches are refused, a 512 KiB cap, the no-conflict-markers constraint, and the required write access plus 'repo' scope. Those are real behavioral facts an agent cannot infer from structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core action and follows with the mutually exclusive modes, then the commit/auth footer — a logical order with no filler. It is very dense, with parenthetical clauses carrying several constraints each, which borders on packing but never wastes a sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With nine parameters, a nested `choices` object, no enums in the schema, and no output schema, the definition covers the gaps that matter: which params come from the list tool, mutual exclusivity, size limits, binary/deletion edge cases, auth, and the deferred-commit model. An agent has enough to call it correctly on the first attempt.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the per-field text is already there; the description still adds value by declaring 'pass exactly one of' the three optional payloads — a constraint the schema does not encode — plus a 512 KiB ceiling and the semantics of 'mine' (PR branch) vs 'main' (base branch). It stops short of explaining the hunk-id origin or structure beyond the tool reference.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb and resource — 'Save a resolution for ONE conflicted file of a PR' — and immediately qualifies it as a draft tied to an exact (base_sha, head_sha) pair. That scoping separates it cleanly from the sibling list tool (gluecron_list_pr_conflicts) and the sibling commit tool (gluecron_commit_pr_conflict_resolution), which it names in-line.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states the three mutually exclusive input modes and the condition that selects each: `keep` is 'the only option for binary files and files one side deleted', `choices` is for hunk-level server-side application, `content` for a whole resolved file. It also names the follow-up tool (gluecron_commit_pr_conflict_resolution) and the refusal/reload path when the branch has moved.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_restore_repoAInspect
Restore a deleted repository by id (from gluecron_list_deleted_repos) before its restorable_until date: git data, LFS objects, issues, PRs, collaborators and webhooks come back exactly as they were. Cancelled CI runs stay cancelled and stopped webhook deliveries are not re-sent. Refused when another repository now has the same name in that namespace. Owner (personal owner, or an org owner) or a site admin; needs 'admin' scope. Audited as repo.restore. Returns {restored: true, id, full_name}.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The deleted repository's id |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds substantial context beyond the annotations: exactly what is restored (git data, LFS objects, issues, PRs, collaborators, webhooks), what is deliberately not re-run (cancelled CI, stopped webhook deliveries), the name-conflict refusal, required permissions ('admin' scope, owner or site admin), and the audit record repo.restore. All consistent with readOnlyHint=false / destructiveHint=false.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Dense but disciplined: purpose and source-of-id first, then restoration semantics, then constraints/auth, closing with the return shape. Every clause carries operational information with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Although no output schema exists, the description states the return payload ({restored: true, id, full_name}) and covers preconditions, permissions, refusal behavior and audit logging, leaving nothing an agent would need to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a single 'id' parameter, so the baseline is 3; the description earns extra credit by naming where the id originates (gluecron_list_deleted_repos) and the deadline that makes it valid, which the schema does not convey.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Restore a deleted repository') and resource ('by id'), and distinguishes itself from siblings gluecron_list_deleted_repos (source of the id), gluecron_delete_repo and gluecron_purge_repo by making clear this reverses a deletion rather than performing one.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives the precondition that the id must come from gluecron_list_deleted_repos and that the restore must occur before the restorable_until deadline, plus the refusal condition when the name is taken. It does not explicitly contrast against a permanent alternative (purge), so it stops just short of 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_review_deploymentAInspect
Approve or reject a workflow run's jobs waiting on a protected environment (environment: with required reviewers). The caller must be a reviewer of every environment selected (the environment's reviewers, or the repository owner when none are listed). An approval runs the job (after the environment's wait timer, if any); a rejection fails it. Mirrors POST /api/v2/repos/.../actions/runs/:id/pending_deployments. Requires 'repo' scope.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | ||
| owner | Yes | ||
| state | Yes | "approved" or "rejected" | |
| run_id | Yes | The run's id, or a unique leading part of it (8+ hex characters) | |
| comment | No | ||
| environments | No | Environment names (or ids), as strings, to decide; omitted = every waiting one |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only give readOnlyHint=false and destructiveHint=false, so the description carries real weight and delivers: it discloses the required reviewer/owner permission model, the distinct post-conditions of approval (job runs after any environment wait timer) versus rejection (job fails), and the required 'repo' scope. This is well beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the action and the object it acts on, then layered with permissions, effects, endpoint parity, and scope in tightly packed sentences. No filler; every clause adds callable information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema, the description covers who may call it, what each state value does, the wait-timer timing, the underlying API endpoint, and the required scope. The remaining undocumented params (owner, repo, comment) are conventional enough that an agent can invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%, with state, run_id, and environments already documented in the schema. The description restates the approved/rejected semantics but adds no syntax or format detail beyond the schema, and leaves 'comment' and 'owner'/'repo' undocumented. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb pair and resource: 'Approve or reject a workflow run's jobs waiting on a protected environment.' This is precise enough to separate it from siblings like cancel_workflow_run, rerun_failed_jobs, and prioritize_workflow_run, since it targets pending deployments gated by required reviewers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly establishes the trigger scenario (jobs waiting on a protected environment with required reviewers) and the caller precondition (must be a reviewer of every selected environment). It does not name alternatives or state explicit exclusions, but the usage context is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_revoke_repo_tokenADestructiveInspect
Revoke one of your fine-grained repository tokens by id (from gluecron_list_repo_tokens). It stops working on its next use. Needs 'repo' scope. Audit-logged.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Token id |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the destructiveHint=true annotation, the description discloses three concrete behaviors: revocation is effective on the token's next use, the 'repo' scope is required, and the action is audit-logged. Those are exactly the operational facts an agent needs and none are in the structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences with the action front-loaded, followed by effect, auth requirement, and audit note. Every clause conveys distinct information and nothing repeats the schema or annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter mutation with annotations already declaring the destructive profile and no output schema required, the description covers action, id source, effect timing, permissions, and auditability. Nothing an agent needs to call this correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Single parameter with 100% schema description coverage, so the schema already documents 'id' as the token id. The description adds only the provenance of that id (from gluecron_list_repo_tokens), which is mildly useful but not a semantic enrichment of the field itself; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb and resource (revoke a repository token) and scopes it precisely ('fine-grained repository tokens by id'). It also points at the sibling gluecron_list_repo_tokens as the source of the id, distinguishing it from create/delete siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives the prerequisite path for obtaining the id (from gluecron_list_repo_tokens) and the required 'repo' scope, which tells the agent when it can successfully call. It does not explicitly contrast with alternatives such as gluecron_revoke_runner or gluecron_delete_repo, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_revoke_runnerADestructiveInspect
Revoke a CI runner by id: nothing is dispatched to it from now on, its next heartbeat is refused and it stops accepting jobs. Cannot be undone — register a new runner instead. Returns {id, revoked}.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Runner id (from gluecron_list_runners) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations flag destructiveHint=true, and the description goes further by spelling out the actual effects: no further dispatch, refused heartbeats, stops accepting jobs, and irreversibility. This is exactly the mutation impact an agent needs before calling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences: purpose, effects and irreversibility, then return shape. Zero filler and the most important constraint (cannot be undone) is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a single required param, no output schema, and destructive annotations already present, the description covers behavior, irreversibility, alternative action, and the return shape {id, revoked}. Nothing needed to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and already documents that id is the runner id from gluecron_list_runners; the description reinforces 'by id'. There is little room to add syntax beyond the single string identifier, so this is appropriately complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Revoke a CI runner by id') and the schema even points at gluecron_list_runners as the source of the id. Clearly distinguishable from siblings like gluecron_list_runners and gluecron_create_runner_registration_token.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explains the consequence and the correct alternative ('Cannot be undone — register a new runner instead'), which routes the agent to re-registration rather than retrying a revoke. No explicit when-not guidance beyond irreversibility, but the operative context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_revoke_tokenADestructiveInspect
Revoke one of your tokens by type and id. It stops working on its next use; this cannot be undone. type is pat (personal access token, glc_), repo (repository token, gcft_) or deploy (deploy token, gcdt_). PATs need 'admin' scope; repository and deploy tokens need 'repo'. Audit-logged.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Token id | |
| type | Yes | Token type: pat (personal access token, glc_), repo (repository token, gcft_) or deploy (deploy token, gcdt_) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare destructiveHint=true, and the description adds genuinely new behavioral context: destruction is deferred ('stops working on its next use'), irreversible ('cannot be undone'), authorized by specific scopes ('admin' for PATs, 'repo' for others), and audited. This is exactly the kind of disclosure an agent needs before a destructive call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four short sentences, no filler: action first, then irreversibility, then the type enum, then auth scopes and audit note. Every sentence carries operational weight.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter destructive tool with no output schema, the description covers what is needed: what it does, that it is irreversible, which types apply, and what scopes are required. Nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema already spells out both `id` and `type` (including the glc_/gcft_/gcdt_ prefixes). The description repeats that same type information rather than extending it, so it adds no meaning beyond the structured fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Front-loads a specific verb+resource: 'Revoke one of your tokens by type and id.' The three token types are enumerated, so scope is unambiguous. It loses a point for not distinguishing itself from the sibling gluecron_revoke_repo_token, which appears to cover an overlapping case.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implied usage is clear (revoke a token you no longer want active) and the required scopes per token type are stated, which helps an agent decide if it can call it. However, there is no explicit guidance on when to revoke versus gl030_rotate_token or gl030_revoke_repo_token, leaving sibling routing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_rotate_tokenADestructiveInspect
Rotate one of your tokens: mint a new secret with the same name, scopes / permissions, repository and expiry, returned ONCE as token. grace_seconds (default 0, max 604800 = 7 days) keeps the old secret working that long; 0 kills it now. Rotating again ends an earlier grace period. expected_rotation_count (from gluecron_get_token's rotationCount) makes it compare-and-swap; two concurrent rotations never both win. type is pat (personal access token, glc_), repo (repository token, gcft_) or deploy (deploy token, gcdt_). PATs need 'admin' scope; repository and deploy tokens need 'repo'. Audit-logged.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Token id | |
| type | Yes | Token type: pat (personal access token, glc_), repo (repository token, gcft_) or deploy (deploy token, gcdt_) | |
| grace_seconds | No | Seconds the old secret keeps working (0 to 604800). Default 0. | |
| expected_rotation_count | No | Optional compare-and-swap guard: the rotationCount you last saw. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the destructiveHint/readOnlyHint annotations: the new secret is returned ONCE, grace_seconds controls whether the old secret survives and for how long, a second rotation cancels an earlier grace period, expected_rotation_count gives compare-and-swap semantics, and the action is audit-logged. This is exactly the mutation-risk detail an agent needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action and the ONCE return, then terse parameter notes. It is dense but each clause carries distinct operational meaning; minor overlap with the schema's own parameter descriptions keeps it from being maximally tight.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the return-value burden and does so ('returned ONCE as `token`'). Combined with grace-period, concurrency, scope, and audit details, an agent has everything needed to call it correctly and safely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds value beyond the schema by explaining the concurrency behavior of expected_rotation_count, the default/max and old-secret effect of grace_seconds, and the scope requirements (admin for pat, repo otherwise) that the schema does not state.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (rotate) and resource (token) and immediately clarifies the mechanics: a new secret with the same name/scopes/repo/expiry. An agent can distinguish this from siblings like revoke_token, create_repo_token, and get_token without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear context, including that expected_rotation_count comes from gluecron_get_token's rotationCount, and the scope prerequisites per token type. It stops short of explicitly naming revoke_token or create_*_token as the when-not alternatives, so routing among the token-management siblings is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_search_codeARead-onlyInspect
Literal / regex code search (git grep, basic regex) across a repo at a ref. The dependable way to find code on this host — works on every repo, indexed or not. Optional scoping: path (a directory or file prefix, literal), glob (git pathspec glob such as src/**/*.ts, relative to path when both are given), ignore_case, and files_only (unique files with match counts instead of lines). Returns {owner, repo, ref, total, truncated, matches: [{file, line, text}]}, or with files_only {owner, repo, ref, total, totalMatches, truncated, files: [{file, count}]}. Omit ref for the default branch.
| Name | Required | Description | Default |
|---|---|---|---|
| ref | No | Branch / tag / sha (default: the repo's default branch) | |
| glob | No | Only search files matching this git pathspec glob (e.g. **/*.test.ts); relative to `path` when both are given | |
| path | No | Only search under this repo-relative directory or file (literal prefix, e.g. src/lib) | |
| repo | Yes | ||
| limit | No | Max matches, or max files with files_only (default 50, max 200) | |
| owner | Yes | ||
| query | Yes | Pattern (git grep basic regex) | |
| files_only | No | Return unique files with match counts instead of matching lines | |
| ignore_case | No | Case-insensitive match (default false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered; the description adds genuine behavioral context on top — the exact return shapes for both normal and files_only modes, the presence of a `truncated` flag, and the default-branch behavior when ref is omitted. It stops short of noting rate limits or how truncation is triggered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose, then scoping options, then return shape, then the ref default — a logical order. Dense but each clause carries information; the two return-shape snippets are slightly verbose but justified since no output schema exists.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 9-parameter tool with no output schema, the description covers the essential gaps: it documents both return formats, the truncation field, scoping interactions, and the default-ref behavior. Nothing an agent needs to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 78% (baseline 3), and the description meaningfully exceeds it: it clarifies that `path` is a literal prefix, that `glob` is a git pathspec glob, and crucially that glob is relative to `path` when both are given, plus what `files_only` changes about the result. owner/repo are left unexplained but are self-evident.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Literal / regex code search (git grep, basic regex) across a repo at a ref') and differentiates itself from indexed alternatives by noting it 'works on every repo, indexed or not'. An agent can tell this apart from semantic_search/find_symbol without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides a clear usage cue ('The dependable way to find code on this host') implying it is the fallback when indexed search isn't available, but it never names a specific alternative (e.g. semantic_search or find_symbol) or states an explicit when-not condition. Clear context, no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_search_issuesBRead-onlyInspect
Search issues by title/body keyword on a single repo, filtered by state. Returns ranked rows.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | ||
| limit | No | ||
| owner | Yes | ||
| query | Yes | Search keyword | |
| state | No | open | closed | all (default open) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, establishing the safety profile. The description adds that results are 'ranked rows,' which is useful but lacks details on ordering, pagination, or default behavior. No contradictions exist between description and annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence efficiently communicates purpose, scope, and return type with no extraneous words. Every part adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 5 parameters, no output schema, and a read-only search function, the description covers the core purpose but omits details like default state ('open'), limit defaults, pagination, and result structure. For a search tool, an agent would benefit from more behavioral context (e.g., ranking criteria, max results).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description clarifies that owner+repo specify a single repo and that the query searches title/body, adding meaning beyond the schema for required parameters. However, it does not explain the limit parameter or provide format details for query/state beyond what the schema offers. With 40% schema coverage, the description partially compensates but leaves gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb (search), resource (issues), and scope (single repo, filtered by state, by title/body keyword). It conveys the return type (ranked rows). However, it does not distinguish this tool from sibling search tools such as gluecron_search_prs or gluecron_semantic_search, which reduces clarity for an agent comparing options.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool vs. alternatives. It does not mention exclusions (e.g., when not to use), prerequisites, or when to prefer other issue search tools. The description only describes the tool's action without contextual usage advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_search_prsBRead-onlyInspect
Search pull requests by title/body keyword on a repo.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | ||
| limit | No | ||
| owner | Yes | ||
| query | Yes | ||
| state | No | open|closed|merged|all (default open) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint:true and destructiveHint:false. The description adds the behavioral detail that search is by 'title/body keyword', which is helpful but does not cover other aspects like pagination, rate limits, or output format. It adds marginal value beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no wasted words. However, it could be slightly more informative without sacrificing brevity, e.g., mentioning that results are paginated via the 'limit' parameter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 5 parameters, no output schema, and low param description coverage. The description is too sparse: it does not explain return format, ordering, pagination behavior, or how to use the 'state' filter. For a search tool, this is insufficient for an agent to confidently invoke it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 5 parameters with only 20% description coverage (only 'state' has a description). The tool description explains 'query' (keyword search by title/body) but leaves 'repo', 'owner', 'limit', and 'state' without added meaning. The description does not compensate sufficiently for the low schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the verb 'search' and the resource 'pull requests', and narrows the search by 'title/body keyword' and 'on a repo'. This distinguishes it from siblings like gluecron_list_prs (which lists without keyword) and gluecron_search_issues (which searches issues).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for keyword-based PR search on a repo, but it does not explicitly state when to use this tool versus alternatives like gluecron_list_prs or gluecron_search_issues. No exclusions or context is given, leaving the agent to infer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_search_reposARead-onlyInspect
Search repositories by owner, name, owner/name or description, case-insensitively: every public repo, plus the private ones you own or collaborate on when authenticated. Omit query (authenticated) to list YOUR repositories — the ones you own or were invited to — instead of searching. Mirrors GET /api/v2/search/repos. total is the full match count (not the page size) and nextOffset pages through it.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | stars | updated | name (default: stars) | |
| limit | No | Max rows per page (default 30, max 100) | |
| query | No | Search keyword — matches owner login, repo name, owner/name and description. Omit to list your own repositories. | |
| offset | No | Rows to skip. Use `nextOffset` from the previous response. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool read-only and non-destructive, and the description adds real value by disclosing case-insensitive matching, the authenticated scope for private repos, and pagination semantics: `total` is the full match count and `nextOffset` drives paging. No statement contradicts the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three dense sentences, with the core action and scope front-loaded and every clause earning its place. It packs mode selection, auth scope, API mapping, and pagination semantics without waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema, the description fills the important gaps: auth requirements, search scope, the list-my-repos mode, and pagination via `nextOffset` and `total`. The remaining details like sort defaults and max limit are already in the schema, so nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 all four parameters, which sets a baseline of 3. The description reinforces the `query` behavior by explaining the omit-to-list mode and case-insensitivity, but adds little about `sort`, `limit`, or `offset` beyond what the schema already says.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Search repositories by owner, name, owner/name or description' and clearly defines the scope: every public repo plus authenticated private repos. It does not explicitly contrast with the similarly named sibling gluecron_repo_search, so some sibling differentiation is left to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives an explicit mode rule: omit `query` (when authenticated) to list YOUR repositories instead of searching, and notes that private repos are only included when authenticated. It does not name alternative tools or say when to prefer a sibling, which is the main gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_security_ioc_hitsARead-onlyInspect
Site admins only (needs an 'admin'-scoped token). Campaign indicator-of-compromise hits: pushes, token uses and repositories that matched a reviewed signature in src/lib/security/campaign-iocs.json (e.g. the Gheist campaign: ci-sync-XXXXXX branches, sync-check.yml, user agent 'gheist'). Filter by signature_id, repository ('owner/name'), since (ISO date); limit (default 50, max 200) / offset. Returns {signatureVersion, signatures, totals, sweep, hits[{id, signatureId, campaign, severity, detectedBy, repository, ref, sha, tokenKind, tokenId, userAgent, evidence, createdAt}]}. Read-only; nothing is revoked.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows (default 50, max 200) | |
| since | No | Only hits at or after this ISO date/time | |
| offset | No | Rows to skip | |
| repository | No | Only hits on this repository, as owner/name | |
| signature_id | No | Only hits of this signature (e.g. gheist-2026-10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, yet the description adds real value: the admin-token requirement, the on-disk signature source, and the reassurance that nothing is revoked as a consequence of querying. It stops short of describing pagination cost or scan freshness/sweep staleness beyond naming the 'sweep' field.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the access gate and purpose, then filters, then return shape — a sensible order with no filler sentences. It is dense to the point of being run-on, packing auth, source file, filters, and the full return field list into one block.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by enumerating the returned object structure (signatureVersion, signatures, totals, sweep, hits[...] with all fields), plus the auth precondition and filter semantics. An agent can call this correctly and interpret the response without further lookup.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and each parameter already carries a description, so the schema does the heavy lifting. The description restates the same filter set (signature_id, repository, since, limit default 50/max 200, offset) without adding syntax or format detail beyond the schema — the baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific resource — campaign indicator-of-compromise hits — and enumerates the concrete match surfaces (pushes, token uses, repositories) plus the source file and example campaign. It never explicitly contrasts with the sibling gluecron_security_scan, so an agent must infer the boundary between 'list recorded hits' and 'run a scan'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states a hard prerequisite ('Site admins only, needs an admin-scoped token') and lists the available filter dimensions, which implies when the tool is useful. But there is no explicit when-to-use/when-not guidance and no named alternative (e.g. security_scan for a fresh sweep vs this for existing hit records).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_security_scanARead-onlyInspect
Everything Gluecron actually knows about a repository's security, in one honest call: OSV.dev CVE/GHSA advisories against the indexed dependency graph (with FIXED VERSIONS), Gluecron's supplemental advisory list, a full-tree committed-secret scan, and optionally a Claude semantic code review. Unlike gluecron_repo_health, an empty result is NEVER reported as a pass: every category returns status 'assessed' | 'partial' | 'not_assessed' | 'error' with a machine-readable reason code, so you can tell 'we checked and it is clean' from 'we never looked'. In particular, a repo whose dependency graph was never indexed returns dependency_advisories.status='not_assessed' (reason 'dependency_graph_not_indexed'), not an empty advisory list. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| ref | No | Branch, tag or commit SHA to scan the tree of. Default: the repo's default branch. Note advisories describe the INDEXED dependency graph, whose commit is reported separately — if it differs from this ref the advisory answer is downgraded to 'partial'. | |
| repo | Yes | Repo name | |
| owner | Yes | Repo owner username | |
| include_ai_review | No | Opt in to the Claude Sonnet semantic review (SQLi/XSS/SSRF/authz/crypto). Costs an Anthropic call and adds seconds. Default false. When it cannot run — no key, provider error, unparseable output — the category reports 'not_assessed', never a pass. | |
| max_candidate_lines | No | Cap on lines the secret detector inspects (1-200000, default 20000). The whole tree is always prefiltered; only lines that already matched a secret marker are inspected, so this rarely binds. When it does, committed_secrets reports 'partial' with the exact fraction. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint annotation, the description discloses honest-coverage semantics: status values 'assessed', 'partial', 'not_assessed', and 'error', a machine-readable reason code, and the specific not_assessed case for unindexed dependency graphs. It also explains that AI review failure is reported as 'not_assessed', never as a pass. This is substantial behavioral transparency beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but every sentence earns its place: it establishes scope, enumerates security categories, defines the honest status semantics, gives a concrete edge case, and notes read-only behavior. It is front-loaded with the tool's purpose and avoids filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite lacking an output schema, the description tells the agent exactly what categories will be returned, what statuses can appear, and how to interpret ambiguous cases like unindexed dependency graphs or a bound secret-scan line cap. This is sufficient for an agent to call the tool and reason about its results effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3; the schema already documents ref, include_ai_review, max_candidate_lines, owner, and repo in detail. The top-level description adds overall result semantics but does not add parameter-specific meaning beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states this tool is a repository security scan and enumerates exactly what it covers: OSV.dev advisories, supplemental advisories, committed-secret scan, and optional semantic AI review. It also distinguishes itself from gluecron_repo_health with a concrete behavioral difference, so an agent can tell which tool to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives strong contextual guidance by contrasting with gluecron_repo_health and explaining that empty results are never reported as passes. It clarifies when the AI review is optional and how to interpret non-indexed dependency graphs, but it does not state broader when-not-to-use conditions or other alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_semantic_searchARead-onlyInspect
Query the per-repo vector index (Voyage embeddings when configured, hash fallback otherwise). Reads the live per-push index (code_embeddings) first, falling back to the manually-reindexed chunk index (code_chunks). Returns {hits, source, indexed, indexedFiles} — indexed: false means the repo has never been indexed (empty hits are NOT 'no match'); indexedFiles is the live-index row count.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | ||
| limit | No | ||
| owner | Yes | ||
| query | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes well beyond the readOnlyHint/destructiveHint annotations. It discloses the fallback behavior (live index first, then chunk index), the return shape ({hits, source, indexed, indexedFiles}), and critically explains the semantic trap: `indexed: false` means the repo was never indexed, so empty hits are NOT 'no match'. This is exactly the kind of behavioral nuance an agent needs to interpret results correctly.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three dense sentences with no filler. The most important behavioral caveat (indexed: false vs empty hits) is front-loaded in the return-shape explanation. Every clause earns its place, and the description packs a lot of critical information into a compact space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only search tool with no output schema, the description covers the return shape, the fallback behavior, and the critical interpretation of `indexed: false`. It doesn't explain pagination or how `limit` interacts with the index, and it doesn't describe what a typical hit looks like, but the core calling contract is well covered. The absence of an output schema makes the return-shape disclosure especially valuable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the burden. It explains the query semantics (semantic search over code embeddings) and the meaning of the return fields, but it doesn't add detail about the `limit` parameter or the format of `owner`/`repo`. The description gives enough context for the core query parameter but leaves `limit` and identifier formats to the schema's basic types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool queries a per-repo vector index for semantic search, specifies the embedding mechanism (Voyage embeddings with hash fallback), and explains the read path (live per-push index first, then manually-reindexed chunk index). This distinguishes it from sibling tools like gluecron_repo_search and gluecron_find_symbol by focusing on semantic/vector search over code embeddings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool: when you need semantic search over a repo's code embeddings. It doesn't explicitly name alternatives or state when NOT to use it, but the semantic-search framing and the mention of the fallback index provide clear context. It could be improved by explicitly contrasting with gluecron_repo_search or gluecron_find_symbol.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_set_auto_mergeAIdempotentInspect
Arm (enabled: true) or disarm (enabled: false) auto-merge on one PR: it merges by itself through the full gated merge chain (CI, required checks, branch protection, CODEOWNERS, risk) once CI and every required check are green and no reviewer with write access has changes requested. Stays armed while anything is pending; last_attempt.reason says what it waits for. Arming is also the merge train's consent: on a repository with the train on, the train merges only armed PRs, so disarming holds the PR from it (an explicit gluecron_merge_pr still merges). Requires write access and 'repo' scope. merge_method: 'merge' only. Returns {number, auto_merge}.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | Repo name | |
| owner | Yes | Repo owner — username or organisation slug | |
| number | Yes | PR number | |
| enabled | Yes | true = arm, false = disarm | |
| merge_method | No | 'merge' (default; the only method the gated chain has) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and idempotentHint=true, so the mutation/idempotency profile is covered. The description adds real behavioral context beyond that — the gated merge chain, that the arm persists while pending, that `last_attempt.reason` reports the blocker, and the write-access/'repo' scope requirement. However, it arguably undersells that disarming is not harmless (it can hold a PR out of the train), and the 'destructiveHint: false' framing plus the partial return disclosure keeps this from being fully transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the verb pair and the returned shape, then progressively adds the gating chain, the train semantics, and permission requirements — a sensible ordering. It is dense rather than padded, but the repeated 'merge_method: merge only' clause duplicates schema content and the multi-clause sentences are long enough to slow scanning slightly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutating tool with five parameters and no output schema, the description covers the essentials: what gets armed, what the armed state waits on, how to inspect the blocker via `last_attempt.reason`, permission/scope prerequisites, and the return shape `{number, auto_merge}`. Nothing critical is left to inference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both `enabled` ('true = arm, false = disarm') and `merge_method` ("'merge' (default; the only method the gated chain has)") are already documented in structured fields. The description's main contribution is the behavioral consequence of `enabled`, but it restates the merge_method restriction verbatim rather than adding new semantics. Baseline 3 is appropriate given the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a concrete verb pair (arm/disarm) and a precisely scoped resource: auto-merge on exactly one PR, with the meaning of the `enabled` flag stated inline. It is clearly distinct from sibling gluecron_merge_pr, which it names as the explicit-merge alternative, so an agent can choose between them without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit when-to-use semantics: arming is the merge train's consent, disarming holds the PR from the train, and an explicit gluecron_merge_pr still merges. It also states the conditions under which the armed state actually fires (CI and all required checks green, no changes requested by a write-access reviewer), which is exactly the decision context an agent needs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_set_branch_protectionAIdempotentInspect
Set branch protection for one branch (partial update: fields you omit keep their value). Edits the rule named exactly after the branch; when only a glob rule covers it, a new exact rule is created seeded from the glob's settings and checks. required_checks replaces the required-check list ([] clears it). require_pr_run: a required check that names a workflow is met only by that workflow's pull_request run. Requires ADMIN access to the repo and 'repo' scope. Audit-logged. Returns the resulting rule plus {created, warnings}.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | Repo name | |
| owner | Yes | Repo owner — username or organisation slug | |
| branch | Yes | Branch name (not a pattern) | |
| allow_deletion | No | ||
| require_pr_run | No | Workflow checks count only from the PR's pull_request run | |
| required_checks | No | Array of check names that must pass (workflow names, gate names or commit-status contexts); [] clears the list | |
| allow_force_push | No | ||
| enable_auto_merge | No | Branch-wide autopilot auto-merge (K2) | |
| required_approvals | No | Human approvals required (0-10) | |
| require_ai_approval | No | ||
| require_green_gates | No | ||
| require_human_review | No | ||
| require_pull_request | No | ||
| dismiss_stale_reviews | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations by disclosing partial-update semantics (omitted fields keep their value), exact-rule editing, glob-rule seeding behavior, list-replacement behavior of required_checks, require_pr_run semantics, required ADMIN authorization, audit logging, and the return shape. This is rich behavioral context an agent could not infer from idempotentHint/destructiveHint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core operation and partial-update rule, then layers detail on the tricky parameters and the side effects. It is dense and information-rich rather than padded, though it is on the longer side and could be trimmed slightly without loss.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 14 parameters, no output schema, and a mutation with authorization requirements, the description covers the operation, side effects (audit-logged), auth needs, and the return shape ('resulting rule plus {created, warnings}'). It is close to complete, with the main gap being the undocumented boolean parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%, and the description explains the two most subtle parameters (required_checks replaces the list / [] clears; require_pr_run semantics). But roughly nine boolean parameters (allow_deletion, allow_force_push, enable_auto_merge, required_approvals, require_ai_approval, etc.) carry no meaning in either the description or the schema, so it only partially compensates for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Set branch protection for one branch') and immediately clarifies scope and mutation semantics, distinguishing it from the read counterpart gluecron_get_branch_protection. The exact-vs-glob rule behavior further pins down what the tool actually does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides a prerequisite ('Requires ADMIN access to the repo and 'repo' scope') and describes when a new rule is created versus edited, which is useful context. However, it never states when to prefer this tool over alternatives (e.g., the read tool) or when not to use it, leaving usage guidance implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_set_pr_draftAIdempotentInspect
Mark a pull request ready for review (draft=false) or convert it back to a draft (draft=true). Same rule as the web 'Ready for review' button: the caller needs write access and must be the PR author or the repository owner; only an open PR changes; marking ready starts the AI review. Idempotent. Requires 'repo' scope. Returns {number, isDraft, changed}.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | Repo name | |
| draft | Yes | true = convert to draft, false = mark ready for review | |
| owner | Yes | Repo owner — username or organisation slug | |
| number | Yes | PR number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds substantial context beyond annotations: caller needs write access and must be PR author or repo owner, only open PRs change, marking ready triggers AI review, and the 'repo' scope is required. Idempotency and non-destructive read/write profile are consistent with the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core action, then auth rule, side effect, and return shape in tight sentences; every sentence carries information with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Although no output schema exists, the description states the return shape {number, isDraft, changed}, and covers the auth, scope, and side-effect details an agent needs to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all four parameters are already documented. The description restates the draft=false/true mapping that the schema already provides, adding little new semantic detail, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (set draft state) with both directions spelled out via the draft=true/false values. An agent can distinguish this from siblings like update_pr or open_draft_pr without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clearly explains the two usage contexts (mark ready, revert to draft) and the same rule as the web 'Ready for review' button. It does not name sibling alternatives (e.g. open_draft_pr, update_pr), so it falls short of explicit when-not guidance, but the context is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_set_repo_secretAInspect
Create or replace one workflow secret on a repository, used in workflows as ${{ secrets.NAME }}. The name is saved upper-cased (cron_secret → CRON_SECRET); trailing spaces/newlines are removed from the value. The value is WRITE-ONLY: it is encrypted at rest and never returned, logged or audited — the result names the secret only. Pass expected_updated_at (the updated_at you last read) to update only if nobody changed it since: a newer value is never overwritten (error 'conflict'), a deleted secret is not re-created (error 'missing'). Setting the value it already has writes nothing (result 'unchanged'), so a retry is safe. Needs admin access to the repository and 'repo' scope. Audit-logged (name only). Returns {repository, name, created, result: 'created'|'updated'|'unchanged', updated_at}.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Secret name: letters, digits, underscores; not starting with a digit | |
| repo | Yes | Repo name | |
| owner | Yes | Repo owner — username or organisation slug | |
| value | Yes | The secret value (never echoed back) | |
| expected_updated_at | No | Optional ISO time: only update if the secret's updated_at is still this (from gluecron_list_repo_secrets) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only say readOnlyHint=false and destructiveHint=false. The description adds substantial context: the value is write-only and encrypted at rest, never returned/logged/audited, the result names only the secret, retries are safe, conflict/missing errors are described, and permissions plus audit logging are stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description front-loads purpose and then covers value handling, concurrency, permissions, and return shape in compact, information-dense sentences. Every sentence earns its place with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex mutation tool with minimal annotations and no output schema, the description fully covers write behavior, failure modes, required permissions, and return values. Nothing essential for correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds meaningful parameter semantics beyond the schema: the name is saved upper-cased, surrounding whitespace is stripped from the value, and expected_updated_at is explained as an optimistic-concurrency guard.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('create or replace'), resource ('one workflow secret on a repository'), and integration context ('${{ secrets.NAME }}'). It is clearly distinguishable from siblings such as gluecron_delete_repo_secret and gluecron_list_repo_secrets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explains concurrency usage via expected_updated_at and details behavior on conflict, missing, and unchanged outcomes. It also notes admin access and 'repo' scope. It lacks an explicit when-not or direct alternative comparison, but the operational context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_set_variableADestructiveIdempotentInspect
Create or replace an Actions variable (plain text, not for secrets — use gluecron_set_repo_secret). Pass owner + repo for a repository variable, owner + repo + environment for an environment variable, or org for an organisation variable (organisation variables need an admin-scoped token). Safe to retry: the same value again changes nothing. Audit-logged. Returns {name, effect: created|updated|unchanged, updatedAt}.
| Name | Required | Description | Default |
|---|---|---|---|
| org | No | Organisation slug | |
| name | Yes | Variable name: letters, digits and _, not starting with a digit or GITHUB_ (stored upper-case) | |
| repo | No | Repo name | |
| owner | No | Repo owner — username or organisation slug (omit when passing org) | |
| value | Yes | Plain-text value (not a secret: shown on the settings page and in logs), at most 48 KB | |
| environment | No | Environment name (or id) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare idempotentHint=true and destructiveHint=true; the description earns credit by explaining the idempotency mechanism ('the same value again changes nothing'), disclosing audit-logging, and giving the return shape. It does not spell out what happens to a pre-existing variable's environment scoping on replace, but the safety profile is otherwise well covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with purpose and the sibling exclusion, then scope routing, then behavior and return contract. No filler; every clause carries information an agent needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 6-parameter mutation tool with no output schema, the description covers purpose, scope selection, auth requirement, idempotency, audit side effect, and return value. Nothing material is left for the agent to guess.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds real semantics the schema cannot: which optional parameters must be combined for which variable scope, and the token privilege requirement for org. That is added meaning beyond field-level descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Create or replace an Actions variable') and immediately scopes it away from the sibling case ('plain text, not for secrets — use gluecron_set_repo_secret'). An agent can distinguish it from set_repo_secret and delete_variable without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly maps parameter combinations to outcomes: owner+repo for repository scope, owner+repo+environment for environment scope, org for organisation scope. It also names the alternative tool for secrets and the admin-token prerequisite for org variables, so when-to-use and when-not-to-use are both covered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_ship_specCInspect
Drop a spec file in .gluecron/specs/ with status: ready so the autopilot picks it up. Wraps voice-to-pr.shipAsSpec — handle both voice + manual specs. Requires 'repo' scope.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Spec body (Markdown) | |
| repo | Yes | ||
| owner | Yes | ||
| title | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and destructiveHint=false, which are consistent with the write nature of 'drop a spec file'. The description adds the requirement of 'repo' scope and implies a side effect of writing a file. However, it does not disclose whether the operation is idempotent, if it overwrites existing files, or any error conditions. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise at two sentences with no wasted words. However, it lacks structure (e.g., bullet points for key details) which could improve scannability. The information is front-loaded in the first sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 4 required parameters, no output schema, and low schema coverage, the description is incomplete. It does not explain the expected content of the spec file, the return behavior, or how the autopilot processes it. Users are left with significant ambiguity about proper usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 25% (only body has a description). The description does not explain the meaning or format of owner, repo, title, or body. It mentions 'spec file' and 'status: ready' but does not map these to parameters. The description fails to add value beyond what little the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool drops a spec file with status 'ready' for autopilot. It mentions it wraps voice-to-pr.shipAsSpec and handles both voice and manual specs. The verb 'drop' is metaphorical but the action is writing a spec file. No explicit distinction from sibling tools, but the purpose is specific enough.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide guidance on when to use this tool versus alternatives. It mentions 'handle both voice + manual specs' but fails to clarify situations where another tool (e.g., gluecron_write_file or gluecron_voice_to_pr) might be more appropriate. No exclusion criteria or prerequisites beyond 'repo' scope.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_trigger_workflowAInspect
Dispatch a workflow_dispatch run. Mirrors POST /api/v2/repos/.../actions/workflows/:filename/dispatches. Requires 'repo' scope.
| Name | Required | Description | Default |
|---|---|---|---|
| ref | No | Branch / tag / sha (default: repo default branch) | |
| repo | Yes | ||
| owner | Yes | ||
| inputs | No | Workflow inputs (object) | |
| filename | Yes | Workflow filename (e.g. ci.yml) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false and destructiveHint=false, so the description doesn't contradict them. The description adds the requirement for 'repo' scope and notes the mirroring of a POST endpoint, adding some behavioral context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences and immediately states the core action. It is front-loaded with the key verb 'Dispatch'. Slightly more detail on parameters would improve it, but it remains efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema and moderate parameter coverage, the description covers the basic purpose and a key requirement but does not fully explain return values or behavior for all parameters. Adequate but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 60% schema coverage (3 of 5 parameters described), the description does not elaborate on parameters beyond the schema. It adds no extra meaning for ref, inputs, or other parameters, leaving gaps for the agent.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Dispatch a workflow_dispatch run' and references the exact API endpoint, making the tool's purpose unambiguous. It distinguishes this tool from siblings like cancel_workflow_run or get_workflow_run.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions 'Requires repo scope', a prerequisite, but does not explicitly guide on when to use this tool versus alternatives (e.g., when to trigger vs. cancel). Usage context is implied but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_unlabel_issueAIdempotentInspect
Detach a label from an issue. Idempotent. Requires 'repo' scope. Returns {removed: boolean}.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | ||
| label | Yes | ||
| owner | Yes | ||
| number | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate idempotentHint=true and destructiveHint=false. The description adds 'Requires repo scope' and return type, providing useful extra context without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences, each adding value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given four required parameters and no output schema, the description is insufficient. It lacks parameter details that would help the agent correctly assemble the call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description only mentions 'label' in the action but does not explain the other three required parameters (owner, repo, number). With 0% schema coverage, this is a significant gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Detach a label from an issue') and the resource, distinguishing it from sibling tools like gluecron_label_issue.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
While it mentions idempotency and required scope, it does not explicitly state when to use this tool versus alternatives like removing a label via other means.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_update_prAIdempotentInspect
Edit a pull request's title, body, base branch and/or draft state. Title / body / base: the PR's author or anyone with write access; draft: the same rule as gluecron_set_pr_draft (write access and the PR author or repo owner; marking ready starts the AI review). Needs 'repo' scope. Changing the base (open PRs only) re-runs the PR's pull_request CI against the new base and disarms auto-merge. Returns {number, title, body, baseBranch, headBranch, isDraft, changed, autoMergeDisarmed, url}.
| Name | Required | Description | Default |
|---|---|---|---|
| base | No | New base branch | |
| body | No | New body (Markdown); an empty string clears it | |
| repo | Yes | Repo name | |
| draft | No | true = back to draft, false = ready for review (gluecron_set_pr_draft's rule: write access and the PR author or repo owner) | |
| owner | Yes | Repo owner — username or organisation slug | |
| title | No | New title | |
| number | Yes | PR number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations confirm mutation (readOnlyHint=false) and non-destructiveness, but the description adds value beyond them: required scope ('repo'), authorization rules per field, that marking ready starts AI review, and that a base change re-runs pull_request CI and disarms auto-merge. These side effects are not derivable from annotations or schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose, then permissions, then side effects, then return shape in four tight sentences. Dense but nearly every clause carries actionable information, though the parenthetical nesting in the draft clause is a touch heavy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, yet the description documents the result object fields ({number, title, body, baseBranch, headBranch, isDraft, changed, autoMergeDisarmed, url}), plus permissions and side effects – everything an agent needs to call and interpret this correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3, but the description adds meaning: body clearing via empty string, base changes restricted to open PRs and triggering CI, and the draft flag's permission rule and AI-review consequence. It reinforces rather than duplicates schema text.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Edit') and resource ('pull request's') and enumerates exactly which fields are mutable (title, body, base, draft). It also implicitly distinguishes itself from siblings like gluecron_set_pr_draft and gluecron_update_pr_branch by naming the fields and their edge cases.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear conditional guidance: permission rules per field, the draft rule ('the same rule as gluecron_set_pr_draft'), and that base changes only apply to open PRs. It doesn't state explicit when-not-to-use conditions against a direct alternative, so it falls just short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_update_pr_branchAInspect
Bring a PR branch up to date with its base: merge the base into the head server-side (the PR page's 'Update branch'). Never a force-push — the new head is a merge commit moved through the push gates, so it gets CI. On conflict nothing changes and conflictFiles lists the paths. Requires write access and 'repo' scope. Returns {ok, status: 'updated'|'up-to-date', headSha, previousHeadSha, baseSha, url} or {ok: false, reason, message, conflictFiles}.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | Repo name | |
| owner | Yes | Repo owner — username or organisation slug | |
| number | Yes | PR number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=false and destructiveHint=false; the description adds substantial behavior beyond that: the new head is a merge commit routed through push gates and thus gets CI, nothing changes on conflict, conflict paths surface in conflictFiles, and auth requirements are spelled out. This is a rich disclosure of mutation semantics and failure behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense paragraph with zero filler and the core action front-loaded before behavior and return details. No bullet structure, and return-field enumeration makes it long, but every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the return contract itself — both the success shape ({ok, status, headSha, previousHeadSha, baseSha, url}) and the failure shape with conflictFiles — plus prerequisites and the conflict outcome. An agent has everything needed to call and interpret it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so owner, repo, and number are already fully documented by the schema. The description adds no parameter syntax or format detail, so the baseline 3 applies; it compensates instead by describing the response fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource — bringing a PR branch up to date with its base via a server-side merge of base into head — and explicitly anchors it to the PR page's 'Update branch' action. This distinguishes it from siblings like gluecron_update_pr (PR metadata) and gluecron_merge_pr (landing the PR itself).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear use case and prerequisite conditions: requires write access and 'repo' scope, and explains what it is not (never a force-push). It does not explicitly name alternative tools such as merge_pr or closing/reopening, so it stops short of full when-not/alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_update_repoADestructiveInspect
Update repository description / visibility / default_branch. Requires 'admin' access on the repo (owner, org owners/admins, admin collaborators) and 'repo' scope. Returns {ok: true}.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | Repo name | |
| owner | Yes | Repo owner username | |
| automation | No | Per-repo automation dials, same keys as Settings → Automation: ai_review_mode, pr_triage_mode, issue_triage_mode, auto_merge_mode, ci_autofix_mode, auto_repair_mode, auto_issues_mode, doc_drift_mode, merge_train_mode. Values: off | suggest | auto (merge_train_mode runs only on auto). Only the keys given change. | |
| is_private | No | Set visibility (optional) | |
| description | No | New description (optional) | |
| default_branch | No | Set default branch (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=true, so the mutation risk is known. The description adds genuinely useful non-schema context: the exact access level required, the OAuth scope, and the return shape {ok: true}. It does not spell out what makes the operation destructive (e.g., visibility changes), but the auth/return detail is solid added value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly packed sentences with the action front-loaded and prerequisites/return value following. No filler, every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive mutation with full schema coverage and annotation-declared safety profile, the description covers the essential gaps: auth requirements and return shape. It is slightly incomplete in not mentioning the automation dials the tool can also modify, but no output schema exists and the return is disclosed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, including detailed docs for the nested 'automation' object, so the schema carries the parameter burden. The description restates three of the fields (description, visibility, default_branch) without adding format or constraint detail beyond the schema, which is the expected baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (update) and resource (repository) plus the concrete fields it can change, which distinguishes it from delete_repo, fork_repo, and other sibling repo tools. It omits the 'automation' dial capability that the schema exposes, so the purpose is slightly narrower than the tool actually is.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states the prerequisite (admin access on the repo and 'repo' scope) but gives no guidance on when to choose this tool versus alternatives or when not to use it. Usage context is implied by the 'update repository settings' framing rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_voice_to_prAInspect
Interpret a free-form voice transcript and either ship it as a spec or create an issue (caller picks via as). Wraps src/lib/voice-to-pr.ts. Requires 'repo' scope.
| Name | Required | Description | Default |
|---|---|---|---|
| as | No | 'spec' or 'issue' (default: auto via interpretVoiceTranscript) | |
| repo | Yes | ||
| owner | Yes | ||
| transcript | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false and destructiveHint=false, so the description's mention of creating issues/specs aligns but adds little beyond that. It notes a scope requirement ('repo') and internal file, but no details on side effects, rate limits, or failure modes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, front-loading the main action, then providing internal context, and finally a requirement. Every sentence adds value with no redundancy or extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 4 parameters (3 required), no output schema, and many sibling tools, the description omits essential details like what the tool returns, error handling, or explanations for 'owner', 'repo', and 'transcript'. The agent lacks enough context to use it correctly without additional documentation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one of four parameters ('as') has a schema description, and the description echoes that it picks 'spec' or 'issue'. The essential parameters 'owner', 'repo', and 'transcript' are not explained, leaving a significant gap for the agent despite low schema coverage (25%).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool interprets a free-form voice transcript and either ships a spec or creates an issue, using the 'as' parameter to choose. This distinguishes it from sibling tools like gluecron_ship_spec and gluecron_create_issue, which don't involve voice interpretation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions it requires 'repo' scope and wraps an internal module, but does not explicitly state when to use this tool versus alternatives like gluecron_create_issue or gluecron_ship_spec. The context of 'voice transcript' implies a specific use case, but no comparative guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_whoamiARead-onlyInspect
Who this connector is on this Gluecron instance: the signed-in username and email, whether that account is a site admin, the token's scopes, and how many repositories it owns or collaborates on. Call it first when a repository seems missing — the answer is usually which account authorized the connector. Anonymous callers get authenticated:false and a hint.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and non-destructive behavior, and the description goes beyond them by disclosing the anonymous caller behavior (authenticated:false plus a hint) and the specific output fields. This adds meaningful behavioral context without contradicting annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Every sentence earns its place: the first states what the tool returns, the second gives concrete when-to-use guidance, and the third covers edge-case behavior. It is front-loaded and free of filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read-only identity tool, this description is complete. It lists the return fields explicitly, covers the anonymous case, and provides practical troubleshooting context. The absence of an output schema is mitigated by the explicit field enumeration.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there is no parameter burden for the description to carry. The schema is trivially complete, and the description focuses on output semantics instead, which is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the tool as an identity introspection endpoint, naming exactly what it returns: username, email, admin status, token scopes, and repository ownership/collaboration counts. This clearly distinguishes it from the repository-action siblings, none of which are about the connector's own identity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit guidance to call this tool first when a repository seems missing, explaining that the cause is often the authorized account. It does not name alternative tools or state when not to use it, so it falls short of the strongest guidance, but the context is clear and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gluecron_write_fileAInspect
Create or update a file on a branch via git plumbing. Wraps createOrUpdateFileOnBranch. Pass content as a UTF-8 string OR content_base64 for binary. Meets the same branch protection, rulesets and secret scan as a git push, and fires CI/webhooks like one. Requires 'repo' scope.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| repo | Yes | ||
| owner | Yes | ||
| branch | Yes | ||
| content | No | UTF-8 file body (optional) | |
| message | Yes | Commit message | |
| content_base64 | No | Base64 file body (optional) | |
| expect_blob_sha | No | Optimistic-concurrency check: existing blob sha must match. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (which only mark it as a non-read-only, non-destructive write), the description discloses rich behavioral context: it meets the same branch protection, rulesets and secret scan as a git push, fires CI/webhooks like a push, and requires the 'repo' scope. These are exactly the side-effect and auth details an agent needs before invoking a mutation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a compact, front-loaded definition that leads with what the tool does and then adds constraints. The 'Wraps createOrUpdateFileOnBranch' clause is slightly redundant but still informative; otherwise every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema, the description covers the key behavioral facts (side effects, auth scope, encoding options). It could note what happens when the file already exists vs is newly created, but overall it is close to complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 50% schema description coverage, the description usefully clarifies the content vs content_base64 distinction (UTF-8 string vs base64 for binary) beyond the schema's terse '(optional)' labels. However it adds nothing for owner/repo/path/branch/message/expect_blob_sha, leaving half the parameters unenriched, so a baseline 3 is warranted.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb+resource ('Create or update a file on a branch') and adds the mechanism ('via git plumbing'). It is clear, but it does not explicitly distinguish this from close siblings like gluecron_apply_patch, gluecron_atomic_multi_file_commit, or gluecron_delete_file, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use or when-not-to-use guidance relative to the many sibling write tools. The only conditional phrasing ('content OR content_base64') is parameter choice, not tool selection, so the agent gets no routing help.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
- Changed
gluecron_create_deploy_token2 fields changed- changed
Input schema / properties / deliver / descriptionPrevious value: -"\"token\" (default): the secret in this result. \"exchange\": a single-use 60 s URL git's credential helper spends — the secret never appears here."New value: +"\"exchange\" (default): a single-use 60 s URL git's credential helper spends — the secret never appears here. \"token\": a read-only secret in this result (refused with read_only: false)." - changed
Input schema / properties / token_id / descriptionPrevious value: -"With deliver \"exchange\": a fresh exchange URL for this existing grant (one you created) instead of a new grant."New value: +"A fresh exchange URL for this existing grant (one you created) instead of a new grant."
1 tool update
- Changed
gluecron_create_deploy_token2 fields changed- added
Input schema / properties / deliverAdded value: +{ + "description": "\"token\" (default): the secret in this result. \"exchange\": a single-use 60 s URL git's credential helper spends — the secret never appears here.", + "type": "string" +} - added
Input schema / properties / token_idAdded value: +{ + "description": "With deliver \"exchange\": a fresh exchange URL for this existing grant (one you created) instead of a new grant.", + "type": "string" +}
6 tool updates
- Added
gluecron_ci_health - Added
gluecron_commit_pr_conflict_resolution - Changed
gluecron_create_repo_token1 field changed- changed
Input schema / properties / permissions / descriptionPrevious value: -"Object of level per permission — keys contents, issues, pull_requests, statuses, actions; values none | read | write; omitted keys are none; at least one must be read or write. Example: {\"actions\": \"read\"}."New value: +"Object of level per permission — keys contents, issues, pull_requests, statuses, actions, runners; values none | read | write (runners: none | read only — it lists the owner's CI runners via GET /api/v2/repos/:owner/:repo/actions/runners and reads nothing of the repository); omitted keys are none; at least one must be read or write. Example: {\"actions\": \"read\"}, or {\"runners\": \"read\"} for a runner audit."
- Added
gluecron_list_pr_conflicts - Added
gluecron_list_ready_to_merge - Added
gluecron_resolve_pr_conflict
1 tool update
- Changed
gluecron_create_runner_registration_token2 fields changed- added
Input schema / properties / exclusiveAdded value: +{ + "description": "Label-only runner (default false): offered only jobs whose runs-on labels it all has, never the account's default lane. Fixed at registration; a heartbeat cannot change it.", + "type": "boolean" +} - added
Input schema / properties / repositoriesAdded value: +{ + "description": "Exclusive runners only: comma-separated repository names of this owner it serves (default: all of them)", + "type": "string" +}
1 tool update
- Added
gluecron_security_ioc_hits
3 tool updates
- Added
gluecron_delete_branch - Added
gluecron_delete_comment - Added
gluecron_edit_comment
1 tool update
- Changed
gluecron_prioritize_workflow_run1 field changed- added
Input schema / properties / levelAdded value: +{ + "description": "normal (default) | high | critical — high and critical need a site admin", + "type": "string" +}
4 tool updates
- Added
gluecron_delete_variable - Added
gluecron_get_variable - Added
gluecron_list_variables - Added
gluecron_set_variable
4 tool updates
- Changed
gluecron_delete_repo1 field changed- changed
Input schema / properties / owner / descriptionPrevious value: -"Repo owner username"New value: +"Repo owner — username or organisation slug"
- Added
gluecron_list_deleted_repos - Added
gluecron_purge_repo - Added
gluecron_restore_repo
2 tool updates
- Added
gluecron_backup_status - Added
gluecron_learning_status
2 tool updates
- Added
gluecron_delete_repo_secret - Changed
gluecron_set_repo_secret1 field changed- added
Input schema / properties / expected_updated_atAdded value: +{ + "description": "Optional ISO time: only update if the secret's updated_at is still this (from gluecron_list_repo_secrets)", + "type": "string" +}
1 tool update
- Added
gluecron_ci_executor
4 tool updates
- Added
gluecron_get_token - Added
gluecron_list_tokens - Added
gluecron_revoke_token - Added
gluecron_rotate_token
2 tool updates
- Added
gluecron_list_repo_secrets - Added
gluecron_set_repo_secret
Related MCP Connectors
GitHub Copilot MCP: code, repo, PR, workflow tools for AI assistants.
Team memory for AI coding agents and code reviews, reviewed by humans and served over MCP.
Repo intel for AI coding agents: overview, PRs, contributors, hot files, CI, deps. Remote MCP.
MCP server for your apps' tools and custom tools, plus hosted AI agents and approval-gated workflows
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables automated AI-powered code review for pull requests across GitHub, GitLab, Bitbucket, and Azure DevOps via webhooks, and manual code review through MCP tools using Groq, Claude, or GPT-4.1-
- AlicenseNot gradedqualityBmaintenanceEnables AI tools to drive role-aware Git collaboration through nine MCP tools, including starting tasks, staging/committing/pushing changes, submitting pull requests with GitHub-native auto-merge, checking status, syncing, and listing team rosters.MIT

ThinkReview MCPofficial
AlicenseNot gradedqualityAmaintenanceHosted MCP server that enables AI code reviews on GitHub, GitLab, Azure DevOps, and Bitbucket PR/MR URLs via a single tool (review_url_code), integrating with Cursor, Claude Code, Claude Desktop, and GitHub Copilot through OAuth or Bearer token authentication.1MIT- AlicenseNot gradedqualityDmaintenanceA secure and scalable Git MCP server giving AI agents powerful version control for local and (soon) serverless environments.192 npmApache 2.0
Glama MCP Gateway
Add one secure layer between your agents and this server.