{
  "schemaVersion": "1.0",
  "item": {
    "slug": "finishing-branch",
    "name": "Finishing Branch",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/wpank/finishing-branch",
    "canonicalUrl": "https://clawhub.ai/wpank/finishing-branch",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/finishing-branch",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=finishing-branch",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "README.md",
      "SKILL.md",
      "scripts/cleanup_branches.py",
      "scripts/finish_branch.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. Then review README.md for any prerequisites, environment setup, or post-install checks. 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. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/finishing-branch"
    },
    "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/finishing-branch",
    "agentPageUrl": "https://openagent3.xyz/skills/finishing-branch/agent",
    "manifestUrl": "https://openagent3.xyz/skills/finishing-branch/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/finishing-branch/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. Then review README.md for any prerequisites, environment setup, or post-install checks. 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. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Finishing a Development Branch",
        "body": "Complete development work by presenting clear options and executing the chosen workflow."
      },
      {
        "title": "WHAT This Skill Does",
        "body": "After implementation is complete, guides you through verifying tests, presenting integration options, and executing the chosen path (merge, PR, keep, or discard)."
      },
      {
        "title": "WHEN To Use",
        "body": "Implementation is complete\nAll tests pass\nReady to integrate work into the main branch\n\nKEYWORDS: finish branch, complete branch, merge, PR, done with feature"
      },
      {
        "title": "Step 1: Verify Tests",
        "body": "npm test / cargo test / pytest / go test ./...\n\nIf tests fail: Stop. Cannot proceed until tests pass.\n\nTests failing (N failures). Must fix before completing:\n[Show failures]\n\nIf tests pass: Continue to Step 2."
      },
      {
        "title": "Step 2: Determine Base Branch",
        "body": "git merge-base HEAD main 2>/dev/null || git merge-base HEAD master 2>/dev/null\n\nOr confirm: \"This branch split from main - is that correct?\""
      },
      {
        "title": "Step 3: Present Options",
        "body": "Present exactly these 4 options:\n\nImplementation complete. What would you like to do?\n\n1. Merge back to <base-branch> locally\n2. Push and create a Pull Request\n3. Keep the branch as-is (I'll handle it later)\n4. Discard this work\n\nWhich option?"
      },
      {
        "title": "Step 4: Execute Choice",
        "body": "Option 1: Merge Locally\n\ngit checkout <base-branch>\ngit pull\ngit merge <feature-branch>\n<run tests again>\ngit branch -d <feature-branch>\n\nThen: Cleanup worktree (Step 5)\n\nOption 2: Push and Create PR\n\ngit push -u origin <feature-branch>\n\ngh pr create --title \"<title>\" --body \"$(cat <<'EOF'\n## Summary\n<2-3 bullets of what changed>\n\n## Test Plan\n- [ ] <verification steps>\nEOF\n)\"\n\nThen: Cleanup worktree (Step 5)\n\nOption 3: Keep As-Is\n\nReport: \"Keeping branch <name>. Worktree preserved at <path>.\"\n\nDo NOT cleanup worktree.\n\nOption 4: Discard\n\nConfirm first:\n\nThis will permanently delete:\n- Branch <name>\n- All commits: <commit-list>\n- Worktree at <path>\n\nType 'discard' to confirm.\n\nWait for exact confirmation. If confirmed:\n\ngit checkout <base-branch>\ngit branch -D <feature-branch>\n\nThen: Cleanup worktree (Step 5)"
      },
      {
        "title": "Step 5: Cleanup Worktree",
        "body": "For Options 1, 2, 4 only:\n\n# Check if in worktree\ngit worktree list | grep $(git branch --show-current)\n\n# If yes:\ngit worktree remove <worktree-path>\n\nFor Option 3: Keep worktree."
      },
      {
        "title": "Quick Reference",
        "body": "OptionMergePushKeep WorktreeCleanup Branch1. Merge locally✓--✓2. Create PR-✓✓-3. Keep as-is--✓-4. Discard---✓ (force)"
      },
      {
        "title": "NEVER",
        "body": "Proceed with failing tests\nMerge without verifying tests on the result\nDelete work without typed confirmation (\"discard\")\nForce-push without explicit request\nSkip presenting all 4 options\nAutomatically cleanup worktree for Options 2 or 3\nAsk open-ended \"What should I do next?\" (use structured options)"
      },
      {
        "title": "Integration",
        "body": "Called by:\n\nsubagent-development (after all tasks complete)\nexecuting-plans (after all batches complete)\n\nPairs with:\n\ngit-worktrees - Cleans up worktree created by that skill"
      }
    ],
    "body": "Finishing a Development Branch\n\nComplete development work by presenting clear options and executing the chosen workflow.\n\nWHAT This Skill Does\n\nAfter implementation is complete, guides you through verifying tests, presenting integration options, and executing the chosen path (merge, PR, keep, or discard).\n\nWHEN To Use\nImplementation is complete\nAll tests pass\nReady to integrate work into the main branch\n\nKEYWORDS: finish branch, complete branch, merge, PR, done with feature\n\nThe Process\nStep 1: Verify Tests\nnpm test / cargo test / pytest / go test ./...\n\n\nIf tests fail: Stop. Cannot proceed until tests pass.\n\nTests failing (N failures). Must fix before completing:\n[Show failures]\n\n\nIf tests pass: Continue to Step 2.\n\nStep 2: Determine Base Branch\ngit merge-base HEAD main 2>/dev/null || git merge-base HEAD master 2>/dev/null\n\n\nOr confirm: \"This branch split from main - is that correct?\"\n\nStep 3: Present Options\n\nPresent exactly these 4 options:\n\nImplementation complete. What would you like to do?\n\n1. Merge back to <base-branch> locally\n2. Push and create a Pull Request\n3. Keep the branch as-is (I'll handle it later)\n4. Discard this work\n\nWhich option?\n\nStep 4: Execute Choice\nOption 1: Merge Locally\ngit checkout <base-branch>\ngit pull\ngit merge <feature-branch>\n<run tests again>\ngit branch -d <feature-branch>\n\n\nThen: Cleanup worktree (Step 5)\n\nOption 2: Push and Create PR\ngit push -u origin <feature-branch>\n\ngh pr create --title \"<title>\" --body \"$(cat <<'EOF'\n## Summary\n<2-3 bullets of what changed>\n\n## Test Plan\n- [ ] <verification steps>\nEOF\n)\"\n\n\nThen: Cleanup worktree (Step 5)\n\nOption 3: Keep As-Is\n\nReport: \"Keeping branch <name>. Worktree preserved at <path>.\"\n\nDo NOT cleanup worktree.\n\nOption 4: Discard\n\nConfirm first:\n\nThis will permanently delete:\n- Branch <name>\n- All commits: <commit-list>\n- Worktree at <path>\n\nType 'discard' to confirm.\n\n\nWait for exact confirmation. If confirmed:\n\ngit checkout <base-branch>\ngit branch -D <feature-branch>\n\n\nThen: Cleanup worktree (Step 5)\n\nStep 5: Cleanup Worktree\n\nFor Options 1, 2, 4 only:\n\n# Check if in worktree\ngit worktree list | grep $(git branch --show-current)\n\n# If yes:\ngit worktree remove <worktree-path>\n\n\nFor Option 3: Keep worktree.\n\nQuick Reference\nOption\tMerge\tPush\tKeep Worktree\tCleanup Branch\n1. Merge locally\t✓\t-\t-\t✓\n2. Create PR\t-\t✓\t✓\t-\n3. Keep as-is\t-\t-\t✓\t-\n4. Discard\t-\t-\t-\t✓ (force)\nNEVER\nProceed with failing tests\nMerge without verifying tests on the result\nDelete work without typed confirmation (\"discard\")\nForce-push without explicit request\nSkip presenting all 4 options\nAutomatically cleanup worktree for Options 2 or 3\nAsk open-ended \"What should I do next?\" (use structured options)\nIntegration\n\nCalled by:\n\nsubagent-development (after all tasks complete)\nexecuting-plans (after all batches complete)\n\nPairs with:\n\ngit-worktrees - Cleans up worktree created by that skill"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/wpank/finishing-branch",
    "publisherUrl": "https://clawhub.ai/wpank/finishing-branch",
    "owner": "wpank",
    "version": "0.1.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/finishing-branch",
    "downloadUrl": "https://openagent3.xyz/downloads/finishing-branch",
    "agentUrl": "https://openagent3.xyz/skills/finishing-branch/agent",
    "manifestUrl": "https://openagent3.xyz/skills/finishing-branch/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/finishing-branch/agent.md"
  }
}