Web Application Testing
anthropics/skills
Tests local web applications with Python Playwright scripts, checking frontend behavior, capturing screenshots and reading browser console logs.
Verify the id/key contract between backend producers and frontend consumers before implementing any change that joins, selects, persists, or attributes entities keyed by backend-produced ids (GPUs…
$ npx skills add shm11C3/HardwareVisualizer --skill verify-identity-contracts -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install shm11C3/HardwareVisualizer verify-identity-contracts --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/shm11C3/HardwareVisualizer.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/verify-identity-contracts .claude/skills/verify-identity-contracts && 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 "verify-identity-contracts" agent skill from https://github.com/shm11C3/HardwareVisualizer/tree/develop/.agents/skills/verify-identity-contracts into .claude/skills/verify-identity-contracts/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "verify-identity-contracts", 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/shm11C3/HardwareVisualizer/tree/develop/.agents/skills/verify-identity-contractsType 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 shm11C3/HardwareVisualizer --skill verify-identity-contracts -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install shm11C3/HardwareVisualizer verify-identity-contracts --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/shm11C3/HardwareVisualizer.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/verify-identity-contracts .agents/skills/verify-identity-contracts && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "verify-identity-contracts" agent skill from https://github.com/shm11C3/HardwareVisualizer/tree/develop/.agents/skills/verify-identity-contracts into .agents/skills/verify-identity-contracts/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "verify-identity-contracts", 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 shm11C3/HardwareVisualizer --skill verify-identity-contracts -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install shm11C3/HardwareVisualizer verify-identity-contracts --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/shm11C3/HardwareVisualizer.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/verify-identity-contracts .cursor/skills/verify-identity-contracts && 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 "verify-identity-contracts" agent skill from https://github.com/shm11C3/HardwareVisualizer/tree/develop/.agents/skills/verify-identity-contracts into .cursor/skills/verify-identity-contracts/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "verify-identity-contracts", 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/shm11C3/HardwareVisualizer.git --path .agents/skills/verify-identity-contracts--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 shm11C3/HardwareVisualizer --skill verify-identity-contracts -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install shm11C3/HardwareVisualizer verify-identity-contracts --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/shm11C3/HardwareVisualizer.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/verify-identity-contracts .gemini/skills/verify-identity-contracts && 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 "verify-identity-contracts" agent skill from https://github.com/shm11C3/HardwareVisualizer/tree/develop/.agents/skills/verify-identity-contracts into .gemini/skills/verify-identity-contracts/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "verify-identity-contracts", 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 shm11C3/HardwareVisualizer verify-identity-contractsInstalls 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 shm11C3/HardwareVisualizer --skill verify-identity-contracts -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/shm11C3/HardwareVisualizer.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/verify-identity-contracts .github/skills/verify-identity-contracts && 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 "verify-identity-contracts" agent skill from https://github.com/shm11C3/HardwareVisualizer/tree/develop/.agents/skills/verify-identity-contracts into .github/skills/verify-identity-contracts/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "verify-identity-contracts", 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 shm11C3/HardwareVisualizer --skill verify-identity-contracts -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install shm11C3/HardwareVisualizer verify-identity-contracts --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/shm11C3/HardwareVisualizer.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/verify-identity-contracts .opencode/skills/verify-identity-contracts && 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 "verify-identity-contracts" agent skill from https://github.com/shm11C3/HardwareVisualizer/tree/develop/.agents/skills/verify-identity-contracts into .opencode/skills/verify-identity-contracts/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "verify-identity-contracts", 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.
verify-identity-contractsVerify the id/key contract between backend producers and frontend consumers before implementing any change that joins, selects, persists, or attributes entities keyed by backend-produced ids (GPUs…
Verify Identity Contracts is an agent skill from shm11C3/HardwareVisualizer. Verify the id/key contract between backend producers and frontend consumers before implementing any change that joins, selects, persists, or attributes entities keyed by backend-produced ids (GPUs, storage devices, sensors, processes). Use when adding a selector, attribution UI, persistence of a selected id, a join across two data sources, or an e2e fixture for multi-source data.
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. The repository describes itself as: A cross-platform hardware monitor with real-time metrics, local history, and customizable dashboards. The licence is GPL-3.0.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit fc54f73. 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.
No scripts in the folder and no shell commands in SKILL.md.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
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.
Verify Identity Contracts loads about 1.7k tokens when it runs. Until then it costs about 102 tokens; SKILL.md has 986 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 shm11C3/HardwareVisualizer at commit fc54f73, republished under its GPL-3.0 licence (© shm11C3). 986 words, ~1,680 tokens.
.claude/skills/verify-identity-contracts/SKILL.md (or your agent's skills folder).Any of these, whether or not the change is UI work:
Each step names the boundary it guards, and applies exactly when the change crosses it — no more:
| Step | Applies when |
|---|---|
| 1. Contract | always, in any layer |
| 2. Fixture realism | the change supplies fixture, factory, or seed ids, in any layer |
| 3. Resolution owner | src/ derives which entity is effective |
| 4. Persistence and migration | an id is stored, restored, or changes namespace |
| 5. Surface parity | a surface renders a resolution state |
So a Core change that only produces ids owes the contract and, if it ships a fixture, fixture realism — not a React hook. Attribution UI that persists nothing owes the contract, the resolution owner, and surface parity — not a migration.
Within its own boundary no trigger is exempt. Attribution UI and fixture work are covered rather than incidental: the contract is what makes an attribution honest, and a fixture is where a wrong contract gets certified as correct.
The motivating failure: the getHardwareInfo inventory and the monitor stream
key GPUs in different id namespaces on every platform (ADR 0016). Building a
selector on an assumed shared namespace produced eleven review rounds of
consequence bugs, all discoverable up front by reading the producers.
Applies to every trigger, in every layer.
For every id the change consumes or produces — including one that only a fixture supplies — read the producing code (or the change itself, when it is the producer) and record: the source, the per-platform id shape, and whether any two sources share a namespace. When they do not, name the join key the sources actually share (typically the reported name) and state where the join must refuse (ambiguity: the key matches more than one entry on either side).
Record it at the smallest durable owner that fits the change, per the
decision-preservation rule in AGENTS.md: a focused test or a code comment
next to the join for an implementation-level fact, commit or PR context for a
change-local why, and an ADR only when the contract itself is an
architecturally significant decision. A local change that ships no PR still
needs the reading — it does not need paperwork.
Do not infer the contract from fixtures, tests, or frontend types — those can encode the same wrong assumption the change is about to build on.
Applies wherever the change supplies ids — a Rust test fixture can flatten a namespace exactly as an e2e one can.
A fixture may share one id across two sources only if production does, and
its ids take their shapes from the contract table — nvapi:12345 beside
12345 — not two arbitrary strings that merely differ. One that flattens a
real namespace difference certifies broken joins: the classic GPU selector
shipped non-functional on real hardware while its e2e passed, because
GPU_FIXTURES used one id for both sources.
The remaining steps describe how src/ consumes a contract. Each applies only
when the change crosses that step's boundary; a change that produces or
persists ids in core/ or src-tauri/ keeps the fact where its layer owns it
rather than moving it into the frontend.
Applies when the change derives which entity is effective.
Grep every consumer of the shared selection atom or key. The question "which entity is effective" must be answered in exactly one place — a hook or derived atom — that every surface consumes. If resolution logic already exists in two components, centralize it in this change before adding a third. Duplicated resolvers are how one surface labels an entity while another surface renders a different entity's values.
Subscriptions to per-sample atoms belong in the component that renders the value, never in a screen parent (ADR 0010 rendering-cost rule).
Applies when the change stores, restores, or re-namespaces an id; skip it only when it does none of those.
State: which namespace is stored today, which namespace shipped versions stored, and what translates one to the other. An id persisted for the first time has no shipped value — state that, and the translation work is done. The migration must run at an always-mounted boundary (an app-level hook), never inside a screen — some navigation layouts never mount that screen. It must fetch its own inputs, because a restart can land on a view that fetches nothing.
Migration is one-way. Cover both cases that exist: a legacy value translates to the current namespace, and a value already in the current namespace is left unchanged — including one that is simply absent this session, which is intent to preserve rather than a value to rewrite. Do not build or test a reverse translation; writing the selection back into the obsolete namespace is the failure, not the fallback.
Applies when the change renders a resolution state.
List every surface that renders the value. Every state the resolution can produce — unavailable, ambiguous, not-yet-measured — must render on each of them; a blank on one surface reads as idle, not as missing.
Check the boxes whose boundary the change crosses; the first is always one of them.
© shm11C3, GPL-3.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 .agents/skills/verify-identity-contracts of shm11C3/HardwareVisualizer.
Open the folder on GitHubat commit fc54f73
Verify Identity Contracts 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 |
|---|---|---|---|---|---|---|
| Verify Identity Contracts this skillshm11C3/HardwareVisualizer | 183 | — | ~1.7k | Automated safety check: Pass | GPL-3.0 | |
| Web Application Testinganthropics/skills | 180k | 51 repos | ~966 | Automated safety check: Pass | Apache-2.0 | |
| Agentic TDDreticlehq/reticle | 1.2k | — | ~1.2k | Automated safety check: Pass | Apache-2.0 | |
| Handsontable Visual Test Demoshandsontable/handsontable | 22k | — | ~1.3k | Automated safety check: Pass | Custom licence | |
| E2E Testingericrisco/rsc-harness | 180 | — | ~3.2k | Automated safety check: Pass | MIT | |
| TDD WorkflowhellangleZ/burn-in-cceverywhere-ralph | 112 | 11 repos | ~2.4k | Automated safety check: Pass | None |
anthropics/skills
Tests local web applications with Python Playwright scripts, checking frontend behavior, capturing screenshots and reading browser console logs.
reticlehq/reticle
Applies red-green TDD to behavior unit tests cannot reach, by stating the expected outcome against the running app with Reticle before writing the feature.
handsontable/handsontable
Explains how to add or change the demo pages that Handsontable's visual regression suite photographs, including per-feature routes in the js demo and the shared grid.
ericrisco/rsc-harness
A skill your agent uses when writing or stabilizing Playwright tests that drive a real browser through multi-step journeys — durable locators, web-first assertions, storageState auth, trace/retries…
hellangleZ/burn-in-cceverywhere-ralph
A skill your agent uses when writing new features, fixing bugs, or refactoring code.
kurotu/VRCQuestTools
Replay recorded PlayMode keyboard and mouse input. An agent skill from kurotu/VRCQuestTools.
shm11C3/HardwareVisualizer
Turn a HardwareVisualizer maintainer correction, repeated failure, surprising invariant, or costly investigation into an evidence-backed learning record and the right durable guardrail.
shm11C3/HardwareVisualizer
Decide the correct change kind and semantically align branch names, PR titles, commit prefixes, and PR template types.
shm11C3/HardwareVisualizer
Triage and optionally address AI-generated GitHub PR review feedback from Copilot, CodeRabbit, or similar bots.
shm11C3/HardwareVisualizer
Deliver a focused HardwareVisualizer change as a pull request, then address its CI and review feedback to completion.
shm11C3/HardwareVisualizer
Review or shape HardwareVisualizer product and architecture changes against the maintainer's design principles.
Categories
Verify the id/key contract between backend producers and frontend consumers before implementing any change that joins, selects, persists, or attributes entities keyed by backend-produced ids (GPUs…. Verify Identity Contracts is an agent skill from shm11C3/HardwareVisualizer. Verify the id/key contract between backend producers and frontend consumers before implementing any change that joins, selects, persists, or attributes entities keyed by backend-produced ids (GPUs, storage devices, sensors, processes).
Verify Identity Contracts fits situations like: adding a selector; persistence of a selected id; A join across two data sources; an e2e fixture for multi-source data.
Run `npx skills add shm11C3/HardwareVisualizer --skill verify-identity-contracts -a claude-code`. Or copy the skill folder (.agents/skills/verify-identity-contracts in shm11C3/HardwareVisualizer) into .claude/skills/verify-identity-contracts in your project. Claude Code loads it when a task matches its description.
Run `npx skills add shm11C3/HardwareVisualizer --skill verify-identity-contracts -a codex`. Or copy the skill folder (.agents/skills/verify-identity-contracts in shm11C3/HardwareVisualizer) into .agents/skills/verify-identity-contracts 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 shm11C3/HardwareVisualizer --skill verify-identity-contracts -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/verify-identity-contracts, .gemini/skills/verify-identity-contracts, .github/skills/verify-identity-contracts and .opencode/skills/verify-identity-contracts in your project.
SKILL.md names no scripts, command-line tools or credentials: Verify Identity Contracts is instructions for the agent only.
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.
Verify Identity Contracts is published under the GPL-3.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.7k 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 Verify Identity Contracts: Web Application Testing (anthropics/skills, 180k stars), Agentic TDD (reticlehq/reticle, 1.2k stars), Handsontable Visual Test Demos (handsontable/handsontable, 22k stars) and E2E Testing (ericrisco/rsc-harness, 180 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
shm11C3 (a GitHub user) maintains it in shm11C3/HardwareVisualizer, which has 183 GitHub stars. The repository holds 6 skills in this directory. The repository was last updated on October 9, 2026.
Source: shm11C3/HardwareVisualizer on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.