Agent skill

Opsmill Dev Test Driving Bugs

by opsmill in opsmill/infrahub

Writes a single failing test that reproduces a bug after its root-cause analysis is complete, before any fix is written.

Apache-2.0Auto-check passedTesting & QA

Install Opsmill Dev Test Driving Bugs

skills CLI
$ npx skills add opsmill/infrahub --skill opsmill-dev-test-driving-bugs -a claude-code

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

GitHub CLI
$ gh skill install opsmill/infrahub opsmill-dev-test-driving-bugs --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/opsmill/infrahub.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/opsmill-dev-test-driving-bugs .claude/skills/opsmill-dev-test-driving-bugs && 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
opsmill-dev-test-driving-bugs
GitHub stars
531
Token cost
~4k tokens
SKILL.md length
1,656 words
Files
1
Skills in repo
32
Repo updated
First seen
Licence
Apache-2.0

At a glance

Writes a single failing test that reproduces a bug after its root-cause analysis is complete, before any fix is written.

  • Works in 11 steps: Create working branch → Read testing documentation → Discover existing test setup → …
  • : a bug has a completed root-cause analysis and you need the failing reproduction test
  • SKILL.md covers User Input, Your role, Tool usage and Input and setup, plus 4 more sections
  • Calls git, gh and uv

What it does

Opsmill Dev Test Driving Bugs is an agent skill from opsmill/infrahub. Writes a single failing test that reproduces a bug after its root-cause analysis is complete, before any fix is written. TRIGGER when: a bug has a completed root-cause analysis and you need the failing reproduction test, writing a test that proves a bug exists, the second step of the bug-fixing pipeline. DO NOT TRIGGER when: still triaging or diagnosing the bug → opsmill-dev-analyzing-bugs; implementing the fix once the test exists → opsmill-dev-fixing-bugs; general feature test-first work → superpowers…

Its SKILL.md is about 4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts. Compatibility notes: Works in any git repo with a test suite; discovers testing conventions from the OpsMill dev/ layout with auto-detection fallback. The draft-PR step needs gh…

It sits in Testing & QA, covering Test-driven development, Root cause analysis and Failing and flaky tests. It works with Bash. 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.

When your agent uses it

  • : a bug has a completed root-cause analysis and you need the failing reproduction test
  • Writing a test that proves a bug exists
  • The second step of the bug-fixing pipeline
  • : still triaging

Example prompts

  • “Use the opsmill-dev-test-driving-bugs skill to write a single failing test that reproduces a bug after its root-cause analysis is complete, before…”
  • “/opsmill-dev-test-driving-bugs”

Requirements

  • Python 3
  • Node.js
  • Compatibility (from SKILL.md): Works in any git repo with a test suite; discovers testing conventions from the OpsMill `dev/` layout with auto-detection fallback. The draft-PR step needs `gh` and a GitHub remote.

Workflow steps

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

  1. Create working branch
  2. Read testing documentation
  3. Discover existing test setup
  4. Check reusable utilities
  5. Read existing tests
  6. Choose the test type
  7. Write the test
  8. Verify the test FAILS
  9. Format and lint
  10. Commit test files
  11. Open draft PR (only if OPEN_PR=true)

What it can do on your machine

Read from SKILL.md and the folder at commit 460d724. 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

    Shell commands in SKILL.md call:

    • git
    • gh
    • uv
    • npm
    • npx
    • ruff

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

  • Network

    No URLs in SKILL.md. Its commands use git, gh, uv, npm and npx, 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.

  • Compatibility

    Works in any git repo with a test suite; discovers testing conventions from the OpsMill `dev/` layout with auto-detection fallback. The draft-PR step needs `gh` and a GitHub remote.

    From compatibility in the SKILL.md frontmatter.

Context cost

Opsmill Dev Test Driving Bugs loads about 4k tokens when it runs. Until then it costs about 141 tokens; SKILL.md has 1,656 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~141
When it runs · the whole SKILL.md, loaded when a task matches
~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 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); files beside SKILL.md are not scanned.

SKILL.md

The full file from opsmill/infrahub at commit 460d724, republished under its Apache-2.0 licence (© opsmill). 1,656 words, ~3,951 tokens.

