
Reportgenerator
- 17 installs
- 466 repo stars
- Updated July 25, 2026
- managedcode/dotnet-skills
Helps with ai & agent building tasks.
About
reportgenerator is a Claude Code skill for ai & agent building. It helps solo builders move faster with AI-assisted coding.
- reportgenerator
- AI & Agent Building
- AI-coding skill
Reportgenerator by the numbers
- 17 all-time installs (skills.sh)
- +1 installs in the week ending Aug 2, 2026 (Skillselion tracking)
- Ranked #10,861 of 16,546 AI & Agent Building skills by installs in the Skillselion catalog
- Data as of Aug 3, 2026 (Skillselion catalog sync)
npx skills add https://github.com/managedcode/dotnet-skills --skill reportgeneratorAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 17 |
|---|---|
| repo stars | ★ 466 |
| Last updated | July 25, 2026 |
| Repository | managedcode/dotnet-skills ↗ |
What it does
Helps with ai & agent building tasks.
Files
ReportGenerator for .NET
Trigger On
- the repo uses or wants
ReportGenerator - CI needs human-readable coverage reports
- multiple coverage files must be merged
Value
- produce a concrete project delta: code, docs, config, tests, CI, or review artifact
- reduce ambiguity through explicit planning, verification, and final validation skills
- leave reusable project context so future tasks are faster and safer
Do Not Use For
- raw coverage collection with no reporting need
Inputs
- the nearest
AGENTS.md - existing coverage artifacts
- desired output formats
Quick Start
1. Read the nearest AGENTS.md and confirm scope and constraints. 2. Run this skill's Workflow through the Ralph Loop until outcomes are acceptable. 3. Return the Required Result Format with concrete artifacts and verification evidence.
Workflow
1. Keep collection and rendering separate: Coverlet collects, ReportGenerator renders. 2. Prefer the local or manifest-based .NET tool for reproducible CI runs. 3. Choose output formats deliberately:
HtmlSummaryCoberturaMarkdownSummaryGithub- badges
4. Merge multiple reports only when the repo really needs a consolidated view.
Bootstrap When Missing
If ReportGenerator is not configured yet:
1. Detect current state:
rg --files -g '.config/dotnet-tools.json'dotnet tool list --localdotnet tool list --globalcommand -v reportgenerator
2. Prefer local tool installation for reproducible CI:
dotnet new tool-manifest(if missing)dotnet tool install dotnet-reportgenerator-globaltool
3. Add one explicit render command to AGENTS.md and CI, for example:
dotnet tool run reportgenerator -reports:"**/coverage.cobertura.xml" -targetdir:"artifacts/coverage" -reporttypes:"HtmlSummary;Cobertura"
4. Run the report command once and return status: configured or status: improved. 5. If raw coverage outputs are already sufficient and no rendered artifacts are needed, return status: not_applicable.
Deliver
- readable coverage artifacts for humans and CI systems
- explicit report-generation commands
Validate
- report inputs match the generated coverage format
- generated reports land in a stable artifact path
Ralph Loop
Use the Ralph Loop for every task, including docs, architecture, testing, and tooling work.
1. Plan first (mandatory):
- analyze current state
- define target outcome, constraints, and risks
- write a detailed execution plan
- list final validation skills to run at the end, with order and reason
2. Execute one planned step and produce a concrete delta. 3. Review the result and capture findings with actionable next fixes. 4. Apply fixes in small batches and rerun the relevant checks or review steps. 5. Update the plan after each iteration. 6. Repeat until outcomes are acceptable or only explicit exceptions remain. 7. If a dependency is missing, bootstrap it or return status: not_applicable with explicit reason and fallback path.
Required Result Format
status:complete|clean|improved|configured|not_applicable|blockedplan: concise plan and current iteration stepactions_taken: concrete changes madevalidation_skills: final skills run, or skipped with reasonsverification: commands, checks, or review evidence summaryremaining: top unresolved items ornone
For setup-only requests with no execution, return status: configured and exact next commands.
Load References
- references/reportgenerator.md
- references/commands.md
- references/formats.md
Example Requests
- "Render coverage as HTML in CI."
- "Merge multiple Coverlet reports."
{
"version": "1.0.0",
"category": "Testing",
"packages": [
"ReportGenerator"
]
}
ReportGenerator CLI Commands
Basic Syntax
reportgenerator [options]or when installed as a local tool:
dotnet tool run reportgenerator [options]or shorthand:
dotnet reportgenerator [options]Required Parameters
| Parameter | Description |
|---|---|
-reports:<pattern> | Coverage report file(s) or glob pattern. Separate multiple with semicolon. |
-targetdir:<path> | Output directory for generated reports. |
Common Parameters
| Parameter | Description |
|---|---|
-reporttypes:<types> | Output format(s), semicolon-separated. Default: Html. |
-sourcedirs:<paths> | Source code directories for line coverage. |
-historydir:<path> | Directory for history tracking across runs. |
-plugins:<paths> | Custom plugin assemblies. |
-assemblyfilters:<filters> | Include/exclude assemblies. Prefix - to exclude, + to include. |
-classfilters:<filters> | Include/exclude classes by name. |
-filefilters:<filters> | Include/exclude files by path. |
-verbosity:<level> | Log level: Off, Error, Warning, Info, Verbose. |
-title:<title> | Title for the coverage report. |
-tag:<tag> | Build tag or version string shown in reports. |
Example Commands
Basic HTML Report
reportgenerator \
-reports:"**/coverage.cobertura.xml" \
-targetdir:"artifacts/coverage"Multiple Output Formats
reportgenerator \
-reports:"**/coverage.cobertura.xml" \
-targetdir:"artifacts/coverage" \
-reporttypes:"Html;Cobertura;MarkdownSummaryGithub;Badges"Merge Multiple Coverage Files
reportgenerator \
-reports:"**/coverage.*.xml" \
-targetdir:"artifacts/coverage" \
-reporttypes:"Cobertura"Filter Assemblies
reportgenerator \
-reports:"coverage.xml" \
-targetdir:"coverage" \
-assemblyfilters:"+MyApp.*;-*.Tests"With History Tracking
reportgenerator \
-reports:"coverage.xml" \
-targetdir:"coverage" \
-historydir:"coverage/history" \
-reporttypes:"Html"CI Pipeline with Badge Generation
reportgenerator \
-reports:"**/coverage.cobertura.xml" \
-targetdir:"artifacts/coverage" \
-reporttypes:"HtmlSummary;Cobertura;Badges" \
-title:"MyProject Coverage" \
-tag:"$BUILD_NUMBER"GitHub Actions Summary
reportgenerator \
-reports:"**/coverage.cobertura.xml" \
-targetdir:"coverage" \
-reporttypes:"MarkdownSummaryGithub"
cat coverage/SummaryGithub.md >> $GITHUB_STEP_SUMMARYFilter Syntax
Filters use prefix notation:
+Pattern- include items matching pattern-Pattern- exclude items matching pattern
Wildcards supported:
*matches any characters- Patterns are case-insensitive
Example:
-assemblyfilters:"+MyApp.*;+MyLib.*;-*.Tests;-*.TestUtilities"
-classfilters:"+MyApp.Core.*;-*Generated*"
-filefilters:"-*Designer.cs;-*AssemblyInfo.cs"Environment Variables
| Variable | Description |
|---|---|
REPORTGENERATOR_LICENSE | License key for PRO features. |
Help
reportgenerator --help
reportgenerator -?Sources
ReportGenerator Output Formats
Format Categories
Human-Readable Formats
| Format | Description | Use Case |
|---|---|---|
Html | Full interactive HTML report with file browser. | Local development, detailed review. |
HtmlSummary | Single-page HTML summary. | CI artifacts, quick overview. |
HtmlChart | HTML with coverage trend charts. | Historical tracking dashboards. |
HtmlInline | HTML with embedded CSS/JS (no external files). | Email-friendly, standalone sharing. |
HtmlInline_AzurePipelines | Inline HTML styled for Azure DevOps. | Azure Pipelines reports tab. |
HtmlInline_AzurePipelines_Dark | Dark-themed Azure DevOps HTML. | Azure Pipelines with dark mode. |
Markdown Formats
| Format | Description | Use Case |
|---|---|---|
MarkdownSummary | Basic Markdown table summary. | Wiki pages, general Markdown consumers. |
MarkdownSummaryGithub | GitHub-flavored Markdown summary. | GitHub Actions step summaries, PR comments. |
MarkdownDeltaSummary | Markdown showing coverage delta. | PR reviews comparing coverage changes. |
Machine-Readable Formats
| Format | Description | Use Case |
|---|---|---|
Cobertura | Cobertura XML format. | CI tools, code quality gates, merging. |
OpenCover | OpenCover XML format. | Tools expecting OpenCover input. |
Clover | Atlassian Clover XML format. | Bamboo, Bitbucket integrations. |
Lcov | lcov tracefile format. | Tools using lcov ecosystem. |
JsonSummary | JSON summary of metrics. | Custom tooling, dashboards. |
SonarQube | SonarQube generic coverage format. | SonarQube/SonarCloud integration. |
TeamCitySummary | TeamCity service messages. | TeamCity build statistics. |
Badge Formats
| Format | Description | Use Case |
|---|---|---|
Badges | SVG coverage badges. | README files, shields.io style. |
PngChart | PNG coverage trend chart. | Documentation, static hosting. |
SvgChart | SVG coverage trend chart. | Scalable documentation images. |
Text Formats
| Format | Description | Use Case |
|---|---|---|
TextSummary | Plain text summary. | Console output, logs. |
TextDeltaSummary | Plain text delta summary. | CI logs comparing coverage. |
CsvSummary | CSV summary data. | Spreadsheet analysis. |
Latex | LaTeX document format. | Academic papers, PDF generation. |
LatexSummary | LaTeX summary table. | Academic paper appendices. |
Xml | Custom XML format. | Custom XML consumers. |
XmlSummary | XML summary data. | Lightweight XML parsing. |
Common Format Combinations
CI Pipeline (GitHub Actions)
-reporttypes:"HtmlSummary;Cobertura;MarkdownSummaryGithub;Badges"Produces:
Summary.html- Quick HTML overview for artifact downloadCobertura.xml- Machine-readable for quality gatesSummaryGithub.md- Append to$GITHUB_STEP_SUMMARYbadge_*.svg- Coverage badges for README
CI Pipeline (Azure DevOps)
-reporttypes:"HtmlInline_AzurePipelines;Cobertura"Local Development
-reporttypes:"Html"Opens full interactive report with file-level detail.
PR Review
-reporttypes:"MarkdownDeltaSummary;Cobertura"Shows what changed and maintains machine-readable format.
Merging Reports Only
-reporttypes:"Cobertura"When the only goal is to merge multiple coverage files into one.
Output File Names
Each format produces specific output files in the target directory:
| Format | Output File(s) |
|---|---|
Html | index.html + supporting files |
HtmlSummary | Summary.html |
Cobertura | Cobertura.xml |
MarkdownSummaryGithub | SummaryGithub.md |
Badges | badge_linecoverage.svg, badge_branchcoverage.svg, badge_methodcoverage.svg |
JsonSummary | Summary.json |
TextSummary | Summary.txt |
Lcov | lcov.info |
Badge Examples
Generated badges display coverage percentages:
- Line coverage:
badge_linecoverage.svg - Branch coverage:
badge_branchcoverage.svg - Method coverage:
badge_methodcoverage.svg
Usage in README:
`badge_linecoverage.svg`Or link to raw file URL in GitHub:
PRO-Only Formats
Some formats require a PRO license:
MHtml- Single-file MHTML archive- Risk hotspot analysis features in HTML reports
The core formats listed above are free under Apache 2.0.
Sources
ReportGenerator
Open/Free Status
- open source
- free to use under Apache 2.0
- optional paid PRO features exist, but the core tool is free
Install
Global tool:
dotnet tool install -g dotnet-reportgenerator-globaltoolLocal tool:
dotnet new tool-manifest
dotnet tool install dotnet-reportgenerator-globaltoolVerify First
Before installing, check whether the repo already has a local tool manifest or an existing global install:
rg --files -g '.config/dotnet-tools.json'
dotnet tool list --local
dotnet tool list --global
command -v reportgeneratorCommon Usage
reportgenerator -reports:"**/coverage.cobertura.xml" -targetdir:"artifacts/coverage" -reporttypes:"HtmlSummary;Cobertura"
dotnet reportgenerator -reports:"**/coverage.cobertura.xml" -targetdir:"artifacts/coverage" -reporttypes:"MarkdownSummaryGithub"CI Fit
- generate reports into a stable artifact directory
- use one or more machine-readable formats alongside HTML if the pipeline consumes them
When Not To Use
- when raw coverage files are enough and no human-readable output is required