Official agent skill

Fix Broken Datadog Provider Tests

by DataDog in DataDog/terraform-provider-datadog

Runs an end-to-end workflow to diagnose, reproduce, fix and validate a failing integration test in the Datadog Terraform provider, ending with a draft PR.

OfficialMPL-2.0Auto-check: notesTesting & QA

Install Fix Broken Datadog Provider Tests

skills CLI
$ npx skills add DataDog/terraform-provider-datadog --skill fix-broken-integration-tests -a claude-code

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

GitHub CLI
$ gh skill install DataDog/terraform-provider-datadog fix-broken-integration-tests --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/DataDog/terraform-provider-datadog.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/fix-broken-integration-tests .claude/skills/fix-broken-integration-tests && 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
fix-broken-integration-tests
GitHub stars
468
Token cost
~2.4k tokens
SKILL.md length
836 words
Files
2
Skills in repo
3
Repo updated
First seen
Licence
MPL-2.0

At a glance

Runs an end-to-end workflow to diagnose, reproduce, fix and validate a failing integration test in the Datadog Terraform provider, ending with a draft PR.

  • Works in 8 steps: Identify Failing Tests → Validate in Recent CI → Reproduce Locally → …
  • Fixing a failing TestAcc integration test in terraform-provider-datadog
  • SKILL.md covers Phase 1 — Identify Failing Tests, Phase 2 — Validate in Recent CI, Phase 3 — Reproduce Locally and Phase 4 — Diagnose and Plan Fix, plus 5 more sections
  • Calls gh, git and make

What it does

Give it test function names, error messages, a resource name or a ticket ID, and the agent narrows that down to concrete Go test names. Ticket IDs are looked up with acli jira, free text is searched in datadog/tests, and flaky_tests.yaml is checked for context. It then confirms the failure still exists on master by reading recent runs of the test_integration.yml workflow with gh, going ahead when tests failed in 2 or more of the last 3 runs and asking you otherwise.

The run is autonomous across eight phases: identify, validate in CI, reproduce locally, plan the fix, execute it, open a draft PR, monitor and report. It tracks progress with tasks, compares the exact CI error with the local reproduction and the final result, and flags intermittent failures in the PR description. A fix-patterns.md file collects known fix approaches.

When your agent uses it

  • Fixing a failing TestAcc integration test in terraform-provider-datadog
  • Checking whether a reported test failure still reproduces in recent CI runs
  • Turning a Jira ticket about broken tests into a draft pull request
  • Triaging a flaky provider test and recording why it fails

Example prompts

  • “Fix the failing TestAccDatadogDashboard test and open a draft PR.”
  • “Our integration run fails with a bad request error on monitor creation, so find the test behind it and reproduce it locally.”
  • “Look at the Jira ticket for the broken synthetics tests and work out which tests are affected.”

Requirements

  • GitHub CLI (gh) for reading CI runs
  • The Jira CLI (acli) for ticket lookups
  • A local checkout of the Datadog Terraform provider repository
  • Pre-approved tools (allowed-tools): Read, Write, Edit, Glob, Grep, Bash, Agent, Skill, TaskCreate, TaskUpdate, TaskGet, AskUserQuestion

Workflow steps

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

  1. Identify Failing Tests
  2. Validate in Recent CI
  3. Reproduce Locally
  4. Diagnose and Plan Fix
  5. Execute the Fix
  6. Commit and Open Draft PR
  7. Monitor Integration Tests
  8. Report Results

What it can do on your machine

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

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Read
    • Write
    • Edit
    • Glob
    • Grep
    • Bash
    • Agent
    • Skill
    • TaskCreate
    • TaskUpdate

    …and 2 more on the same allowed-tools line.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • gh
    • git
    • make

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

  • Network

    No URLs in SKILL.md. Its commands use gh and git, which can reach the network depending on how they are called.

    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

Fix Broken Datadog Provider Tests loads about 2.4k tokens when it runs. Until then it costs about 107 tokens; SKILL.md has 836 words of instructions outside code blocks.

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

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: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NotePre-approves every shell command (allowed-tools: Bash)SKILL.md
    allowed-tools: Read, Write, Edit, Glob, Grep, Bash, Agent, Skill, TaskCreate, TaskUpdate, TaskGet, AskUserQuestion

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.

