TiDB Test Diff Triage
pingcap/tidb
Investigates TiDB plan or test-result diffs that the change does not explain, ruling out failpoint setup and merge effects before expected outputs are updated.
Load when investigating a specific flaky test. An agent skill from DataDog/pup.
$ npx skills add DataDog/pup --skill dd-triage-flaky-test -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install DataDog/pup dd-triage-flaky-test --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/DataDog/pup.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/dd-triage-flaky-test .claude/skills/dd-triage-flaky-test && 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 "dd-triage-flaky-test" agent skill from https://github.com/DataDog/pup/tree/main/skills/dd-triage-flaky-test into .claude/skills/dd-triage-flaky-test/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dd-triage-flaky-test", 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/DataDog/pup/tree/main/skills/dd-triage-flaky-testType 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 DataDog/pup --skill dd-triage-flaky-test -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install DataDog/pup dd-triage-flaky-test --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/DataDog/pup.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/dd-triage-flaky-test .agents/skills/dd-triage-flaky-test && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "dd-triage-flaky-test" agent skill from https://github.com/DataDog/pup/tree/main/skills/dd-triage-flaky-test into .agents/skills/dd-triage-flaky-test/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dd-triage-flaky-test", 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 DataDog/pup --skill dd-triage-flaky-test -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install DataDog/pup dd-triage-flaky-test --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/DataDog/pup.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/dd-triage-flaky-test .cursor/skills/dd-triage-flaky-test && 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 "dd-triage-flaky-test" agent skill from https://github.com/DataDog/pup/tree/main/skills/dd-triage-flaky-test into .cursor/skills/dd-triage-flaky-test/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dd-triage-flaky-test", 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/DataDog/pup.git --path skills/dd-triage-flaky-test--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 DataDog/pup --skill dd-triage-flaky-test -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install DataDog/pup dd-triage-flaky-test --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/DataDog/pup.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/dd-triage-flaky-test .gemini/skills/dd-triage-flaky-test && 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 "dd-triage-flaky-test" agent skill from https://github.com/DataDog/pup/tree/main/skills/dd-triage-flaky-test into .gemini/skills/dd-triage-flaky-test/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dd-triage-flaky-test", 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 DataDog/pup dd-triage-flaky-testInstalls 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 DataDog/pup --skill dd-triage-flaky-test -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/DataDog/pup.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/dd-triage-flaky-test .github/skills/dd-triage-flaky-test && 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 "dd-triage-flaky-test" agent skill from https://github.com/DataDog/pup/tree/main/skills/dd-triage-flaky-test into .github/skills/dd-triage-flaky-test/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dd-triage-flaky-test", 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 DataDog/pup --skill dd-triage-flaky-test -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install DataDog/pup dd-triage-flaky-test --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/DataDog/pup.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/dd-triage-flaky-test .opencode/skills/dd-triage-flaky-test && 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 "dd-triage-flaky-test" agent skill from https://github.com/DataDog/pup/tree/main/skills/dd-triage-flaky-test into .opencode/skills/dd-triage-flaky-test/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dd-triage-flaky-test", 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.
dd-triage-flaky-testLoad when investigating a specific flaky test. An agent skill from DataDog/pup.
Dd Triage Flaky Test is an agent skill from DataDog/pup, published by the product's own GitHub organization. Load when investigating a specific flaky test. Gets history, failure pattern, and category, then recommends fix, quarantine, or escalate.
Its SKILL.md is about 2.3k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Testing & QA, covering Failing and flaky tests. It works with Datadog and Git. The repository describes itself as: Give your AI agent a Pup — a CLI companion with 200+ commands across 33+ Datadog products. The licence is Apache-2.0.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit c075375. It shows what the files ask for, not the result of running them.
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.
Shell commands in SKILL.md call:
gitFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
github.comFrom 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.
Dd Triage Flaky Test loads about 2.3k tokens when it runs. Until then it costs about 40 tokens; SKILL.md has 961 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); files beside SKILL.md are not scanned.
The full file from DataDog/pup at commit c075375, republished under its Apache-2.0 licence (© DataDog). 961 words, ~2,333 tokens.
.claude/skills/dd-triage-flaky-test/SKILL.md (or your agent's skills folder).One-line summary: Investigate a specific flaky test — get history, failure pattern, and category, then recommend fix, quarantine, or escalate.
Requires: dd-pup skill (pup CLI installed and authenticated).
| Parameter | Description |
|---|---|
| Test name | Fully qualified test name (e.g. TestMyFunc or com.example.MyTest) |
| Repository | Lowercase, no-schema URL (e.g. github.com/org/repo). Derive from git remote get-url origin if not provided. |
Derive repository ID from git if not provided:
git remote get-url origin
# Strip protocol and trailing .git, then lowercase the result
# e.g. https://github.com/DataDog/my-repo.git → github.com/datadog/my-repoValidation fallback: If STEP 1 returns no results, confirm the correct repository by searching without a repo filter:
pup cicd tests search \
--query "@test.name:\"<test-name>\"" \
--from 30d \
--limit 5Extract @git.repository.id_v2 from results and retry STEP 1 with the confirmed value.
Preferred — use fingerprint_fqn if known (fingerprint_fqn is a valid CI Visibility search facet, distinct from flaky_state):
pup cicd flaky-tests search \
--query "fingerprint_fqn:<fqn>" \
--sort="-last_flaked" \
--limit 5Fallback — use name + suite + repo:
pup cicd flaky-tests search \
--query "@test.name:\"<test-name>\" @test.suite:\"<suite>\" @git.repository.id_v2:\"<repo>\"" \
--sort="-last_flaked" \
--limit 10Omit @test.suite if unknown; if the same test name appears in multiple suites, pick the entry whose suite matches the failing test.
Do not filter by flaky_test_state — return the test regardless of state.
Note: the query filter facet is flaky_test_state; the returned response attribute is flaky_state — these are different names for the same concept; do not use flaky_state:active as a query filter.
Extract from results:
fingerprint_fqn — unique test identifier; used as the id in STEP 5 write call. If absent, do not proceed to quarantine — see STEP 5.flaky_state — current state (active / quarantined / disabled / fixed)test_stats.failure_rate_pct — percentage of runs that failflaky_category — root cause categorycodeowners — owning teampipeline_stats.total_lost_time_ms — total CI time lostpup cicd tests search \
--query "@test.name:\"<test-name>\" @test.suite:\"<suite>\" @test.status:fail @git.repository.id_v2:\"<repo>\"" \
--from 7d \
--limit 20Extract:
@error.message, @error.stack)@git.branch) — branch-specific vs. widespread@ci.pipeline.id values for blast radius (STEP 3)Count distinct pipelines impacted using pipeline IDs from STEP 2:
pup cicd events aggregate \
--query "@ci.status:error @ci.pipeline.id:(<id1> OR <id2> OR ...) @git.repository.id_v2:\"<repo>\"" \
--compute count \
--group-by "@ci.pipeline.name" \
--from 7dUse the first 10 pipeline IDs from STEP 2 (cap at 10; if more are available, run a second batch and merge results by summing counts per @ci.pipeline.name across batches). Report blast radius as: total number of unique pipelines impacted and whether failures are branch-specific or widespread.
Note: a pipeline failure is not necessarily caused solely by this flaky test — treat blast radius as a signal, not a definitive count.
Use flaky_category from STEP 1 and error messages from STEP 2.
Root cause first:
infra and recommend retry instead.Fix at the correct layer:
Forbidden — do not propose these:
Fix patterns by category:
| Category | Approach |
|---|---|
timeout | Identify the slow operation and make it synchronous or deterministic — do NOT simply raise the timeout constant |
concurrency | Add deterministic synchronization (barriers, channels, locks); remove shared mutable state between tests |
network | Mock or stub network calls at the boundary; if the test requires a real connection, isolate it with a test server |
time | Inject a controllable clock; replace wall-clock assertions with relative or event-driven checks |
order_dependency | Isolate test state with setup/teardown; eliminate dependencies on execution order or global state |
environment_dependency | Mock env variables and external config; use test-local fixtures, not shared directories or singletons |
resource_leak | Ensure every resource opened in a test is closed in teardown; use cleanup hooks that run even on failure |
randomness | Fix the random seed for the test run; use deterministic inputs instead of random generation |
asynchronous_wait | Replace fixed sleeps with condition polling or event/signal-driven waits with a hard timeout |
io | Use temp files/dirs cleaned up in teardown; mock or stub filesystem interactions |
unknown | Skip fix attempt → go to quarantine |
Before proposing code changes, verify all of the following — if any fails, skip fix and recommend quarantine:
Decision:
unknown OR verification above fails → skip fix, recommend quarantineFlaky Test Triage Brief
=======================
Test: <fully qualified test name>
Service: <@test.service>
Category: <flaky_category>
Failure Rate: <test_stats.failure_rate_pct>%
Duration Lost: <pipeline_stats.total_lost_time_ms>ms
Codeowners: <codeowners>
Blast Radius: <N> pipelines (<branch-specific | widespread>) [approximate — other failures in the same pipeline runs may not be related]
Evidence:
<1-2 key error message lines from STEP 2>
Recommendation: <fix | quarantine | escalate>
Confidence: <high | medium | low>
Action: <specific next step>Decision thresholds:
failure_rate_pct > 10 OR blast radius > 5 pipelines → quarantinefailure_rate_pct ≤ 10 AND known category AND clear fix → fixfailure_rate_pct ≤ 10 AND category unknown → escalate to codeowners with triage briefIf recommending quarantine, present and require explicit user approval before writing:
Proposed action: quarantine "<test-name>"
id (fingerprint_fqn): <fingerprint_fqn from STEP 1>
Effect: test still runs but failures are suppressed (CI will not be blocked)
Reversible: yes — update new_state to active to restore
Approve? (yes/no)If fingerprint_fqn was not returned in STEP 1 (test not yet in FTM or query returned no results): do not attempt the write. Surface an error and ask the user to open the Flaky Test Management UI directly to quarantine manually.
Only after explicit approval and a confirmed fingerprint_fqn, write the body file and run:
cat > /tmp/flaky-update.json <<'EOF'
{
"data": {
"type": "UpdateFlakyTestsRequest",
"attributes": {
"tests": [{"id": "<fingerprint_fqn>", "new_state": "quarantined"}]
}
}
}
EOF
pup test-optimization flaky-tests update --file /tmp/flaky-update.jsonTo undo: repeat with "new_state": "active".
© DataDog, 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
Just SKILL.md in skills/dd-triage-flaky-test of DataDog/pup.
Open the folder on GitHubat commit c075375
We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in DataDog/pup, which our catalogue first saw on October 7, 2026.
Dd Triage Flaky Test 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 |
|---|---|---|---|---|---|---|
| Dd Triage Flaky Test this skillDataDog/pup | 1k | 1 repos | ~2.3k | Automated safety check: Pass | Apache-2.0 | |
| TiDB Test Diff Triagepingcap/tidb | 41k | — | ~498 | Automated safety check: Pass | Apache-2.0 | |
| Triage CI FailureDataDog/datadog-agent | 3.8k | — | ~2.3k | Automated safety check: Pass | Apache-2.0 | |
| Analyze Azdo BuildDataDog/dd-trace-dotnet | 573 | — | ~3.5k | Automated safety check: Pass | Apache-2.0 | |
| Release Lambda LayerDataDog/datadog-lambda-js | 126 | — | ~1.8k | Automated safety check: Pass | Apache-2.0 | |
| Resolve Muzzle CIDataDog/dd-trace-java | 736 | — | ~3.2k | Automated safety check: Pass | Apache-2.0 |
pingcap/tidb
Investigates TiDB plan or test-result diffs that the change does not explain, ruling out failpoint setup and merge effects before expected outputs are updated.
DataDog/datadog-agent
Classify a failed CI as either caused by an active incident, flakiness, or a true code regression.
DataDog/dd-trace-dotnet
Analyze Azure DevOps CI build failures in dd-trace-dotnet pipeline.
DataDog/datadog-lambda-js
Walks through releasing a new datadog-lambda-js Lambda layer version — the automated Commercial release (version bump, tag, GitLab sign/publish jobs, npm publish, GitHub release) and the manual…
DataDog/dd-trace-java
Diagnose and resolve dd-trace-java CI failures from a module's muzzle task or the runMuzzle aggregate.
different-ai/openwork
Classifies a failing test, typecheck or CI job before any code changes, by recording the failure and running a clean control to show whether it was already broken.
DataDog/pup
Find, filter, count, and connect software, teams, engineering work and delivery, infrastructure, and operational or security records through Pup's read-only Datadog entity graph.
DataDog/pup
Live Debugger - inspect runtime argument/variable values in production by placing log probes on methods.
DataDog/pup
Datadog docs lookup using docs.datadoghq.com/llms.txt and linked Markdown pages.
DataDog/pup
Datadog API CLI with 49 command groups, 300+ subcommands. An agent skill from DataDog/pup.
DataDog/pup
APM - traces, services, dependencies, performance analysis. An agent skill from DataDog/pup.
DataDog/pup
File GitHub issues to the right repository (pup CLI or plugin)
Categories
Load when investigating a specific flaky test. An agent skill from DataDog/pup. Dd Triage Flaky Test is an agent skill from DataDog/pup, published by the product's own GitHub organization. Load when investigating a specific flaky test.
Dd Triage Flaky Test fits situations like: tasks that involve Failing and flaky tests.
Run `npx skills add DataDog/pup --skill dd-triage-flaky-test -a claude-code`. Or copy the skill folder (skills/dd-triage-flaky-test in DataDog/pup) into .claude/skills/dd-triage-flaky-test in your project. Claude Code loads it when a task matches its description.
Run `npx skills add DataDog/pup --skill dd-triage-flaky-test -a codex`. Or copy the skill folder (skills/dd-triage-flaky-test in DataDog/pup) into .agents/skills/dd-triage-flaky-test 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 DataDog/pup --skill dd-triage-flaky-test -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/dd-triage-flaky-test, .gemini/skills/dd-triage-flaky-test, .github/skills/dd-triage-flaky-test and .opencode/skills/dd-triage-flaky-test in your project.
Going by SKILL.md and its folder, Dd Triage Flaky Test needs the command-line tools its instructions call (git). Our summary lists: Docker.
SKILL.md names 1 domain. In commands or code: github.com; the agent is likely to contact it when it follows the instructions. 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. Review the folder before installing.
Dd Triage Flaky Test 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 2.3k tokens (SKILL.md is roughly 9.3k 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 Dd Triage Flaky Test: TiDB Test Diff Triage (pingcap/tidb, 41k stars), Triage CI Failure (DataDog/datadog-agent, 3.8k stars), Analyze Azdo Build (DataDog/dd-trace-dotnet, 573 stars) and Release Lambda Layer (DataDog/datadog-lambda-js, 126 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
DataDog (a GitHub organization, an official publisher) maintains it in DataDog/pup, which has 1,028 GitHub stars. The repository holds 12 skills in this directory. The repository was last updated on October 8, 2026.
Source: DataDog/pup on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.