Agent skill

Ha Frontend Testing

by home-assistant in home-assistant/frontend

Home Assistant frontend testing and validation workflow. An agent skill from home-assistant/frontend.

Apache-2.0Auto-check passedTesting & QA

Install Ha Frontend Testing

skills CLI
$ npx skills add home-assistant/frontend --skill ha-frontend-testing -a claude-code

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

GitHub CLI
$ gh skill install home-assistant/frontend ha-frontend-testing --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/home-assistant/frontend.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/ha-frontend-testing .claude/skills/ha-frontend-testing && 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
ha-frontend-testing
GitHub stars
5.7k
Token cost
~1.7k tokens
SKILL.md length
825 words
Files
1
Skills in repo
12
Repo updated
First seen
Licence
Apache-2.0

At a glance

Home Assistant frontend testing and validation workflow. An agent skill from home-assistant/frontend.

  • TypeScript checks
  • SKILL.md covers Test Helpers, Core Commands, Production Builds and When To Add Tests, plus 4 more sections
  • Calls pnpm
  • Playwright e2e suites

What it does

Ha Frontend Testing is an agent skill from home-assistant/frontend. Home Assistant frontend testing and validation workflow. Use when adding or updating tests, running lint, TypeScript checks, Vitest, Playwright e2e suites, dev servers, or chart-data benchmarks.

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 End-to-end testing, Unit testing and Browser testing. It works with Home Assistant, Playwright, TypeScript and Vitest. The repository describes itself as: :lollipop: Frontend for Home Assistant. The licence is Apache-2.0.

When your agent uses it

  • TypeScript checks
  • Playwright e2e suites
  • Chart-data benchmarks

Example prompts

  • “/ha-frontend-testing”

What it can do on your machine

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

    • pnpm

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

  • Network

    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.

  • 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

Ha Frontend Testing loads about 1.7k tokens when it runs. Until then it costs about 54 tokens; SKILL.md has 825 words of instructions outside code blocks.

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

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 home-assistant/frontend at commit e11cdc1, republished under its Apache-2.0 licence (© home-assistant). 825 words, ~1,721 tokens.

