Swig Test
swig/swig
Run SWIG test suite for specific languages. An agent skill from swig/swig.
Analyzes recent CI failures on pull requests to identify flaky tests, using retry outcomes (failed attempt → green re-run) and cross-PR recurrence as evidence, and maintains a local longitudinal…
$ npx skills add opsmill/infrahub --skill analyzing-ci-flakiness -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install opsmill/infrahub analyzing-ci-flakiness --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/opsmill/infrahub.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/analyzing-ci-flakiness .claude/skills/analyzing-ci-flakiness && rm -rf skills-srcUse ~/.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/
Install the "analyzing-ci-flakiness" agent skill from https://github.com/opsmill/infrahub/tree/stable/.agents/skills/analyzing-ci-flakiness into .claude/skills/analyzing-ci-flakiness/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "analyzing-ci-flakiness", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/opsmill/infrahub/tree/stable/.agents/skills/analyzing-ci-flakinessType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add opsmill/infrahub --skill analyzing-ci-flakiness -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install opsmill/infrahub analyzing-ci-flakiness --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/opsmill/infrahub.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/analyzing-ci-flakiness .agents/skills/analyzing-ci-flakiness && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "analyzing-ci-flakiness" agent skill from https://github.com/opsmill/infrahub/tree/stable/.agents/skills/analyzing-ci-flakiness into .agents/skills/analyzing-ci-flakiness/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "analyzing-ci-flakiness", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add opsmill/infrahub --skill analyzing-ci-flakiness -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install opsmill/infrahub analyzing-ci-flakiness --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/opsmill/infrahub.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/analyzing-ci-flakiness .cursor/skills/analyzing-ci-flakiness && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "analyzing-ci-flakiness" agent skill from https://github.com/opsmill/infrahub/tree/stable/.agents/skills/analyzing-ci-flakiness into .cursor/skills/analyzing-ci-flakiness/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "analyzing-ci-flakiness", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/opsmill/infrahub.git --path .agents/skills/analyzing-ci-flakiness--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add opsmill/infrahub --skill analyzing-ci-flakiness -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install opsmill/infrahub analyzing-ci-flakiness --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/opsmill/infrahub.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/analyzing-ci-flakiness .gemini/skills/analyzing-ci-flakiness && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "analyzing-ci-flakiness" agent skill from https://github.com/opsmill/infrahub/tree/stable/.agents/skills/analyzing-ci-flakiness into .gemini/skills/analyzing-ci-flakiness/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "analyzing-ci-flakiness", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install opsmill/infrahub analyzing-ci-flakinessInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add opsmill/infrahub --skill analyzing-ci-flakiness -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/opsmill/infrahub.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/analyzing-ci-flakiness .github/skills/analyzing-ci-flakiness && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "analyzing-ci-flakiness" agent skill from https://github.com/opsmill/infrahub/tree/stable/.agents/skills/analyzing-ci-flakiness into .github/skills/analyzing-ci-flakiness/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "analyzing-ci-flakiness", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add opsmill/infrahub --skill analyzing-ci-flakiness -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install opsmill/infrahub analyzing-ci-flakiness --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/opsmill/infrahub.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/analyzing-ci-flakiness .opencode/skills/analyzing-ci-flakiness && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "analyzing-ci-flakiness" agent skill from https://github.com/opsmill/infrahub/tree/stable/.agents/skills/analyzing-ci-flakiness into .opencode/skills/analyzing-ci-flakiness/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "analyzing-ci-flakiness", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
analyzing-ci-flakinessAnalyzes recent CI failures on pull requests to identify flaky tests, using retry outcomes (failed attempt → green re-run) and cross-PR recurrence as evidence, and maintains a local longitudinal…
Analyzing CI Flakiness is an agent skill from opsmill/infrahub. Analyzes recent CI failures on pull requests to identify flaky tests, using retry outcomes (failed attempt → green re-run) and cross-PR recurrence as evidence, and maintains a local longitudinal ledger so flakiness can be tracked over time. TRIGGER when: the user wants to find flaky tests, correlate recent CI failures, check which tests fail across PRs or recover on retry, or refresh the flakiness trend report. DO NOT TRIGGER when: babysitting a single PR's CI until green → monitoring-pull-requests; diagnosing or…
Its SKILL.md is about 2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including scripts (for example `scripts/collect.py`). Compatibility notes: Requires the gh CLI authenticated against the repo. Python 3 (stdlib only). Writes a cache under ~/ci-cache.
It sits in Testing & QA, covering Failing and flaky tests. The repository describes itself as: Infrahub is a graph-based data management platform with built-in version control, CI workflows, peer review, and API access. It’s purpose-built to power reliable infrastructure… The licence is Apache-2.0.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 2e1f1eb. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
Bash(python3 .agents/skills/analyzing-ci-flakiness/scripts/collect.py:*)From allowed-tools in the SKILL.md frontmatter.
Ships 1 file in scripts/ (Python), which the agent can run.
Shell commands in SKILL.md call:
python3dockerFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use docker, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Requires the gh CLI authenticated against the repo. Python 3 (stdlib only). Writes a cache under ~/ci-cache.
From compatibility in the SKILL.md frontmatter.
Analyzing CI Flakiness loads about 2k tokens when it runs. Until then it costs about 150 tokens; SKILL.md has 914 words of instructions outside code blocks.
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.
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.
The full file from opsmill/infrahub at commit 2e1f1eb, republished under its Apache-2.0 licence (© opsmill). 914 words, ~2,004 tokens.
.claude/skills/analyzing-ci-flakiness/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.A test is flaky when its failure does not reproduce on the same code: the run was retried and
went green, or the same test fails on unrelated PRs. This skill mines both signals from GitHub
Actions history, downloads the failed job logs once into a local cache, and appends every
observation to a ledger (~/ci-cache/<owner>-<name>/ledger.jsonl) so repeated invocations —
weekly, or ad hoc — accumulate trend data instead of starting from scratch.
The mechanical part (fetching, caching, test-name extraction, known-signature classification) is done by the bundled script. Your job is the judgment part: separating flakes from real regressions, spotting new systemic signatures, and writing the report.
release-1.11,
release-*, stable). Default: no filter (all PR bases), which is usually what "how flaky is
CI" means. Filter when the user names a branch.Run the bundled collector (repo-root relative):
python3 .agents/skills/analyzing-ci-flakiness/scripts/collect.py \
[--base <glob> ...] [--days N | --since YYYY-MM-DD] [--repo owner/name]It prints a JSON report to stdout and writes everything under
~/ci-cache/<owner>-<name>/windows/<since>_<until>/:
runs.jsonl — every pull_request workflow run created in the windowfailed_jobs_with_tests.json — failed jobs of the interesting run-attempts, with extracted
failing tests, systemic-bucket tags, and a recovered_same_run flagreport-data.json — headline numbers, ranked per-test table, per-bucket incident counts
(bucket_incidents: distinct jobs/runs/PRs per systemic bucket), and the ledger's weekly
historyjoblogs/<job_id>.log — raw logs (ANSI intact; strip with sed 's/\x1b\[[0-9;]*m//g')Notes the script already accounts for — don't re-derive them:
pull_requests field is empty for many runs; the script joins runs to PRs
through every PR head commit SHA as well. Don't trust the field alone.joblogs/*.log means expired, not passing.For failed jobs with an empty tests list and no bucket tag, read the log yourself (grep for
##[error], FAILED, Error:, Timeout). Two outcomes:
BUCKETS in collect.py and to the table below, so future runs classify it.extract_tests.BUCKETS in collect.py)| Bucket | Signature | Meaning |
|---|---|---|
stack-readiness | ServerNotResponsiveError … /api/schema/load | Seeded testcontainers stack not ready; the whole pytest-playwright shard errors. One incident, not N flaky tests. |
vitest-mock-corruption | TypeError: vi.mocked(...).mockX is not a function | vitest browser-mode module-mocking race; hits a different test file each time. |
prefect-setup-triggers-timeout | Setup triggers task ReadTimeout | Prefect hang at session setup; downstream tests hit their own timeouts. |
neo4j-deadlock | Neo.TransientError.Transaction.DeadlockDetected | Concurrent-write deadlock, usually integration suites under xdist. |
compose-boot-failure | docker compose … up --wait non-zero exit | Stack never booted; job-level infra failure. |
sqlite-locked | (sqlite3.OperationalError) database is locked (also matches the raw sqlite3.OperationalError: form) | Prefect's sqlite under contention. |
runner-oom | Process completed with exit code 137 | Runner OOM/SIGKILL; the mass test failures in the same job are casualties, not flakes. |
docker-network-pool-exhausted | all predefined address pools have been fully subnetted | Leaked compose networks exhausted the docker address pools on a self-hosted runner. |
actions-download-429 | Failed to download action … 429 | GitHub rate-limited its own action download; pure platform flake. |
prefect-task-manager-wedged | RuntimeError: Prefect task manager setup already failed for http… | The memoized task-manager setup (backend/tests/helpers/task_manager.py) timed out once against a Prefect test server; every later class fail-fasts on the remembered failure. One incident, hundreds of cascaded ERRORs. |
pytest-green-exit-1 | green pytest summary (no failed, no errors) directly followed by exit 1 | Session-teardown/plugin abort after all tests passed (e.g. testcontainers result reporting). |
For each test in the ranked table, classify:
recovered_on_retry > 0. The more distinct
PRs, the stronger.bucket_incidents in report-data.json), not
the individual tests.Different tests failing on successive attempts of the same run = two independent flakes, not a regression.
Write ANALYSIS.md into the window directory, then give the user a summary. Lead with the
ranked flake candidates. Include:
weekly_history in report-data.json: which offenders are new this window,
which recur week over week, which disappeared (likely fixed). This section is the reason the
ledger exists; don't skip it once ≥2 windows of data exist.Do not propose fixes unless asked; the deliverable is the evidence-ranked candidate list.
© opsmill, 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
SKILL.md and 1 other file (scripts) in .agents/skills/analyzing-ci-flakiness of opsmill/infrahub.
Open the folder on GitHubat commit 2e1f1eb
Analyzing CI Flakiness 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Analyzing CI Flakiness this skillopsmill/infrahub | 533 | — | ~2k | Automated safety check: Pass | Apache-2.0 | |
| Swig Testswig/swig | 6.3k | — | ~2.3k | Automated safety check: Pass | Custom licence | |
| Triage CI FailureDataDog/datadog-agent | 3.8k | — | ~2.3k | Automated safety check: Pass | Apache-2.0 | |
| Dynamo Jira TicketDynamoDS/Dynamo | 2k | — | ~1.1k | Automated safety check: Pass | Apache-2.0 | |
| Fix Ready PRsfastrepl/anarlog | 9.5k | — | ~1.4k | Automated safety check: Pass | MIT | |
| Trx Analysismicrosoft/vstest | 969 | — | ~1.8k | Automated safety check: Pass | MIT |
swig/swig
Run SWIG test suite for specific languages. An agent skill from swig/swig.
DataDog/datadog-agent
Classify a failed CI as either caused by an active incident, flakiness, or a true code regression.
DynamoDS/Dynamo
Create structured Jira tickets for Dynamo from bug reports, failing tests, or feature requests.
fastrepl/anarlog
Inspect every open non-draft PR for CI failures and unresolved Cursor Bugbot findings, then fix them on the existing PR branches.
microsoft/vstest
Parse and analyze Visual Studio TRX test result files. An agent skill from microsoft/vstest.
workersio/skills
Testing workflow skill for finding high-value test candidates, writing focused tests, generating realistic workloads, reviewing test value, and diagnosing test-suite health.
opsmill/infrahub
Audits internal (dev/) and external (docs/) documentation completeness for a feature, subject, or set of existing docs, maps changes indicated by the user, across Infrahub's documentation layers…
opsmill/infrahub
Stages and commits the current changes onto a safe working branch, enforcing branch discipline and optionally pushing upstream.
opsmill/infrahub
A skill your agent uses when you've fixed a bug, added a feature, or made any user-facing change in a project that uses Towncrier and need to record it for the changelog — before committing or…
opsmill/infrahub
Turns a single feature idea, improvement, or bug into ONE well-structured GitHub issue.
opsmill/infrahub
Synthesises the current conversation context into a Product Requirements Document and publishes it to GitHub (as a comment on a referenced issue, or a new issue).
opsmill/infrahub
Stress-tests a fuzzy or vague feature idea before any PRD, spec, or ticket is written.
Categories
Analyzes recent CI failures on pull requests to identify flaky tests, using retry outcomes (failed attempt → green re-run) and cross-PR recurrence as evidence, and maintains a local longitudinal…. Analyzing CI Flakiness is an agent skill from opsmill/infrahub. Analyzes recent CI failures on pull requests to identify flaky tests, using retry outcomes (failed attempt → green re-run) and cross-PR recurrence as evidence, and maintains a local longitudinal ledger so flakiness can be tracked over time.
Analyzing CI Flakiness fits situations like: : the user wants to find flaky tests; correlate recent CI failures; check which tests fail across PRs; recover on retry.
Run `npx skills add opsmill/infrahub --skill analyzing-ci-flakiness -a claude-code`. Or copy the skill folder (.agents/skills/analyzing-ci-flakiness in opsmill/infrahub) into .claude/skills/analyzing-ci-flakiness in your project. Claude Code loads it when a task matches its description.
Run `npx skills add opsmill/infrahub --skill analyzing-ci-flakiness -a codex`. Or copy the skill folder (.agents/skills/analyzing-ci-flakiness in opsmill/infrahub) into .agents/skills/analyzing-ci-flakiness in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add opsmill/infrahub --skill analyzing-ci-flakiness -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/analyzing-ci-flakiness, .gemini/skills/analyzing-ci-flakiness, .github/skills/analyzing-ci-flakiness and .opencode/skills/analyzing-ci-flakiness in your project.
Going by SKILL.md and its folder, Analyzing CI Flakiness needs Python for the scripts in its folder and the command-line tools its instructions call (python3 and docker). Our summary lists: Python 3; Docker. Its frontmatter pre-approves these tools: Bash(python3 .agents/skills/analyzing-ci-flakiness/scripts/collect.py:*). Compatibility (from SKILL.md): Requires the gh CLI authenticated against the repo. Python 3 (stdlib only). Writes a cache under ~/ci-cache..
SKILL.md contains no URLs. Its commands use docker, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
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.
Analyzing CI Flakiness 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.
About 2k tokens (SKILL.md is roughly 8k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Analyzing CI Flakiness: Swig Test (swig/swig, 6.3k stars), Triage CI Failure (DataDog/datadog-agent, 3.8k stars), Dynamo Jira Ticket (DynamoDS/Dynamo, 2k stars) and Fix Ready PRs (fastrepl/anarlog, 9.5k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
opsmill (a GitHub organization) maintains it in opsmill/infrahub, which has 533 GitHub stars. The repository holds 32 skills in this directory. The repository was last updated on October 9, 2026.
Source: opsmill/infrahub on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.