Ha Frontend Testing
home-assistant/frontend
Home Assistant frontend testing and validation workflow. An agent skill from home-assistant/frontend.
Test a change in Open Data Capture. An agent skill from DouglasNeuroInformatics/OpenDataCapture.
$ npx skills add DouglasNeuroInformatics/OpenDataCapture --skill odc-testing -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install DouglasNeuroInformatics/OpenDataCapture odc-testing --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/DouglasNeuroInformatics/OpenDataCapture.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/odc-testing .claude/skills/odc-testing && 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 "odc-testing" agent skill from https://github.com/DouglasNeuroInformatics/OpenDataCapture/tree/main/.agents/skills/odc-testing into .claude/skills/odc-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "odc-testing", 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/DouglasNeuroInformatics/OpenDataCapture/tree/main/.agents/skills/odc-testingType 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 DouglasNeuroInformatics/OpenDataCapture --skill odc-testing -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install DouglasNeuroInformatics/OpenDataCapture odc-testing --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/DouglasNeuroInformatics/OpenDataCapture.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/odc-testing .agents/skills/odc-testing && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "odc-testing" agent skill from https://github.com/DouglasNeuroInformatics/OpenDataCapture/tree/main/.agents/skills/odc-testing into .agents/skills/odc-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "odc-testing", 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 DouglasNeuroInformatics/OpenDataCapture --skill odc-testing -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install DouglasNeuroInformatics/OpenDataCapture odc-testing --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/DouglasNeuroInformatics/OpenDataCapture.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/odc-testing .cursor/skills/odc-testing && 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 "odc-testing" agent skill from https://github.com/DouglasNeuroInformatics/OpenDataCapture/tree/main/.agents/skills/odc-testing into .cursor/skills/odc-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "odc-testing", 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/DouglasNeuroInformatics/OpenDataCapture.git --path .agents/skills/odc-testing--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 DouglasNeuroInformatics/OpenDataCapture --skill odc-testing -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install DouglasNeuroInformatics/OpenDataCapture odc-testing --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/DouglasNeuroInformatics/OpenDataCapture.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/odc-testing .gemini/skills/odc-testing && 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 "odc-testing" agent skill from https://github.com/DouglasNeuroInformatics/OpenDataCapture/tree/main/.agents/skills/odc-testing into .gemini/skills/odc-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "odc-testing", 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 DouglasNeuroInformatics/OpenDataCapture odc-testingInstalls 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 DouglasNeuroInformatics/OpenDataCapture --skill odc-testing -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/DouglasNeuroInformatics/OpenDataCapture.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/odc-testing .github/skills/odc-testing && 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 "odc-testing" agent skill from https://github.com/DouglasNeuroInformatics/OpenDataCapture/tree/main/.agents/skills/odc-testing into .github/skills/odc-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "odc-testing", 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 DouglasNeuroInformatics/OpenDataCapture --skill odc-testing -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install DouglasNeuroInformatics/OpenDataCapture odc-testing --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/DouglasNeuroInformatics/OpenDataCapture.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/odc-testing .opencode/skills/odc-testing && 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 "odc-testing" agent skill from https://github.com/DouglasNeuroInformatics/OpenDataCapture/tree/main/.agents/skills/odc-testing into .opencode/skills/odc-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "odc-testing", 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.
odc-testingTest a change in Open Data Capture. An agent skill from DouglasNeuroInformatics/OpenDataCapture.
Odc Testing is an agent skill from DouglasNeuroInformatics/OpenDataCapture. Test a change in Open Data Capture. Use when adding a unit test or a Playwright e2e test, when a package has no vitest.config.ts of its own, when a suite passes without executing your test, or when vitest reports "No projects matched the filter". tdd supplies the red-green method; a one-off manual check in the browser is agent-browser's job.
Its SKILL.md is about 1.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `agents/openai.yaml`).
It sits in Testing & QA, covering Unit testing, End-to-end testing and Browser automation. It works with Vitest, Playwright and pnpm. The repository describes itself as: An electronic data capture platform for administering remote and in-person clinical instruments. The licence is Apache-2.0.
Read from SKILL.md and the folder at commit 432dec8. 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.
Odc Testing loads about 1.5k tokens when it runs. Until then it costs about 89 tokens; SKILL.md has 765 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.
- **`.env` must exist.** `pnpm test` is `env-cmd vitest` — no turbo task, no build, no database —nv-cmd` exits before vitest starts when `.env` is absent.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 DouglasNeuroInformatics/OpenDataCapture at commit 432dec8, republished under its Apache-2.0 licence (© DouglasNeuroInformatics). 765 words, ~1,491 tokens.
.claude/skills/odc-testing/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.A test file is worth nothing until it is collected — an uncollected file reports the behaviour as covered and never runs. This repo's collection mechanism fails silently, so nothing below is finished on a green run alone.
A workspace with no vitest.config.ts of its own contributes no project, so a test file dropped
into apps/gateway or packages/instrument-library today is collected by nothing, reported by
nothing, and passes CI green, with no error to search for. .agents/docs/architecture/testing-strategy.md holds
the table of which packages have a project and which do not; check it before you write the file.
When yours is not in that table, read that package's own AGENTS.md §Tests first: several
workspaces are end-to-end-only by design and say so — packages/instrument-library (whose
.agents/docs/playbooks/add-instrument.md step 7 makes the e2e test the whole answer) and
apps/gateway. Where this one
does, .agents/docs/playbooks/add-vitest-project.md is the ordering; for a package that renders
React it adds a happy-dom devDependency, which the root hard rule says to confirm in-conversation
before writing.
Done when the package appears in that table, or its AGENTS.md puts the unit tier out of scope
and the e2e test carries the change, or this change adds its vitest.config.ts.
| What you changed | The tier that can prove it | Runner |
|---|---|---|
| A pure function, a schema, a hook, a rendered component | Unit, in that package's own project | pnpm test:coverage |
| Who can see or do what; anything reading real rows | End-to-end only | pnpm test:e2e |
| A type contract — inference, a discriminated union | The type-check, which is tsc inside lint | pnpm lint |
There is no integration tier, and the middle row is why. apps/api unit tests mock the Prisma
layer entirely (apps/api/src/groups/__tests__/groups.service.test.ts), so the only code path
exercised against a database is Playwright: a permissions or scoping change that a green unit suite
appears to cover has not been tested at all. The type-check tier has no file of its own — a type
that must hold is asserted by code that would not compile if it broke.
Done when you can name the unit file and the e2e spec this change needs, or state which row of this table makes one of them inapplicable.
A green vitest run reports counts only — Test Files … passed names no file, so it is not evidence
that yours was collected. The listing is:
pnpm exec vitest list --filesOnly # every collected file, each prefixed [<project>]
pnpm exec vitest list --filesOnly --project <name>Run both from the repo root. The name that --project takes is the name field inside that
package's config, not always its directory; .agents/docs/playbooks/add-vitest-project.md decodes
Error: No projects matched the filter "<name>".
Then invert one assertion and watch it go red before you restore it. If a suite stays green past
this point with the code deliberately wrong, .agents/skills/odc-debugging/SKILL.md is the symptom
index.
Done when list --filesOnly has printed your file under its project name and you have watched
that file fail on purpose.
Open .agents/docs/architecture/testing-strategy.md before writing the file: §Test environment says
what is not arranged for you, and §Conventions by package names the canonical test to copy for your
package. Two things it does not carry:
.env must exist. pnpm test is env-cmd vitest — no turbo task, no build, no database —
and env-cmd exits before vitest starts when .env is absent.apps/web runs under, computes no layout: getBoundingClientRect and
offsetWidth return 0, so assert on rendered content, never on geometry or visibility. happy-dom
≥ 20 supplies its own no-op ResizeObserver, so no test needs to stub one.Writing a component test under apps/web? That same §Tests adds the @/services/i18n side-effect
import libui controls need.
.agents/docs/playbooks/add-e2e-test.md is the order of operations; read testing/AGENTS.md before
its step 1, because two of the conventions there decide whether the spec is real: the
{ expect, test } import from ../support/fixtures, and naming every seeded record with the
uniqueId fixture. A raw @playwright/test import fails loudly once the spec destructures a repo
fixture, and silently when it takes { page } alone — that page is never authenticated. A fixed
seed name is silent always: it passes alone and collides under fullyParallel.
Done when pnpm --filter @opendatacapture/testing test:e2e --list src/specs/<file>.spec.ts has
printed your test titles under [chromium], and you have watched one of them fail on purpose.
CI fires on a pull_request to main and on workflow_dispatch, never on a push
(.agents/docs/architecture/testing-strategy.md §What CI gates), so until that PR exists the run
you did locally is the only one there has been. Run .agents/skills/odc-done/SKILL.md before you
open it — that is the sweep that re-runs lint, unit and e2e together.
© DouglasNeuroInformatics, 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
SKILL.md and 1 other file in .agents/skills/odc-testing of DouglasNeuroInformatics/OpenDataCapture.
Open the folder on GitHubat commit 432dec8
Odc Testing 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 |
|---|---|---|---|---|---|---|
| Odc Testing this skillDouglasNeuroInformatics/OpenDataCapture | 119 | — | ~1.5k | Automated safety check: Notes | Apache-2.0 | |
| Ha Frontend Testinghome-assistant/frontend | 5.7k | — | ~1.7k | Automated safety check: Pass | Apache-2.0 | |
| Playwright Testingchongdashu/vibejam-starter-pack | 149 | — | ~2.2k | Automated safety check: Pass | None | |
| Control UI E2Eopenclaw/openclaw | 392k | — | ~2.9k | Automated safety check: Pass | MIT | |
| Ckeditor5 TestingTriliumNext/Trilium | 38k | — | ~3.3k | Automated safety check: Pass | AGPL-3.0 | |
| Svelte Testingspences10/sveltest | 113 | — | ~579 | Automated safety check: Pass | MIT |
home-assistant/frontend
Home Assistant frontend testing and validation workflow. An agent skill from home-assistant/frontend.
chongdashu/vibejam-starter-pack
Plan, implement, and debug frontend tests: unit/integration/E2E/visual/a11y.
openclaw/openclaw
A skill your agent uses when designing, testing, fixing, or extending the OpenClaw Control UI GUI, including UI stress-test galleries with feedback inputs, Vitest + Playwright end-to-end checks…
TriliumNext/Trilium
Testing CKEditor 5 plugins in the Trilium monorepo. An agent skill from TriliumNext/Trilium.
spences10/sveltest
Fix and create Svelte 5 tests with vitest-browser-svelte and Playwright.
chongdashu/vibejam-starter-pack
Plan, implement, and debug frontend tests: unit/integration/E2E/visual/a11y.
DouglasNeuroInformatics/OpenDataCapture
Write or correct this repo's agent documentation — a workspace AGENTS.md (or its CLAUDE.md symlink), a playbook under .agents/docs/playbooks, an architecture doc, or the workspace map.
DouglasNeuroInformatics/OpenDataCapture
Triage pull requests against upstream main — one verdict, action items, and whether it needs the user's eyes.
DouglasNeuroInformatics/OpenDataCapture
Open a pull request against main for the current branch. An agent skill from DouglasNeuroInformatics/OpenDataCapture.
DouglasNeuroInformatics/OpenDataCapture
File a GitHub issue for Open Data Capture with its labels. An agent skill from DouglasNeuroInformatics/OpenDataCapture.
DouglasNeuroInformatics/OpenDataCapture
What actually breaks in Open Data Capture — a failing build, lint, unit test or e2e run; a change with no visible effect; a suite that stays green after you broke the code on purpose; an error…
DouglasNeuroInformatics/OpenDataCapture
Close out a change to Open Data Capture before committing, opening a PR, or reporting it done.
Works with
Categories
Test a change in Open Data Capture. An agent skill from DouglasNeuroInformatics/OpenDataCapture. Odc Testing is an agent skill from DouglasNeuroInformatics/OpenDataCapture. Test a change in Open Data Capture.
Odc Testing fits situations like: adding a unit test; A Playwright e2e test; A package has no vitest.config.ts of its own; A suite passes without executing your test.
Run `npx skills add DouglasNeuroInformatics/OpenDataCapture --skill odc-testing -a claude-code`. Or copy the skill folder (.agents/skills/odc-testing in DouglasNeuroInformatics/OpenDataCapture) into .claude/skills/odc-testing in your project. Claude Code loads it when a task matches its description.
Run `npx skills add DouglasNeuroInformatics/OpenDataCapture --skill odc-testing -a codex`. Or copy the skill folder (.agents/skills/odc-testing in DouglasNeuroInformatics/OpenDataCapture) into .agents/skills/odc-testing 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 DouglasNeuroInformatics/OpenDataCapture --skill odc-testing -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/odc-testing, .gemini/skills/odc-testing, .github/skills/odc-testing and .opencode/skills/odc-testing in your project.
Going by SKILL.md and its folder, Odc Testing 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.
Odc Testing 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.5k tokens (SKILL.md is roughly 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 Odc Testing: Ha Frontend Testing (home-assistant/frontend, 5.7k stars), Playwright Testing (chongdashu/vibejam-starter-pack, 149 stars), Control UI E2E (openclaw/openclaw, 392k stars) and Ckeditor5 Testing (TriliumNext/Trilium, 38k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
DouglasNeuroInformatics (a GitHub organization) maintains it in DouglasNeuroInformatics/OpenDataCapture, which has 119 GitHub stars. The repository holds 16 skills in this directory. The repository was last updated on October 7, 2026.
Source: DouglasNeuroInformatics/OpenDataCapture on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.