Download SKILL.mdSave it as .claude/skills/opsmill-dev-test-driving-bugs/SKILL.md (or your agent's skills folder).
name
opsmill-dev-test-driving-bugs
description
Writes a single failing test that reproduces a bug after its root-cause analysis is complete, before any fix is written. TRIGGER when: a bug has a completed root-cause analysis and you need the failing reproduction test, writing a test that proves a bug exists, the second step of the bug-fixing pipeline. DO NOT TRIGGER when: still triaging or diagnosing the bug → opsmill-dev-analyzing-bugs; implementing the fix once the test exists → opsmill-dev-fixing-bugs; general feature test-first work → superpowers test-driven-development.
compatibility
Works in any git repo with a test suite; discovers testing conventions from the OpsMill `dev/` layout with auto-detection fallback. The draft-PR step needs `gh` and a GitHub remote.
argument-hint
<issue number or URL, or bug description> [pr]
metadata.pipeline
bug-fixing (2 of 3 — analyze → test-drive → fix)
metadata.version
0.1.0
metadata.author
OpsMill
user-invocable
true
disable-model-invocation
true

Bug test-writer

User Input

text
$ARGUMENTS

Your role

You are a senior QA engineer writing a targeted failing test that reproduces a confirmed bug. /opsmill-dev-analyzing-bugs has already identified the root cause. Your job is to write ONE test that fails on the current code, proving the bug exists.

Tool usage

  • Use the Read tool to read files -- do NOT use cat or head/tail in Bash.
  • Use the Glob tool to find files -- do NOT use find or ls -R in Bash.
  • Use the Grep tool to search file contents -- do NOT use grep or rg in Bash.
  • Reserve Bash for git commands, gh CLI, and commands that require shell execution.
  • Shell state (variables, cd) does not persist across separate Bash calls -- re-derive any shell value you reuse rather than relying on one set in an earlier step. The pipeline's logical flags like OPEN_PR are decisions you carry in your own reasoning, not shell variables, so they do persist across steps.

Input and setup

Parse $ARGUMENTS for an optional pr flag: if the word pr appears anywhere in the arguments (case-insensitive), set OPEN_PR=true. Otherwise OPEN_PR=false. The rest of $ARGUMENTS (issue number / URL / description) is only used to disambiguate when more than one analysis exists -- do not re-derive the slug from it.

Discover the handoff file /opsmill-dev-analyzing-bugs wrote, using Glob for .bug-analysis-*.md in the repo root:

  • No match: inform the developer "Run /opsmill-dev-analyzing-bugs <issue> first." and STOP.
  • Exactly one match: use it.
  • Multiple matches: pick the one whose <key> best matches $ARGUMENTS (issue number, then slug words). If still ambiguous, list them and ask the developer which to use.

Read the full analysis. Take the canonical <key> and branch from its Key: and Branch: header fields rather than re-deriving a slug -- this keeps the branch/PR names consistent across steps. (If those fields are absent -- an older analysis -- fall back to the key embedded in the filename, .bug-analysis-<key>.md, and ai-bug-pipeline-<key>.)

If the analysis file is missing required fields (Root cause, Affected files), inform the developer and STOP.

Write the test

Follow steps 0--9 below. Step 10 (draft PR) runs only when OPEN_PR=true. If OPEN_PR=false, the run stays fully local: stop after step 9 with the test committed on the local branch <branch> -- do NOT push and do NOT open a PR. Display the test results and the branch name, and tell the developer that /opsmill-dev-fixing-bugs will pick it up from that local branch.

Step 0: Create working branch

Detect the default branch and create a working branch from it:

bash
DEFAULT_BRANCH=$(git symbolic-ref refs/remotes/origin/HEAD 2>/dev/null | sed 's@^refs/remotes/origin/@@')
# Fallback when origin/HEAD is unset (shallow/CI clones, manually-added remotes):
[ -z "$DEFAULT_BRANCH" ] && DEFAULT_BRANCH=$(git remote show origin 2>/dev/null | sed -n 's/.*HEAD branch: //p')
[ "$DEFAULT_BRANCH" = "(unknown)" ] && DEFAULT_BRANCH=""   # git prints "(unknown)" when remote HEAD is indeterminate
DEFAULT_BRANCH=${DEFAULT_BRANCH:-main}
git fetch origin "$DEFAULT_BRANCH" || { echo "Cannot fetch origin/$DEFAULT_BRANCH -- set the default branch manually and retry."; exit 1; }
# Fetch the working branch into a tracking ref with an explicit refspec, so origin/<branch> is
# created even on single-branch/shallow clones (a bare `git fetch origin <branch>` only updates
# FETCH_HEAD there). Silently a no-op when the branch doesn't exist on the remote yet.
git fetch origin "+refs/heads/<branch>:refs/remotes/origin/<branch>" 2>/dev/null
# Resume the branch reconciled to the pushed tip if it exists on the remote; else a local-only
# branch (a no-pr run not yet pushed); else create it fresh from the default branch:
if git rev-parse --verify -q "origin/<branch>" >/dev/null; then
  git checkout -B "<branch>" "origin/<branch>"   # remote tip wins -> never reuse a stale local copy
elif git rev-parse --verify -q "<branch>" >/dev/null; then
  git checkout "<branch>"                          # local-only branch (no-pr run, never pushed)
else
  git checkout -b "<branch>" "origin/$DEFAULT_BRANCH"
fi
  • <branch> is the Branch: value from the analysis (ai-bug-pipeline-<key>) -- use it verbatim so /opsmill-dev-fixing-bugs finds the same branch.
  • Re-runs are deterministic -- see the inline comments for how each branch state (pushed, local-only, absent) is handled and why the remote tip wins.
  • If the default-branch git fetch fails, STOP and report it -- do not continue to write a test with no working branch (the exit 1 only fails that one shell call). The working-branch fetch is best-effort (a missing remote branch is normal); a network failure there only means the branch can't be resumed from the remote, in which case STOP rather than recreating from default.
Step 1: Read testing documentation

Determine which area the bug lives in (backend, frontend, etc.) and read the project's testing conventions. Anchor on the dev/ layout, falling back to detection:

  • Read root AGENTS.md and dev/documentation-architecture.md (if present) to map the bug to a code package.
  • Backend testing docs, if present: dev/knowledge/**/testing.md and dev/guidelines/**/testing.md.
  • Frontend testing docs, if present: dev/guides/frontend/writing-unit-tests.md, writing-component-tests.md, writing-e2e-tests.md.
  • Fallback (no dev/ testing docs): detect the test runner and layout from the project itself -- pyproject.toml / tox.ini / pytest.ini (pytest), package.json scripts (vitest / jest / playwright), or a Makefile / AGENTS.md documenting the test command.
Step 2: Discover existing test setup

Read the test setup local to the target test directory and its parents (e.g. conftest.py files up the tree for pytest, shared setup/setup.ts for JS suites). Understand the available fixtures, their scopes, and setup/teardown patterns. Do NOT reinvent setup logic that already exists.

Step 3: Check reusable utilities

Look for the project's reusable test helpers, base classes, factories, and fakes/adapters (commonly under tests/helpers/, tests/adapters/, tests/fake/, or similar). Use these instead of writing your own test infrastructure.

Step 4: Read existing tests

Read 2--3 existing tests in the target test directory to learn the naming conventions, class structure, and import patterns before writing your own.

Step 5: Choose the test type

Pick the right test level using whatever guidance you found in step 1. Examples of common levels:

  • Python / pytest: unit, component, functional, integration. Reuse existing schema fixtures and helpers when available.
  • Frontend: unit/component (e.g. Vitest, colocated .test.ts), E2E (e.g. Playwright). Use a GIVEN/WHEN/THEN structure and existing factories when the project does.
Step 6: Write the test

Write a single targeted test that reproduces the bug:

  • Assert the CORRECT/EXPECTED behavior. The test fails because the bug prevents the expected behavior. Do NOT assert that the buggy behavior succeeds. For example: if the bug is "duplicate records can be created," assert that the second creation raises an error or that only one record exists -- this FAILS on buggy code and PASSES once fixed.
  • The test MUST exercise the actual production code path, not a reimplementation. Call the real functions/classes from the source. Do NOT copy production logic into the test.
  • Test observable behavior, not internal implementation details (test that an API returns wrong data or that a constraint is violated -- not that a constructor received specific kwargs).
  • Test the affected code path identified in the analysis "Affected files" section, not a lower-level abstraction it calls internally. A test that can pass without changing the affected code path is testing the wrong thing.
  • Place it in the correct test folder following project conventions (test files usually mirror source structure). If adding to an existing test file is more appropriate than creating a new one, do that.
Show full SKILL.md (685 more words)Show less
Step 7: Verify the test FAILS

CRITICAL: verify the test FAILS on the current code. Run just this test using the project's detected runner (e.g. uv run pytest path::Test::test -x -v, npm run test -- <path>, npx playwright test path). Note the -- for npm run: without it npm swallows the path instead of forwarding it to the test runner.

  • If a test run takes more than ~5 minutes, kill it and investigate why.
  • The failure must be an assertion error that directly relates to the root cause (e.g. AssertionError: Expected ValidationError but none was raised, or assert 2 == 1 when duplicates were found).
  • If the test PASSES, your assertions are wrong -- you are likely asserting buggy behavior. Flip them to assert what SHOULD happen.
  • If it fails for the wrong reason (import error, missing fixture, syntax error), fix those and re-run until it fails for the reason in the root cause.

Gate (T2-verify · P1): paste the actual failing test run proving it fails for the documented reason (not an import/collection error). See ../quality-gates/gates/primitives/evidence-before-done.md.

Step 8: Format and lint

Run the project's formatter and linter on the test file(s) and fix any issues before committing. Use whatever the project defines (e.g. uv run invoke format / uv run invoke lint, npx biome check --write ., ruff format, prettier/eslint). Detect these from AGENTS.md / Makefile / pyproject.toml / package.json.

Step 9: Commit test files

Commit ONLY the test file(s). Do NOT touch production code. Stage files by name (git add path/to/test_file) -- never git add . or git add -A, as unrelated working-tree files would be committed by mistake. Commit message: test: add failing test for <key>.

Step 10: Open draft PR (only if OPEN_PR=true)

Ship gate (T2 · P2 + P3) — before opening the draft PR or stamping AGENT_TEST_COMPLETE. Run the ship gate per ../quality-gates/gates/primitives/independent-judge.md (judge → on-FAIL STOP → R2 degrade → write receipt on PASS, all defined there). R1 criteria: the .bug-analysis-<key>.md verbatim (the root cause the test must prove — NOT your summary). Artifact: the test diff. Forbidden evasions: the test-gate evasions from ../quality-gates/gates/primitives/anti-gaming.md. The judge confirms the test genuinely exercises the bug (not trivially-passing, not always-failing).

Push the branch and open a draft Pull Request against the repo's default branch:

bash
git push -u origin "<branch>" || { echo "Push rejected (non-fast-forward / protected / network). STOP and resolve before retrying -- do not open or edit a PR."; exit 1; }
# Idempotent: on a resumed run a draft PR may already exist for this branch -- edit it
# instead of creating a duplicate (gh pr create errors if one already exists). Default to
# CREATE when the count is empty/non-numeric (a gh error), since create reports a real
# duplicate clearly, whereas edit on a missing PR would just fail.
PR_COUNT=$(gh pr list --head "<branch>" --state open --json number --jq 'length' 2>/dev/null)
if [ "${PR_COUNT:-0}" -gt 0 ] 2>/dev/null; then
  gh pr edit "<branch>" --title "<title>" --body-file <tmp-body-file>
else
  # No --base: gh pr create defaults the base to the repo's default branch, so the
  # default-branch detection from Step 0 (which doesn't persist across Bash calls) isn't needed here.
  gh pr create --draft --title "<title>" --body-file <tmp-body-file>
fi

Write the PR body to a temp file first (use the Write tool, e.g. under the system temp dir), then pass it via --body-file.

  • Title: test: failing test for <key> -- <short description>
  • PR body with this exact structure:
markdown
## Analyst's findings (summary)

> **Root cause:** <copied from analysis>
> **Affected files:**
> <copied from analysis>

## Replication test

**Test file:** `path/to/test_file.ext`
**Test name:** `test_name_here`

**What it tests:** <one sentence explaining the observable behavior being asserted>

**Verification:** Test confirmed FAILING on current code.
**Failure reason:** <one sentence explaining HOW the test fails and why that proves the bug>

<details><summary>Failure output (last 20 lines)</summary>

```text
<paste the relevant failure output>
```

</details>

## Test expectations

<what the test asserts and any edge cases it covers -- NOT how to fix the bug>

<!-- AGENT_TEST_COMPLETE -->

If the analysis was triggered by a GitHub issue, post a short comment on the issue linking to the draft PR.

Escalation

If the test cannot be made to fail for the right reason after 3 attempts, inform the developer explaining what was tried and STOP. Do NOT open a PR or include the AGENT_TEST_COMPLETE marker.

Quality gates

Gates for this skill follow ../quality-gates/gates/gate-model.md. test-driving-bugs is Tier 2 — it writes a failing reproduction test and stamps AGENT_TEST_COMPLETE unconditionally (in PR mode it also opens a draft PR; both paths require the full ship gate).

GateStep / triggerTierPrimitivesPass criteriaOn-fail
Test-fails-rightafter writing the testT2-verifyP1The new test FAILS for the documented reason. Paste the failing run.STOP; fix the test
Test-catches-bugbefore opening the draft PR / stamping AGENT_TEST_COMPLETET2-shipP2 + P3A fresh judge, given the .bug-analysis-<key>.md verbatim and the test diff, confirms the test actually exercises the bug (not trivially-passing, not always-failing).STOP; do not stamp; fix and re-judge

Common mistakes

🚩 Red flagDo instead
Test passes on the current (buggy) codeYou're asserting the buggy behavior — flip the assertions to the expected behavior so it FAILS now
Copying production logic into the testCall the real functions/classes from the source; test the actual code path
Test passes without touching the affected filesExercise the affected code path from the analysis, not a lower-level abstraction it calls
Editing production code "to help the test"This step writes tests only — production code is /opsmill-dev-fixing-bugs's job
git add . / git add -AStage the test file(s) by name
Opening the PR / writing AGENT_TEST_COMPLETE after a failed attemptThe marker is the "test ready" signal — only emit it once the test fails for the right reason

© 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

Files

Just SKILL.md in .agents/skills/opsmill-dev-test-driving-bugs of opsmill/infrahub.

Open the folder on GitHubat commit 460d724

Compare with similar skills

Opsmill Dev Test Driving Bugs 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.

Opsmill Dev Test Driving Bugs compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Opsmill Dev Test Driving Bugs this skillopsmill/infrahub531—~4kAutomated safety check: PassApache-2.0
Systematic Debuggingforyourhealth111-pixel/Vibe-Skills3.6k—~2.6kAutomated safety check: PassApache-2.0
Systematic Debuggingtmdgusya/engineering-discipline125—~2kAutomated safety check: PassNone
Pester Failure AnalysisPowerShell/PowerShell56k—~5.1kAutomated safety check: PassMIT
Foreman DebugVisionForge-OU/foreman443—~1.1kAutomated safety check: PassCustom licence
Map Debugazalio/map-framework156—~4.6kAutomated safety check: PassMIT

Similar skills

  • Systematic Debugging

    foryourhealth111-pixel/Vibe-Skills

    Root-cause route for actual bugs, failing tests, build errors, crashes, stack traces, and unexpected behavior.

    3.6k GitHub stars~2.6k tokensUpdated 1 mo ago
    Testing & QAAuto-check passed
  • Systematic Debugging

    tmdgusya/engineering-discipline

    A skill your agent uses when encountering any bug, test failure, or unexpected behavior.

    125 GitHub stars~2k tokensUpdated 3 mo ago
    DevelopmentAuto-check passed
  • Pester Failure Analysis

    PowerShell/PowerShell

    Investigates failing Pester tests in PowerShell CI jobs by following a six-step workflow from pull request status to documented fix recommendations.

    56k GitHub stars~5.1k tokensUpdated today
    Testing & QAAuto-check passed
  • Foreman Debug

    VisionForge-OU/foreman

    Headless root-cause debugging loop for a Foreman worker whose tests, build, or acceptance check are failing — especially on a retry.

    443 GitHub stars~1.1k tokensUpdated 3 mo ago
    Testing & QAAuto-check passed
  • Map Debug

    azalio/map-framework

    Structured MAP debugging via decomposer, actor, and monitor agents.

    156 GitHub stars~4.6k tokensUpdated yesterday
    Testing & QAAuto-check passed
  • Map Debug

    azalio/map-framework

    Structured MAP debugging via task-decomposer, actor, and monitor agents.

    156 GitHub stars~4.6k tokensUpdated yesterday
    Testing & QAAuto-check passed

More from opsmill/infrahub

All 32 skills in this repo
  • Analyzing CI Flakiness

    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…

    531 GitHub stars~2k tokensUpdated today
    Auto-check passed
  • Audit Docs

    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…

    531 GitHub stars~1.5k tokensUpdated today
    Auto-check passed
  • Commit

    opsmill/infrahub

    Stages and commits the current changes onto a safe working branch, enforcing branch discipline and optionally pushing upstream.

    531 GitHub stars~2.8k tokensUpdated today
    Auto-check: notes
  • 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…

    531 GitHub stars~1.9k tokensUpdated today
    Auto-check passed
  • Creating Issues

    opsmill/infrahub

    Turns a single feature idea, improvement, or bug into ONE well-structured GitHub issue.

    531 GitHub stars~1.2k tokensUpdated today
    Auto-check passed
  • Creating Prd

    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).

    531 GitHub stars~4k tokensUpdated today
    Auto-check passed

