Requirements
rizsotto/Bear
Write, modify, or review a requirement file under docs/requirements -- pick the single owning file, keep the text contract-only, name IDs so they need no explanation, and verify cross-references and…
Run tests scoped to the current patch vs origin/main, fix any failures found in those packages (this patch's own regressions or genuinely pre-existing ones alike), then fix genuine coverage gaps on…
$ npx skills add cloudposse/atmos --skill test-coverage -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install cloudposse/atmos test-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/cloudposse/atmos.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/test-coverage .claude/skills/test-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 "test-coverage" agent skill from https://github.com/cloudposse/atmos/tree/main/.claude/skills/test-coverage into .claude/skills/test-coverage/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "test-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/cloudposse/atmos/tree/main/.claude/skills/test-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 cloudposse/atmos --skill test-coverage -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install cloudposse/atmos test-coverage --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/cloudposse/atmos.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/test-coverage .agents/skills/test-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 "test-coverage" agent skill from https://github.com/cloudposse/atmos/tree/main/.claude/skills/test-coverage into .agents/skills/test-coverage/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "test-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 cloudposse/atmos --skill test-coverage -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install cloudposse/atmos test-coverage --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/cloudposse/atmos.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/test-coverage .cursor/skills/test-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 "test-coverage" agent skill from https://github.com/cloudposse/atmos/tree/main/.claude/skills/test-coverage into .cursor/skills/test-coverage/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "test-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/cloudposse/atmos.git --path .claude/skills/test-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 cloudposse/atmos --skill test-coverage -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install cloudposse/atmos test-coverage --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/cloudposse/atmos.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/test-coverage .gemini/skills/test-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 "test-coverage" agent skill from https://github.com/cloudposse/atmos/tree/main/.claude/skills/test-coverage into .gemini/skills/test-coverage/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "test-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 cloudposse/atmos test-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 cloudposse/atmos --skill test-coverage -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/cloudposse/atmos.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/test-coverage .github/skills/test-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 "test-coverage" agent skill from https://github.com/cloudposse/atmos/tree/main/.claude/skills/test-coverage into .github/skills/test-coverage/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "test-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 cloudposse/atmos --skill test-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 cloudposse/atmos test-coverage --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/cloudposse/atmos.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/test-coverage .opencode/skills/test-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 "test-coverage" agent skill from https://github.com/cloudposse/atmos/tree/main/.claude/skills/test-coverage into .opencode/skills/test-coverage/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "test-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.
test-coverageRun tests scoped to the current patch vs origin/main, fix any failures found in those packages (this patch's own regressions or genuinely pre-existing ones alike), then fix genuine coverage gaps on…
Test Coverage is an agent skill from cloudposse/atmos. Run tests scoped to the current patch vs origin/main, fix any failures found in those packages (this patch's own regressions or genuinely pre-existing ones alike), then fix genuine coverage gaps on added lines — never coverage theater. Invoke on explicit requests like "check test coverage" / "are my tests passing", or from within the fix-all skill's cycle.
Its SKILL.md is about 1.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including scripts (for example `scripts/patch-test-coverage.sh`).
It sits in Testing & QA, covering Test coverage. The repository describes itself as: Atmos is the open-source runtime for infrastructure — it builds, authenticates, and ships Terraform, OpenTofu, Packer, Ansible, Kubernetes, Helm, and containers the same way on… The licence is Apache-2.0.
Read from SKILL.md and the folder at commit bbe58a6. 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.
Ships 1 file in scripts/ (Shell), which the agent can run.
Shell commands in SKILL.md call:
gitgoFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git, 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.
Test Coverage loads about 1.7k tokens when it runs. Until then it costs about 93 tokens; SKILL.md has 901 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); the scripts in this folder are not scanned.
The full file from cloudposse/atmos at commit bbe58a6, republished under its Apache-2.0 licence (© cloudposse). 901 words, ~1,713 tokens.
.claude/skills/test-coverage/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Answers two questions about the current branch's patch vs origin/main: are its tests passing,
and is it adequately covered? Both come from the same scoped test run, so one skill owns both.
The full suite is 349 packages / 1876 test files and takes 45-75 minutes per CI timeouts — running it every hour is not feasible. This skill only ever runs tests for packages containing files this patch touched — it never expands to the other 340+ packages just to go looking for trouble. But once a package is in scope and its run turns up a failure, fix it regardless of whether that specific test or file is what this patch changed: what this loop cares about is the packages it touched actually passing, not whose commit originally broke them.
atmos fix coverage [base-ref](atmos fix tests [base-ref] is an equivalent alias — same underlying run, reach for it when the
question framing is "are my tests passing" rather than "is my patch covered.") Defaults to
origin/main. This wraps .claude/skills/test-coverage/scripts/patch-test-coverage.sh, which
deliberately does no line-level analysis itself — it just prints a raw bundle (pass/fail status,
raw test output if failed, the coverage profile if passed, and the diff) for the fixing agent to
reason over directly, the same way coderabbit-review reads raw CodeRabbit markdown rather than
us pre-parsing it.
Three outcomes:
STATUS: NO_GO_CHANGES — no touched .go files. One-line no-op, done.STATUS: TESTS_FAILING — go to "Fix failing tests" below.STATUS: OK — tests pass; go to "Fix coverage gaps" below.numbers)
Delegate to Agent subagent_type: "test-coverage-fix", Section A, passing the raw failing-test
output and the list of touched files. The agent classifies each failure as in-scope (the file
lives among this patch's touched files) or pre-existing (it doesn't), but scope only changes
how much diagnosis a fix needs — not whether an attempt is made. What this loop cares about is the
suite passing, full stop; "not this patch's fault" is not a reason to leave something red.
Confirmed for real: a "pre-existing failure" was itself a false positive in the check, not the
code — the patch-scoped go test run had no -timeout override, so Go's 10-minute binary default
tripped on the full (patch-unrelated) ./tests acceptance package under load, panicking on
whichever subtest happened to still be running when the clock ran out. The fix was to the
test-infrastructure itself (patch-test-coverage.sh now passes -timeout 40m, matching
.atmos.d/test.yaml's full-suite convention) — exactly the kind of pre-existing-but-fixable root
cause this agent should resolve rather than just report.
Non-negotiable, equal severity to the anti-theater rule below: never weaken or delete an assertion just to force a red test green. If the test's own expectation was wrong (not the code), fix the test to assert the correct behavior and say so explicitly — don't just make it pass.
One fix attempt per failing test per cycle, in-scope or pre-existing alike. Still red after that,
or the agent isn't confident it can safely attempt a fix at all (e.g. it would require touching a
hard-prohibited file, or needs a credential/decision only a human has): stop, report for human
attention, and invoke the say skill with something like "PR <number> coverage check needs your input." Don't loop indefinitely inside an hourly budget.
Only proceed to coverage gaps when every scoped test passes. If any failure remains red after its
single fix attempt, report it, invoke say, and stop; do not analyze coverage from a failing test
run.
Delegate to Agent subagent_type: "test-coverage-fix", Section B, passing the raw coverage
profile and the diff. The agent itself identifies which added lines the profile shows as
uncovered — no pre-computed list.
Zero tolerance for coverage theater. Tests must assert real behavior on the uncovered branch.
A line that genuinely can't be meaningfully tested (defensive/unreachable/generated code) gets
skipped with a stated reason — mirroring how coderabbit-review already skips stale findings
rather than forcing something — not padded with a tautological test. This mandate is absolute;
see CLAUDE.md's Testing Strategy / Test Quality sections for the underlying conventions
(table-driven tests, DI/mocks via go.uber.org/mock/mockgen, "test behavior not implementation").
After writing tests, re-run atmos fix coverage to confirm both green tests and improved coverage
on those exact lines — not just that new test files exist. If gaps remain that were judged
untestable, invoke the say skill: "PR <number> coverage check needs your input."
Disclaimer, repeat it in any human-facing summary: this check is scoped to the touched
packages' own tests, not full-suite (-coverpkg=./...) breadth — a fast approximation for
proactively suggesting tests on this patch, not a source of truth. CI's full-suite Codecov upload
remains authoritative.
Same discipline as the rest of the loop: verify the commit is signed
(git log --show-signature -1), git add only the files actually touched, plain (never force)
git push.
test-coverage-fix agent — does the actual fixing,
Section A (failing tests) then Section B (coverage gaps).fix-all skill — invokes this skill at step 7, after the lint check
(and reuses it directly at step 2 for CI-sourced Acceptance Tests failures). Scheduled hourly by
pr-maintenance-loop, or run this directly for a one-shot.say skill — invoked on every human-attention exit path above.lint skill — the sibling patch-scoped check for static analysis
findings; kept separate since lint and test health are distinct concerns.atmos fix coverage / atmos fix tests (.atmos.d/fix.yaml) — the custom commands this skill
runs; thin wrappers around .claude/skills/test-coverage/scripts/patch-test-coverage.sh.© cloudposse, 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 (scripts) in .claude/skills/test-coverage of cloudposse/atmos.
Open the folder on GitHubat commit bbe58a6
Test 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 |
|---|---|---|---|---|---|---|
| Test Coverage this skillcloudposse/atmos | 1.4k | — | ~1.7k | Automated safety check: Pass | Apache-2.0 | |
| Requirementsrizsotto/Bear | 6.5k | — | ~2k | Automated safety check: Pass | GPL-3.0 | |
| Crap Analysisardalis/RiverBooks | 134 | 2 repos | ~3.4k | Automated safety check: Pass | None | |
| Code Coverages3s-project/s3s | 311 | — | ~789 | Automated safety check: Pass | Apache-2.0 | |
| Project Statusbactopia/bactopia | 522 | — | ~787 | Automated safety check: Pass | MIT | |
| Check Coverageldayton/Dippy | 243 | — | ~403 | Automated safety check: Pass | MIT |
rizsotto/Bear
Write, modify, or review a requirement file under docs/requirements -- pick the single owning file, keep the text contract-only, name IDs so they need no explanation, and verify cross-references and…
ardalis/RiverBooks
Analyze code coverage and CRAP (Change Risk Anti-Patterns) scores to identify high-risk code.
s3s-project/s3s
Measure and grow the line coverage of the s3s crate. An agent skill from s3s-project/s3s.
bactopia/bactopia
Show a live snapshot of the Bactopia project state — component counts, GroovyDoc coverage, nf-test coverage, and structural issues.
ldayton/Dippy
Ensure comprehensive test coverage for a CLI handler. An agent skill from ldayton/Dippy.
kajisho5/ffmpeg-skill
Add and review preconditions on operations that delete, overwrite, rewrite history, or resolve a caller-supplied name to a filesystem path — refusing instead of warning, placing the guard ahead of…
cloudposse/atmos
A skill your agent uses when implementing, finishing, documenting, or reviewing a fix, repair, remediation, bug fix, debug-and-fix task, workflow fix, infrastructure fix, or any change that should…
cloudposse/atmos
Atmos Terraform linting with TFLint: standalone atmos terraform lint, component-aware config discovery and toolchain versions, TFLint rule configuration, and lifecycle hooks/CI findings.
cloudposse/atmos
Blog post authoring for Atmos: MDX template, frontmatter, website/blog/tags.yml and authors.yml rules, problem-first framing, backtick-opening ban, optional cast embeds, and no-Go-internals leakage.
cloudposse/atmos
Decide whether a PR's new or changed default needs edition-journal handling (pkg/edition, docs/prd/editions.md), and do the mechanical work if so: journal entries, the four-layer default check…
cloudposse/atmos
Migrate to Atmos from native Terraform, Terraform Workspaces, Terramate, Terragrunt, Make, Just, or Task; migrate tool versions from mise or Aqua CLI; migrate AWS/GCP/Azure CLI configs, Leapp…
cloudposse/atmos
Start an hourly background loop that keeps the current branch's PR rebased, its addressed CodeRabbit threads resolved, its CI checks passing, its lint clean, its tests passing with adequate patch…
Categories
Run tests scoped to the current patch vs origin/main, fix any failures found in those packages (this patch's own regressions or genuinely pre-existing ones alike), then fix genuine coverage gaps on…. Test Coverage is an agent skill from cloudposse/atmos. Run tests scoped to the current patch vs origin/main, fix any failures found in those packages (this patch's own regressions or genuinely pre-existing ones alike), then fix genuine coverage gaps on added lines — never coverage theater.
Test Coverage fits situations like: tasks that involve Test coverage.
Run `npx skills add cloudposse/atmos --skill test-coverage -a claude-code`. Or copy the skill folder (.claude/skills/test-coverage in cloudposse/atmos) into .claude/skills/test-coverage in your project. Claude Code loads it when a task matches its description.
Run `npx skills add cloudposse/atmos --skill test-coverage -a codex`. Or copy the skill folder (.claude/skills/test-coverage in cloudposse/atmos) into .agents/skills/test-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 cloudposse/atmos --skill test-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/test-coverage, .gemini/skills/test-coverage, .github/skills/test-coverage and .opencode/skills/test-coverage in your project.
Going by SKILL.md and its folder, Test Coverage needs a shell for the scripts in its folder and the command-line tools its instructions call (git and go). Our summary lists: A Bash shell.
SKILL.md contains no URLs. Its commands use git, 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. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Test Coverage 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.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.
Skills that share tags, products or a category with Test Coverage: Requirements (rizsotto/Bear, 6.5k stars), Crap Analysis (ardalis/RiverBooks, 134 stars), Code Coverage (s3s-project/s3s, 311 stars) and Project Status (bactopia/bactopia, 522 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
cloudposse (a GitHub organization) maintains it in cloudposse/atmos, which has 1,395 GitHub stars. The repository holds 70 skills in this directory. The repository was last updated on October 7, 2026.
Source: cloudposse/atmos on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.