{
  "schemaVersion": "1.0",
  "item": {
    "slug": "merge-check",
    "name": "Merge Check",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/tag-assistant/merge-check",
    "canonicalUrl": "https://clawhub.ai/tag-assistant/merge-check",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/merge-check",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=merge-check",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "references/rejection-taxonomy.md",
      "scripts/merge-check.sh"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "slug": "merge-check",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-05T13:08:06.164Z",
      "expiresAt": "2026-05-12T13:08:06.164Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=merge-check",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=merge-check",
        "contentDisposition": "attachment; filename=\"merge-check-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "merge-check"
      },
      "scope": "item",
      "summary": "Item download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this item.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/merge-check"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/merge-check",
    "agentPageUrl": "https://openagent3.xyz/skills/merge-check/agent",
    "manifestUrl": "https://openagent3.xyz/skills/merge-check/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/merge-check/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Merge Check",
        "body": "Predicts whether a GitHub PR will get merged by analyzing it against a comprehensive rejection vector taxonomy. Not a generic code quality tool — this answers: \"Will this PR get merged by the maintainer?\""
      },
      {
        "title": "Quick Start",
        "body": "Run the data gathering script:\nbash skills/merge-check/scripts/merge-check.sh owner/repo#123\n# or\nbash skills/merge-check/scripts/merge-check.sh https://github.com/owner/repo/pull/123\n\n\nParse the JSON output\nAnalyze against the dimensions below\nProduce the mergeability report"
      },
      {
        "title": "Analysis Dimensions",
        "body": "After gathering data, analyze across ALL of these dimensions. Load skills/merge-check/references/rejection-taxonomy.md for the detailed rejection vector framework."
      },
      {
        "title": "1. Technical Signals (Automated Gates)",
        "body": "CI status: Are all checks passing? Any failed or pending?\nBuild status: Does it compile/build?\nCoverage: Any coverage regression indicated?"
      },
      {
        "title": "2. PR Hygiene",
        "body": "Size (most predictive single factor):\n\n🟢 <400 LOC changed — ideal, easy to review\n🟡 400–1000 LOC — risky, reviewer fatigue\n🔴 >1000 LOC — danger zone, likely to stall or get rejected\n\n\nFile spread: Concentrated in one area or scattered across directories?\nSingle concern: Does it do one thing, or is it a kitchen-sink PR?\nTitle & description: Clear, descriptive? Or vague/empty?\nLinked issue: Does it reference an issue? (Signals intentionality)\nCommit hygiene: Clean messages? Reasonable count? Squash-ready?"
      },
      {
        "title": "3. Architectural Fit",
        "body": "Pattern consistency: Does it follow repo conventions? (language, directory structure, naming)\nDependencies: New dependencies introduced? (High friction signal)\nScope creep: Does it touch things outside its stated purpose?\nFile types: Consistent with repo's tech stack?"
      },
      {
        "title": "4. Review Status",
        "body": "Approvals: Any already? How many required?\nChanges requested: Outstanding and unaddressed? (Strong rejection signal)\nReviewer assignment: Are required reviewers assigned?\nReview comment sentiment: Positive, neutral, or adversarial?\nCODEOWNERS: Does the PR touch files with code owners? Are they reviewing?"
      },
      {
        "title": "5. Process Compliance",
        "body": "Draft status: Draft PRs won't merge\nBlocking labels: WIP, do-not-merge, needs-work, etc.\nPR template: Was it followed? (Empty template = red flag)\nCLA/DCO: If repo requires it, is it signed?"
      },
      {
        "title": "6. Social/Meta Signals",
        "body": "Author merge history: What % of this author's recent PRs were merged in this repo?\nStaleness: How long has it been open? (>2 weeks = concern, >30 days = likely abandoned)\nActivity level: Recent comments/updates, or radio silence?\nFirst-time contributor: Higher rejection rate for newcomers"
      },
      {
        "title": "Output Format",
        "body": "Produce a structured report:"
      },
      {
        "title": "Mergeability Score",
        "body": "🟢 High (>80% likely to merge) — No blockers, reviews positive, CI green\n🟡 Medium (40–80%) — Some concerns but addressable\n🔴 Low (<40%) — Significant blockers present"
      },
      {
        "title": "Report Sections",
        "body": "Mergeability Score: 🟢/🟡/🔴 with percentage estimate\nRisk Factors: Bullet list of specific concerns, ordered by severity\nStrengths: What's working in the PR's favor\nRecommendations: Actionable steps to improve mergeability (if not already 🟢)\nVerdict: One-sentence summary"
      },
      {
        "title": "Example Output",
        "body": "## PR Mergeability Report: owner/repo#123\n\n**Score: 🟡 Medium (~55%)**\n\n### Risk Factors\n- ⚠️ 847 lines changed — approaching reviewer fatigue threshold\n- ⚠️ Changes requested by @maintainer not yet addressed\n- ⚠️ Touches 12 files across 6 directories — scattered scope\n- ℹ️ No linked issue\n\n### Strengths\n- ✅ All 14 CI checks passing\n- ✅ Clear title and detailed description\n- ✅ Author has 73% merge rate in this repo (8/11 recent PRs)\n- ✅ Active discussion — last update 2 hours ago\n\n### Recommendations\n1. Address @maintainer's review comments before requesting re-review\n2. Consider splitting into smaller PRs (config changes vs logic changes)\n3. Link the relevant issue for traceability\n\n### Verdict\nSolid PR with passing CI and an active author, but stalled on unaddressed review feedback — resolving those comments is the critical path to merge."
      },
      {
        "title": "Script Reference",
        "body": "The script (scripts/merge-check.sh) gathers all data via gh CLI and outputs a single JSON object with these keys:\n\nKeyContentsprFull PR metadata (title, body, author, state, draft, labels, reviewers)filesList of changed files with patch statsdiff_statsTotal additions, deletions, changed files countchecksCI/check run results for the head commitreviewsAll reviews (approved, changes_requested, commented)review_commentsInline review commentsissue_commentsPR conversation commentscommitsCommit list with messagesrepoRepository metadata (language, size, defaults)author_historyAuthor's recent closed PRs and merge ratehas_codeownersBooleanhas_contributingBoolean"
      },
      {
        "title": "Error Handling",
        "body": "The script outputs \"error\" fields when individual API calls fail (e.g., rate limits, 404s). Analyze what's available and note any missing data in the report."
      }
    ],
    "body": "Merge Check\n\nPredicts whether a GitHub PR will get merged by analyzing it against a comprehensive rejection vector taxonomy. Not a generic code quality tool — this answers: \"Will this PR get merged by the maintainer?\"\n\nQuick Start\nRun the data gathering script:\nbash skills/merge-check/scripts/merge-check.sh owner/repo#123\n# or\nbash skills/merge-check/scripts/merge-check.sh https://github.com/owner/repo/pull/123\n\nParse the JSON output\nAnalyze against the dimensions below\nProduce the mergeability report\nAnalysis Dimensions\n\nAfter gathering data, analyze across ALL of these dimensions. Load skills/merge-check/references/rejection-taxonomy.md for the detailed rejection vector framework.\n\n1. Technical Signals (Automated Gates)\nCI status: Are all checks passing? Any failed or pending?\nBuild status: Does it compile/build?\nCoverage: Any coverage regression indicated?\n2. PR Hygiene\nSize (most predictive single factor):\n🟢 <400 LOC changed — ideal, easy to review\n🟡 400–1000 LOC — risky, reviewer fatigue\n🔴 >1000 LOC — danger zone, likely to stall or get rejected\nFile spread: Concentrated in one area or scattered across directories?\nSingle concern: Does it do one thing, or is it a kitchen-sink PR?\nTitle & description: Clear, descriptive? Or vague/empty?\nLinked issue: Does it reference an issue? (Signals intentionality)\nCommit hygiene: Clean messages? Reasonable count? Squash-ready?\n3. Architectural Fit\nPattern consistency: Does it follow repo conventions? (language, directory structure, naming)\nDependencies: New dependencies introduced? (High friction signal)\nScope creep: Does it touch things outside its stated purpose?\nFile types: Consistent with repo's tech stack?\n4. Review Status\nApprovals: Any already? How many required?\nChanges requested: Outstanding and unaddressed? (Strong rejection signal)\nReviewer assignment: Are required reviewers assigned?\nReview comment sentiment: Positive, neutral, or adversarial?\nCODEOWNERS: Does the PR touch files with code owners? Are they reviewing?\n5. Process Compliance\nDraft status: Draft PRs won't merge\nBlocking labels: WIP, do-not-merge, needs-work, etc.\nPR template: Was it followed? (Empty template = red flag)\nCLA/DCO: If repo requires it, is it signed?\n6. Social/Meta Signals\nAuthor merge history: What % of this author's recent PRs were merged in this repo?\nStaleness: How long has it been open? (>2 weeks = concern, >30 days = likely abandoned)\nActivity level: Recent comments/updates, or radio silence?\nFirst-time contributor: Higher rejection rate for newcomers\nOutput Format\n\nProduce a structured report:\n\nMergeability Score\n🟢 High (>80% likely to merge) — No blockers, reviews positive, CI green\n🟡 Medium (40–80%) — Some concerns but addressable\n🔴 Low (<40%) — Significant blockers present\nReport Sections\nMergeability Score: 🟢/🟡/🔴 with percentage estimate\nRisk Factors: Bullet list of specific concerns, ordered by severity\nStrengths: What's working in the PR's favor\nRecommendations: Actionable steps to improve mergeability (if not already 🟢)\nVerdict: One-sentence summary\nExample Output\n## PR Mergeability Report: owner/repo#123\n\n**Score: 🟡 Medium (~55%)**\n\n### Risk Factors\n- ⚠️ 847 lines changed — approaching reviewer fatigue threshold\n- ⚠️ Changes requested by @maintainer not yet addressed\n- ⚠️ Touches 12 files across 6 directories — scattered scope\n- ℹ️ No linked issue\n\n### Strengths\n- ✅ All 14 CI checks passing\n- ✅ Clear title and detailed description\n- ✅ Author has 73% merge rate in this repo (8/11 recent PRs)\n- ✅ Active discussion — last update 2 hours ago\n\n### Recommendations\n1. Address @maintainer's review comments before requesting re-review\n2. Consider splitting into smaller PRs (config changes vs logic changes)\n3. Link the relevant issue for traceability\n\n### Verdict\nSolid PR with passing CI and an active author, but stalled on unaddressed review feedback — resolving those comments is the critical path to merge.\n\nScript Reference\n\nThe script (scripts/merge-check.sh) gathers all data via gh CLI and outputs a single JSON object with these keys:\n\nKey\tContents\npr\tFull PR metadata (title, body, author, state, draft, labels, reviewers)\nfiles\tList of changed files with patch stats\ndiff_stats\tTotal additions, deletions, changed files count\nchecks\tCI/check run results for the head commit\nreviews\tAll reviews (approved, changes_requested, commented)\nreview_comments\tInline review comments\nissue_comments\tPR conversation comments\ncommits\tCommit list with messages\nrepo\tRepository metadata (language, size, defaults)\nauthor_history\tAuthor's recent closed PRs and merge rate\nhas_codeowners\tBoolean\nhas_contributing\tBoolean\nError Handling\n\nThe script outputs \"error\" fields when individual API calls fail (e.g., rate limits, 404s). Analyze what's available and note any missing data in the report."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/tag-assistant/merge-check",
    "publisherUrl": "https://clawhub.ai/tag-assistant/merge-check",
    "owner": "tag-assistant",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/merge-check",
    "downloadUrl": "https://openagent3.xyz/downloads/merge-check",
    "agentUrl": "https://openagent3.xyz/skills/merge-check/agent",
    "manifestUrl": "https://openagent3.xyz/skills/merge-check/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/merge-check/agent.md"
  }
}