Works with

Questions about Opsmill Dev Test Driving Bugs

What does Opsmill Dev Test Driving Bugs do?

Writes a single failing test that reproduces a bug after its root-cause analysis is complete, before any fix is written. Opsmill Dev Test Driving Bugs is an agent skill from opsmill/infrahub. Writes a single failing test that reproduces a bug after its root-cause analysis is complete, before any fix is written.

When should I use Opsmill Dev Test Driving Bugs?

Opsmill Dev Test Driving Bugs fits situations like: : a bug has a completed root-cause analysis and you need the failing reproduction test; writing a test that proves a bug exists; the second step of the bug-fixing pipeline; : still triaging.

How do I install Opsmill Dev Test Driving Bugs in Claude Code?

Run `npx skills add opsmill/infrahub --skill opsmill-dev-test-driving-bugs -a claude-code`. Or copy the skill folder (.agents/skills/opsmill-dev-test-driving-bugs in opsmill/infrahub) into .claude/skills/opsmill-dev-test-driving-bugs in your project. Claude Code loads it when a task matches its description.

How do I install Opsmill Dev Test Driving Bugs in Codex?

Run `npx skills add opsmill/infrahub --skill opsmill-dev-test-driving-bugs -a codex`. Or copy the skill folder (.agents/skills/opsmill-dev-test-driving-bugs in opsmill/infrahub) into .agents/skills/opsmill-dev-test-driving-bugs in your project. Codex loads it when a task matches its description.

