Skip to main content
Glama
Keesan12

MartinLoop — Stop Runaway Loops, Bad Code & Token Waste

martin_create_pr

Destructive

Create or preview a GitHub pull request with a MartinLoop dossier body, then call gh when execute=true.

Instructions

Create or preview a GitHub PR with a MartinLoop dossier body. Use execute=true to actually call gh.

Input Schema

NameRequiredDescriptionDefault
baseNo
fileNo
titleNo
formatNo
latestNo
loopIdNo
executeNo
runsDirNo

Output Schema

NameRequiredDescriptionDefault
urlNoURL of the created pull request.
bodyYesGitHub-flavoured Markdown PR body containing the run dossier.
gradeYesVerification grade assigned to the run.
scoreYesNumeric verification score from 0–100.
titleYesSuggested GitHub pull-request title.
branchNoCurrent branch of the run's repository, when known.
loopIdYesMartinLoop run identifier used to generate the summary.
createdYesWhether a pull request was created.
executeYesWhether gh was asked to create the pull request.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changedv0.8.6
    • addedOutput schema / properties / branch
      Added value: +{
      +  "description": "Current branch of the run's repository, when known.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / created
      Added value: +{
      +  "description": "Whether a pull request was created.",
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / execute
      Added value: +{
      +  "description": "Whether gh was asked to create the pull request.",
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / url
      Added value: +{
      +  "description": "URL of the created pull request.",
      +  "type": "string"
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "loopId",
      -  "title",
      -  "body",
      -  "grade",
      -  "score"
      -]New value: +[
      +  "loopId",
      +  "title",
      +  "body",
      +  "grade",
      +  "score",
      +  "execute",
      +  "created"
      +]
  2. Changed1 schema field changedv0.6.6
    • removedInput schema / oneOf
      Removed value: -[
      -  {
      -    "required": [
      -      "file"
      -    ]
      -  },
      -  {
      -    "required": [
      -      "loopId"
      -    ]
      -  },
      -  {
      -    "required": [
      -      "latest"
      -    ]
      -  }
      -]
  3. Changed3 schema fields changedv0.5.6
    • changedOutput schema / additionalProperties
      Previous value: -trueNew value: +false
    • addedOutput schema / properties
      Added value: +{
      +  "body": {
      +    "description": "GitHub-flavoured Markdown PR body containing the run dossier.",
      +    "type": "string"
      +  },
      +  "grade": {
      +    "description": "Verification grade assigned to the run.",
      +    "enum": [
      +      "mergeable",
      +      "mergeable_with_review",
      +      "needs_review",
      +      "blocked",
      +      "insufficient_evidence"
      +    ],
      +    "type": "string"
      +  },
      +  "loopId": {
      +    "description": "MartinLoop run identifier used to generate the summary.",
      +    "type": "string"
      +  },
      +  "score": {
      +    "description": "Numeric verification score from 0–100.",
      +    "type": "number"
      +  },
      +  "title": {
      +    "description": "Suggested GitHub pull-request title.",
      +    "type": "string"
      +  }
      +}
    • addedOutput schema / required
      Added value: +[
      +  "loopId",
      +  "title",
      +  "body",
      +  "grade",
      +  "score"
      +]
  4. First observedv0.3.9

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true and idempotentHint=false, so the mutation risk is known. The description usefully adds that the operation previews by default and only performs the destructive 'gh' call when execute=true, which is valuable context beyond the annotations. It still omits auth requirements (gh CLI), what exactly gets created, and side effects of the dossier body.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with the core action front-loaded and the mode-switch instruction immediately after. No filler; slightly terse given the parameter count it must cover.

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

Completeness2/5

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

An output schema exists so return values need not be explained. But for an 8-parameter, destructive, non-idempotent tool with 0% schema coverage, the description only addresses the execute flag and leaves most input semantics undefined, which is inadequate for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% across 8 parameters. The description only clarifies one parameter (execute), leaving base, file, title, format, latest, loopId, and runsDir entirely undocumented in both the schema and the description. With such low coverage the description does not compensate for the gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Create or preview a GitHub PR with a MartinLoop dossier body'), which is clear and distinct from siblings like martin_pr_summary and martin_review_pr. It is not tautological and an agent can grasp the action without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'Use execute=true to actually call gh' clause tells the agent how to switch from preview to real execution, which implies the safe default. However, there is no explicit guidance on when to choose this tool over sibling PR tools (martin_pr_summary, martin_review_pr), so usage is only partially framed.

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