Provider-level GitHub merge transaction primitive for managing PR merge authorization, provenance validation, and merge hold controls
This server exhibits significant definition quality gaps. Tool names lack clear action verbs (e.g., 'admit', 'arm', 'emit' are domain-specific jargon, not standard verb_noun patterns). Descriptions are present but highly technical and assume deep domain knowledge of GitHub merge transactions, making them difficult for LLMs to parse. Input schemas are visible with type annotations (PullRequestRef, string), but parameter descriptions are minimal (10-30 chars), well below the 72-char baseline. No output schemas are documented. Error handling is present in code but not surfaced in tool definitions. The 'emit' tool conflates multiple concerns (hold, revoke, retire, admit, arm operations). Overall, definitions prioritize implementation detail over LLM usability.
Run shared non-mutating source/terminal admission on an exact live head. Validates issue terminal separation and fallback provenance before merge authorization.
Authorize merge by enabling native auto-merge with compare-and-swap head verification. Runs shared admissions (terminal separation, fallback provenance) before arming.
Emit structured output for merge transaction operations (hold, revoke, retire, admit, arm).
Validate provenance for auto-recovered fallback PRs created by agent-daemon.sh. Ensures all commits carry matching machine-readable provenance (Source dispatch and/or Dispatched-By/Spawned-By trailers).
Pure trusted merge-control classifier. Extracts the first non-empty control line from issue comment body if author is trusted (OWNER, MEMBER, or COLLABORATOR).
Persist a merge hold by applying a durable label, then revoke all live merge authorization. Ensures exact-head verification at each phase.
Tool names lack standard action verbs. 'admit', 'arm', 'hold', 'revoke', 'retire', 'emit' are domain jargon, not verb_noun patterns (get_, create_, update_, delete_, search_). LLMs cannot infer intent from names alone.
Parameter descriptions are extremely brief (10-30 chars), far below the 72-char baseline. E.g., 'Pull request reference' and 'Expected head SHA' lack context on why these are needed or what happens if they mismatch.
No output schemas documented. Tool definitions show input schemas but do not specify what fields are returned, preventing LLMs from planning downstream calls or extracting results.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 42 | 2026-07-28+ | v2 |
Retire a PR by revoking merge authorization, closing the PR, and verifying it is unmerged and unarmed.
Revoke merge authorization by dequeuing from merge queue and disabling auto-merge. Performs exact-head observation and verification.
'emit' tool conflates five operations (hold, revoke, retire, admit, arm) into a single tool. This violates single-responsibility principle and forces LLMs to reason about which operation to emit.
Tool descriptions assume deep domain knowledge (e.g., 'terminal separation', 'fallback provenance', 'compare-and-swap head verification'). LLMs cannot determine when to call these tools without extensive context.