mcpbeat Sign in

Check CI Skill for Claude

>- results with ci-watch, investigate failures, and report. Use when the user asks to check, watch, or monitor CI, or to see whether a pipeline passed.

2k tokens
context cost
the whole folder, loaded on every use
1
files
instructions only
0
copies elsewhere
how many repositories repackaged it
558
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/DataDog/dd-trace-php --skill check-ci

What it tells the agent to use

found in the instruction text
Bash runs shell commands — read the instruction before connecting

The instruction itself

13 sections, as written by the author

Check CI

Monitor GitLab CI and GitHub Actions until all jobs finish, then investigate

any failures and report results.

When --commit is used (or defaulting to HEAD), both GitLab pipelines and

GitHub Actions workflow runs are monitored. GitHub monitoring requires

ddtool auth github login --org DataDog; if unavailable, a warning is

printed and only GitLab is monitored. --pipeline <id> is GitLab-only and

skips GitHub.

Input

$ARGUMENTS may contain any combination of:

  • --commit <ref> — git ref to resolve (default: HEAD); monitors GitLab +

GitHub

  • --pipeline <id> — specific GitLab pipeline ID (skips GitHub monitoring)
  • --jobs <pat1,pat2> — comma-separated substring patterns (case-insensitive);

monitor ONLY the jobs whose name contains any pattern. In monitoring mode the

run finishes as soon as the matched subset is terminal (rather than waiting for

the whole pipeline); with --list-jobs the snapshot shows only matched jobs.

Applies to both GitLab jobs and GitHub Actions workflow jobs. Omit for

whole-pipeline monitoring (the default).

  • --list-jobs — quick snapshot mode (no monitoring)

If no --commit or --pipeline is given, default to --commit HEAD.

Quick mode — --list-jobs

Run synchronously and exit immediately:

.claude/ci/check-ci --commit <ref> --list-jobs

Prints all jobs grouped by pipeline (GitLab) and workflow run (GitHub

Actions) with their status. Print the table to the user and stop. Do not

continue to the monitoring steps.

Full monitoring mode

Step 1 — Start check-ci in the background

PYTHONUNBUFFERED=1 .claude/ci/check-ci [OPTIONS]
  • Use run_in_background: true in Bash tool invocation. Do NOT append & or

redirect output.

  • The Bash tool returns immediately with an output file path like

/path/to/tasks/<id>.output ("Output is being written to ..." in the tool

invocation output). Note this path — it is required in Step 2. This file path

will be referred to as OUTPUT_FILE henceforth.

  • Default options if the user provided none: --commit HEAD.
  • You may also pass --max-failures 50 (default) and

--timeout 7200 (default, 2 h).

  • To watch only a named subset of jobs, add --jobs "<pat1>,<pat2>,...". The

run then finishes as soon as those matched jobs are terminal, instead of

waiting for the whole pipeline. Example — watch the three Windows test_c

version variants:

  PYTHONUNBUFFERED=1 .claude/ci/check-ci \
    --jobs "windows test_c: [7.2],windows test_c: [7.3],windows test_c: [7.4]"

Step 2 — Start ci-watch in the background

.claude/ci/ci-watch [--start-offset N] OUTPUT_FILE
  • OUTPUT_FILE must be the output file from the check-ci task above.
  • Use run_in_background: true.
  • You are notified when ci-watch exits through a task notification. While it

runs, you may do other work.

  • On exit, ci-watch always prints RESUME_OFFSET: <N>. Record it for re-runs.

ci-watch exit codes:

| Code | Meaning |

|------|---------|

| 0 | All pipelines completed — no failures |

| 1 | One or more FAILED: lines detected |

| 2 | Stale — no new output for 5 minutes |

| 3 | check-ci timed out |

Step 3 — Speak and act on the result

Immediately after ci-watch exits, call

