Web Application Testing
anthropics/skills
Tests local web applications with Python Playwright scripts, checking frontend behavior, capturing screenshots and reading browser console logs.
A skill your agent uses when writing or reviewing tests, or deciding whether a change needs one.
$ npx skills add bholmesdev/hubble.md --skill writing-tests -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install bholmesdev/hubble.md writing-tests --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/bholmesdev/hubble.md.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/writing-tests .claude/skills/writing-tests && 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 "writing-tests" agent skill from https://github.com/bholmesdev/hubble.md/tree/main/.agents/skills/writing-tests into .claude/skills/writing-tests/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "writing-tests", 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/bholmesdev/hubble.md/tree/main/.agents/skills/writing-testsType 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 bholmesdev/hubble.md --skill writing-tests -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install bholmesdev/hubble.md writing-tests --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/bholmesdev/hubble.md.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/writing-tests .agents/skills/writing-tests && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "writing-tests" agent skill from https://github.com/bholmesdev/hubble.md/tree/main/.agents/skills/writing-tests into .agents/skills/writing-tests/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "writing-tests", 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 bholmesdev/hubble.md --skill writing-tests -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install bholmesdev/hubble.md writing-tests --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/bholmesdev/hubble.md.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/writing-tests .cursor/skills/writing-tests && 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 "writing-tests" agent skill from https://github.com/bholmesdev/hubble.md/tree/main/.agents/skills/writing-tests into .cursor/skills/writing-tests/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "writing-tests", 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/bholmesdev/hubble.md.git --path .agents/skills/writing-tests--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 bholmesdev/hubble.md --skill writing-tests -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install bholmesdev/hubble.md writing-tests --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/bholmesdev/hubble.md.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/writing-tests .gemini/skills/writing-tests && 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 "writing-tests" agent skill from https://github.com/bholmesdev/hubble.md/tree/main/.agents/skills/writing-tests into .gemini/skills/writing-tests/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "writing-tests", 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 bholmesdev/hubble.md writing-testsInstalls 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 bholmesdev/hubble.md --skill writing-tests -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/bholmesdev/hubble.md.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/writing-tests .github/skills/writing-tests && 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 "writing-tests" agent skill from https://github.com/bholmesdev/hubble.md/tree/main/.agents/skills/writing-tests into .github/skills/writing-tests/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "writing-tests", 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 bholmesdev/hubble.md --skill writing-tests -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install bholmesdev/hubble.md writing-tests --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/bholmesdev/hubble.md.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/writing-tests .opencode/skills/writing-tests && 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 "writing-tests" agent skill from https://github.com/bholmesdev/hubble.md/tree/main/.agents/skills/writing-tests into .opencode/skills/writing-tests/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "writing-tests", 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.
writing-testsA skill your agent uses when writing or reviewing tests, or deciding whether a change needs one.
Writing Tests is an agent skill from bholmesdev/hubble.md. Use when writing or reviewing tests, or deciding whether a change needs one.
Its SKILL.md is about 610 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. The repository describes itself as: The best notepad for you and your agents. The licence is MIT.
3 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 571a523. 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.
Writing Tests loads about 609 tokens when it runs. Until then it costs about 23 tokens; SKILL.md has 358 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 bholmesdev/hubble.md at commit 571a523, republished under its MIT licence (© bholmesdev). 358 words, ~609 tokens.
.claude/skills/writing-tests/SKILL.md (or your agent's skills folder).Shape coverage like Kent C. Dodds' testing trophy: static checks at the base, a thin layer of unit tests, most confidence from integration tests, and the smallest budget for end-to-end tests.
A test is warranted when it catches a plausible regression that nothing else would. Prove it before keeping the test:
A test that stays green on revert, or goes red for the wrong reason, is coupled to the code's shape instead of its behavior. Rewrite its assertion or delete it.
Good candidates: bug fixes, tricky UI behavior (focus handoff, keyboard flows, races between async work and navigation), and edge cases in pure logic (Markdown parsing and serialization, paths, rename rules). Glue code, prop pass-through, and variations of an already-covered behavior get no test of their own.
| Layer | Here | Use for |
|---|---|---|
| Static | Biome, tsc, pnpm check:react-compiler | Anything a type or lint rule can catch |
| Unit | Vitest on pure functions | Parsers, serializers, path logic |
| Integration (default) | Vitest + happy-dom, rendering real components against real stores | UI behavior, store actions |
| End-to-end | Playwright driving Electron | A few core flows where a break loses users' work: opening, editing, and saving notes; creating and renaming files |
happy-dom has no layout. Verify sticky, scroll, overflow, and positioning by hand with the test-desktop-app skill and put a screenshot in the PR, rather than asserting DOM structure. Most changes get no end-to-end test.
Fake only what crosses a process or time boundary: desktopApi/IPC, the filesystem, the network, timers, requestAnimationFrame. Keep stores, components, and the editor real. apps/desktop/src/store/actions.test.ts shows the pattern: a fake desktop API with the real store behind it.
If a test needs to mock internal modules to reach the behavior, move it one layer up so those modules run for real.
© bholmesdev, MIT. 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 .agents/skills/writing-tests of bholmesdev/hubble.md.
Open the folder on GitHubat commit 571a523
Writing 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Writing Tests this skillbholmesdev/hubble.md | 1.5k | — | ~609 | Automated safety check: Pass | MIT | |
| Web Application Testinganthropics/skills | 180k | 51 repos | ~966 | Automated safety check: Pass | Apache-2.0 | |
| Diagnosing Bugsfossasia/eventyay-interpretation | 1.6k | 31 repos | ~2.1k | Automated safety check: Pass | Apache-2.0 | |
| TDDfossasia/eventyay-interpretation | 1.6k | 28 repos | ~1.1k | Automated safety check: Pass | Apache-2.0 | |
| TDD WorkflowhellangleZ/burn-in-cceverywhere-ralph | 112 | 11 repos | ~2.4k | Automated safety check: Pass | None | |
| TDDsanity-io/sanity | 6.4k | 20 repos | ~1k | Automated safety check: Pass | MIT |
anthropics/skills
Tests local web applications with Python Playwright scripts, checking frontend behavior, capturing screenshots and reading browser console logs.
fossasia/eventyay-interpretation
Diagnosis loop for hard bugs and performance regressions. An agent skill from fossasia/eventyay-interpretation.
fossasia/eventyay-interpretation
Test-driven development. An agent skill from fossasia/eventyay-interpretation.
hellangleZ/burn-in-cceverywhere-ralph
A skill your agent uses when writing new features, fixing bugs, or refactoring code.
sanity-io/sanity
Test-driven development with red-green-refactor loop. An agent skill from sanity-io/sanity.
Ibrahim-3d/orchestrator-supaconductor
A skill your agent uses when working with Conductor's context-driven development methodology, managing project context artifacts, or understanding the relationship between product.md, tech-stack.md…
bholmesdev/hubble.md
Add a user-facing entry to CHANGELOG.md for work that just landed.
bholmesdev/hubble.md
Review a pull request or local branch diff for correctness, security, lifecycle, error handling, tests, and meaningful performance risks.
bholmesdev/hubble.md
Triage an incoming GitHub, Jira, Linear, or other issue-tracker issue against the current codebase and related issues, then return a structured decision with exactly one triage state.
bholmesdev/hubble.md
Use this skill automatically when you feel your code is ready for human review, and whenever writing or reviewing code comments.
bholmesdev/hubble.md
Write a PRODUCT.md spec for a significant Hubble user-facing feature, focused only on user experience and observable behavior.
bholmesdev/hubble.md
Write a TECH.md spec for a significant Hubble feature after researching the monorepo architecture.
Categories
A skill your agent uses when writing or reviewing tests, or deciding whether a change needs one. md. Use when writing or reviewing tests, or deciding whether a change needs one.
Writing Tests fits situations like: reviewing tests; deciding whether a change needs one.
Run `npx skills add bholmesdev/hubble.md --skill writing-tests -a claude-code`. Or copy the skill folder (.agents/skills/writing-tests in bholmesdev/hubble.md) into .claude/skills/writing-tests in your project. Claude Code loads it when a task matches its description.
Run `npx skills add bholmesdev/hubble.md --skill writing-tests -a codex`. Or copy the skill folder (.agents/skills/writing-tests in bholmesdev/hubble.md) into .agents/skills/writing-tests 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 bholmesdev/hubble.md --skill writing-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/writing-tests, .gemini/skills/writing-tests, .github/skills/writing-tests and .opencode/skills/writing-tests in your project.
Going by SKILL.md and its folder, Writing Tests 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 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.
Writing Tests is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 609 tokens (SKILL.md is roughly 2.4k 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 Writing Tests: Web Application Testing (anthropics/skills, 180k stars), Diagnosing Bugs (fossasia/eventyay-interpretation, 1.6k stars), TDD (fossasia/eventyay-interpretation, 1.6k stars) and TDD Workflow (hellangleZ/burn-in-cceverywhere-ralph, 112 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
bholmesdev (a GitHub user) maintains it in bholmesdev/hubble.md, which has 1,483 GitHub stars. The repository holds 13 skills in this directory. The repository was last updated on October 1, 2026.
Source: bholmesdev/hubble.md on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.