wk-buildkite
Use when working with Buildkite CI — checking build status, investigating failures, viewing job logs, or monitoring builds after push.
Skill by whizzzkid
Chalk Labs
Need help deploying wk-buildkite?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/whizzzkid-wk-buildkite
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: devops
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/wk-buildkite
What's inside
- Skill name
wk-buildkite- Description
- Use when working with Buildkite CI — checking build status, investigating failures, viewing job logs, or monitoring builds after push. Activates on Buildkite URLs or `bk` CLI operations. Use this instead of GitHub tools for CI status.
- License
- MIT
- Metadata
- author: whizzzkid · version: 2026.10.09-184159
- Instructions
- 111 lines in SKILL.md · view on GitHub
Before installing
- Instructions call the network
Agent Skills spec issues
- name: "wk-buildkite" does not match folder "buildkite"
- allowed-tools: must be a space-separated string
Files (23)
- README.md
- SKILL.md
- 2026-05-12_no-token-curl-workaround.md · references/
- 2026-05-12_prefer-bk-over-npx-webfetch.md · references/
- 2026-05-13_native-step-outcome.md · references/
- 2026-06-09_build-view-positional-build-number.md · references/
- 2026-06-09_mirror-not-pullthrough.md · references/
- 2026-06-11_only-own-branches.md · references/
- 2026-06-12_foreground-poll-loop-interrupted.md · references/
- 2026-06-23_announce-ci-status-on-monitor.md · references/
- 2026-06-23_non-required-checks-dont-gate.md · references/
- 2026-07-15_rebuild-fallback-mutation-token.md · references/
- 2026-07-24_rollup-not-per-job-evidence.md · references/
- 2026-07-27_absent-step-renders-as-pass.md · references/
- 2026-07-27_job-executor-error-is-infra.md · references/
- 2026-08-22_separate-trigger-from-cause.md · references/
- 2026-08-25_premature-should-pass-claim.md · references/
- 2026-08-26_artifact-download-retry-fallback.md · references/
- 2026-08-26_query-only-retry-fallback.md · references/
- 2026-08-26_stale-base-not-infra-flake.md · references/
- build-job-states.md · references/
- json-warning-prefix.md · references/
- url-retrieval-vs-browser-open.md · references/
SKILL.md (first lines)
# Buildkite
Use the `bk` CLI for all CI tasks instead of GitHub tools.
## Pre-flight
- **HARD RULE: investigate only your own branches.** Verify the branch is one you created before debugging; unfamiliar →
stop:
```bash
gh pr view "$PR" --json headRefName,author --jq '.headRefName + " (@" + .author.login + ")"'
```
- **HARD RULE:** Use the local `bk` CLI for every inspection — never `npx` or `WebFetch` on Buildkite URLs when `bk` is
available. Verify once: `command -v bk >/dev/null || { echo "bk CLI not on PATH"; exit 1; }`
- **HARD RULE:** Before any `bk` command, verify auth: `bk build view -p <pipeline> -b main --json 2>&1 | head -3`.
- **HARD RULE: strip warning prefix on every `--json | jq` pipe** — `grep -v '^Warning:'`.
- URL pasted → parse pipeline/build from path, use `bk build view`. Specific build → positional:
`bk build view -p <pipeline> <build-number> --json`. On `bk build view`, `-b` = `--branch`; on `bk job log`, `-b` =
`--build-number`.
- Pipeline slug: `bk build view --json 2>&1 | jq -r '.pipeline.slug'`. Build URL: `jq -r '.web_url'`; use `-w`/`--web`
only when the user explicitly asks to open the browser.
- Downloads: write to `/tmp/agent/buildkite/<build_number>/<job_id>/<filename>`; `mkdir -p` first.
## Auth errors
Any `bk` command returning 401/403/scope-missing/`Error: GET https://api.buildkite.com` → **stop**; tell the user to run
`bk auth login`. Never configure auth, create tokens, or extract tokens from config for curl workarounds. Exception:
`Mutation operations are not allowed` is NOT a stop-case → try `bk build rebuild` first. ≥2 consecutive rebuilds with
identical error → classify as infra-side, stop diagnosing.
## Checking build status
```bash
bk build view -p <pipeline> -b <branch> --json 2>&1 | grep -v '^Warning:' | \
jq '{number: .number, state: .state, finished: .finished_at, \
jobs: [.jobs[] | select(.state | IN("failed","broken","canceled","timed_out")) | \
{name: .name, state: .state, exit_status: .exit_status}]}'
```
- Current branch: canonical query above. Specific build: positional build number, filter `.type == "script"` jobs.
- **Rollup is not per-job evidence** — use per-job view for specific job claims:
```bash
bk build view -p <pipeline> <build-number> --json 2>&1 | grep -v '^Warning:' | \
jq -r --arg s '<step-name>' '.jobs[] | select(.name // "" | test($s)) | "\(.name) \(.state) exit=\(.exit_status)"'
```
- **No matching job = unwired gate, not a pass.** Guard name with `// ""` (null-named jobs abort `test()`). Count 0 →
grep repo for wiring, report unwired.
- States: [references/build-job-states.md](references/build-job-states.md). `broken` jobs are almost never root cause —
investigate `failed` first.
- Upstream step status inside a build: `buildkite-agent step get "outcome" --step "<step-key>"`
(`passed|failed|soft_failed|timed_out|broken`); never use sentinel files or artifact searches as proxies (crash before
cleanup → no signal).
## HARD RULE: never predict build outcomes
Never state a build will pass without fetching the actual result. After every push, fetch and report state.
## Investigating failures
**HARD RULE: check branch currency before diagnosing failures** — `git rev-list --count origin/main..HEAD`; branch
behind main → sync first, rebuild second.
1. Overall status → canonical query (failed, broken, canceled, timed-out jobs).
2. Fetch + analyze logs: `bk job log <job-uuid> -p <pipeline> -b <build-number> --no-timestamps 2>&1`. Raw REST logs →
strip ANSI escapes AND `_bk;t=<epoch-ms>` markers first.
3. **HARD RULE: classify infra vs. code before attributing a red build to the diff** — read the log body; infra markers
(retry, never touch the diff):
`Error setting up job executor`, `job_executor_error`, `exit code -1`,
`Running agent environment hook` failures, agent lost/terminated.
Retry single job: `bk job retry <job-uuid>`; retry succeeds = classification done.
- **A `canceled` job is unexplained, not infra** — read its log and the job that issued the cancel before retrying
(a fail-closed gate can `buildkite-agent build cancel`, so a real failure renders as `canceled`).
4. Check if pre-existing: canonical query against `-b main`.
5. **Report trigger AND cause separately** — "Build #N triggered by your merge;
failure in step X is pre-existing/infra, not your diff."
## Monitoring after push
```bash
bk build view -p <pipeline> -b <branch> --json 2>&1 | grep -v '^Warning:' | jq -r '.state'
```
- **HARD RULE: never foreground-poll** (no `until`/`while` on `bk build view`) — run one check, report state; background
with `run_in_background: true` if needed.
- **HARD RULE: a monitoring announcement states URL + failing step + next action — never just "monitoring in
background."**
- **HARD RULE: a background watch loop must prove each poll parsed.** Run it under explicit `bash -c` with pipeline and
build as separate positional args (never word-split a combined `$p` — zsh does not split it); print a first-poll
line and a line on every state change; empty/unparsable state → print and exit non-zero, never re-poll silently. (A
parse that fails without output starves the failure branch: the loop reads "still running" while the build is red.)
```bash
bash -c 'prev=; n=0; while :; do n=$((n+1))
s=$(bk build view -p "$1" "$2" --json 2>&1 | grep -v "^Warning:" | jq -r ".state" 2>/dev/null) || s=
[[ -z "$s" || "$s" == null ]] && { echo "poll $n: UNPARSABLE state"; exit 2; }
[[ "$s" != "$prev" ]] && echo "poll $n: $s"; prev=$s
case $s in passed) exit 0;; failed|canceled|blocked) exit 1;; esac; sleep 30; done' _ "$PIPELINE" "$BUILD"
```
- Non-required checks do not gate merge — gate on
`gh pr checks --json name,state,required | jq 'select(.required==true)'`.
## Cancelling and retrying
- Cancel from within: `buildkite-agent build cancel` (no token). From outside: REST `PUT .../builds/{n}/cancel` with
`write_builds` token.
- Retry: take the first that works: 1) `bk job retry <job-uuid> --yes --no-pager` (no pipeline flag; needs REST-mutation
token) 2) GraphQL-only → `bk build rebuild <n> -p <pipeline> -y` 3) mutation unavailable + infra failure →
`git commit --allow-empty -m "ci: retry infra failure"`. Escalate to `bk auth login` only if rebuild also fails.
- `bk artifacts download` forwards the bearer token to S3 presigned URLs → dual-auth rejection: download from the web UI
instead.
## CI pipeline config
- New env var: set at **every** forwarding layer or it is silently dropped — `env:` in `pipeline.yml`, plugin `env:`
array in `pipeline.rb`, `environment:` in `docker-compose.yml`, `ENV` in `Dockerfile`. Add
`expect(config['env']).to include('VAR')` in pipeline specs.
- Mirrored image: internal mirrors may be pre-seeded, not pull-through — verify the exact repo exists before pinning;
absent → reuse an existing pipeline image + install toolchain.
---From whizzzkid/skills, MIT.
More from whizzzkid/skills
- 0.588score
wk-devcontainer
whizzzkid
Use when creating or debugging a devcontainer for a Rails app (or any mise-managed project) — generates Dockerfile, docker-compose.yml, and devcontainer.json…
SkillAFreshness: A★ 1Claude Code +9 - 0.585score
wk-gh
whizzzkid
Activates whenever the agent uses the gh CLI or interacts with GitHub PRs, issues, or notifications.
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
wk-colima
whizzzkid
Use whenever working with Colima or Docker — ensures Colima is running before any container operation, starts it with the correct resource profile when not…
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
wk-design-review
whizzzkid
Use when reviewing or authoring UX / visual / interaction design changes — design.md, design systems, component libraries, CSS/tokens, UI diffs, or…
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
wk-arch-review
whizzzkid
Use when reviewing or authoring software architecture documents, specs, implementation plans, or delivery estimates — performs expert-level critical…
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
wk-docker
whizzzkid
Use when working with Docker — building images, inspecting containers, debugging Dockerfile issues, verifying image tags exist, or troubleshooting Docker…
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
wk-docs
whizzzkid
Check for and update documentation affected by code changes.
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
wk-env
whizzzkid
Use when diagnosing environment setup issues — checks that all env vars declared in a skill's frontmatter are present, sources $HOME/.profile when they are…
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
wk-format
whizzzkid
Apply the user's code-formatting preferences to any file the agent writes or edits, reconciled with the repo's lint/style configs (.editorconfig, eslint…
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
wk-adversarial-review
whizzzkid
Adversarial review of the current branch before it merges; blocks until every finding clears.
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
wk-datadog
whizzzkid
Create, manage, and edit Datadog dashboards, monitors, SLOs, and notebooks, and query metrics and logs, via the `pup` CLI (Datadog's agent-ready command-line…
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
wk-concise
whizzzkid
Reduce response verbosity and token usage.
SkillAFreshness: A★ 1Claude Code +9
Signals
- Stars
- 1
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Oct 9, 2026 (21 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- Version
- 2026.10.09-184159
- License
- MIT
- Repository
- github.com/whizzzkid/skills
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from whizzzkid
- 0.588score
wk-devcontainer
whizzzkid
Use when creating or debugging a devcontainer for a Rails app (or any mise-managed project) — generates Dockerfile, docker-compose.yml, and devcontainer.json…
SkillAFreshness: A★ 1Claude Code +9 - 0.585score
wk-gh
whizzzkid
Activates whenever the agent uses the gh CLI or interacts with GitHub PRs, issues, or notifications.
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
wk-curl
whizzzkid
Use whenever invoking curl to call an HTTP/HTTPS endpoint whose response is parsed or whose success matters — REST APIs, webhooks, health checks, file…
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
wk-colima
whizzzkid
Use whenever working with Colima or Docker — ensures Colima is running before any container operation, starts it with the correct resource profile when not…
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
wk-arch-review
whizzzkid
Use when reviewing or authoring software architecture documents, specs, implementation plans, or delivery estimates — performs expert-level critical…
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
wk-design-review
whizzzkid
Use when reviewing or authoring UX / visual / interaction design changes — design.md, design systems, component libraries, CSS/tokens, UI diffs, or…
SkillAFreshness: A★ 1Claude Code +9
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get wk-buildkite running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
wk-buildkite skill. Agent Mart. https://agentmart.dev/skills/whizzzkid-wk-buildkite (last updated 2026-10-24)