Running Tests
NangoHQ/nango
A skill your agent uses when running tests in the Nango monorepo - knows unit vs integration configs, vitest commands, Docker setup, and common test patterns
Agent skill
by LiberatedPixelCup in LiberatedPixelCup/Universal-LPC-Spritesheet-Character-Generator
Run and read unit-test coverage for this repo and satisfy the codecov/patch and codecov/changes gates.
$ npx skills add LiberatedPixelCup/Universal-LPC-Spritesheet-Character-Generator --skill coverage -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install LiberatedPixelCup/Universal-LPC-Spritesheet-Character-Generator coverage --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/LiberatedPixelCup/Universal-LPC-Spritesheet-Character-Generator.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/coverage .claude/skills/coverage && 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 "coverage" agent skill from https://github.com/LiberatedPixelCup/Universal-LPC-Spritesheet-Character-Generator/tree/master/.agents/skills/coverage into .claude/skills/coverage/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "coverage", 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/LiberatedPixelCup/Universal-LPC-Spritesheet-Character-Generator/tree/master/.agents/skills/coverageType 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 LiberatedPixelCup/Universal-LPC-Spritesheet-Character-Generator --skill coverage -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install LiberatedPixelCup/Universal-LPC-Spritesheet-Character-Generator coverage --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LiberatedPixelCup/Universal-LPC-Spritesheet-Character-Generator.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/coverage .agents/skills/coverage && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "coverage" agent skill from https://github.com/LiberatedPixelCup/Universal-LPC-Spritesheet-Character-Generator/tree/master/.agents/skills/coverage into .agents/skills/coverage/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "coverage", 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 LiberatedPixelCup/Universal-LPC-Spritesheet-Character-Generator --skill coverage -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install LiberatedPixelCup/Universal-LPC-Spritesheet-Character-Generator coverage --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LiberatedPixelCup/Universal-LPC-Spritesheet-Character-Generator.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/coverage .cursor/skills/coverage && 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 "coverage" agent skill from https://github.com/LiberatedPixelCup/Universal-LPC-Spritesheet-Character-Generator/tree/master/.agents/skills/coverage into .cursor/skills/coverage/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "coverage", 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/LiberatedPixelCup/Universal-LPC-Spritesheet-Character-Generator.git --path .agents/skills/coverage--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 LiberatedPixelCup/Universal-LPC-Spritesheet-Character-Generator --skill coverage -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install LiberatedPixelCup/Universal-LPC-Spritesheet-Character-Generator coverage --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LiberatedPixelCup/Universal-LPC-Spritesheet-Character-Generator.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/coverage .gemini/skills/coverage && 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 "coverage" agent skill from https://github.com/LiberatedPixelCup/Universal-LPC-Spritesheet-Character-Generator/tree/master/.agents/skills/coverage into .gemini/skills/coverage/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "coverage", 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 LiberatedPixelCup/Universal-LPC-Spritesheet-Character-Generator coverageInstalls 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 LiberatedPixelCup/Universal-LPC-Spritesheet-Character-Generator --skill coverage -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/LiberatedPixelCup/Universal-LPC-Spritesheet-Character-Generator.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/coverage .github/skills/coverage && 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 "coverage" agent skill from https://github.com/LiberatedPixelCup/Universal-LPC-Spritesheet-Character-Generator/tree/master/.agents/skills/coverage into .github/skills/coverage/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "coverage", 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 LiberatedPixelCup/Universal-LPC-Spritesheet-Character-Generator --skill coverage -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install LiberatedPixelCup/Universal-LPC-Spritesheet-Character-Generator coverage --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LiberatedPixelCup/Universal-LPC-Spritesheet-Character-Generator.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/coverage .opencode/skills/coverage && 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 "coverage" agent skill from https://github.com/LiberatedPixelCup/Universal-LPC-Spritesheet-Character-Generator/tree/master/.agents/skills/coverage into .opencode/skills/coverage/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "coverage", 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.
coverageRun and read unit-test coverage for this repo and satisfy the codecov/patch and codecov/changes gates.
Coverage is an agent skill from LiberatedPixelCup/Universal-LPC-Spritesheet-Character-Generator. Run and read unit-test coverage for this repo and satisfy the codecov/patch and codecov/changes gates. Use when a PR check fails on coverage, after editing gated production code under sources/ or scripts/, or when the user mentions coverage, Codecov, patch, or uncovered lines.
Its SKILL.md is about 1.8k 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 Unit testing. It works with npm. The repository describes itself as: Character Generator based on Universal-LPC-Spritesheet. The licence is GPL-3.0.
2 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 58ce1aa. 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:
npmnodeFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use npm, 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.
Coverage loads about 1.8k tokens when it runs. Until then it costs about 72 tokens; SKILL.md has 885 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 LiberatedPixelCup/Universal-LPC-Spritesheet-Character-Generator at commit 58ce1aa, republished under its GPL-3.0 licence (© LiberatedPixelCup). 885 words, ~1,778 tokens.
.claude/skills/coverage/SKILL.md (or your agent's skills folder).Two separate, non-overlapping reports. Pick by the path you edited.
| Edited | Command | Report |
|---|---|---|
sources/ | npm run test:browser:coverage | coverage/browser/index.html |
scripts/ | npm run test:node:coverage | coverage/node/index.html |
The flags in codecov.yml scope browser to sources/
and node to scripts/. The wrong command reports nothing for your file — it
does not fail, it just shows no data. Run both only if you edited both trees.
Both are full-suite runs. There is no per-file coverage run; see run-one-spec for isolation while iterating, then one coverage run at the end.
npm run test:browser:coverage launches Chrome and Firefox (testem.cjs
launch_in_ci). If Firefox is not installed locally, confirm with Chrome only:
VITE_COVERAGE=true node ./node_modules/testem/testem.js ci --launch Chromemerge-browser-coverage.ts
merges whatever JSON is already in coverage/browser/. Firefox-only lines will
read as uncovered.
Check whether the path is in the ignore: block of
codecov.yml first. Ignored paths owe no test, and a
coverage run tells you nothing about them. Currently ignored: tests/**,
dist/**, spritesheets/**, sheet_definitions/**, scripts/coverage/**,
scripts/computed-style/**, scripts/imageProcessing/**, scripts/zip/**,
scripts/profile/**, several individual scripts/*.ts files, vite/**,
vite.config.ts, testem.cjs, sources/performance-profiler.ts,
sources/utils/debug.ts, and all CSS/SCSS. Read the file rather than
trusting this list.
Open the HTML and confirm every new or edited production line is marked hit. Do not wait for Codecov to tell you. The terminal summary is enough for a quick check, but it reports per-file percentages, not which line was missed.
Browser collection is off unless VITE_COVERAGE=true; the
test:browser:coverage script sets it. Plain npm test and
npm run test:server are uninstrumented, so they will never show coverage.
A spec that is not imported from tests/tests.js
never runs. That produces uncovered lines with no test failure — the most
common cause of a surprising patch failure on a browser change.
A DA:0 is a hole when a neighbor or the block body already has a hit
and an existing spec already asserts the behavior. Do not add another spec
for that line. Concise wrappers such as span.async("name", () => fn())
and span.sync(...) in a finally are the usual cases that look uncovered.
mark-non-executable-lines.js
promotes those holes when they are a straight-line statement in an entered
function or try / finally / catch, or a control-flow header (if ( /
while ( / for ( / do) whose body already has a recorded hit. It does
not promote a then-body just because if ( ran, or a catch-only
return just because the function or try was entered.
If the marker still leaves DA:0 on a wrapper, extract a named helper so
those lines become a function body. fillStraightLineSourceMapHoles
already covers that.
A DA:0 is a real miss when no neighbor or body hit exists, or no spec
asserts the behavior. Add a spec.
Do not wait for the Codecov PR comment. It still will not list line numbers.
After test:browser:coverage / test:node:coverage, the same scripts print
file:line plus the trimmed source for every remaining patch DA:0. Those
commands stay green so CI can upload lcov to Codecov. The codecov/patch
check is what fails on a miss. Read that table (or the Test browsers job
log when the local HTML is stale).
Standalone, against reports that already exist (exit 1 if any miss):
npm run coverage:patch--base overrides the merge-base ref. Precedence is --base, then
GITHUB_BASE_REF (as origin/<name>), then origin/master.
codecov/patch — 100% of new or edited production lines under sources/
(browser flag) or scripts/ (node flag) must be executed, except ignored
paths. Threshold is 0%, so one missed line fails it.codecov/changes — previously covered lines must not lose hits. Deleting
or weakening a test trips this even when your new code is fully covered.Both use if_not_found: success, so they pass silently when there is no base
report to compare against.
mark-non-executable-lines.js
rewrites the uploaded lcov.info to mark blank lines and comment-only lines as
hit. It uses the TypeScript scanner, so a trailing comment on a code line does
not count as non-executable. Both pipelines apply it: test:node:coverage
runs it directly, and the browser suite calls markNonExecutableLinesInLcov
from merge-browser-coverage.ts
in the Testem on_exit hook.
So a documentation-only or comment-only diff is expected to pass the 100% patch gate. If you see comments counted as missed lines, the post-processing step did not run — check that the coverage script finished rather than adding a test.
Two upload problems have caused this. Check both before adding a test or editing the marker's line classifier.
codecov-action@v5 searches the tree unless disable_search: true.
files: is additive. Without that flag the browser step also uploaded
coverage/browser/coverage-final.json and coverage/node/tmp/*.json.BRDA / FN rows use a worse source map than DA. They land
on type aliases and function foo( / name: Type, lines with zeros.
Codecov then reports a miss or partial even when DA is hit. The marker
drops those records so the uploaded lcov is line coverage only.Do not widen mark-non-executable-lines.js
for a signature line already in nonExecutableLineNumbers. Do not add a
test for the parameter list. Extracting a named type (RootViewRef) is
fine for readability; it does not satisfy the gate by itself. The marker
may promote entered try / finally statements and headers whose body
already has a hit; it still must not promote then-bodies or catch-only
returns.
Full description of the CI wiring: CONTRIBUTING.md.
© LiberatedPixelCup, 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/coverage of LiberatedPixelCup/Universal-LPC-Spritesheet-Character-Generator.
Open the folder on GitHubat commit 58ce1aa
Coverage 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 |
|---|---|---|---|---|---|---|
| Coverage this skillLiberatedPixelCup/Universal-LPC-Spritesheet-Character-Generator | 1.8k | — | ~1.8k | Automated safety check: Pass | GPL-3.0 | |
| Running TestsNangoHQ/nango | 13k | — | ~876 | Automated safety check: Pass | Custom licence | |
| Run Unit TestsAzure/cosmos-explorer | 131 | — | ~638 | Automated safety check: Pass | MIT | |
| ClickUp CLI Testingkrodak/clickup-cli | 120 | — | ~1.4k | Automated safety check: Notes | MIT | |
| Tsed Migrationtsedio/tsed | 3.1k | — | ~2.5k | Automated safety check: Pass | MIT | |
| Handsontable Unit Testinghandsontable/handsontable | 22k | — | ~1.2k | Automated safety check: Pass | Custom licence |
NangoHQ/nango
A skill your agent uses when running tests in the Nango monorepo - knows unit vs integration configs, vitest commands, Docker setup, and common test patterns
Azure/cosmos-explorer
Run unit tests for the Cosmos Explorer project. An agent skill from Azure/cosmos-explorer.
krodak/clickup-cli
Explains how to run and extend the clickup-cli tests: unit tests with a mocked client, e2e tests against a real ClickUp workspace, and the fixture data they rely on.
tsedio/tsed
Migrates an application to Ts.ED v8 from v7, with pointers for v6 and plain Express apps.
handsontable/handsontable
Conventions for Handsontable's Jest unit and TypeScript type tests: where files go, how to run them, mocking limits and when to write an E2E test instead.
RafaelGB/Obsidian-ZettelFlow
The test-driven development workflow for ZettelFlow — write a failing test first, run jest, use the Obsidian mock and the bare-specifier alias mappings, and know which code is unit-testable.
LiberatedPixelCup/Universal-LPC-Spritesheet-Character-Generator
Measure lab CLS with profile:cls, debug layout shift from loading shells and first-paint jump, and keep budgets tied to a CI artifact.
LiberatedPixelCup/Universal-LPC-Spritesheet-Character-Generator
Run the headless app, catalog-load, and ZIP profilers and interpret the JSON the way a human would from window.profiler.report(), profile:load, and the ZIP console table.
LiberatedPixelCup/Universal-LPC-Spritesheet-Character-Generator
Run a single Node, browser, or Playwright spec instead of the full suite.
LiberatedPixelCup/Universal-LPC-Spritesheet-Character-Generator
Write TypeScript that satisfies this repo's lint and tsconfig rules, and convert an existing .js file to .ts without breaking its call sites.
LiberatedPixelCup/Universal-LPC-Spritesheet-Character-Generator
Diagnose missing or stale dist/-metadata.js, the Vite metadata plugin cache, and the ../name-metadata.js import alias.
LiberatedPixelCup/Universal-LPC-Spritesheet-Character-Generator
Thread CatalogReader and State through Mithril attrs, never a hidden global.
Works with
Categories
Run and read unit-test coverage for this repo and satisfy the codecov/patch and codecov/changes gates. Coverage is an agent skill from LiberatedPixelCup/Universal-LPC-Spritesheet-Character-Generator. Run and read unit-test coverage for this repo and satisfy the codecov/patch and codecov/changes gates.
Coverage fits situations like: A PR check fails on coverage; after editing gated production code under sources/; the user mentions coverage; uncovered lines.
Run `npx skills add LiberatedPixelCup/Universal-LPC-Spritesheet-Character-Generator --skill coverage -a claude-code`. Or copy the skill folder (.agents/skills/coverage in LiberatedPixelCup/Universal-LPC-Spritesheet-Character-Generator) into .claude/skills/coverage in your project. Claude Code loads it when a task matches its description.
Run `npx skills add LiberatedPixelCup/Universal-LPC-Spritesheet-Character-Generator --skill coverage -a codex`. Or copy the skill folder (.agents/skills/coverage in LiberatedPixelCup/Universal-LPC-Spritesheet-Character-Generator) into .agents/skills/coverage 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 LiberatedPixelCup/Universal-LPC-Spritesheet-Character-Generator --skill coverage -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/coverage, .gemini/skills/coverage, .github/skills/coverage and .opencode/skills/coverage in your project.
Going by SKILL.md and its folder, Coverage needs the command-line tools its instructions call (npm and node).
SKILL.md contains no URLs. Its commands use npm, which can reach the network depending on how they are called. 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.
Coverage 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.8k tokens (SKILL.md is roughly 7.1k 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 Coverage: Running Tests (NangoHQ/nango, 13k stars), Run Unit Tests (Azure/cosmos-explorer, 131 stars), ClickUp CLI Testing (krodak/clickup-cli, 120 stars) and Tsed Migration (tsedio/tsed, 3.1k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
LiberatedPixelCup (a GitHub organization) maintains it in LiberatedPixelCup/Universal-LPC-Spritesheet-Character-Generator, which has 1,826 GitHub stars. The repository holds 11 skills in this directory. The repository was last updated on October 4, 2026.
Source: LiberatedPixelCup/Universal-LPC-Spritesheet-Character-Generator on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.