skills/mav-bp-cicd-bitbucket/SKILL.md
Monitoring Bitbucket Pipelines after pushing. Covers checking pipeline status, diagnosing build failures, and respecting pipeline boundaries. Used as a dependency from workflow skills.
npx skillsauth add thermiteau/maverick mav-bp-cicd-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.
After pushing, monitor Bitbucket Pipelines and do not declare work complete until CI passes. This skill implements the platform-specific behaviours defined in the mav-bp-cicd skill.
# List recent pipelines for the current repository
curl -s -u "$BITBUCKET_USERNAME:$BITBUCKET_APP_PASSWORD" \
"https://api.bitbucket.org/2.0/repositories/$BITBUCKET_WORKSPACE/$BITBUCKET_REPO_SLUG/pipelines/?sort=-created_on&pagelen=5" \
| python3 -m json.tool
# View a specific pipeline's steps and status
curl -s -u "$BITBUCKET_USERNAME:$BITBUCKET_APP_PASSWORD" \
"https://api.bitbucket.org/2.0/repositories/$BITBUCKET_WORKSPACE/$BITBUCKET_REPO_SLUG/pipelines/$PIPELINE_UUID/steps/" \
| python3 -m json.tool
# View logs for a specific step
curl -s -u "$BITBUCKET_USERNAME:$BITBUCKET_APP_PASSWORD" \
"https://api.bitbucket.org/2.0/repositories/$BITBUCKET_WORKSPACE/$BITBUCKET_REPO_SLUG/pipelines/$PIPELINE_UUID/steps/$STEP_UUID/log" \
# If Bitbucket CLI (bb) is available
bb pipelines list
bb pipelines get <pipeline-uuid>
digraph ci {
"Push to remote" [shape=box];
"Check CI status" [shape=box];
"CI passes?" [shape=diamond];
"Work complete" [shape=box];
"Read failure logs" [shape=box];
"Fix locally" [shape=box];
"Commit and push fix" [shape=box];
"Push to remote" -> "Check CI status";
"Check CI status" -> "CI passes?";
"CI passes?" -> "Work complete" [label="yes"];
"CI passes?" -> "Read failure logs" [label="no"];
"Read failure logs" -> "Fix locally";
"Fix locally" -> "Commit and push fix";
"Commit and push fix" -> "Check CI status";
}
| CI failure | Why it wasn't caught locally | Fix |
|---|---|---|
| Different Node/Python version | CI uses a specific version | Check bitbucket-pipelines.yml image for version, use matching local version |
| Missing environment variable | CI has different env | Check pipeline and repository variables in Bitbucket settings |
| Docker memory limit exceeded | Pipelines steps have a 4 GB (or 8 GB for double-size) memory limit | Optimise build to reduce memory usage, or use size: 2x for the step |
| Step size limit exceeded | Build steps have a maximum execution time of 120 minutes | Split long-running steps or optimise build performance |
| Platform-specific issue | CI runs on Linux Docker containers, local may differ | Investigate platform-specific code paths |
| Dependency resolution | Lock file out of date | Run npm ci / pip install and commit lock file |
| Parallel test interference | Tests pass serially but fail in parallel | Fix test isolation |
| Docker-in-Docker issues | Pipelines uses Docker to run steps | Use Bitbucket-provided Docker service or adjust docker settings in pipeline config |
bitbucket-pipelines.yml[skip ci] in commit messages)development
--- name: do-test description: Write or update tests for a code change. Operates in two modes: `unit` (module-scoped, fast, deterministic) and `integration` (crosses module / service / database boundaries). Intended to be invoked once per testable change from inside a do-issue-* or do-epic phase. Mode is required. argument-hint: mode: unit or integration user-invocable: true disable-model-invocation: false --- **Depends on:** mav-bp-unit-testing, mav-bp-integration-testing, mav-local-verificati
development
Implement a focused code change. Use this skill as the wrapper for any implementation work so the Maverick workflow report captures what was done and so the agent applies the project's coding standards before editing. Intended to be invoked once per task from inside a do-issue-* or do-epic phase, not standalone.
testing
How to stack a PR on top of an unmerged sibling branch, and how to retarget it to the repo's default branch once the sibling merges. Prevents orphan-merge incidents when a dependent story is ready before its parent.
development
Claim, lease, heartbeat, and release protocols for when multiple Claude Code instances may act on the same issue or epic concurrently. GitHub labels and marker comments are the coordination surface; local state is a cache.