patchwork-os: Skill for Claude Code

.claude/skills/ide-coverage/SKILL.md

ide-coverage is a skill for Claude Code from Oolab-labs/patchwork-os. It costs 44 tokens per session (865 once invoked), scanned A, a copy of ide-coverage, MIT.

A tool that turns test-coverage reports into an HTML heatmap of the project’s files, with colors showing how much code tests exercise.

In plain words
What is it for?
Finding coverage reports, parsing line-coverage data, creating a file-tree heatmap, and opening the result in a browser.
Why use it?
It makes uneven or missing test coverage easier to spot than reading raw coverage files.

Skill for Claude Code

Written for Claude Code: argument-hint in frontmatter.

This is Oolab-labs/patchwork-os's own configuration. It tells Claude Code how to work on patchwork-os itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything patchwork-os configures →

Reuse

Borrowing it

Nothing to install: this file belongs to Oolab-labs/patchwork-os. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.

Copy the file
curl -O https://raw.githubusercontent.com/Oolab-labs/patchwork-os/main/.claude/skills/ide-coverage/SKILL.md
Clone the repo
git clone --depth 1 https://github.com/Oolab-labs/patchwork-os

Made for: Claude Code.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for ide-coverage

README.md
[![agentmods](https://agentmods.dev/badge/skills/oolab-labs/patchwork-os/ide-coverage/github.svg)](https://agentmods.dev/skills/oolab-labs/patchwork-os/ide-coverage)
Your own site
<a href="https://agentmods.dev/skills/oolab-labs/patchwork-os/ide-coverage"><img src="https://agentmods.dev/badge/skills/oolab-labs/patchwork-os/ide-coverage/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for ide-coverage

Your own site · 80×15
<a href="https://agentmods.dev/skills/oolab-labs/patchwork-os/ide-coverage"><img src="https://agentmods.dev/badge/skills/oolab-labs/patchwork-os/ide-coverage.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 44 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 865 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin 94% copy Near-identical to another mod in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00044 $0.00865
Opus 5.5 $0.00018 $0.00346
Sonnet 5.5 $0.00009 $0.00173
Haiku 4.5 $0.00004 $0.00086

Measured 1mo ago against content hash 87835372e96d, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

ide-coverage scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

Origin

This is a copy

94% identical to ide-coverage — 2 lines differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.

.claude/skills/ide-coverage/SKILL.md · 54 lines

How it starts

The opening of the file, as written. The whole thing — 54 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Generate a visual test coverage heatmap and open it in the browser.

This skill uses only built-in tools (Glob, Read, Write, Bash) and works in both IDE-connected and remote sessions.

Arguments

$ARGUMENTS can be:

  • A path to a specific coverage file (coverage/lcov.info, coverage/coverage-summary.json)
  • A directory to search within (coverage/)
  • Empty — auto-discover coverage files in the workspace

Steps

Phase 1 — Locate coverage data

  1. If $ARGUMENTS is a specific file path, use it directly.
  2. Otherwise use the Glob tool with patterns: **/lcov.info, **/coverage-summary.json, **/coverage-final.json (exclude node_modules).
  3. If multiple candidates found, prefer lcov.info > coverage-summary.json > coverage-final.json. If still ambiguous (multiple projects), list them and ask the user to specify.
  4. If no coverage file found: report "No coverage data found. Run npm test -- --coverage (or equivalent) first." and stop.

Phase 2 — Parse coverage

  1. Use the Read tool to read the located coverage file.
  2. Parse based on format:
    • lcov.info: iterate SF: (source file), LF: (lines found), LH: (lines hit) records → { file, totalLines, hitLines, pct }
    • coverage-summary.json (Istanbul/NYC): each key is a file path with { lines: { pct, total, covered } }
    • coverage-final.json: compute line pct from statement map s and statement map statementMap
  3. Build a list: { file: string (relative), pct: number, hitLines: number, totalLines: number }[]
  4. Group files by directory for the tree layout. Compute directory-level aggregate coverage.

Phase 3 — Generate and open HTML

  1. Construct a fully self-contained HTML document (no external URLs — must work from file://) containing:
    • A summary header: "Overall coverage: N% · M / K lines covered · P files"
    • Color scale: ≥80% = #22c55e (green), ≥50% = #eab308 (yellow), <50% = #ef4444 (red), no data = #94a3b8 (grey)
    • A collapsible directory tree using <details>/<summary> HTML elements (no JS needed for expand/collapse)
    • Each file as a row: [coverage bar] filename N% (hitLines/totalLines)
    • The coverage bar is an inline <span> with a CSS width: N% background — no canvas needed
    • Directory rows show aggregate coverage for the subtree
    • A legend at the top showing the color key
    • Clicking a file's name copies its relative path to clipboard (single JS event listener, ~10 lines)
    • Page title: "Coverage — "
  2. Write the HTML to coverage-<timestamp>.html in the workspace root using the Write tool.
  3. Open via Bash: open coverage-<timestamp>.html (macOS) or xdg-open (Linux). If openInBrowser MCP tool is available, use that instead.
  4. Report: "Opened coverage heatmap — overall N% line coverage across M files. Saved to: "

Read the full file on GitHub · 54 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 1mo ago First seen · 54 lines · 44 tokens per session scan A 87835372e96d

Subscribe to this mod's changes

ide-coverage is a skill published in the GitHub repository Oolab-labs/patchwork-os (31 stars, last pushed yesterday), licensed MIT. It adds 44 tokens to every session and 865 once invoked, about $0.0002 per session on Opus 5.5. A static security scan graded it A with 0 findings. It is 94% identical to ide-coverage, differing in 2 lines, and is treated as a copy.