Install
$ agentstack add skill-quatico-solutions-agent-skills-working-with-bitbucket-web ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Working with Bitbucket Web
CRITICAL: Use bb CLI First
Before using the browser, try bb CLI (working-with-bitbucket-api skill). It handles all PR operations — create, edit, comment, approve, merge, resolve — including markdown descriptions. Run bb --help for the full command list.
Only use this browser skill for:
- SSO-gated pages that require browser authentication
> Image uploads no longer need a browser. Attach images to PR comments and > descriptions via the API with bb pr comment --image or > bb download upload (see working-with-bitbucket-api). The manual > drag-drop workflow below remains only as a fallback if the CLI is unavailable.
If you also need PR workflow guidance (templates, feedback process), invoke handling-pull-requests.
Browser Tool Selection
Use native browser integration — Bitbucket requires SSO authentication.
| Environment | Tool | Invocation | |-------------|------|------------| | Claude Code | Claude in Chrome | mcp__claude-in-chrome__* tools | | Cursor | Cursor Browser | Cmd+Shift+P → "Open Browser" |
Never use WebFetch, WebSearch, or MCP browser tools (Playwright MCP, Chrome DevTools MCP) for Bitbucket. These tools cannot authenticate — they spin up isolated browser instances without your SSO session cookies.
Tab Management (Critical)
Start of session: Always create a NEW tab with tabs_create_mcp. Never reuse tabs from previous sessions — tab IDs don't persist and another Claude instance may have left stale state.
End of session: Navigate to example.com when done. Claude in Chrome has no close tab tool, so this signals to the user that the tab is safe to close.
Session cleanup:
- [ ] Task complete
- [ ] Navigate to example.com
- [ ] Inform user: "Browser tab ready to close"
PR Description Editing
Click directly on the description body text to enter edit mode (no separate "Edit" button).
Rich Text Editor (Partial Markdown Support)
The description editor is WYSIWYG with limited markdown shortcuts:
-at line start → converts to bullet (enters list mode)##at line start → converts to heading
Pasting markdown: Works correctly — paste text with - bullets and they render as list items.
Browser automation typing: Use toolbar buttons for reliable formatting.
Creating Nested Lists (Step-by-Step)
This workflow is reliable for automation. Follow exactly:
- Start list: Click bullet list button in toolbar
- Type first item: Type text, press
Enter - Continue list: Type next item (auto-bulleted), press
Enter - Indent (sub-item): Press
Tab, type text, pressEnter - Unindent (back to parent): Press
Shift+Tab, type text, pressEnter - Exit list: Press
Entertwice (creates blank line, exits list mode)
Key behaviors:
Enter→ continues list at current indent levelTab→ indents to create sub-item (nested bullet)Shift+Tab→ unindents back to parent levelEnter Enter→ exits list mode
Avoid:
- Typing
-for bullets (creates duplicates when in list mode) - Typing
##for headings inside lists (renders as literal text) - Using markdown tables (don't render — use nested lists instead)
Workflow Checklist
Copy and track progress:
- [ ] Click description body text
- [ ] Wait for toolbar to appear (confirms edit mode)
- [ ] Make changes (Cmd+A to select all if replacing)
- [ ] Scroll down to reveal Save/Cancel buttons
- [ ] Click Save button
- [ ] Verify: toolbar gone, content updated
Critical: Changes are NOT auto-saved. Clicking outside or pressing Escape discards changes.
Adding Images to PR Descriptions (fallback only)
> Prefer the API. bb pr comment --image and bb download upload > attach images with no browser and no user assistance (see > working-with-bitbucket-api). Use the manual workflow below only when the bb > CLI is genuinely unavailable.
Limitation: Browser automation cannot upload files (native file picker, clipboard paste, drag-drop are all inaccessible from automation).
Workflow (requires user assistance)
- Enter description edit mode (click body text)
- Click Image button in toolbar
- Run
open /path/to/images/to open Finder - Tell user: "Please drag [filename] into the upload modal"
- Wait for user confirmation
- Click on inserted image to select it
- Click "Add a caption" below image
- Type caption text
- Repeat steps 2-8 for each image (modal accepts only 1 image)
- Click Save
Key Details
- One image per upload — modal closes after each, reopen for next
- Caption appears only when image selected — click image first
- Image toolbar (when selected): align left/center/right, wrap left/right, copy, delete
- Markdown tables don't render — use bullet lists with sub-items instead
PR Creation
- Repository → Pull requests → "Create pull request" (top right)
- Select source and target branches
- Fill title and description
- Add reviewers: Right sidebar → "+ Add reviewer" → search and select
- Click "Create pull request"
UI Reference
| Element | Location | Action | |---------|----------|--------| | Title | Top of PR | Click to edit inline | | Description | Below title | Click body to edit | | Reviewers | Right sidebar | "+ Add reviewer" | | Approve | Top right (green) | Approves PR | | Merge | Top right (blue) | Merges PR | | Files changed | Tab bar | View diff | | Commits | Tab bar | View commits |
Replying to Comments
- Scroll to the comment thread
- Click "Reply" link below the comment
- Type reply in text area (same rich text editor as description)
- Click "Add comment now" button
Resolving comments: Click the checkmark/resolve icon on the comment thread.
Common Pitfalls
- Sidebar items (Source, Commits, Branches) navigate away from current PR
- Links in description body are clickable — avoid accidental clicks
- Left sidebar extends into content area — avoid clicking near edges
- Always take a screenshot after edits to verify persistence
Advanced: JavaScript Content Injection
For complex descriptions (tables, multiple sections, links), directly inject HTML into ProseMirror:
const editor = document.querySelector('.ProseMirror');
editor.innerHTML = `
Summary
Description with formatting and links
Bullet point
Another point
Nested item
`;
editor.dispatchEvent(new Event('input', { bubbles: true }));
When to use:
- Complex descriptions with tables, nested lists, multiple headings
- Content with many links (commits, tickets, external URLs)
- Avoiding duplicate bullet issues during list entry
Why this works:
- Bitbucket uses ProseMirror editor under the hood
- Direct HTML injection bypasses WYSIWYG interaction fragility
inputevent dispatch triggers Bitbucket's state management
Note: Same technique documented in working-with-jira-web skill.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: quatico-solutions
- Source: quatico-solutions/agent-skills
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.