Agent skill

Verify CI Impact

by godatadriven in godatadriven/whirl

Before committing, work out which Whirl examples need a CI run to verify changes still work, then run them after confirming with the user.

Apache-2.0Auto-check passedDevOps & Cloud

Install Verify CI Impact

skills CLI
$ npx skills add godatadriven/whirl --skill verify-ci-impact -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install godatadriven/whirl verify-ci-impact --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/godatadriven/whirl.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/verify-ci-impact .claude/skills/verify-ci-impact && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
verify-ci-impact
GitHub stars
205
Token cost
~1.3k tokens
SKILL.md length
693 words
Files
2 (incl. scripts)
Skills in repo
4
Repo updated
First seen
Licence
Apache-2.0

At a glance

Before committing, work out which Whirl examples need a CI run to verify changes still work, then run them after confirming with the user.

  • Works in 5 steps: Identify the CI runs → Handle the edge cases before asking → Ask permission → …
  • The user is about to commit and asks what should I test / verify before committing
  • SKILL.md covers How impact is determined and Workflow
  • Runs Shell scripts from its folder

What it does

Verify CI Impact is an agent skill from godatadriven/whirl. Before committing, work out which Whirl examples need a CI run to verify changes still work, then run them after confirming with the user. Use whenever the user is about to commit and asks "what should I test / verify before committing", "which examples does this change affect", "run CI for what I changed", or wants to validate edits to examples, envs, or core whirl files. Identifies the CI runs first and asks permission before running anything.

Its SKILL.md is about 1.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including scripts (for example `scripts/ci_impact.sh`).

It sits in DevOps & Cloud. It works with Docker and Apache Airflow. The repository describes itself as: Fast iterative local development and testing of Apache Airflow workflows. The licence is Apache-2.0.

When your agent uses it

  • The user is about to commit and asks what should I test / verify before committing
  • Which examples does this change affect
  • Run CI for what I changed
  • Wants to validate edits to examples

Example prompts

  • “what should I test / verify before committing”
  • “which examples does this change affect”
  • “run CI for what I changed”
  • “/verify-ci-impact”

Requirements

  • A Bash shell
  • Docker

Workflow steps

5 steps, taken from the step headings in SKILL.md.

  1. Identify the CI runs
  2. Handle the edge cases before asking
  3. Ask permission
  4. Run the approved CI checks
  5. Summarize

What it can do on your machine

Read from SKILL.md and the folder at commit f085d57. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 1 file in scripts/ (Shell), which the agent can run.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Verify CI Impact loads about 1.3k tokens when it runs. Until then it costs about 117 tokens; SKILL.md has 693 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~117
When it runs · the whole SKILL.md, loaded when a task matches
~1.3k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from godatadriven/whirl at commit f085d57, republished under its Apache-2.0 licence (© godatadriven). 693 words, ~1,325 tokens.

Download SKILL.mdSave it as .claude/skills/verify-ci-impact/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
verify-ci-impact
description
Before committing, work out which Whirl examples need a CI run to verify changes still work, then run them after confirming with the user. Use whenever the user is about to commit and asks "what should I test / verify before committing", "which examples does this change affect", "run CI for what I changed", or wants to validate edits to examples, envs, or core whirl files. Identifies the CI runs first and asks permission before running anything.

Verify CI Impact

When code changes in this repo, only a subset of the ~19 examples actually need to be re-verified. Running every example is slow (each spins up Docker and an Airflow run), and running the wrong ones gives false confidence. This skill maps the changed files to the exact set of examples to verify, presents that plan, and only runs CI after the user agrees.

The two phases are deliberately separate: identify first, run second. Never start CI runs before the user has seen the plan and approved it — they may want to narrow the scope, skip the heavy ones, or commit without running anything.

How impact is determined

The unit of verification is an (example, environment) combination, not just an example. Most examples run against one environment — their default, set in examples/<name>/.whirl.env (WHIRL_ENVIRONMENT=<env>). But the GitHub Actions workflow (.github/workflows/whirl-ci.yml) also runs a few examples against a non-default environment in separate "extra-env" jobs via whirl ci -e <env> (e.g. api-to-s3 on api-python-s3-k8s, external-airflow-db on ha-scheduler, spark-s3-to-postgres on postgres-s3-spark). Those combinations must be verified too, so the script parses them straight from the workflow.