SKILL.md

The full file from DataDog/terraform-provider-datadog at commit ca0801d, republished under its MPL-2.0 licence (© DataDog). 836 words, ~2,356 tokens.

Download SKILL.mdSave it as .claude/skills/fix-broken-integration-tests/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
fix-broken-integration-tests
description
End-to-end workflow to diagnose, reproduce, fix, and validate a failing Datadog Terraform provider integration test. Takes any input pointing at specific tests: test function names, error messages, resource names, or any other description of what's failing. Runs autonomously through 8 phases — identify → validate in CI → reproduce locally → plan fix → execute → open draft PR → monitor → report.
allowed-tools
Read, Write, Edit, Glob, Grep, Bash, Agent, Skill, TaskCreate, TaskUpdate, TaskGet, AskUserQuestion
user-invocable
true
argument-hint
<test name(s), error description, or other context about the failing test>

Fix Broken Integration Tests

Input: $ARGUMENTS

Determine the repository root at the start of each phase:

bash
REPO_ROOT=$(git rev-parse --show-toplevel)

All relative file paths below are relative to $REPO_ROOT.


Phase 1 — Identify Failing Tests

Parse $ARGUMENTS to extract concrete Go test function names.

If input matches [A-Z]+-\d+ (looks like a ticket ID):

bash
acli jira workitem view <TICKET-ID> --fields 'summary,status,description' 2>&1

Extract test names mentioned in the description. If the ticket is already Done, warn the user: "Ticket is marked Done — tests may already be fixed. Proceeding to validate in CI."

If input contains Go test function names (starts with TestAcc or Test): Use them directly. A comma- or space-separated list is fine.

If input is a free-form description (resource name, error message, etc.): Use the Grep tool to search the test directory:

Grep pattern "<keyword>" path "datadog/tests/" glob "*_test.go"

Then identify which test functions match the description. Read the test file to confirm the relevant test names.

Also check flaky_tests.yaml to see if the tests are already tracked:

bash
grep -A4 "<TestName>" flaky_tests.yaml

Note any existing reason/context — it informs the fix strategy.

Create a task to track progress:

TaskCreate: "Fix integration tests: <list of tests>"

Phase 2 — Validate in Recent CI

Confirm the tests are still failing on master before doing any work.

bash
gh run list --workflow test_integration.yml \
  --repo DataDog/terraform-provider-datadog \
  --branch master --limit 5 --json databaseId,conclusion,createdAt

For each completed run (check the 3 most recent):

bash
gh run view <RUN_ID> --log-failed \
  --repo DataDog/terraform-provider-datadog 2>&1 \
  | grep -E "FAIL.*<TestName>" | head -20

Decision point:

  • Tests failing in 2+ of the last 3 runs → proceed
  • Tests not failing in any recent run → ask the user:

    "These tests did not fail in the last 3 CI runs. They may have been fixed already, or the failure is intermittent. How do you want to proceed?" Options: "Reproduce locally anyway", "Check more CI runs", "Abort"

  • Tests failing inconsistently → note intermittency, flag in PR description

Record the exact error message from CI — you'll compare it against the local reproduction and the final CI result.


Phase 3 — Reproduce Locally

Run the failing tests against the real API to confirm the current failure mode.

Skill: "dd-tf-provider-test-runner"
Args: "Test pattern: <TestName1>|<TestName2>  Record mode: none  Working directory: <value of REPO_ROOT>"

If local reproduction matches CI error: proceed to Phase 4.

If local test passes: warn the user —

"Tests pass locally with RECORD=none. The failure may be environment-specific (quota, org state) or intermittent. Recommend running a few more times or checking org state before proceeding."

Capture the exact local error output for comparison.


Phase 4 — Diagnose and Plan Fix

Read the failure patterns reference:

Read: .claude/skills/fix-broken-integration-tests/fix-patterns.md

Match the error message against the patterns to identify the fix type. Read the relevant source files to understand the current code:

  • Test file: datadog/tests/<resource>_test.go
  • Resource file (if provider bug): datadog/fwprovider/<resource>.go or datadog/<resource>.go
  • Sweep file (if quota/accumulation): datadog/tests/<resource>_sweep_test.go (may need creating)

