{
  "schemaVersion": "1.0",
  "item": {
    "slug": "bitbucket-automation",
    "name": "Bitbucket Automation",
    "source": "tencent",
    "type": "skill",
    "category": "效率提升",
    "sourceUrl": "https://clawhub.ai/sohamganatra/bitbucket-automation",
    "canonicalUrl": "https://clawhub.ai/sohamganatra/bitbucket-automation",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/bitbucket-automation",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=bitbucket-automation",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md"
    ],
    "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",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-23T16:43:11.935Z",
      "expiresAt": "2026-04-30T16:43:11.935Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
        "contentDisposition": "attachment; filename=\"4claw-imageboard-1.0.1.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/bitbucket-automation"
    },
    "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/bitbucket-automation",
    "agentPageUrl": "https://openagent3.xyz/skills/bitbucket-automation/agent",
    "manifestUrl": "https://openagent3.xyz/skills/bitbucket-automation/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/bitbucket-automation/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": "Bitbucket Automation via Rube MCP",
        "body": "Automate Bitbucket operations including repository management, pull request workflows, branch operations, issue tracking, and workspace administration through Composio's Bitbucket toolkit."
      },
      {
        "title": "Prerequisites",
        "body": "Rube MCP must be connected (RUBE_SEARCH_TOOLS available)\nActive Bitbucket connection via RUBE_MANAGE_CONNECTIONS with toolkit bitbucket\nAlways call RUBE_SEARCH_TOOLS first to get current tool schemas"
      },
      {
        "title": "Setup",
        "body": "Get Rube MCP: Add https://rube.app/mcp as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.\n\nVerify Rube MCP is available by confirming RUBE_SEARCH_TOOLS responds\nCall RUBE_MANAGE_CONNECTIONS with toolkit bitbucket\nIf connection is not ACTIVE, follow the returned auth link to complete Bitbucket OAuth\nConfirm connection status shows ACTIVE before running any workflows"
      },
      {
        "title": "1. Manage Pull Requests",
        "body": "When to use: User wants to create, review, or inspect pull requests\n\nTool sequence:\n\nBITBUCKET_LIST_WORKSPACES - Discover accessible workspaces [Prerequisite]\nBITBUCKET_LIST_REPOSITORIES_IN_WORKSPACE - Find the target repository [Prerequisite]\nBITBUCKET_LIST_BRANCHES - Verify source and destination branches exist [Prerequisite]\nBITBUCKET_CREATE_PULL_REQUEST - Create a new PR with title, source branch, and optional reviewers [Required]\nBITBUCKET_LIST_PULL_REQUESTS - List PRs filtered by state (OPEN, MERGED, DECLINED) [Optional]\nBITBUCKET_GET_PULL_REQUEST - Get full details of a specific PR by ID [Optional]\nBITBUCKET_GET_PULL_REQUEST_DIFF - Fetch unified diff for code review [Optional]\nBITBUCKET_GET_PULL_REQUEST_DIFFSTAT - Get changed files with lines added/removed [Optional]\n\nKey parameters:\n\nworkspace: Workspace slug or UUID (required for all operations)\nrepo_slug: URL-friendly repository name\nsource_branch: Branch with changes to merge\ndestination_branch: Target branch (defaults to repo main branch if omitted)\nreviewers: List of objects with uuid field for reviewer assignment\nstate: Filter for LIST_PULL_REQUESTS - OPEN, MERGED, or DECLINED\nmax_chars: Truncation limit for GET_PULL_REQUEST_DIFF to handle large diffs\n\nPitfalls:\n\nreviewers expects an array of objects with uuid key, NOT usernames: [{\"uuid\": \"{...}\"}]\nUUID format must include curly braces: {123e4567-e89b-12d3-a456-426614174000}\ndestination_branch defaults to the repo's main branch if omitted, which may not be main\npull_request_id is an integer for GET/DIFF operations but comes back as part of PR listing\nLarge diffs can overwhelm context; always set max_chars (e.g., 50000) on GET_PULL_REQUEST_DIFF"
      },
      {
        "title": "2. Manage Repositories and Workspaces",
        "body": "When to use: User wants to list, create, or delete repositories or explore workspaces\n\nTool sequence:\n\nBITBUCKET_LIST_WORKSPACES - List all accessible workspaces [Required]\nBITBUCKET_LIST_REPOSITORIES_IN_WORKSPACE - List repos with optional BBQL filtering [Required]\nBITBUCKET_CREATE_REPOSITORY - Create a new repo with language, privacy, and project settings [Optional]\nBITBUCKET_DELETE_REPOSITORY - Permanently delete a repository (irreversible) [Optional]\nBITBUCKET_LIST_WORKSPACE_MEMBERS - List members for reviewer assignment or access checks [Optional]\n\nKey parameters:\n\nworkspace: Workspace slug (find via LIST_WORKSPACES)\nrepo_slug: URL-friendly name for create/delete\nq: BBQL query filter (e.g., name~\"api\", project.key=\"PROJ\", is_private=true)\nrole: Filter repos by user role: member, contributor, admin, owner\nsort: Sort field with optional - prefix for descending (e.g., -updated_on)\nis_private: Boolean for repository visibility (defaults to true)\nproject_key: Bitbucket project key; omit to use workspace's oldest project\n\nPitfalls:\n\nBITBUCKET_DELETE_REPOSITORY is irreversible and does not affect forks\nBBQL string values MUST be enclosed in double quotes: name~\"my-repo\" not name~my-repo\nrepository is NOT a valid BBQL field; use name instead\nDefault pagination is 10 results; set pagelen explicitly for complete listings\nCREATE_REPOSITORY defaults to private; set is_private: false for public repos"
      },
      {
        "title": "3. Manage Issues",
        "body": "When to use: User wants to create, update, list, or comment on repository issues\n\nTool sequence:\n\nBITBUCKET_LIST_ISSUES - List issues with optional filters for state, priority, kind, assignee [Required]\nBITBUCKET_CREATE_ISSUE - Create a new issue with title, content, priority, and kind [Required]\nBITBUCKET_UPDATE_ISSUE - Modify issue attributes (state, priority, assignee, etc.) [Optional]\nBITBUCKET_CREATE_ISSUE_COMMENT - Add a markdown comment to an existing issue [Optional]\nBITBUCKET_DELETE_ISSUE - Permanently delete an issue [Optional]\n\nKey parameters:\n\nissue_id: String identifier for the issue\ntitle, content: Required for creation\nkind: bug, enhancement, proposal, or task\npriority: trivial, minor, major, critical, or blocker\nstate: new, open, resolved, on hold, invalid, duplicate, wontfix, closed\nassignee: Bitbucket username for CREATE; assignee_account_id (UUID) for UPDATE\ndue_on: ISO 8601 format date string\n\nPitfalls:\n\nIssue tracker must be enabled on the repository (has_issues: true) or API calls will fail\nCREATE_ISSUE uses assignee (username string), but UPDATE_ISSUE uses assignee_account_id (UUID) -- they are different fields\nDELETE_ISSUE is permanent with no undo\nstate values include spaces: \"on hold\" not \"on_hold\"\nFiltering by assignee in LIST_ISSUES uses account ID, not username; use \"null\" string for unassigned"
      },
      {
        "title": "4. Manage Branches",
        "body": "When to use: User wants to create branches or explore branch structure\n\nTool sequence:\n\nBITBUCKET_LIST_BRANCHES - List branches with optional BBQL filter and sorting [Required]\nBITBUCKET_CREATE_BRANCH - Create a new branch from a specific commit hash [Required]\n\nKey parameters:\n\nname: Branch name without refs/heads/ prefix (e.g., feature/new-login)\ntarget_hash: Full SHA1 commit hash to branch from (must exist in repo)\nq: BBQL filter (e.g., name~\"feature/\", name=\"main\")\nsort: Sort by name or -target.date (descending commit date)\npagelen: 1-100 results per page (default is 10)\n\nPitfalls:\n\nCREATE_BRANCH requires a full commit hash, NOT a branch name as target_hash\nDo NOT include refs/heads/ prefix in branch names\nBranch names must follow Bitbucket naming conventions (alphanumeric, /, ., _, -)\nBBQL string values need double quotes: name~\"feature/\" not name~feature/"
      },
      {
        "title": "5. Review Pull Requests with Comments",
        "body": "When to use: User wants to add review comments to pull requests, including inline code comments\n\nTool sequence:\n\nBITBUCKET_GET_PULL_REQUEST - Get PR details and verify it exists [Prerequisite]\nBITBUCKET_GET_PULL_REQUEST_DIFF - Review the actual code changes [Prerequisite]\nBITBUCKET_GET_PULL_REQUEST_DIFFSTAT - Get list of changed files [Optional]\nBITBUCKET_CREATE_PULL_REQUEST_COMMENT - Post review comments [Required]\n\nKey parameters:\n\npull_request_id: String ID of the PR\ncontent_raw: Markdown-formatted comment text\ncontent_markup: Defaults to markdown; also supports plaintext\ninline: Object with path, from, to for inline code comments\nparent_comment_id: Integer ID for threaded replies to existing comments\n\nPitfalls:\n\npull_request_id is a string in CREATE_PULL_REQUEST_COMMENT but an integer in GET_PULL_REQUEST\nInline comments require inline.path at minimum; from/to are optional line numbers\nparent_comment_id creates a threaded reply; omit for top-level comments\nLine numbers in inline comments reference the diff, not the source file"
      },
      {
        "title": "ID Resolution",
        "body": "Always resolve human-readable names to IDs before operations:\n\nWorkspace: BITBUCKET_LIST_WORKSPACES to get workspace slugs\nRepository: BITBUCKET_LIST_REPOSITORIES_IN_WORKSPACE with q filter to find repo slugs\nBranch: BITBUCKET_LIST_BRANCHES to verify branch existence before PR creation\nMembers: BITBUCKET_LIST_WORKSPACE_MEMBERS to get UUIDs for reviewer assignment"
      },
      {
        "title": "Pagination",
        "body": "Bitbucket uses page-based pagination (not cursor-based):\n\nUse page (starts at 1) and pagelen (items per page) parameters\nDefault page size is typically 10; set pagelen explicitly (max 50 for PRs, 100 for others)\nCheck response for next URL or total count to determine if more pages exist\nAlways iterate through all pages for complete results"
      },
      {
        "title": "BBQL Filtering",
        "body": "Bitbucket Query Language is available on list endpoints:\n\nString values MUST use double quotes: name~\"pattern\"\nOperators: = (exact), ~ (contains), != (not equal), >, >=, <, <=\nCombine with AND / OR: name~\"api\" AND is_private=true"
      },
      {
        "title": "ID Formats",
        "body": "Workspace: slug string (e.g., my-workspace) or UUID in braces ({uuid})\nReviewer UUIDs must include curly braces: {123e4567-e89b-12d3-a456-426614174000}\nIssue IDs are strings; PR IDs are integers in some tools, strings in others\nCommit hashes must be full SHA1 (40 characters)"
      },
      {
        "title": "Parameter Quirks",
        "body": "assignee vs assignee_account_id: CREATE_ISSUE uses username, UPDATE_ISSUE uses UUID\nstate values for issues include spaces: \"on hold\", not \"on_hold\"\ndestination_branch omission defaults to repo main branch, not main literally\nBBQL repository is not a valid field -- use name"
      },
      {
        "title": "Rate Limits",
        "body": "Bitbucket Cloud API has rate limits; large batch operations should include delays\nPaginated requests count against rate limits; minimize unnecessary page fetches"
      },
      {
        "title": "Destructive Operations",
        "body": "BITBUCKET_DELETE_REPOSITORY is irreversible and does not remove forks\nBITBUCKET_DELETE_ISSUE is permanent with no recovery option\nAlways confirm with the user before executing delete operations"
      },
      {
        "title": "Quick Reference",
        "body": "TaskTool SlugKey ParamsList workspacesBITBUCKET_LIST_WORKSPACESq, sortList reposBITBUCKET_LIST_REPOSITORIES_IN_WORKSPACEworkspace, q, roleCreate repoBITBUCKET_CREATE_REPOSITORYworkspace, repo_slug, is_privateDelete repoBITBUCKET_DELETE_REPOSITORYworkspace, repo_slugList branchesBITBUCKET_LIST_BRANCHESworkspace, repo_slug, qCreate branchBITBUCKET_CREATE_BRANCHworkspace, repo_slug, name, target_hashList PRsBITBUCKET_LIST_PULL_REQUESTSworkspace, repo_slug, stateCreate PRBITBUCKET_CREATE_PULL_REQUESTworkspace, repo_slug, title, source_branchGet PR detailsBITBUCKET_GET_PULL_REQUESTworkspace, repo_slug, pull_request_idGet PR diffBITBUCKET_GET_PULL_REQUEST_DIFFworkspace, repo_slug, pull_request_id, max_charsGet PR diffstatBITBUCKET_GET_PULL_REQUEST_DIFFSTATworkspace, repo_slug, pull_request_idComment on PRBITBUCKET_CREATE_PULL_REQUEST_COMMENTworkspace, repo_slug, pull_request_id, content_rawList issuesBITBUCKET_LIST_ISSUESworkspace, repo_slug, state, priorityCreate issueBITBUCKET_CREATE_ISSUEworkspace, repo_slug, title, contentUpdate issueBITBUCKET_UPDATE_ISSUEworkspace, repo_slug, issue_idComment on issueBITBUCKET_CREATE_ISSUE_COMMENTworkspace, repo_slug, issue_id, contentDelete issueBITBUCKET_DELETE_ISSUEworkspace, repo_slug, issue_idList membersBITBUCKET_LIST_WORKSPACE_MEMBERSworkspace"
      }
    ],
    "body": "Bitbucket Automation via Rube MCP\n\nAutomate Bitbucket operations including repository management, pull request workflows, branch operations, issue tracking, and workspace administration through Composio's Bitbucket toolkit.\n\nPrerequisites\nRube MCP must be connected (RUBE_SEARCH_TOOLS available)\nActive Bitbucket connection via RUBE_MANAGE_CONNECTIONS with toolkit bitbucket\nAlways call RUBE_SEARCH_TOOLS first to get current tool schemas\nSetup\n\nGet Rube MCP: Add https://rube.app/mcp as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.\n\nVerify Rube MCP is available by confirming RUBE_SEARCH_TOOLS responds\nCall RUBE_MANAGE_CONNECTIONS with toolkit bitbucket\nIf connection is not ACTIVE, follow the returned auth link to complete Bitbucket OAuth\nConfirm connection status shows ACTIVE before running any workflows\nCore Workflows\n1. Manage Pull Requests\n\nWhen to use: User wants to create, review, or inspect pull requests\n\nTool sequence:\n\nBITBUCKET_LIST_WORKSPACES - Discover accessible workspaces [Prerequisite]\nBITBUCKET_LIST_REPOSITORIES_IN_WORKSPACE - Find the target repository [Prerequisite]\nBITBUCKET_LIST_BRANCHES - Verify source and destination branches exist [Prerequisite]\nBITBUCKET_CREATE_PULL_REQUEST - Create a new PR with title, source branch, and optional reviewers [Required]\nBITBUCKET_LIST_PULL_REQUESTS - List PRs filtered by state (OPEN, MERGED, DECLINED) [Optional]\nBITBUCKET_GET_PULL_REQUEST - Get full details of a specific PR by ID [Optional]\nBITBUCKET_GET_PULL_REQUEST_DIFF - Fetch unified diff for code review [Optional]\nBITBUCKET_GET_PULL_REQUEST_DIFFSTAT - Get changed files with lines added/removed [Optional]\n\nKey parameters:\n\nworkspace: Workspace slug or UUID (required for all operations)\nrepo_slug: URL-friendly repository name\nsource_branch: Branch with changes to merge\ndestination_branch: Target branch (defaults to repo main branch if omitted)\nreviewers: List of objects with uuid field for reviewer assignment\nstate: Filter for LIST_PULL_REQUESTS - OPEN, MERGED, or DECLINED\nmax_chars: Truncation limit for GET_PULL_REQUEST_DIFF to handle large diffs\n\nPitfalls:\n\nreviewers expects an array of objects with uuid key, NOT usernames: [{\"uuid\": \"{...}\"}]\nUUID format must include curly braces: {123e4567-e89b-12d3-a456-426614174000}\ndestination_branch defaults to the repo's main branch if omitted, which may not be main\npull_request_id is an integer for GET/DIFF operations but comes back as part of PR listing\nLarge diffs can overwhelm context; always set max_chars (e.g., 50000) on GET_PULL_REQUEST_DIFF\n2. Manage Repositories and Workspaces\n\nWhen to use: User wants to list, create, or delete repositories or explore workspaces\n\nTool sequence:\n\nBITBUCKET_LIST_WORKSPACES - List all accessible workspaces [Required]\nBITBUCKET_LIST_REPOSITORIES_IN_WORKSPACE - List repos with optional BBQL filtering [Required]\nBITBUCKET_CREATE_REPOSITORY - Create a new repo with language, privacy, and project settings [Optional]\nBITBUCKET_DELETE_REPOSITORY - Permanently delete a repository (irreversible) [Optional]\nBITBUCKET_LIST_WORKSPACE_MEMBERS - List members for reviewer assignment or access checks [Optional]\n\nKey parameters:\n\nworkspace: Workspace slug (find via LIST_WORKSPACES)\nrepo_slug: URL-friendly name for create/delete\nq: BBQL query filter (e.g., name~\"api\", project.key=\"PROJ\", is_private=true)\nrole: Filter repos by user role: member, contributor, admin, owner\nsort: Sort field with optional - prefix for descending (e.g., -updated_on)\nis_private: Boolean for repository visibility (defaults to true)\nproject_key: Bitbucket project key; omit to use workspace's oldest project\n\nPitfalls:\n\nBITBUCKET_DELETE_REPOSITORY is irreversible and does not affect forks\nBBQL string values MUST be enclosed in double quotes: name~\"my-repo\" not name~my-repo\nrepository is NOT a valid BBQL field; use name instead\nDefault pagination is 10 results; set pagelen explicitly for complete listings\nCREATE_REPOSITORY defaults to private; set is_private: false for public repos\n3. Manage Issues\n\nWhen to use: User wants to create, update, list, or comment on repository issues\n\nTool sequence:\n\nBITBUCKET_LIST_ISSUES - List issues with optional filters for state, priority, kind, assignee [Required]\nBITBUCKET_CREATE_ISSUE - Create a new issue with title, content, priority, and kind [Required]\nBITBUCKET_UPDATE_ISSUE - Modify issue attributes (state, priority, assignee, etc.) [Optional]\nBITBUCKET_CREATE_ISSUE_COMMENT - Add a markdown comment to an existing issue [Optional]\nBITBUCKET_DELETE_ISSUE - Permanently delete an issue [Optional]\n\nKey parameters:\n\nissue_id: String identifier for the issue\ntitle, content: Required for creation\nkind: bug, enhancement, proposal, or task\npriority: trivial, minor, major, critical, or blocker\nstate: new, open, resolved, on hold, invalid, duplicate, wontfix, closed\nassignee: Bitbucket username for CREATE; assignee_account_id (UUID) for UPDATE\ndue_on: ISO 8601 format date string\n\nPitfalls:\n\nIssue tracker must be enabled on the repository (has_issues: true) or API calls will fail\nCREATE_ISSUE uses assignee (username string), but UPDATE_ISSUE uses assignee_account_id (UUID) -- they are different fields\nDELETE_ISSUE is permanent with no undo\nstate values include spaces: \"on hold\" not \"on_hold\"\nFiltering by assignee in LIST_ISSUES uses account ID, not username; use \"null\" string for unassigned\n4. Manage Branches\n\nWhen to use: User wants to create branches or explore branch structure\n\nTool sequence:\n\nBITBUCKET_LIST_BRANCHES - List branches with optional BBQL filter and sorting [Required]\nBITBUCKET_CREATE_BRANCH - Create a new branch from a specific commit hash [Required]\n\nKey parameters:\n\nname: Branch name without refs/heads/ prefix (e.g., feature/new-login)\ntarget_hash: Full SHA1 commit hash to branch from (must exist in repo)\nq: BBQL filter (e.g., name~\"feature/\", name=\"main\")\nsort: Sort by name or -target.date (descending commit date)\npagelen: 1-100 results per page (default is 10)\n\nPitfalls:\n\nCREATE_BRANCH requires a full commit hash, NOT a branch name as target_hash\nDo NOT include refs/heads/ prefix in branch names\nBranch names must follow Bitbucket naming conventions (alphanumeric, /, ., _, -)\nBBQL string values need double quotes: name~\"feature/\" not name~feature/\n5. Review Pull Requests with Comments\n\nWhen to use: User wants to add review comments to pull requests, including inline code comments\n\nTool sequence:\n\nBITBUCKET_GET_PULL_REQUEST - Get PR details and verify it exists [Prerequisite]\nBITBUCKET_GET_PULL_REQUEST_DIFF - Review the actual code changes [Prerequisite]\nBITBUCKET_GET_PULL_REQUEST_DIFFSTAT - Get list of changed files [Optional]\nBITBUCKET_CREATE_PULL_REQUEST_COMMENT - Post review comments [Required]\n\nKey parameters:\n\npull_request_id: String ID of the PR\ncontent_raw: Markdown-formatted comment text\ncontent_markup: Defaults to markdown; also supports plaintext\ninline: Object with path, from, to for inline code comments\nparent_comment_id: Integer ID for threaded replies to existing comments\n\nPitfalls:\n\npull_request_id is a string in CREATE_PULL_REQUEST_COMMENT but an integer in GET_PULL_REQUEST\nInline comments require inline.path at minimum; from/to are optional line numbers\nparent_comment_id creates a threaded reply; omit for top-level comments\nLine numbers in inline comments reference the diff, not the source file\nCommon Patterns\nID Resolution\n\nAlways resolve human-readable names to IDs before operations:\n\nWorkspace: BITBUCKET_LIST_WORKSPACES to get workspace slugs\nRepository: BITBUCKET_LIST_REPOSITORIES_IN_WORKSPACE with q filter to find repo slugs\nBranch: BITBUCKET_LIST_BRANCHES to verify branch existence before PR creation\nMembers: BITBUCKET_LIST_WORKSPACE_MEMBERS to get UUIDs for reviewer assignment\nPagination\n\nBitbucket uses page-based pagination (not cursor-based):\n\nUse page (starts at 1) and pagelen (items per page) parameters\nDefault page size is typically 10; set pagelen explicitly (max 50 for PRs, 100 for others)\nCheck response for next URL or total count to determine if more pages exist\nAlways iterate through all pages for complete results\nBBQL Filtering\n\nBitbucket Query Language is available on list endpoints:\n\nString values MUST use double quotes: name~\"pattern\"\nOperators: = (exact), ~ (contains), != (not equal), >, >=, <, <=\nCombine with AND / OR: name~\"api\" AND is_private=true\nKnown Pitfalls\nID Formats\nWorkspace: slug string (e.g., my-workspace) or UUID in braces ({uuid})\nReviewer UUIDs must include curly braces: {123e4567-e89b-12d3-a456-426614174000}\nIssue IDs are strings; PR IDs are integers in some tools, strings in others\nCommit hashes must be full SHA1 (40 characters)\nParameter Quirks\nassignee vs assignee_account_id: CREATE_ISSUE uses username, UPDATE_ISSUE uses UUID\nstate values for issues include spaces: \"on hold\", not \"on_hold\"\ndestination_branch omission defaults to repo main branch, not main literally\nBBQL repository is not a valid field -- use name\nRate Limits\nBitbucket Cloud API has rate limits; large batch operations should include delays\nPaginated requests count against rate limits; minimize unnecessary page fetches\nDestructive Operations\nBITBUCKET_DELETE_REPOSITORY is irreversible and does not remove forks\nBITBUCKET_DELETE_ISSUE is permanent with no recovery option\nAlways confirm with the user before executing delete operations\nQuick Reference\nTask\tTool Slug\tKey Params\nList workspaces\tBITBUCKET_LIST_WORKSPACES\tq, sort\nList repos\tBITBUCKET_LIST_REPOSITORIES_IN_WORKSPACE\tworkspace, q, role\nCreate repo\tBITBUCKET_CREATE_REPOSITORY\tworkspace, repo_slug, is_private\nDelete repo\tBITBUCKET_DELETE_REPOSITORY\tworkspace, repo_slug\nList branches\tBITBUCKET_LIST_BRANCHES\tworkspace, repo_slug, q\nCreate branch\tBITBUCKET_CREATE_BRANCH\tworkspace, repo_slug, name, target_hash\nList PRs\tBITBUCKET_LIST_PULL_REQUESTS\tworkspace, repo_slug, state\nCreate PR\tBITBUCKET_CREATE_PULL_REQUEST\tworkspace, repo_slug, title, source_branch\nGet PR details\tBITBUCKET_GET_PULL_REQUEST\tworkspace, repo_slug, pull_request_id\nGet PR diff\tBITBUCKET_GET_PULL_REQUEST_DIFF\tworkspace, repo_slug, pull_request_id, max_chars\nGet PR diffstat\tBITBUCKET_GET_PULL_REQUEST_DIFFSTAT\tworkspace, repo_slug, pull_request_id\nComment on PR\tBITBUCKET_CREATE_PULL_REQUEST_COMMENT\tworkspace, repo_slug, pull_request_id, content_raw\nList issues\tBITBUCKET_LIST_ISSUES\tworkspace, repo_slug, state, priority\nCreate issue\tBITBUCKET_CREATE_ISSUE\tworkspace, repo_slug, title, content\nUpdate issue\tBITBUCKET_UPDATE_ISSUE\tworkspace, repo_slug, issue_id\nComment on issue\tBITBUCKET_CREATE_ISSUE_COMMENT\tworkspace, repo_slug, issue_id, content\nDelete issue\tBITBUCKET_DELETE_ISSUE\tworkspace, repo_slug, issue_id\nList members\tBITBUCKET_LIST_WORKSPACE_MEMBERS\tworkspace"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/sohamganatra/bitbucket-automation",
    "publisherUrl": "https://clawhub.ai/sohamganatra/bitbucket-automation",
    "owner": "sohamganatra",
    "version": "0.1.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/bitbucket-automation",
    "downloadUrl": "https://openagent3.xyz/downloads/bitbucket-automation",
    "agentUrl": "https://openagent3.xyz/skills/bitbucket-automation/agent",
    "manifestUrl": "https://openagent3.xyz/skills/bitbucket-automation/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/bitbucket-automation/agent.md"
  }
}