The mapping rules (encoded in scripts/ci_impact.sh):

Changed pathCombinations to verify
examples/<name>/...<name> against every env CI runs it with — its default env and any non-default extra-env runs
envs/<env>/...every (example, <env>) combination CI runs, whether <env> is that example's default or an extra-env override
whirl, docker/..., docker-compose.yaml, root .whirl.envCORE — affects all examples; a human picks the scope
anything else (*.md, .claude/..., README, logos)no CI impact

Both indexes (default from each .whirl.env, extra from the workflow) are built dynamically, so the mapping stays correct as examples are added, re-pointed, or as extra-env jobs are added/removed. Non-default combinations are tagged NON-default in the output and produce ./whirl -x <example> ci -e <env> commands.

Workflow

1. Identify the CI runs

Run the bundled script from the repo root:

bash
.claude/skills/verify-ci-impact/scripts/ci_impact.sh

It inspects committed-on-branch changes (vs master), staged, unstaged, and untracked files, then prints: the changed areas, any CORE change, the examples to verify (with the reason each was selected), and the exact ./whirl -x <example> ci commands. Pass --base <ref> to diff against a different branch.

Read the output and relay it to the user as a short plan — which examples, and why each one was selected. Don't just paste the raw output; summarize it.

Show full SKILL.md (305 more words)Show less
2. Handle the edge cases before asking
  • CORE change — the script does not expand this to "run everything" because that can be 19 Docker runs. Surface it and propose a representative subset (the script suggests one covering S3/API, Spark, dbt, DB+SFTP, and just-airflow), then let the user decide subset vs. all.
  • Excluded-from-CI examples — some examples are excluded from the GitHub Actions matrix (memory limits, no default DAG, or a separate job): the script tags these with a [NOTE: excluded from GitHub CI matrix]. They can still be run locally, but flag that they need more resources / manual attention and may not be part of normal CI.
  • No impact — if only docs/.claude/ changed, tell the user no CI run is needed and stop. Don't run anything.
3. Ask permission

Present the concrete command list and ask the user to confirm before running. Make the cost visible — note how many runs and that each one builds/starts Docker. If there are several, ask whether they want all of them, a subset, or to skip.

Only proceed with the runs the user explicitly approves.

4. Run the approved CI checks

Run each approved combination in CI mode from the repo root, using the exact command the script printed — default-env runs are ./whirl -x <example> ci, and non-default combinations include the env override:

bash
./whirl -x <example> ci            # default env
./whirl -x <example> ci -e <env>   # non-default env combination

CI mode is headless: it starts the containers, triggers the default DAG, waits for completion, and tears down. Run them one at a time (they are resource-heavy and parallel Docker stacks contend for ports/memory). After each run, report whether the DAG succeeded; if one fails, surface the failure and stop before continuing to the next unless the user wants to push on.

5. Summarize

Report which examples passed, which failed, and which were skipped — so the user knows exactly what was and wasn't verified before they commit.

© godatadriven, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file (scripts) in .claude/skills/verify-ci-impact of godatadriven/whirl.

  • SKILL.md
  • scripts/ci_impact.sh

Open the folder on GitHubat commit f085d57

Compare with similar skills

Verify CI Impact next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Verify CI Impact compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Verify CI Impact this skillgodatadriven/whirl205—~1.3kAutomated safety check: PassApache-2.0
Deploying Airflowastronomer/agents4511 repos~2.8kAutomated safety check: PassApache-2.0
Deploying Go SDK Bundlesastronomer/agents451—~1.8kAutomated safety check: NotesApache-2.0
Deploying Java SDK Bundlesastronomer/agents451—~2.8kAutomated safety check: NotesApache-2.0
Upgrading Mwaa Environmentsaws/agent-toolkit-for-aws2.8k—~7.3kAutomated safety check: PassApache-2.0
Releasebmeares/Meerschaum154—~1.1kAutomated safety check: NotesApache-2.0