Download SKILL.mdSave it as .claude/skills/ha-frontend-testing/SKILL.md (or your agent's skills folder).
name
ha-frontend-testing
description
Home Assistant frontend testing and validation workflow. Use when adding or updating tests, running lint, TypeScript checks, Vitest, Playwright e2e suites, dev servers, or chart-data benchmarks.

HA Frontend Testing

Use this skill when choosing or running validation for frontend changes.

Test Helpers

  • Before adding or changing tests, inspect the relevant suite's existing helpers and fixtures. Reuse them instead of duplicating setup, test data, navigation, interactions, waits, or assertions.
  • When the same test flow appears more than once, move it into the closest suite-local helper with a focused interface.
  • Keep one-off test behaviour in the test unless a helper makes the intent materially clearer. Do not hide the behaviour under test behind broad, configurable abstractions.

Core Commands

bash
pnpm lint          # ESLint + Prettier + TypeScript + Lit
pnpm format        # Auto-fix ESLint + Prettier
pnpm lint:types    # TypeScript compiler, run without file arguments
pnpm test          # Vitest
pnpm build         # Full production build
pnpm dev           # App dev server
pnpm dev:serve     # Local serving dev server

Never run tsc or pnpm lint:types with file arguments. File arguments make tsc ignore tsconfig.json and can emit .js files into src/.

For focused type feedback on one file, use editor diagnostics instead of a file-scoped tsc command.

Production Builds

Production builds support foreground and managed background execution:

bash
pnpm build                         # Full foreground build
pnpm build --background            # Full managed background build
pnpm build --modern                # Modern frontend_latest bundle only
pnpm build --modern --background   # Modern managed background build
pnpm build --status
pnpm build --logs [--follow]
pnpm build --stop

Use pnpm build --modern --background for production bundle-size or browser performance comparisons that only need modern browser output. It runs the normal metadata and static preparation, minifies and compresses the modern frontend_latest bundle and shared static assets, and generates modern-only entry pages and service workers. It deliberately skips the legacy bundle and its service worker.

Do not pass --help, --background, or --modern to script/build_frontend; that raw script does not parse arguments and always starts the full foreground build. Use pnpm build for managed builds. App builds and development servers keep exclusive ownership of hass_frontend/ for their lifetime.

Managed app, demo, gallery, and E2E app workflows share one lifetime lock, so only one build or development server can run at a time.

When To Add Tests

  • Write tests for code that computes something: data processing, utilities, config validation, and strategies.
  • Do not write rendering tests. This includes views, panels, and components whose text, styles, slots, or option defaults are checked, or that only put context and helper data into a template.
  • Do not try to cover every scenario, especially for behaviour that changes often.
  • If you are not sure a test is useful, describe it and what it would catch, and let the user decide.
  • Tests never talk to a real Home Assistant. Replace callWS, callApi, and the connection with fakes.

Dev Servers

pnpm dev builds and watches the app, served by a running Home Assistant core configured through development_repo.

pnpm dev:serve also serves locally and supports -c for the core URL and -p for the port. The default is 8124, or 8123 in a devcontainer.

Dev server commands support --background, --status, --stop, and --logs [--follow]. pnpm dev, pnpm dev:serve, pnpm dev:demo, and pnpm dev:gallery also support --fetch-translations; this runs translation fetching, including first-time GitHub device authentication, under the workflow lock before starting the watcher. It works in foreground and background modes. Prefer managed background mode while iterating so the watcher stays available across test runs without occupying the terminal. pnpm dev and pnpm dev:serve share one managed process slot because both write the app output.

Show full SKILL.md (342 more words)Show less

Playwright E2E

Each suite has its own dev server port. Playwright reuses an existing server locally when its configured URL responds; otherwise it performs a slow full build. When a development watcher is being reused, rspack recompiles on save and reruns should not need a restart.

Start the relevant suite server, then run that suite:

SuiteBackground serverTest command
Apppnpm test:e2e:app:dev --background on 8095pnpm test:e2e:app
Demopnpm dev:demo --background on 8090pnpm test:e2e:demo
Gallerypnpm dev:gallery --background on 8100pnpm test:e2e:gallery

The custom development wrappers use /__ha_dev_status to identify and manage their own suites. Playwright server reuse checks the configured URL instead. Wrapper start and stop operations are idempotent for a matching suite and reject an unrelated process occupying the port.

Local runs against a watched development server do not always match CI's clean build artifacts, environment, sharding, or worker configuration. Use background servers for the fast iteration loop, but confirm the relevant CI jobs complete successfully before considering E2E changes verified.

Use -g "<title>" --project=chromium to narrow a run. pnpm test:e2e runs suites sequentially when managed servers are unavailable to prevent cold builds racing over shared generated assets. Run suites directly; piping through output truncation hides progress and failures.

The app suite uses a stripped-down harness for e2e. Demo and gallery use their normal dev servers.

Benchmarks

For chart data transforms such as history, statistics, energy, and downsampling, read and follow the complete workflow in test/benchmarks/README.md before making benchmark or optimization changes.

That workflow owns the baseline, noise analysis, guardrails, acceptance thresholds, and reporting requirements. In particular, optimizations must keep output bit-identical; never update snapshots or modify fixtures to make an optimization pass.

Verification Selection

  • Documentation-only change: no code test required unless examples or commands changed.
  • Type-only or utility change: run focused Vitest if available, then pnpm lint:types if practical.
  • Lit component change: run relevant tests plus lint or typecheck depending on scope.
  • E2E-sensitive flow: start the relevant e2e dev server and run the narrow Playwright suite.
  • Broad refactor: run pnpm lint and relevant test suites when practical.

© home-assistant, 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/ha-frontend-testing of home-assistant/frontend.

Open the folder on GitHubat commit e11cdc1

Compare with similar skills

Ha Frontend 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.

Ha Frontend Testing compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Ha Frontend Testing this skillhome-assistant/frontend5.7k—~1.7kAutomated safety check: PassApache-2.0
Svelte Testingspences10/sveltest113—~579Automated safety check: PassMIT
Frontend Typescript Testingshinpr/ai-coding-project-boilerplate233—~1.5kAutomated safety check: PassMIT
Test CommanderEliasOulkadi/shokunin114—~3kAutomated safety check: NotesMIT
Frontend Typescript Testingshinpr/ai-coding-project-boilerplate233—~843Automated safety check: PassMIT
Frontend Typescript Testingshinpr/ai-coding-project-boilerplate233—~692Automated safety check: PassMIT

Similar skills

  • Svelte Testing

    spences10/sveltest

    Fix and create Svelte 5 tests with vitest-browser-svelte and Playwright.

    113 GitHub stars~579 tokensUpdated yesterday
    Testing & QAAuto-check passed
  • Frontend Typescript Testing

    shinpr/ai-coding-project-boilerplate

    Designs frontend tests using the repository's configured React test and browser harnesses, including RTL, MSW, Vitest, and Playwright when present.

    233 GitHub stars~1.5k tokensUpdated 6 days ago
    Testing & QAAuto-check passed
  • Test Commander

    EliasOulkadi/shokunin

    Generate unit, integration, E2E, and visual regression tests following the Testing Trophy methodology (80% integration).

    114 GitHub stars~3k tokensUpdated 5 days ago
    Testing & QAAuto-check: notes
  • Frontend Typescript Testing

    shinpr/ai-coding-project-boilerplate

    リポジトリで設定済みのReactテスト・ブラウザハーネスを使用してフロントエンドテストを設計。RTL、MSW、Vitest、Playwrightが存在する場合に適用。コンポーネント、loading/error state、統合、フロントエンドE2Eテストの追加・レビュー時に使用。

    233 GitHub stars~843 tokensUpdated 6 days ago
    Testing & QAAuto-check passed
  • Frontend Typescript Testing

    shinpr/ai-coding-project-boilerplate

    使用仓库已配置的 React 测试与浏览器测试工具(包括 RTL、MSW、Vitest,以及存在时的 Playwright)设计前端测试。适用于新增或评审组件测试、加载/错误状态测试、集成测试或前端 E2E 测试时。

    233 GitHub stars~692 tokensUpdated 6 days ago
    Testing & QAAuto-check passed
  • Angular Testing

    Kilo-Org/kilo-marketplace

    Write unit and integration tests for Angular v20+ applications using Vitest or Jasmine with TestBed and modern testing patterns.

    190 GitHub stars~2.9k tokensUpdated 11 days ago
    Testing & QAAuto-check passed

More from home-assistant/frontend

All 12 skills in this repo
  • Ha Frontend Components

    home-assistant/frontend

    Home Assistant frontend component patterns. An agent skill from home-assistant/frontend.

    5.7k GitHub stars~1.2k tokensUpdated today
    Auto-check passed
  • Ha Frontend Contexts

    home-assistant/frontend

    Home Assistant frontend Lit context and hass migration guidance.

    5.7k GitHub stars~1.9k tokensUpdated today
    Auto-check passed
  • Ha Frontend Demo

    home-assistant/frontend

    Home Assistant standalone demo structure, configurations, URL navigation, mocked APIs, shared demo stubs used by gallery, and verification.

    5.7k GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • Ha Frontend Gallery

    home-assistant/frontend

    Home Assistant frontend gallery structure, pages, demos, content, and verification.

    5.7k GitHub stars~2k tokensUpdated today
    Auto-check passed
  • Ha Frontend Styling

    home-assistant/frontend

    Home Assistant frontend styling, theming, spacing, responsive layout, RTL, and View Transitions guidance.

    5.7k GitHub stars~799 tokensUpdated today
    Auto-check passed
  • Ha Frontend Types

    home-assistant/frontend

    Home Assistant frontend TypeScript conventions. An agent skill from home-assistant/frontend.

    5.7k GitHub stars~574 tokensUpdated today
    Auto-check passed

Categories

Questions about Ha Frontend Testing

What does Ha Frontend Testing do?

Home Assistant frontend testing and validation workflow. An agent skill from home-assistant/frontend. Ha Frontend Testing is an agent skill from home-assistant/frontend. Home Assistant frontend testing and validation workflow.

When should I use Ha Frontend Testing?

Ha Frontend Testing fits situations like: typeScript checks; playwright e2e suites; chart-data benchmarks.

How do I install Ha Frontend Testing in Claude Code?

Run `npx skills add home-assistant/frontend --skill ha-frontend-testing -a claude-code`. Or copy the skill folder (.agents/skills/ha-frontend-testing in home-assistant/frontend) into .claude/skills/ha-frontend-testing in your project. Claude Code loads it when a task matches its description.

How do I install Ha Frontend Testing in Codex?

Run `npx skills add home-assistant/frontend --skill ha-frontend-testing -a codex`. Or copy the skill folder (.agents/skills/ha-frontend-testing in home-assistant/frontend) into .agents/skills/ha-frontend-testing in your project. Codex loads it when a task matches its description.

Can I use Ha Frontend Testing 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 home-assistant/frontend --skill ha-frontend-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/ha-frontend-testing, .gemini/skills/ha-frontend-testing, .github/skills/ha-frontend-testing and .opencode/skills/ha-frontend-testing in your project.

What does Ha Frontend Testing need to run?

Going by SKILL.md and its folder, Ha Frontend Testing needs the command-line tools its instructions call (pnpm).

Does Ha Frontend Testing access the network?

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.

Is Ha Frontend Testing 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 Ha Frontend Testing use?

Ha Frontend 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.

How many tokens does Ha Frontend Testing use?

About 1.7k tokens (SKILL.md is roughly 6.9k 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 Ha Frontend Testing?

Skills that share tags, products or a category with Ha Frontend Testing: Svelte Testing (spences10/sveltest, 113 stars), Frontend Typescript Testing (shinpr/ai-coding-project-boilerplate, 233 stars), Test Commander (EliasOulkadi/shokunin, 114 stars) and Frontend Typescript Testing (shinpr/ai-coding-project-boilerplate, 233 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Ha Frontend Testing?

home-assistant (a GitHub organization) maintains it in home-assistant/frontend, which has 5,694 GitHub stars. The repository holds 12 skills in this directory. The repository was last updated on October 9, 2026.

Source: home-assistant/frontend on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.