Draft a concrete fix plan covering:

  1. Which files change and what the change is
  2. Whether cassettes need re-recording (RECORD=true)
  3. Whether the test should be removed from flaky_tests.yaml

Ask the user to confirm before making any changes:

"Here is my proposed fix for <TestName(s)>:

  • Fix type: <e.g., sweeper, dynamic timestamps, provider read bug>
  • Files affected: <list>
  • Cassette re-recording needed: yes/no
  • Summary: <one sentence> Proceed?"

Options: "Yes, execute the fix", "Modify the plan first", "Abort"


Phase 5 — Execute the Fix

5a. Create a branch
bash
git checkout -b fix/<resource>-integration-test
Show full SKILL.md (351 more words)Show less
5b. Apply code changes

Follow the appropriate pattern from fix-patterns.md:

  • Timestamp fix: replace hardcoded Unix timestamps with clockFromContext(ctx).Now().Local().Add(...); update config function signatures to accept start, end int64
  • Sweeper fix: create datadog/tests/<resource>_sweep_test.go; add cleanupXxx(t) call at top of each failing test function; add TestSweepXxx standalone function
  • Test assertion fix: update the assertion to match new API behavior
  • Provider read bug: fix the Read function; add attribute normalization or DiffSuppressFunc
  • Skip in live API mode: last resort only — use when the test requires an external service that genuinely cannot be configured in the current test environment; add if !isReplaying() { t.Skip(...) }
5c. Re-record cassettes if needed

If the fix changes what the API interaction looks like:

Skill: "dd-tf-provider-test-runner"
Args: "Test pattern: <TestName>  Record mode: true  Working directory: <REPO_ROOT>"
5d. Validate locally via cassette replay
Skill: "dd-tf-provider-test-runner"
Args: "Test pattern: <TestName>  Record mode: false  Working directory: <REPO_ROOT>"

If cassette replay fails, investigate and re-record.

5e. Remove from flaky_tests.yaml

If the test is in flaky_tests.yaml, remove its entry.

5f. Quick quality checks
bash
make fmtcheck
make test

Phase 6 — Commit and Open Draft PR

6a. Stage and commit
bash
git add <changed files>
git commit -m "[datadog_<resource>] Fix integration test — <brief root cause>

<one paragraph explaining what was failing and why, and how it is fixed>

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>"
6b. Push branch
bash
git push -u origin <branch-name>
6c. Create draft PR

Use changelog/bugfix only if provider code changed; use changelog/no-changelog for test-only or sweeper-only changes.

bash
gh pr create --draft \
  --title "[datadog_<resource>] Fix integration test — <brief description>" \
  --label "ci/integrations" \
  --label "<changelog/bugfix or changelog/no-changelog>" \
  --body "$(cat <<'EOF'
## Summary

- **Failing tests:** `<TestName1>`, `<TestName2>`
- **Root cause:** <one-line root cause>
- **Fix:** <one-line fix description>

## Details

<paragraph about what was failing and the error observed in CI>

<paragraph about the fix approach and what changed>

## Test plan

- [ ] Tests pass with `RECORD=none` locally
- [ ] Tests pass in CI integration run (triggered by `ci/integrations` label)
EOF
)"

Report the PR URL to the user.


Phase 7 — Monitor Integration Tests

The ci/integrations label triggers .github/workflows/test_integration.yml. This run typically takes 35–45 minutes.

Poll every 5 minutes for the run to appear and complete:

bash
# Wait for the run to be created (retry up to 10 minutes)
gh run list --repo DataDog/terraform-provider-datadog \
  --branch <branch-name> --workflow test_integration.yml \
  --limit 3 --json databaseId,status,conclusion,createdAt

# Check run status
gh run view <RUN_ID> --repo DataDog/terraform-provider-datadog

Continue polling until status == "completed".

Timeout: If the run has not completed after 90 minutes, stop polling and report the current status. Advise the user to check manually.


Phase 8 — Report Results

