{
  "schemaVersion": "1.0",
  "item": {
    "slug": "github-issue-resolver",
    "name": "GitHub Issue Resolver",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/Ashwinhegde19/github-issue-resolver",
    "canonicalUrl": "https://clawhub.ai/Ashwinhegde19/github-issue-resolver",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/github-issue-resolver",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=github-issue-resolver",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "guardrails.json",
      "scripts/audit.py",
      "scripts/create_pr.py",
      "scripts/sandbox.py",
      "scripts/recommend.py"
    ],
    "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": "github-issue-resolver",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-03T17:52:33.647Z",
      "expiresAt": "2026-05-10T17:52:33.647Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=github-issue-resolver",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=github-issue-resolver",
        "contentDisposition": "attachment; filename=\"github-issue-resolver-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "github-issue-resolver"
      },
      "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/github-issue-resolver"
    },
    "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/github-issue-resolver",
    "agentPageUrl": "https://openagent3.xyz/skills/github-issue-resolver/agent",
    "manifestUrl": "https://openagent3.xyz/skills/github-issue-resolver/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/github-issue-resolver/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": "GitHub Issue Resolver",
        "body": "Autonomous agent for discovering, analyzing, and fixing open GitHub issues — with a 5-layer guardrail system."
      },
      {
        "title": "⚠️ GUARDRAILS — Read First",
        "body": "Every action goes through guardrails. Before any operation:\n\nLoad guardrails.json config\nValidate scope (repo, branch, path)\nCheck action gate (auto/notify/approve)\nValidate command against allowlist\nLog to audit trail\n\nFor guardrail details, see references/guardrails-guide.md."
      },
      {
        "title": "Key Rules (Non-Negotiable)",
        "body": "Never touch protected branches (main, master, production)\nNever modify .env, secrets, CI configs, credentials\nNever force push\nNever modify dependency files without explicit approval\nNever modify own skill/plugin files\nOne issue at a time — finish or abandon before starting new\nAll dangerous actions require user approval (write code, commit, push, PR)\nEverything is logged to audit/ directory"
      },
      {
        "title": "Phase 1 — Issue Discovery",
        "body": "Trigger: User provides a GitHub repository (owner/repo).\n\nSteps:\n\nValidate repo against guardrails:\npython3 scripts/guardrails.py repo <owner> <repo>\n\nIf blocked, tell the user and stop.\n\n\nFetch, score, and present issues using the recommendation engine:\npython3 scripts/recommend.py <owner> <repo>\n\nThis automatically fetches open issues, filters out PRs, scores them by severity/impact/effort/freshness, and presents a formatted recommendation.\nAlways use recommend.py — never manually format issue output. The script ensures consistent presentation every time.\nFor raw JSON (e.g., for further processing):\npython3 scripts/recommend.py <owner> <repo> --json\n\n⏹️ STOP. Wait for user to select an issue."
      },
      {
        "title": "Phase 2 — Fixing",
        "body": "Trigger: User selects an issue.\n\nSteps:\n\nLock the issue (one-at-a-time enforcement):\npython3 scripts/guardrails.py issue_lock <owner> <repo> <issue_number>\n\n\n\nRead full issue thread including comments.\n\n\nClone the repo (Gate: notify):\npython3 scripts/sandbox.py run git clone https://github.com/<owner>/<repo>.git /tmp/openclaw-work/<repo>\n\n\n\nCreate a safe branch (Gate: auto):\npython3 scripts/sandbox.py run git checkout -b fix-issue-<number>\n\n\n\nExplore codebase — read relevant files. For each file:\npython3 scripts/guardrails.py path <file_path>\n\n\n\nPlan the fix — explain approach to user:\n## Proposed Fix\n- Problem: [root cause]\n- Solution: [what changes]\n- Files: [list of files and what changes in each]\n- Estimated diff size: [lines]\n\n⏹️ STOP. Wait for user to approve the plan before implementing.\n\nImplement the fix (Gate: approve):\n\nApply changes\nCheck diff size: python3 scripts/guardrails.py diff <line_count>\nLog: python3 scripts/audit.py log_action write_code success"
      },
      {
        "title": "Phase 3 — Testing",
        "body": "After implementing:\n\nFind and run tests (Gate: notify):\npython3 scripts/sandbox.py run npm test   # or pytest, cargo test, etc.\n\n\n\nIf tests fail AND autoRollbackOnTestFail is true:\n\nRevert all changes\nNotify user\nSuggest alternative approach\n\n\n\nIf no tests exist, write basic tests covering the fix.\n\n\nReport results to user."
      },
      {
        "title": "Phase 4 — Draft PR for Review (Approval REQUIRED)",
        "body": "⚠️ NEVER create PR automatically. Always ask first.\n\nDo NOT dump full diffs in chat. For any non-trivial project, push the branch\nand let the user review on GitHub where they get syntax highlighting, file-by-file\nnavigation, and inline comments.\n\nCommit changes (Gate: approve):\npython3 scripts/sandbox.py run git add .\npython3 scripts/sandbox.py run git commit -m \"Fix #<number>: <title>\"\n\n\n\nShow a change summary (NOT the raw diff) — keep it concise:\n## Changes\n- **src/models.py** — Added field validation (title length, enum checks)\n- **app.py** — Added validation to POST endpoint, 400 error responses\n- **tests/test_app.py** — 22 new tests covering validation rules\n- 4 files changed, ~100 lines of source + ~150 lines of tests\n- All tests passing ✅\n\n\n\nAsk explicitly: \"Ready to push and create a draft PR?\"\n\n\nOnly after user says \"yes\" (Gate: approve):\npython3 scripts/sandbox.py run git push -u origin fix-issue-<number>\npython3 scripts/sandbox.py run gh pr create --draft --title \"...\" --body \"...\"\n\nNote: PRs are always created as draft by default.\nThe PR body should include a detailed description of all changes, test results,\nand link to the issue (Closes #N).\n\n\nShare the PR link — user reviews on GitHub.\n\n\nUnlock the issue:\npython3 scripts/guardrails.py issue_unlock"
      },
      {
        "title": "Scripts Reference",
        "body": "ScriptPurposeRun Without Readingscripts/recommend.pyPrimary entry point — fetch, score, and present issues✅scripts/fetch_issues.pyRaw issue fetcher (used internally by recommend.py)✅scripts/analyze_issue.pyDeep analysis of single issue✅scripts/create_pr.pyPR creation wrapper✅scripts/guardrails.pyGuardrail enforcement engine✅scripts/sandbox.pySafe command execution wrapper✅scripts/audit.pyAction logger✅"
      },
      {
        "title": "References",
        "body": "references/quick-reference.md — GitHub API reference, scoring rubric, test commands\nreferences/guardrails-guide.md — Full guardrails documentation and customization"
      }
    ],
    "body": "GitHub Issue Resolver\n\nAutonomous agent for discovering, analyzing, and fixing open GitHub issues — with a 5-layer guardrail system.\n\n⚠️ GUARDRAILS — Read First\n\nEvery action goes through guardrails. Before any operation:\n\nLoad guardrails.json config\nValidate scope (repo, branch, path)\nCheck action gate (auto/notify/approve)\nValidate command against allowlist\nLog to audit trail\n\nFor guardrail details, see references/guardrails-guide.md.\n\nKey Rules (Non-Negotiable)\nNever touch protected branches (main, master, production)\nNever modify .env, secrets, CI configs, credentials\nNever force push\nNever modify dependency files without explicit approval\nNever modify own skill/plugin files\nOne issue at a time — finish or abandon before starting new\nAll dangerous actions require user approval (write code, commit, push, PR)\nEverything is logged to audit/ directory\nWorkflow\nPhase 1 — Issue Discovery\n\nTrigger: User provides a GitHub repository (owner/repo).\n\nSteps:\n\nValidate repo against guardrails:\n\npython3 scripts/guardrails.py repo <owner> <repo>\n\n\nIf blocked, tell the user and stop.\n\nFetch, score, and present issues using the recommendation engine:\n\npython3 scripts/recommend.py <owner> <repo>\n\n\nThis automatically fetches open issues, filters out PRs, scores them by severity/impact/effort/freshness, and presents a formatted recommendation.\n\nAlways use recommend.py — never manually format issue output. The script ensures consistent presentation every time.\n\nFor raw JSON (e.g., for further processing):\n\npython3 scripts/recommend.py <owner> <repo> --json\n\n\n⏹️ STOP. Wait for user to select an issue.\n\nPhase 2 — Fixing\n\nTrigger: User selects an issue.\n\nSteps:\n\nLock the issue (one-at-a-time enforcement):\n\npython3 scripts/guardrails.py issue_lock <owner> <repo> <issue_number>\n\n\nRead full issue thread including comments.\n\nClone the repo (Gate: notify):\n\npython3 scripts/sandbox.py run git clone https://github.com/<owner>/<repo>.git /tmp/openclaw-work/<repo>\n\n\nCreate a safe branch (Gate: auto):\n\npython3 scripts/sandbox.py run git checkout -b fix-issue-<number>\n\n\nExplore codebase — read relevant files. For each file:\n\npython3 scripts/guardrails.py path <file_path>\n\n\nPlan the fix — explain approach to user:\n\n## Proposed Fix\n- Problem: [root cause]\n- Solution: [what changes]\n- Files: [list of files and what changes in each]\n- Estimated diff size: [lines]\n\n\n⏹️ STOP. Wait for user to approve the plan before implementing.\n\nImplement the fix (Gate: approve):\nApply changes\nCheck diff size: python3 scripts/guardrails.py diff <line_count>\nLog: python3 scripts/audit.py log_action write_code success\nPhase 3 — Testing\n\nAfter implementing:\n\nFind and run tests (Gate: notify):\n\npython3 scripts/sandbox.py run npm test   # or pytest, cargo test, etc.\n\n\nIf tests fail AND autoRollbackOnTestFail is true:\n\nRevert all changes\nNotify user\nSuggest alternative approach\n\nIf no tests exist, write basic tests covering the fix.\n\nReport results to user.\n\nPhase 4 — Draft PR for Review (Approval REQUIRED)\n\n⚠️ NEVER create PR automatically. Always ask first.\n\nDo NOT dump full diffs in chat. For any non-trivial project, push the branch and let the user review on GitHub where they get syntax highlighting, file-by-file navigation, and inline comments.\n\nCommit changes (Gate: approve):\n\npython3 scripts/sandbox.py run git add .\npython3 scripts/sandbox.py run git commit -m \"Fix #<number>: <title>\"\n\n\nShow a change summary (NOT the raw diff) — keep it concise:\n\n## Changes\n- **src/models.py** — Added field validation (title length, enum checks)\n- **app.py** — Added validation to POST endpoint, 400 error responses\n- **tests/test_app.py** — 22 new tests covering validation rules\n- 4 files changed, ~100 lines of source + ~150 lines of tests\n- All tests passing ✅\n\n\nAsk explicitly: \"Ready to push and create a draft PR?\"\n\nOnly after user says \"yes\" (Gate: approve):\n\npython3 scripts/sandbox.py run git push -u origin fix-issue-<number>\npython3 scripts/sandbox.py run gh pr create --draft --title \"...\" --body \"...\"\n\n\nNote: PRs are always created as draft by default. The PR body should include a detailed description of all changes, test results, and link to the issue (Closes #N).\n\nShare the PR link — user reviews on GitHub.\n\nUnlock the issue:\n\npython3 scripts/guardrails.py issue_unlock\n\nScripts Reference\nScript\tPurpose\tRun Without Reading\nscripts/recommend.py\tPrimary entry point — fetch, score, and present issues\t✅\nscripts/fetch_issues.py\tRaw issue fetcher (used internally by recommend.py)\t✅\nscripts/analyze_issue.py\tDeep analysis of single issue\t✅\nscripts/create_pr.py\tPR creation wrapper\t✅\nscripts/guardrails.py\tGuardrail enforcement engine\t✅\nscripts/sandbox.py\tSafe command execution wrapper\t✅\nscripts/audit.py\tAction logger\t✅\nReferences\nreferences/quick-reference.md — GitHub API reference, scoring rubric, test commands\nreferences/guardrails-guide.md — Full guardrails documentation and customization"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/Ashwinhegde19/github-issue-resolver",
    "publisherUrl": "https://clawhub.ai/Ashwinhegde19/github-issue-resolver",
    "owner": "Ashwinhegde19",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/github-issue-resolver",
    "downloadUrl": "https://openagent3.xyz/downloads/github-issue-resolver",
    "agentUrl": "https://openagent3.xyz/skills/github-issue-resolver/agent",
    "manifestUrl": "https://openagent3.xyz/skills/github-issue-resolver/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/github-issue-resolver/agent.md"
  }
}