Agent skill

Dart Monorepo Coverage Booster

by rodydavis in rodydavis/signals.dart

Runs, merges, and analyzes Dart and Flutter test coverage across a Melos monorepo, then targets the exact uncovered lines.

Apache-2.0Auto-check passedTesting & QA

Install Dart Monorepo Coverage Booster

skills CLI
$ npx skills add rodydavis/signals.dart --skill increase-coverage -a claude-code

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

GitHub CLI
$ gh skill install rodydavis/signals.dart increase-coverage --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/rodydavis/signals.dart.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/increase-coverage .claude/skills/increase-coverage && 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
increase-coverage
GitHub stars
819
Token cost
~1.1k tokens
SKILL.md length
461 words
Files
1
Skills in repo
15
Repo updated
First seen
Licence
Apache-2.0

At a glance

Runs, merges, and analyzes Dart and Flutter test coverage across a Melos monorepo, then targets the exact uncovered lines.

  • Works in 4 steps: Executing and Aggregating Monorepo… → Pinpointing Uncovered Lines (Gap Analysis) → Strategies for Reaching 100% Coverage → …
  • Finding exactly which lines a monorepo's tests don't cover
  • SKILL.md covers 1. Executing and Aggregating…, 2. Pinpointing Uncovered Lines…, 3. Strategies for Reaching… and 4. Housekeeping and Version…
  • Calls dart, git and flutter

What it does

Melos coordinates running flutter test --coverage or dart test --coverage across every package, then a combination script merges each package's lcov.info into one root file with absolute paths and tidies up the per-package coverage directories afterward. A genhtml pass turns that merged file into a browsable report, and a grep-and-awk pipeline over the same lcov.info prints the exact file and line number of every statement with zero hits, skipping the need to click through HTML.

Once gaps are located, targeted strategies close them: exercising copyWith with both null and explicit values, and testing equality and hashCode across identical references, equal-but-distinct instances, and genuinely different instances.

When your agent uses it

  • Finding exactly which lines a monorepo's tests don't cover
  • Merging per-package coverage into one report across a Melos workspace
  • Writing a targeted test for an uncovered copyWith or equality method

Example prompts

  • “Run coverage across the monorepo and show me the uncovered lines.”
  • “Merge every package's lcov.info into one root coverage report.”
  • “Write a test for the uncovered equality check in model.dart.”

Requirements

  • Melos
  • lcov/genhtml toolkit
  • Flutter or Dart test runner

Workflow steps

4 steps, taken from the step headings in SKILL.md.

  1. Executing and Aggregating Monorepo Coverage
  2. Pinpointing Uncovered Lines (Gap Analysis)
  3. Strategies for Reaching 100% Coverage
  4. Housekeeping and Version Safety

What it can do on your machine

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

    • dart
    • git
    • flutter

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

  • Network

    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.

  • 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

Dart Monorepo Coverage Booster loads about 1.1k tokens when it runs. Until then it costs about 48 tokens; SKILL.md has 461 words of instructions outside code blocks.

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

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 rodydavis/signals.dart at commit 81d64e8, republished under its Apache-2.0 licence (© rodydavis). 461 words, ~1,067 tokens.