If all target tests pass:
  • Report success with test counts
  • Suggest removing the PR from draft and requesting review
  • If a ticket ID was provided as input, note it can be closed
If tests still fail:
  1. Extract the failure details:
bash
gh run view <RUN_ID> --log-failed --repo DataDog/terraform-provider-datadog 2>&1 \
  | grep -E "FAIL.*<TestName>|Error:" | head -40
  1. Compare with the original error from Phase 3
  2. Same error: the fix didn't work — diagnose why and propose a revised fix
  3. Different error: the original issue is fixed but uncovered a second problem — treat as a new cycle starting at Phase 4
  4. Report findings with a clear next-steps recommendation

Reference

  • Failure pattern lookup: .claude/skills/fix-broken-integration-tests/fix-patterns.md
  • Test infrastructure: TESTING.md, AGENTS.md
  • Sweep examples: datadog/tests/sweep_test.go, datadog/tests/sensitive_data_scanner_sweep_test.go
  • Cassette management: datadog/tests/provider_test.go

© DataDog, MPL-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 in .claude/skills/fix-broken-integration-tests of DataDog/terraform-provider-datadog.

  • SKILL.md
  • fix-patterns.md

Open the folder on GitHubat commit ca0801d

Compare with similar skills

Fix Broken Datadog Provider Tests 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.

Fix Broken Datadog Provider Tests compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Fix Broken Datadog Provider Tests this skillDataDog/terraform-provider-datadog468—~2.4kAutomated safety check: NotesMPL-2.0
Review Testshashicorp/terraform-provider-aws11k—~908Automated safety check: PassMPL-2.0
Review Tests Helpershashicorp/terraform-provider-aws11k—~994Automated safety check: PassMPL-2.0
Avm Tf TestingAzure/terraform-azurerm-avm-ptn-alz135—~1.8kAutomated safety check: PassMIT
Test Fix WorkflowGoogleCloudPlatform/magic-modules974—~1.3kAutomated safety check: PassCustom licence
Test Failure Decision TreeGoogleCloudPlatform/magic-modules974—~4.2kAutomated safety check: PassCustom licence