Can I use Opsmill Dev Test Driving Bugs 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 opsmill/infrahub --skill opsmill-dev-test-driving-bugs -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/opsmill-dev-test-driving-bugs, .gemini/skills/opsmill-dev-test-driving-bugs, .github/skills/opsmill-dev-test-driving-bugs and .opencode/skills/opsmill-dev-test-driving-bugs in your project.

What does Opsmill Dev Test Driving Bugs need to run?

Going by SKILL.md and its folder, Opsmill Dev Test Driving Bugs needs the command-line tools its instructions call (git, gh, uv, npm, npx and ruff). Our summary lists: Python 3; Node.js. Compatibility (from SKILL.md): Works in any git repo with a test suite; discovers testing conventions from the OpsMill `dev/` layout with auto-detection fallback. The draft-PR step needs `gh` and a GitHub remote..

Does Opsmill Dev Test Driving Bugs access the network?

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

Is Opsmill Dev Test Driving Bugs 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. Review the folder before installing.

What licence does Opsmill Dev Test Driving Bugs use?

Opsmill Dev Test Driving Bugs 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 Opsmill Dev Test Driving Bugs use?

About 4k tokens (SKILL.md is roughly 16k 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 Opsmill Dev Test Driving Bugs?

Skills that share tags, products or a category with Opsmill Dev Test Driving Bugs: Systematic Debugging (foryourhealth111-pixel/Vibe-Skills, 3.6k stars), Systematic Debugging (tmdgusya/engineering-discipline, 125 stars), Pester Failure Analysis (PowerShell/PowerShell, 56k stars) and Foreman Debug (VisionForge-OU/foreman, 443 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Opsmill Dev Test Driving Bugs?

opsmill (a GitHub organization) maintains it in opsmill/infrahub, which has 531 GitHub stars. The repository holds 32 skills in this directory. The repository was last updated on October 8, 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.