OpenWork Desktop CDP Driver
different-ai/openwork
Drives a running OpenWork desktop window over CDP from the shell to evaluate JS, take screenshots, start sessions and send prompts for hand checks.
Reproduce and fix bugs using TDD. An agent skill from stacklok/toolhive-studio.
$ npx skills add stacklok/toolhive-studio --skill bug-fix-tdd -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install stacklok/toolhive-studio bug-fix-tdd --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/stacklok/toolhive-studio.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.codex/skills/bug-fix-tdd .claude/skills/bug-fix-tdd && 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 "bug-fix-tdd" agent skill from https://github.com/stacklok/toolhive-studio/tree/main/.codex/skills/bug-fix-tdd into .claude/skills/bug-fix-tdd/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bug-fix-tdd", 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/stacklok/toolhive-studio/tree/main/.codex/skills/bug-fix-tddType 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 stacklok/toolhive-studio --skill bug-fix-tdd -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install stacklok/toolhive-studio bug-fix-tdd --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/stacklok/toolhive-studio.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.codex/skills/bug-fix-tdd .agents/skills/bug-fix-tdd && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "bug-fix-tdd" agent skill from https://github.com/stacklok/toolhive-studio/tree/main/.codex/skills/bug-fix-tdd into .agents/skills/bug-fix-tdd/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bug-fix-tdd", 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 stacklok/toolhive-studio --skill bug-fix-tdd -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install stacklok/toolhive-studio bug-fix-tdd --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/stacklok/toolhive-studio.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.codex/skills/bug-fix-tdd .cursor/skills/bug-fix-tdd && 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 "bug-fix-tdd" agent skill from https://github.com/stacklok/toolhive-studio/tree/main/.codex/skills/bug-fix-tdd into .cursor/skills/bug-fix-tdd/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bug-fix-tdd", 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/stacklok/toolhive-studio.git --path .codex/skills/bug-fix-tdd--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 stacklok/toolhive-studio --skill bug-fix-tdd -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install stacklok/toolhive-studio bug-fix-tdd --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/stacklok/toolhive-studio.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.codex/skills/bug-fix-tdd .gemini/skills/bug-fix-tdd && 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 "bug-fix-tdd" agent skill from https://github.com/stacklok/toolhive-studio/tree/main/.codex/skills/bug-fix-tdd into .gemini/skills/bug-fix-tdd/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bug-fix-tdd", 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 stacklok/toolhive-studio bug-fix-tddInstalls 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 stacklok/toolhive-studio --skill bug-fix-tdd -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/stacklok/toolhive-studio.git skills-src && mkdir -p .github/skills && cp -r skills-src/.codex/skills/bug-fix-tdd .github/skills/bug-fix-tdd && 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 "bug-fix-tdd" agent skill from https://github.com/stacklok/toolhive-studio/tree/main/.codex/skills/bug-fix-tdd into .github/skills/bug-fix-tdd/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bug-fix-tdd", 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 stacklok/toolhive-studio --skill bug-fix-tdd -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install stacklok/toolhive-studio bug-fix-tdd --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/stacklok/toolhive-studio.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.codex/skills/bug-fix-tdd .opencode/skills/bug-fix-tdd && 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 "bug-fix-tdd" agent skill from https://github.com/stacklok/toolhive-studio/tree/main/.codex/skills/bug-fix-tdd into .opencode/skills/bug-fix-tdd/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bug-fix-tdd", 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.
bug-fix-tddReproduce and fix bugs using TDD. An agent skill from stacklok/toolhive-studio.
Bug Fix TDD is an agent skill from stacklok/toolhive-studio. Reproduce and fix bugs using TDD. Use when analyzing a bug report, writing a regression test, or applying a minimal fix. Covers test placement, mock patterns, and the red-green-refactor workflow for automated bug fixing.
Its SKILL.md is about 1.7k 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 Debugging and Test-driven development. It works with Model Context Protocol and pnpm. The repository describes itself as: ToolHive is an application that allows you to install, manage and run MCP servers and connect them to AI agents. The licence is Apache-2.0.
2 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 87f7a55. 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:
pnpmFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use pnpm, 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.
Bug Fix TDD loads about 1.7k tokens when it runs. Until then it costs about 58 tokens; SKILL.md has 492 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 noted patterns worth knowing about, such as sudo or a known installer.
traints**: Do NOT run git, gh, or modify .env files.s Phase 2. Do NOT run git, gh, or modify .env files.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 stacklok/toolhive-studio at commit 87f7a55, republished under its Apache-2.0 licence (© stacklok). 492 words, ~1,654 tokens.
.claude/skills/bug-fix-tdd/SKILL.md (or your agent's skills folder).Reproduce bugs with a failing test, then apply the minimum fix. This skill is used by the automated bug-fix agent in CI but can also be invoked manually.
pnpm run test:nonInteractive -- <test-file-path>bug-analysis.md with findings (see format below)Constraints: Do NOT modify source files in Phase 1. Only create/edit test files and bug-analysis.md.
bug-analysis.mdpnpm run test:nonInteractive -- <test-file-path>pnpm run test:nonInteractivepnpm run lint and pnpm run type-checkpr-body.md and fix-title.txtConstraints: Do NOT run git, gh, or modify .env files.
If Phase 1 cannot reproduce the bug in a test (test passes after 3 attempts), Phase 2b runs instead of Phase 2.
bug-analysis.md and issue-body.md for contextpnpm run test:nonInteractivepnpm run lint and pnpm run type-checkpr-body.md and fix-title.txt — note in the PR body that no regression test was possibleConstraints: Same as Phase 2. Do NOT run git, gh, or modify .env files.
__tests__/ directories colocated with the source filedescribe('Bug #N', ...) block instead of creating a new file<component-name>.test.tsx or <hook-name>.test.tsrenderer/src/features/skills/components/card-skill.tsx → test at renderer/src/features/skills/components/__tests__/card-skill.test.tsximport { render, screen, waitFor } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
const queryClient = new QueryClient({
defaultOptions: { queries: { retry: false } },
})
render(
<QueryClientProvider client={queryClient}>
<MyComponent prop="value" />
</QueryClientProvider>
)
await userEvent.click(screen.getByRole('button', { name: /save/i }))
await waitFor(() => {
expect(screen.getByText('Saved')).toBeVisible()
})import { createTestRouter } from '@/common/test/create-test-router'
import { renderRoute } from '@/common/test/render-route'
const router = createTestRouter(MyPage, '/my-page')
renderRoute(router, { permissions: { canManageClients: true } })
await waitFor(() => {
expect(screen.getByRole('heading', { name: /my page/i })).toBeVisible()
})import { renderHook, waitFor } from '@testing-library/react'
import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
const queryClient = new QueryClient({
defaultOptions: { queries: { retry: false } },
})
const Wrapper = ({ children }) =>
<QueryClientProvider client={queryClient}>{children}</QueryClientProvider>
const { result } = renderHook(() => useMyHook(), { wrapper: Wrapper })
await waitFor(() => expect(result.current.isLoading).toBe(false))
expect(result.current.data).toEqual({ ... })import { mockedGetApiV1BetaWorkloads } from '@mocks/fixtures/workloads/get'
mockedGetApiV1BetaWorkloads.override((data) => ({
...data,
workloads: [], // Force empty state
}))import { HttpResponse } from 'msw'
mockedGetApiV1BetaWorkloads.overrideHandler(() =>
HttpResponse.json({ error: 'Server error' }, { status: 500 })
)import { recordRequests } from '@/common/mocks/node'
const rec = recordRequests()
// ... trigger action ...
const request = rec.recordedRequests.find(
(r) => r.method === 'POST' && r.pathname === '/api/v1beta/workloads'
)
expect(request?.payload).toMatchObject({ name: 'my-server' })## Bug Summary
<1-2 sentences describing the bug>
## Root Cause
<Technical explanation of why the bug occurs>
## Relevant Files
- `path/to/source.tsx` — <what it does>
- `path/to/related.ts` — <why it's relevant>
Test file: path/to/\_\_tests\_\_/component.test.tsx
## Proposed Fix
<Description of the minimum change needed>
## Files to Modify
- `path/to/file.tsx` — <what to change>Important: The Test file: line must be on its own line starting with exactly Test file: followed by the path. This is parsed by the CI workflow.
## Summary
Fixes #<issue-number>.
- <1-2 bullet points describing the fix>
## Test
- Added regression test in `<test-file-path>`
- Test reproduces the bug (fails before fix, passes after)
---
_Automated fix by Claude Code TDD Agent_Single line, conventional commit format:
fix(<scope>): <description> (#<issue-number>)Example: fix(skills): prevent crash when metadata is undefined (#423)
recordRequests()© stacklok, 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 .codex/skills/bug-fix-tdd of stacklok/toolhive-studio.
Open the folder on GitHubat commit 87f7a55
Bug Fix TDD 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 |
|---|---|---|---|---|---|---|
| Bug Fix TDD this skillstacklok/toolhive-studio | 170 | — | ~1.7k | Automated safety check: Notes | Apache-2.0 | |
| OpenWork Desktop CDP Driverdifferent-ai/openwork | 24k | — | ~465 | Automated safety check: Pass | Custom licence | |
| Ue Test AuthoringJasonMa0012/MooaToon | 749 | — | ~2.1k | Automated safety check: Notes | Custom licence | |
| Foreman DebugVisionForge-OU/foreman | 444 | — | ~1.1k | Automated safety check: Pass | Custom licence | |
| Fix Bugtddworks/ClaudeBar | 1.5k | — | ~2.2k | Automated safety check: Pass | Apache-2.0 | |
| Deck Reproasheshgoplani/agent-deck | 1k | — | ~1.3k | Automated safety check: Pass | MIT |
different-ai/openwork
Drives a running OpenWork desktop window over CDP from the shell to evaluate JS, take screenshots, start sessions and send prompts for hand checks.
JasonMa0012/MooaToon
A skill your agent uses when writing or modifying UE automated tests (Automation, CQTest, Functional, Gauntlet, LowLevel) with Rider MCP available.
VisionForge-OU/foreman
Headless root-cause debugging loop for a Foreman worker whose tests, build, or acceptance check are failing — especially on a retry.
tddworks/ClaudeBar
Guide for fixing bugs in ClaudeBar following Chicago School TDD and rich domain design.
asheshgoplani/agent-deck
Reproduce agent-deck bugs from an issue, transcript excerpt, or description in an isolated environment, and prove fixes with the same reproduction and a regression test.
vasp-dev/py4vasp
Carry out ONE chunk of a py4vasp change test-first: RED (watch the test fail for the right reason) → GREEN → refactor → one local commit.
stacklok/toolhive-studio
Deep links in ToolHive Studio. An agent skill from stacklok/toolhive-studio.
stacklok/toolhive-studio
Spin up and interact with ToolHive Studio's containerized dev environment (Xvfb + noVNC + DinD).
stacklok/toolhive-studio
Remediate security vulnerabilities found by Grype or pnpm audit.
stacklok/toolhive-studio
Create new AI agent skills for Claude Code, Codex, and Cursor.
stacklok/toolhive-studio
Verify API requests in tests. An agent skill from stacklok/toolhive-studio.
stacklok/toolhive-studio
Test that components send correct query parameters or request arguments.
Works with
Categories
Reproduce and fix bugs using TDD. An agent skill from stacklok/toolhive-studio. Bug Fix TDD is an agent skill from stacklok/toolhive-studio. Reproduce and fix bugs using TDD.
Bug Fix TDD fits situations like: analyzing a bug report; writing a regression test; applying a minimal fix.
Run `npx skills add stacklok/toolhive-studio --skill bug-fix-tdd -a claude-code`. Or copy the skill folder (.codex/skills/bug-fix-tdd in stacklok/toolhive-studio) into .claude/skills/bug-fix-tdd in your project. Claude Code loads it when a task matches its description.
Run `npx skills add stacklok/toolhive-studio --skill bug-fix-tdd -a codex`. Or copy the skill folder (.codex/skills/bug-fix-tdd in stacklok/toolhive-studio) into .agents/skills/bug-fix-tdd 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 stacklok/toolhive-studio --skill bug-fix-tdd -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/bug-fix-tdd, .gemini/skills/bug-fix-tdd, .github/skills/bug-fix-tdd and .opencode/skills/bug-fix-tdd in your project.
Going by SKILL.md and its folder, Bug Fix TDD needs the command-line tools its instructions call (pnpm).
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Bug Fix TDD 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 1.7k tokens (SKILL.md is roughly 6.6k 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 Bug Fix TDD: OpenWork Desktop CDP Driver (different-ai/openwork, 24k stars), Ue Test Authoring (JasonMa0012/MooaToon, 749 stars), Foreman Debug (VisionForge-OU/foreman, 444 stars) and Fix Bug (tddworks/ClaudeBar, 1.5k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
stacklok (a GitHub organization) maintains it in stacklok/toolhive-studio, which has 170 GitHub stars. The repository holds 9 skills in this directory. The repository was last updated on October 7, 2026.
Source: stacklok/toolhive-studio on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.