Download SKILL.mdSave it as .claude/skills/increase-coverage/SKILL.md (or your agent's skills folder).
name
increase-coverage
description
Systematic guidelines for executing code coverage tools, analyzing gaps in testing, and implementing targeted tests to maximize code coverage across the reactive framework.

Code Coverage Execution and Maximization Guide

This developer skill provides step-by-step instructions and best practices for executing code coverage tools, identifying untested paths (gaps), and writing high-fidelity unit tests to drive coverage to 100% across the monorepo.


1. Executing and Aggregating Monorepo Coverage

Our monorepo coordinates testing across multiple packages using Melos. Follow this command workflow to generate and merge coverage data:

A. Run Package Tests with Coverage

Execute the monorepo test runner. This runs flutter test --coverage (or dart test --coverage) across all packages:

bash
melos run test
B. Combine Package Coverage Files

Run the combination script to merge individual package-level coverage/lcov.info files into a unified root lcov.info file:

bash
melos run coverage

[!NOTE] The aggregation script (scripts/combine_coverage.sh) dynamically rewrites path roots to be absolute and deletes temporary package coverage directories to maintain workspace hygiene.

C. Generate the HTML Coverage Report

Translate the unified lcov.info file into an interactive HTML visualization report using genhtml (part of the lcov toolkit):

bash
genhtml lcov.info -o coverage/html

2. Pinpointing Uncovered Lines (Gap Analysis)

To quickly locate untested lines of code without browsing the entire HTML report, run the following grep and awk pipeline on the root lcov.info file:

bash
grep -E "SF:|DA:" lcov.info | awk -F: '/SF/ {file=$2} /DA/ {split($2,a,","); if(a[2]==0) print file, a[1]}'

This output displays the absolute file path followed by the exact line number of every uncovered statement, for example:

text
/workspace/packages/preact_signals/lib/src/model.dart 21
/workspace/packages/preact_signals/lib/src/model.dart 25

3. Strategies for Reaching 100% Coverage

Once you identify the uncovered lines, apply these targeted testing strategies to write meaningful tests:

A. Testing Model and Option Basics

Ensure value models, options, and parameters are fully exercised:

  • copyWith Methods: Test with both null (to assert fallback to current value) and explicit values.
  • Equality (==) and hashCode:
    • Test comparing identical references (identical(this, other)).
    • Test comparing distinct instances with identical properties (expect equal).
    • Test comparing distinct instances with differing properties (expect unequal).
    • Test comparing against null or instances of completely different classes.
Show full SKILL.md (187 more words)Show less
B. Exercising Complex Branch/Condition Logic

Examine every nested if, else, and ternary (? :) statement:

  • Construct test inputs that force the path to evaluate to true.
  • Construct test inputs that force the path to evaluate to false.
  • Ensure bounds checks, empty collections, and null-safety fallbacks are explicitly triggered.
C. Simulating and Asserting Exception/Catch Paths

To cover recovery logic or diagnostic assertions:

  • catch Blocks: Pass incompatible types or construct scenarios that cause runtime TypeError or AssertionError to verify fallback branches.
  • Dispose and Lifecycle Errors: Call .dispose() on a signal/primitive, then attempt a read or write operation to assert it throws SignalsReadAfterDisposeError or SignalsWriteAfterDisposeError.
D. Deep Recursive Collections

Verify that custom deep collection assertions (such as lists, maps, sets, or nested objects) evaluate both matching and mismatching configurations at every depth.


4. Housekeeping and Version Safety

Before finalizing the coverage maximization run, verify repository hygiene:

  1. Format test files:
    bash
    dart format .
  2. Run Lints & Static Analysis:
    bash
    melos run analyze
  3. Clean Git State: Never check coverage files (lcov.info or coverage/) into Git history. If they are accidentally staged, remove them:
    bash
    git rm -r --cached coverage/
    git rm lcov.info

© rodydavis, 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/increase-coverage of rodydavis/signals.dart.

Open the folder on GitHubat commit 81d64e8

Compare with similar skills

Dart Monorepo Coverage Booster 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.

Dart Monorepo Coverage Booster compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Dart Monorepo Coverage Booster this skillrodydavis/signals.dart819—~1.1kAutomated safety check: PassApache-2.0
Test Guidelinesgetsentry/sentry-dart873—~3.1kAutomated safety check: PassMIT
Reviewmhmzdev/the-holy-quran-app889—~907Automated safety check: PassMIT
Green GateVeryGoodOpenSource/vgv-ai-flutter-plugin169—~4.7kAutomated safety check: NotesMIT
Test Writing WorkflowiOfficeAI/AionUi33k1 repos~1.2kAutomated safety check: PassApache-2.0
Evaluate PR Testsdotnet/maui23k—~2.9kAutomated safety check: PassMIT

Similar skills

  • Test Guidelines

    getsentry/sentry-dart

    Official

    Enforce Sentry Dart/Flutter SDK test conventions for naming, structure, and fixtures.

    873 GitHub stars~3.1k tokensUpdated yesterday
    Testing & QAAuto-check passed
  • Review

    mhmzdev/the-holy-quran-app

    Review The Holy Qur'an app code against the project's own conventions — layering (UI → Bloc → Repo → DataProvider), bloc anatomy, Provider tier, configs tokens, class widgets, Hive typeId safety…

    889 GitHub stars~907 tokensUpdated 28 days ago
    DevelopmentAuto-check passed
  • Green Gate

    VeryGoodOpenSource/vgv-ai-flutter-plugin

    Drives a Dart or Flutter package fully green through a verify-fix-rerun loop across four gates: analyze, format, test, coverage.

    169 GitHub stars~4.7k tokensUpdated 2 days ago
    MobileAuto-check: notes
  • Test Writing Workflow

    iOfficeAI/AionUi

    Sets the test-writing workflow for the repository: risk-first scenario lists, behavior-focused Vitest tests, a full run before each commit and a coverage target.

    33k GitHub starsUsed in 1 repo~1.2k tokens
    Testing & QAAuto-check passed
  • Official

    Reviews the tests added in a pull request for fix coverage, quality, edge cases and test type, and recommends lighter test types where they would do.

    23k GitHub stars~2.9k tokensUpdated today
    Testing & QAAuto-check passed
  • Integration Test

    tracewayapp/traceway

    Run a live-instance verification of traceway-cli that goes beyond the Go smoke suite — exercises real-data detail endpoints, TTY-default rendering, adaptive metric-name discovery, and emits a…

    1.6k GitHub starsUsed in 1 repo~2.4k tokens
    Testing & QAAuto-check passed

More from rodydavis/signals.dart

All 15 skills in this repo
  • Jaspr Component Fundamentals

    rodydavis/signals.dart

    Teaches the agent Jaspr's Flutter-like component model and typed HTML elements, with strict rules on build methods and helper syntax.

    819 GitHub stars~1.8k tokensUpdated 24 days ago
    Auto-check passed
  • Jaspr CSS-in-Dart Styling

    rodydavis/signals.dart

    Guides styling of Jaspr web components with the type-safe Styles API in Dart, covering @css annotations, inline styles and global stylesheets.

    819 GitHub stars~1.7k tokensUpdated 24 days ago
    Auto-check passed
  • Jaspr JS Interop

    rodydavis/signals.dart

    Rules for calling JavaScript from Jaspr web apps in Dart: which interop libraries to import in server, static and client modes, and how to wrap functions, objects and libraries.

    819 GitHub stars~823 tokensUpdated 24 days ago
    Auto-check passed
  • Jaspr Pre-Rendering and Hydration

    rodydavis/signals.dart

    Sets the rules for static or server mode Jaspr apps in Dart, covering dual entrypoints, the client annotation and data hydration.

    819 GitHub stars~1.2k tokensUpdated 24 days ago
    Auto-check passed
  • Update Dart Examples Dependencies

    rodydavis/signals.dart

    Upgrades every package under ./examples to the repository's latest signals version, runs pub upgrade on third-party dependencies, and fixes the resulting analysis problems.

    819 GitHub stars~514 tokensUpdated 24 days ago
    Auto-check passed
  • Jaspr HTML Converter

    rodydavis/signals.dart

    Use when you need to convert / rewrite existing HTML (from a file or url) into Jaspr code.

    819 GitHub stars~378 tokensUpdated 24 days ago
    Auto-check passed

Works with

Categories

Questions about Dart Monorepo Coverage Booster

What does Dart Monorepo Coverage Booster do?

Runs, merges, and analyzes Dart and Flutter test coverage across a Melos monorepo, then targets the exact uncovered lines. info into one root file with absolute paths and tidies up the per-package coverage directories afterward.info prints the exact file and line number of every statement with zero hits, skipping the need to click through HTML.

When should I use Dart Monorepo Coverage Booster?

Dart Monorepo Coverage Booster fits situations like: finding exactly which lines a monorepo's tests don't cover; merging per-package coverage into one report across a Melos workspace; writing a targeted test for an uncovered copyWith or equality method.

How do I install Dart Monorepo Coverage Booster in Claude Code?

Run `npx skills add rodydavis/signals.dart --skill increase-coverage -a claude-code`. Or copy the skill folder (.agents/skills/increase-coverage in rodydavis/signals.dart) into .claude/skills/increase-coverage in your project. Claude Code loads it when a task matches its description.

How do I install Dart Monorepo Coverage Booster in Codex?

Run `npx skills add rodydavis/signals.dart --skill increase-coverage -a codex`. Or copy the skill folder (.agents/skills/increase-coverage in rodydavis/signals.dart) into .agents/skills/increase-coverage in your project. Codex loads it when a task matches its description.

Can I use Dart Monorepo Coverage Booster 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 rodydavis/signals.dart --skill increase-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/increase-coverage, .gemini/skills/increase-coverage, .github/skills/increase-coverage and .opencode/skills/increase-coverage in your project.

What does Dart Monorepo Coverage Booster need to run?

Going by SKILL.md and its folder, Dart Monorepo Coverage Booster needs the command-line tools its instructions call (dart, git and flutter). Our summary lists: Melos; lcov/genhtml toolkit; Flutter or Dart test runner.

Does Dart Monorepo Coverage Booster access the network?

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.

Is Dart Monorepo Coverage Booster 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 Dart Monorepo Coverage Booster use?

Dart Monorepo Coverage Booster 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 Dart Monorepo Coverage Booster use?

About 1.1k tokens (SKILL.md is roughly 4.3k 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 Dart Monorepo Coverage Booster?

Skills that share tags, products or a category with Dart Monorepo Coverage Booster: Test Guidelines (getsentry/sentry-dart, 873 stars), Review (mhmzdev/the-holy-quran-app, 889 stars), Green Gate (VeryGoodOpenSource/vgv-ai-flutter-plugin, 169 stars) and Test Writing Workflow (iOfficeAI/AionUi, 33k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Dart Monorepo Coverage Booster?

rodydavis (a GitHub user) maintains it in rodydavis/signals.dart, which has 819 GitHub stars. The repository holds 15 skills in this directory. The repository was last updated on September 14, 2026.

Source: rodydavis/signals.dart on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.