ワンクリックで
pipeline-authoring
Helps write and improve Buildkite pipeline YAML configurations.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Helps write and improve Buildkite pipeline YAML configurations.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Diagnoses Buildkite agent issues like stuck jobs and queue mismatches.
Analyzes failed Buildkite builds to identify root causes and provide fixes.
Shows recent Buildkite build status for a pipeline with pass/fail visibility.
Triggers new Buildkite builds with branch/commit control and safety confirmations.
Unblocks Buildkite builds waiting for manual approval.
Retrieves and displays Buildkite job logs. For debugging failures, use build-debugging instead.
| name | pipeline-authoring |
| description | Helps write and improve Buildkite pipeline YAML configurations. |
Help users write and improve Buildkite pipeline configurations.
| Tool | Purpose |
|---|---|
get_pipeline | Get existing pipeline configuration |
list_pipelines | List all pipelines in the organization |
Also use file reading to examine existing pipeline.yml or .buildkite/ files in the user's codebase.
Understand the goal
Check existing configuration
.buildkite/pipeline.yml or pipeline.ymlbuildkite_get_pipeline if they have an existing pipelineProvide appropriate help
Validate the result
# Environment for all steps
env:
NODE_ENV: "test"
# Default agent configuration
agents:
queue: "default"
# Pipeline steps
steps:
- command: "npm test"
label: ":npm: Tests"
- label: ":test_tube: Tests"
command: "npm test"
# Multiple commands
commands:
- "npm ci"
- "npm test"
# Artifacts to upload
artifact_paths:
- "coverage/**/*"
# Step-specific env
env:
CI: "true"
# Timeout
timeout_in_minutes: 10
# Retry configuration
retry:
automatic:
- exit_status: -1
limit: 2
- wait
# Continue even if previous failed
- wait:
continue_on_failure: true
- block: ":rocket: Deploy"
prompt: "Ready to deploy?"
branches: "main"
fields:
- text: "Reason"
key: "reason"
required: true
- select: "Environment"
key: "env"
options:
- label: "Staging"
value: "staging"
- label: "Production"
value: "production"
- trigger: "deploy-pipeline"
label: ":rocket: Deploy"
build:
branch: "${BUILDKITE_BRANCH}"
commit: "${BUILDKITE_COMMIT}"
env:
DEPLOY_ENV: "production"
- group: ":test_tube: Tests"
steps:
- command: "npm run test:unit"
label: "Unit"
- command: "npm run test:e2e"
label: "E2E"
steps:
- command: "npm ci"
key: "install"
- command: "npm test"
key: "test"
depends_on: "install"
- command: "npm run build"
depends_on:
- "install"
- "test"
- command: "npm run report"
depends_on:
- step: "test"
allow_failure: true
- command: "deploy.sh"
branches: "main"
# Multiple branches
- command: "deploy.sh"
branches:
- "main"
- "release/*"
# Only on main
- command: "deploy.sh"
if: build.branch == "main"
# Only for tags
- command: "release.sh"
if: build.tag =~ /^v[0-9]+/
# Skip draft PRs
- command: "full-tests.sh"
if: build.pull_request.draft != true
# Based on metadata
- command: "deploy.sh"
if: build.meta_data.deploy == "true"
- command: "npm test"
parallelism: 4
# Uses BUILDKITE_PARALLEL_JOB (0-3)
# and BUILDKITE_PARALLEL_JOB_COUNT (4)
- command: "test.sh"
matrix:
setup:
node: ["16", "18", "20"]
os: ["linux", "macos"]
# Creates 6 jobs (all combinations)
agents:
os: "{{matrix.os}}"
env:
NODE_VERSION: "{{matrix.node}}"
- command: "test.sh"
matrix:
setup:
node: ["16", "18", "20"]
adjustments:
- with:
node: "20"
soft_fail: true
# Good - explicit
- command: "build"
key: "build"
- command: "test"
depends_on: "build"
# Avoid - implicit ordering is fragile
- command: "npm run lint"
soft_fail: true
# Or specific exit codes
- command: "npm audit"
soft_fail:
- exit_status: 1
- command: "npm test"
retry:
automatic:
- exit_status: -1 # Agent lost
limit: 2
- exit_status: 255 # Network
limit: 2
- command: "npm test"
timeout_in_minutes: 15
- command: "npm test"
plugins:
- cache#v1.0.0:
paths:
- "node_modules"
key: "npm-{{ checksum 'package-lock.json' }}"
steps:
- label: ":npm: Install"
command: "npm ci"
key: "install"
- label: ":eslint: Lint"
command: "npm run lint"
depends_on: "install"
soft_fail: true
- label: ":jest: Test"
command: "npm test"
depends_on: "install"
- label: ":package: Build"
command: "npm run build"
depends_on:
- "install"
- "test"
steps:
- label: ":test_tube: Test"
command: "npm test"
key: "test"
- wait
- label: ":rocket: Deploy Staging"
command: "deploy.sh staging"
key: "staging"
branches: "main"
- block: ":rocket: Deploy Production?"
branches: "main"
- label: ":rocket: Deploy Production"
command: "deploy.sh production"
branches: "main"
steps:
- label: ":mag: Detect Changes"
command: "scripts/detect-changes.sh"
key: "detect"
- label: ":package: Build API"
command: "npm run build -w api"
if: build.env.API_CHANGED == "true"
depends_on: "detect"
- label: ":package: Build Web"
command: "npm run build -w web"
if: build.env.WEB_CHANGED == "true"
depends_on: "detect"
When helping with pipelines:
Always provide complete, copy-pasteable YAML.
User: Help me set up CI for my Node.js project
1. Ask about test framework, deploy targets, any special needs
2. Provide scaffold:
```yaml
steps:
- label: ":npm: Install"
command: "npm ci"
key: "install"
- label: ":jest: Test"
command: "npm test"
depends_on: "install"
artifact_paths:
- "coverage/**/*"
- label: ":package: Build"
command: "npm run build"
depends_on: "install"
artifact_paths:
- "dist/**/*"
```
3. Explain the structure and ask if they need additions