Similar skills

  • Review Tests

    hashicorp/terraform-provider-aws

    Official

    Review Terraform AWS Provider acceptance and unit test basics: required basic and disappears tests, TestAcc naming, TestCase essentials (PreCheck/ErrorCheck/ProtoV5ProviderFactories/CheckDestroy)…

    11k GitHub stars~908 tokensUpdated today
    Testing & QAAuto-check passed
  • Review Tests Helpers

    hashicorp/terraform-provider-aws

    Official

    Review Terraform AWS Provider test helpers: Exists/Destroy check functions, exportstest.go wiring, create.Error wrapping, data source tests, list resource tests (querycheck + Terraform version…

    11k GitHub stars~994 tokensUpdated today
    Testing & QAAuto-check passed
  • Avm Tf Testing

    Azure/terraform-azurerm-avm-ptn-alz

    Official

    A skill your agent uses for AVM Terraform validation, provider-mocked unit tests, real-Azure integration tests, E2E example tests, PowerShell hooks, OIDC, policy checks, and Avm.Authoring CI behavior.

    135 GitHub stars~1.8k tokensUpdated 2 days ago
    Testing & QAAuto-check passed
  • Test Fix Workflow

    GoogleCloudPlatform/magic-modules

    Workflow for diagnosing, fixing, and verifying failing Terraform acceptance tests from GitHub issue URLs (detecting test-failure labels), direct prompts, or log files using Failure Scenario Decision…

    974 GitHub stars~1.3k tokensUpdated today
    Testing & QAAuto-check passed
  • Test Failure Decision Tree

    GoogleCloudPlatform/magic-modules

    Classification decision tree and remediation strategies for diagnosing Terraform acceptance test failures across all workflows.

    974 GitHub stars~4.2k tokensUpdated today
    Testing & QAAuto-check passed
  • Infra Scaling

    langfuse/langfuse

    Tune and review Langfuse autoscaling for web, web-iso, and web-ingestion.

    36k GitHub stars~4.4k tokensUpdated today
    DevOps & CloudAuto-check passed

More from DataDog/terraform-provider-datadog

  • Datadog Data Source Generator

    DataDog/terraform-provider-datadog

    Official

    Generates a Datadog Terraform provider data source from an OpenAPI operation with tfgen and opens a review-ready GitHub PR with a risk scan and testing guide.

    468 GitHub stars~2.7k tokensUpdated today
    Auto-check passed
  • Datadog Terraform Provider Test Runner

    DataDog/terraform-provider-datadog

    Official

    Runs Datadog Terraform provider acceptance tests in none, true or false record modes, then saves trimmed output and pass, fail and skip counts to a timestamped file.

    468 GitHub stars~949 tokensUpdated today
    Auto-check passed

Questions about Fix Broken Datadog Provider Tests

What does Fix Broken Datadog Provider Tests do?

Runs an end-to-end workflow to diagnose, reproduce, fix and validate a failing integration test in the Datadog Terraform provider, ending with a draft PR. Give it test function names, error messages, a resource name or a ticket ID, and the agent narrows that down to concrete Go test names.yaml is checked for context.

When should I use Fix Broken Datadog Provider Tests?

Fix Broken Datadog Provider Tests fits situations like: fixing a failing TestAcc integration test in terraform-provider-datadog; checking whether a reported test failure still reproduces in recent CI runs; turning a Jira ticket about broken tests into a draft pull request; triaging a flaky provider test and recording why it fails.

How do I install Fix Broken Datadog Provider Tests in Claude Code?

Run `npx skills add DataDog/terraform-provider-datadog --skill fix-broken-integration-tests -a claude-code`. Or copy the skill folder (.claude/skills/fix-broken-integration-tests in DataDog/terraform-provider-datadog) into .claude/skills/fix-broken-integration-tests in your project. Claude Code loads it when a task matches its description.

How do I install Fix Broken Datadog Provider Tests in Codex?

Run `npx skills add DataDog/terraform-provider-datadog --skill fix-broken-integration-tests -a codex`. Or copy the skill folder (.claude/skills/fix-broken-integration-tests in DataDog/terraform-provider-datadog) into .agents/skills/fix-broken-integration-tests in your project. Codex loads it when a task matches its description.

Can I use Fix Broken Datadog Provider Tests 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 DataDog/terraform-provider-datadog --skill fix-broken-integration-tests -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/fix-broken-integration-tests, .gemini/skills/fix-broken-integration-tests, .github/skills/fix-broken-integration-tests and .opencode/skills/fix-broken-integration-tests in your project.

What does Fix Broken Datadog Provider Tests need to run?

Going by SKILL.md and its folder, Fix Broken Datadog Provider Tests needs the command-line tools its instructions call (gh, git and make). Our summary lists: GitHub CLI (gh) for reading CI runs; The Jira CLI (acli) for ticket lookups; A local checkout of the Datadog Terraform provider repository. Its frontmatter pre-approves these tools: Read, Write, Edit, Glob, Grep, Bash, Agent, Skill, TaskCreate, TaskUpdate, TaskGet, AskUserQuestion.

Does Fix Broken Datadog Provider Tests access the network?

SKILL.md contains no URLs. Its commands use gh and git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Fix Broken Datadog Provider Tests safe to install?

Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Fix Broken Datadog Provider Tests use?

Fix Broken Datadog Provider Tests is published under the MPL-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Fix Broken Datadog Provider Tests use?

About 2.4k tokens (SKILL.md is roughly 9.4k 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 Fix Broken Datadog Provider Tests?

Skills that share tags, products or a category with Fix Broken Datadog Provider Tests: Review Tests (hashicorp/terraform-provider-aws, 11k stars), Review Tests Helpers (hashicorp/terraform-provider-aws, 11k stars), Avm Tf Testing (Azure/terraform-azurerm-avm-ptn-alz, 135 stars) and Test Fix Workflow (GoogleCloudPlatform/magic-modules, 974 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Fix Broken Datadog Provider Tests?

DataDog (a GitHub organization, an official publisher) maintains it in DataDog/terraform-provider-datadog, which has 468 GitHub stars. The repository holds 3 skills in this directory. The repository was last updated on October 7, 2026.

Source: DataDog/terraform-provider-datadog on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.