mcp__speak_when_done__speak(message="...") (the first time, you'll need to do

invoke ToolSearch("select:mcp__speak_when_done__speak"):

  • Exit 0 → "All CI jobs passed"
  • Exit 1 → "<N> CI jobs failed" (count with `grep "^FAILED:" OUTPUT_FILE | wc

-l`)

  • Exit 2 or 3 → "CI monitor timed out"

Then choose the appropriate action:

All jobs passed (exit 0)

Report success to the user and stop.

Failures detected (exit 1)
  • List the failed jobs:
   grep "^FAILED:" OUTPUT_FILE

The output directory is /tmp/gitlab_<pipeline_id>/. Logs are at:

  • fail_logs/<job_id>.log — GitLab job traces
  • gh_fail_logs/gh_<job_id>.log — GitHub Actions job logs

GitHub entries in failure.txt are prefixed [GH].

  • Read each failure log and diagnose the root cause. Look for:
  • Compile errors or linker failures
  • Test assertion failures (include the failing test name and diff)
  • Infrastructure/flakiness signals (timeout, network, Docker pull failures,

OOM) — mark these as flaky rather than real failures.

Except you don't need to go through of them if it becomes evident it's

unnecessary.

  • Report findings grouped by root cause.
  • Fix and push only when all three conditions hold:

a. The user explicitly asked you to fix CI failures.

b. You have made changes to address the failures.

c. The current branch has an upstream remote branch.

If any condition is missing, stop and report instead.

When all three hold: commit the fix, push, then go back to Step 1

to re-monitor.

If possible, before attempting a fix, try to reproduce the failure locally.

Check @.claude/ci/index.md for instructions. Then attempt your fix and rerun

to confirm the fix resolves the problem.

Stale or timed out (exit 2 or 3)

Re-run ci-watch with --start-offset <RESUME_OFFSET> (Step 2) to

resume watching from where you left off. If check-ci itself has also

exited, restart from Step 1.

Keep watching (user wants to continue after investigation)

Re-run ci-watch with --start-offset <RESUME_OFFSET> (back to Step 2).

Downloading artifacts

Use tooling/bin/download-artifacts to fetch build outputs from CI jobs

(e.g., compiled extensions, SSI loader, datadog-setup.php). Useful when

investigating a failure that produced an artifact worth inspecting locally.

Rules

  • Never push unless the user explicitly asked for it. See the global

instruction "Do not push to git remotes unless explicitly asked to."

  • Flaky jobs (known to be intermittent, unrelated to the current

changes) should be noted but not treated as real failures requiring

a fix. However, to confirm that a test is failure you should look for

similar failures in the merge base.

  • GITLAB_PERSONAL_ACCESS_TOKEN is already set in the environment —

do not re-export it.

  • Raw job logs can also be fetched directly. For Gitlab:
  curl -s -H "PRIVATE-TOKEN: $GITLAB_PERSONAL_ACCESS_TOKEN" \
    "https://gitlab.ddbuild.io/api/v4/projects/355/jobs/<JOB_ID>/trace"

Other skills for the same job

different authors, same section of the catalogue
Azure Kubernetes Automatic Readiness
by microsoft
vendor ×3

Assess Kubernetes workloads and cluster configuration for AKS Automatic compatibility. Identifies incompatibilities, generates fixes, and guides migration from AKS Standard to AKS Automatic. WHEN: migrate to AKS Automatic, check AKS Automatic readiness, validate manifests for Automatic, assess cluster for Automatic compatibility, fix deployment for Automatic compatibility, identify AKS Automatic migration blockers, is my cluster ready for AKS Automatic.

13k tokens
Capacity
by microsoft
vendor ×3

Discovers available Azure OpenAI model capacity across regions and projects. Analyzes quota limits, compares availability, and recommends optimal deployment locations based on capacity requirements. USE FOR: find capacity, check quota, where can I deploy, capacity discovery, best region for capacity, multi-project capacity search, quota analysis, model availability, region comparison, check TPM availability. DO NOT USE FOR: actual deployment (hand off to preset or customize after discovery), quota increase requests (direct user to Azure Portal), listing existing deployments.

6k tokens scripts
Customize
by microsoft
vendor ×3

Interactive guided deployment flow for Azure OpenAI models with full customization control. Step-by-step selection of model version, SKU (GlobalStandard/Standard/ProvisionedManaged), capacity, RAI policy (content filter), and advanced options (dynamic quota, priority processing, spillover). USE FOR: custom deployment, customize model deployment, choose version, select SKU, set capacity, configure content filter, RAI policy, deployment options, detailed deployment, advanced deployment, PTU deployment, provisioned throughput. DO NOT USE FOR: quick deployment to optimal region (use preset).

8k tokens
Deploy Model
by microsoft
vendor ×3

Unified Azure OpenAI model deployment skill with intelligent intent-based routing. Handles quick preset deployments, fully customized deployments (version/SKU/capacity/RAI policy), and capacity discovery across regions and projects. USE FOR: deploy model, deploy gpt, create deployment, model deployment, deploy openai model, set up model, provision model, find capacity, check model availability, where can I deploy, best region for model, capacity analysis. DO NOT USE FOR: listing existing deployments (use foundry_models_deployments_list MCP tool), deleting deployments, agent creation (use agent/create), project creation (use project/create).

26k tokens scripts
Preset
by microsoft
vendor ×3

Intelligently deploys Azure OpenAI models to optimal regions by analyzing capacity across all available regions. Automatically checks current region first and shows alternatives if needed. USE FOR: quick deployment, optimal region, best region, automatic region selection, fast setup, multi-region capacity check, high availability deployment, deploy to best location. DO NOT USE FOR: custom SKU selection (use customize), specific version selection (use customize), custom capacity configuration (use customize), PTU deployments (use customize).

9k tokens
Lamindb
by christophacham
×3

This skill should be used when working with LaminDB, an open-source data framework for biology that makes data queryable, traceable, reproducible, and FAIR. Use when managing biological datasets (scRNA-seq, spatial, flow cytometry, etc.), tracking computational workflows, curating and validating data with biological ontologies, building data lakehouses, or ensuring data lineage and reproducibility in biological research. Covers data management, annotation, ontologies (genes, cell types, diseases, tissues), schema validation, integrations with workflow managers (Nextflow, Snakemake) and MLOps platforms (W&B, MLflow), and deployment strategies.

22k tokens
Latchbio Integration
by christophacham
×3

Latch platform for bioinformatics workflows. Build pipelines with Latch SDK, @workflow/@task decorators, deploy serverless workflows, LatchFile/LatchDir, Nextflow/Snakemake integration.

12k tokens
Modal
by christophacham
×3

Run Python code in the cloud with serverless containers, GPUs, and autoscaling. Use when deploying ML models, running batch processing jobs, scheduling compute-intensive tasks, or serving APIs that require GPU acceleration or dynamic scaling.

17k tokens

How to use it

Copy the folder

Take datadog/check-ci from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.