mcncl

build-unblocking

0
0
# Install this skill:
npx skills add mcncl/skill-buildkite --skill "build-unblocking"

Install specific skill from multi-skill repository

# Description

|

# SKILL.md


name: build-unblocking
description: |
Unblocks Buildkite builds waiting for manual approval. Use when user asks:
- "Unblock the build"
- "Approve the deployment"
- "Continue the pipeline"
- "Unblock build X"
- "Approve the staging deploy"
- /buildkite:unblock


Build Unblocking

Unblock builds that are waiting for manual approval.

Available MCP Tools

Tool Purpose
buildkite_get_build Get build details and find blocked jobs
buildkite_unblock_job Unblock a specific job
buildkite_list_builds Find builds with blocked steps

Input Parsing

Parse from $ARGUMENTS or user's message:

Input Format Example
Build URL https://buildkite.com/org/pipe/builds/123
Build number 123
Description "the blocked deploy"
Pipeline reference "unblock the staging pipeline"

Approach

  1. Find the blocked job
  2. Fetch build with buildkite_get_build
  3. Look for jobs with state: "blocked"
  4. If multiple blocked jobs, ask which one

  5. Show block details

  6. What step is blocked (name/label)
  7. What the block step says (prompt message)
  8. Any required fields

  9. Collect required fields if any

  10. Block steps can require text input or selections
  11. Ask user for each required field
  12. Validate input format

  13. Confirm before unblocking

  14. Show what will be unblocked
  15. Extra confirmation for deploy gates

  16. Unblock with buildkite_unblock_job

  17. Report status

  18. Confirm unblocked
  19. Show what runs next

Block Step Fields

Block steps may require input:

- block: "Deploy to Production"
  fields:
    - text: "Reason for deployment"
      key: "reason"
      required: true
    - select: "Target environment"
      key: "environment"
      options:
        - label: "Staging"
          value: "staging"
        - label: "Production"
          value: "production"

When fields are required, collect them:

This block step requires input:

1. **Reason for deployment** (required):
   > [waiting for user input]

2. **Target environment**:
   - Staging
   - Production

Safety Requirements

Standard Block

I'll unblock **"Deploy to Staging"** in build #456.

This will continue the pipeline and run the deployment steps.

Proceed? (yes/no)

Production/Deploy Gates

⚠️ This is a production deployment gate.

Unblocking **"Deploy to Production"** in build #456 will:
- Deploy commit abc123 to production
- This cannot be easily undone

Type "deploy" to confirm.

Response Format

After unblocking:

✅ Build unblocked!

**Build #456**: Continuing...
- Unblocked step: "Deploy to Staging"
- Next steps: deploy, smoke-tests, notify

The pipeline is now continuing.

Finding Blocked Builds

If user doesn't specify a build:

  1. Use buildkite_list_builds filtered to blocked state
  2. Show recent blocked builds:
Found 2 blocked builds:

1. **#456** - my-pipeline (main)
   Blocked at: "Deploy to Production"
   Waiting since: 2 hours ago

2. **#453** - deploy-service (release/v2)
   Blocked at: "Manual QA Approval"
   Waiting since: 1 day ago

Which build would you like to unblock?

Example Interaction

User: Approve the staging deployment

1. Find recent builds with blocked state
2. Identify block step matching "staging"
3. Show block details and any required fields
4. Confirm with user
5. Unblock and report status

# Supported AI Coding Agents

This skill is compatible with the SKILL.md standard and works with all major AI coding agents:

Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.