skills/bitbucket/SKILL.md
Manage Bitbucket Cloud pull requests, comments, tasks, and pipelines from the command line. Use when working with PRs, reviewing code, leaving inline comments, creating PR tasks, triggering or inspecting Bitbucket Pipelines, or looking up reviewer account IDs.
npx skillsauth add avantmedialtd/skills bitbucketInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Command-line tool for managing Bitbucket Cloud via af bitbucket (alias af bb).
Bitbucket Cloud authentication is separate from Jira/Confluence. Atlassian API tokens scoped for Jira do not authenticate against Bitbucket Cloud — they return 401. Add the following to your project's .env:
BITBUCKET_USERNAME — Bitbucket username or workspace token label (falls back to ATLASSIAN_EMAIL / JIRA_EMAIL)BITBUCKET_API_TOKEN — Workspace API token or app password (BITBUCKET_APP_PASSWORD is also accepted as a legacy alias)Generate credentials:
https://bitbucket.org/<workspace>/workspace/settings/api-tokenshttps://bitbucket.org/account/settings/app-passwords/The target workspace and repo are resolved in this order:
--workspace W --repo R flags (highest priority)af.json:
{
"bitbucket": {
"workspace": "myws",
"repo": "myrepo"
}
}
origin remote, if it points at bitbucket.orgRun af bb --help (or af bb pr --help, af bb pipeline --help) for all options.
af bb pr list [--state OPEN|MERGED|DECLINED|ALL] [--mine | --author Q]af bb pr get <id>af bb pr diff <id>af bb pr create --title T [--from B] [--to B] [--description / --description-file F] [--reviewers a,b] [--draft]af bb pr update <id> [--title T] [--description / --description-file F] [--reviewers a,b]af bb pr approve <id>af bb pr unapprove <id>af bb pr request-changes <id>af bb pr merge <id> [--strategy merge_commit|squash|fast_forward] [--close-source]af bb pr decline <id>Reviewers must be passed as Bitbucket Cloud account IDs (not usernames). Use af bb members --query <name> to look them up.
Comment body shape is determined by flags on add:
af bb pr comment list <pr-id>af bb pr comment get <pr-id> <cid>af bb pr comment add <pr-id> --body / --body-file [--file PATH --line N] [--reply-to CID]
--file PATH --line N makes the comment an inline anchor--reply-to CID threads the comment as a replyaf bb pr comment update <pr-id> <cid> --body / --body-fileaf bb pr comment delete <pr-id> <cid>Tasks can stand alone or be anchored to a comment:
af bb pr task list <pr-id>af bb pr task add <pr-id> --body / --body-file [--on-comment CID]af bb pr task update <pr-id> <tid> [--body / --body-file] [--resolved | --unresolved]af bb pr task delete <pr-id> <tid>af bb pipeline list [--branch B] [--status PENDING|IN_PROGRESS|SUCCESSFUL|FAILED|...]af bb pipeline get <uuid|build-number>af bb pipeline trigger [--branch B] [--commit SHA] [--custom NAME] [--var k=v]af bb pipeline stop <uuid>af bb pipeline steps <uuid>af bb pipeline logs <pipeline-uuid> <step-uuid> [--follow]af bb members [--query Q] — Look up account IDs for use with --reviewers--json to any subcommand for raw API responsesaf bb pr get 42
af bb pr diff 42
af bb pr comment list 42
af bb pr task list 42
af bb pr create --title "Add SonarQube support" \
--description-file ./PR_DESCRIPTION.md \
--reviewers 557058:abc-123,557058:def-456
# Anchor a comment to a specific line of a file in the diff
af bb pr comment add 42 \
--file src/auth/login.ts --line 87 \
--body "This branch isn't covered by tests — can we add one?"
# Thread a reply
af bb pr comment add 42 --reply-to 9876543 --body "Good catch, fixing."
# Standalone task
af bb pr task add 42 --body "Update CHANGELOG before merge"
# Task anchored to an existing comment
af bb pr task add 42 --on-comment 9876543 --body "Rename this variable"
# Resolve when done
af bb pr task update 42 12345 --resolved
af bb pr approve 42
af bb pr merge 42 --strategy squash --close-source
# Trigger a custom pipeline with variables
af bb pipeline trigger --branch main --custom deploy-prod --var ENV=prod
# Watch logs as the step runs
af bb pipeline list --branch main --status IN_PROGRESS
af bb pipeline steps <pipeline-uuid>
af bb pipeline logs <pipeline-uuid> <step-uuid> --follow
# Reviewers must be account IDs, not usernames
af bb members --query "Jane"
af bb pr update 42 --reviewers 557058:abc-123
af bb — every subcommand below also works under af bitbucketaf bb members--json for scripting — pipe through jq for automation--description-file ./PR_BODY.md avoids quoting hell in the shell--json: {"error": "message"}0 success, 1 error, 401 typically means Bitbucket-Cloud-specific credentials are missing or a Jira-scoped Atlassian token was supplieddevelopment
Opinionated TypeScript and React development standards from Avant Media. Use when scaffolding new components, reviewing code, writing TypeScript interfaces or types, setting up project structure, creating React hooks, or working on any TypeScript/React codebase. Also use when the user asks about best practices, patterns, or conventions for TypeScript or React projects, even if they don't explicitly mention "standards."
tools
Assign a Jira issue to yourself and convert it into an OpenSpec proposal. Use when the user says "start work", "pick up an issue", "take the next ticket", or provides a Jira key and wants to begin work on it. Handles issue selection from the backlog, assignment, transition to In Progress, and scaffolding an OpenSpec change with Jira context embedded in the proposal.
development
Bun/Elysia/React/MUI monorepo stack blueprint. Use when scaffolding a new project, adding a new app or package to the monorepo, choosing dependencies, or making architectural decisions. Contains the full tech stack, conventions, and wiring patterns.
tools
Manage Jira issues from the command line. Use when working with Jira issues, creating tasks, updating status, assigning work, linking issues, managing versions, setting or reading custom fields (Story Points, Sprint, Severity, etc.), or searching for issues.