Similar skills

  • Deploying Airflow

    astronomer/agents

    Deploys Airflow DAGs and projects. An agent skill from astronomer/agents.

    451 GitHub starsUsed in 1 repo~2.8k tokens
    Data & AnalyticsAuto-check passed
  • Deploying Go SDK Bundles

    astronomer/agents

    Builds, packs, and deploys compiled Airflow Go SDK bundles so the ExecutableCoordinator can run them.

    451 GitHub stars~1.8k tokensUpdated 3 days ago
    Data & AnalyticsAuto-check: notes
  • Builds and deploys compiled Airflow Java SDK bundles so workers can run them.

    451 GitHub stars~2.8k tokensUpdated 3 days ago
    Data & AnalyticsAuto-check: notes
  • Upgrading Mwaa Environments

    aws/agent-toolkit-for-aws

    Official

    Upgrades an MWAA environment to a newer Airflow version — within 2.x, within 3.x, or across the 2.x-to-3.x boundary.

    2.8k GitHub stars~7.3k tokensUpdated yesterday
    Data & AnalyticsAuto-check passed
  • Release

    bmeares/Meerschaum

    Meerschaum release process — bump version, update changelog, stage dev→main PR, run CI, publish to PyPI, tag, GitHub release, build/push Docker images, rebuild docs on prod VPS.

    154 GitHub stars~1.1k tokensUpdated today
    DevOps & CloudAuto-check: notes
  • Edit

    omegaml/omegaml

    how to use the edit command properly

    108 GitHub stars~206 tokensUpdated yesterday
    DevOps & CloudAuto-check passed

More from godatadriven/whirl

  • Create Environment

    godatadriven/whirl

    Create a new Whirl environment in the envs/ directory. An agent skill from godatadriven/whirl.

    205 GitHub stars~1.9k tokensUpdated 9 days ago
    Auto-check passed
  • Create Example

    godatadriven/whirl

    Create a new Whirl example project in the examples/ directory.

    205 GitHub stars~1.1k tokensUpdated 9 days ago
    Auto-check passed
  • Version Bumper

    godatadriven/whirl

    Bump the Airflow or Python version across all project files.

    205 GitHub stars~1.2k tokensUpdated 9 days ago
    Auto-check passed

Questions about Verify CI Impact

What does Verify CI Impact do?

Before committing, work out which Whirl examples need a CI run to verify changes still work, then run them after confirming with the user. Verify CI Impact is an agent skill from godatadriven/whirl. Before committing, work out which Whirl examples need a CI run to verify changes still work, then run them after confirming with the user.

When should I use Verify CI Impact?

Verify CI Impact fits situations like: the user is about to commit and asks what should I test / verify before committing; which examples does this change affect; run CI for what I changed; wants to validate edits to examples.

How do I install Verify CI Impact in Claude Code?

Run `npx skills add godatadriven/whirl --skill verify-ci-impact -a claude-code`. Or copy the skill folder (.claude/skills/verify-ci-impact in godatadriven/whirl) into .claude/skills/verify-ci-impact in your project. Claude Code loads it when a task matches its description.

How do I install Verify CI Impact in Codex?

Run `npx skills add godatadriven/whirl --skill verify-ci-impact -a codex`. Or copy the skill folder (.claude/skills/verify-ci-impact in godatadriven/whirl) into .agents/skills/verify-ci-impact in your project. Codex loads it when a task matches its description.

Can I use Verify CI Impact in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add godatadriven/whirl --skill verify-ci-impact -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/verify-ci-impact, .gemini/skills/verify-ci-impact, .github/skills/verify-ci-impact and .opencode/skills/verify-ci-impact in your project.

What does Verify CI Impact need to run?

Going by SKILL.md and its folder, Verify CI Impact needs a shell for the scripts in its folder. Our summary lists: A Bash shell; Docker.

Does Verify CI Impact access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Verify CI Impact safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Verify CI Impact use?

Verify CI Impact is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Verify CI Impact use?

About 1.3k tokens (SKILL.md is roughly 5.3k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Verify CI Impact?

Skills that share tags, products or a category with Verify CI Impact: Deploying Airflow (astronomer/agents, 451 stars), Deploying Go SDK Bundles (astronomer/agents, 451 stars), Deploying Java SDK Bundles (astronomer/agents, 451 stars) and Upgrading Mwaa Environments (aws/agent-toolkit-for-aws, 2.8k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Verify CI Impact?

godatadriven (a GitHub organization) maintains it in godatadriven/whirl, which has 205 GitHub stars. The repository holds 4 skills in this directory. The repository was last updated on October 1, 2026.

Source: godatadriven/whirl on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.