configure-coverage
Code coverage: thresholds and reporters for Vitest, Jest, pytest, Rust. Use when setting thresholds, adding Codecov/Coveralls, or wiring lcov/HTML reports.
What this skill does
# /configure:coverage Check and configure code coverage thresholds and reporting for test frameworks. ## When to Use This Skill | Use this skill when... | Use another approach when... | |------------------------|------------------------------| | Setting up coverage thresholds for Vitest, Jest, pytest, or Rust | Running tests with coverage (`/test:coverage`) | | Configuring coverage reporters (text, JSON, HTML, lcov) | Configuring the test framework itself (`/configure:tests`) | | Adding Codecov or Coveralls integration to CI/CD | Analyzing test failures (test-runner agent) | | Auditing coverage configuration compliance across a project | Writing individual test cases | | Adjusting coverage threshold percentages | Configuring general CI/CD workflows (`/configure:workflows`) | ## Context - Project root: !`pwd` - Package files: !`find . -maxdepth 1 \( -name 'package.json' -o -name 'pyproject.toml' -o -name 'Cargo.toml' \)` - Vitest config: !`find . -maxdepth 1 -name 'vitest.config.*'` - Jest config: !`find . -maxdepth 1 -name 'jest.config.*'` - Coverage dir: !`find . -maxdepth 1 -type d -name 'coverage'` - Codecov config: !`find . -maxdepth 1 \( -name 'codecov.yml' -o -name '.codecov.yml' \)` - Project standards: !`find . -maxdepth 1 -name '.project-standards.yaml'` ## Parameters Parse from command arguments: - `--check-only`: Report compliance status without modifications (CI/CD mode) - `--fix`: Apply fixes automatically without prompting - `--threshold <percentage>`: Set coverage threshold (default: 80) **Default threshold**: 80% (lines, branches, functions, statements) **Supported frameworks:** - **Vitest**: `@vitest/coverage-v8` or `@vitest/coverage-istanbul` - **Jest**: Built-in coverage with `--coverage` - **pytest**: `pytest-cov` plugin - **Rust**: `cargo-llvm-cov` or `cargo-tarpaulin` ## Execution Execute this code coverage compliance check: ### Step 1: Detect test framework and coverage configuration Check for framework indicators: | Indicator | Framework | Coverage Tool | |-----------|-----------|---------------| | `vitest.config.*` with coverage | Vitest | @vitest/coverage-v8 | | `jest.config.*` with coverage | Jest | Built-in | | `pyproject.toml` [tool.coverage] | pytest | pytest-cov | | `.cargo/config.toml` with coverage | Rust | cargo-llvm-cov | Use WebSearch or WebFetch to verify latest versions of coverage tools before configuring. ### Step 2: Analyze current coverage state For the detected framework, check configuration completeness: **Vitest:** - [ ] Coverage provider configured (`v8` or `istanbul`) - [ ] Coverage reporters configured (`text`, `json`, `html`, `lcov`) - [ ] Thresholds set for lines, functions, branches, statements - [ ] Exclusions configured (node_modules, dist, tests, config files) - [ ] Output directory specified **Jest:** - [ ] `collectCoverage` enabled - [ ] `coverageProvider` set (`v8` or `babel`) - [ ] `collectCoverageFrom` patterns configured - [ ] `coverageThresholds` configured - [ ] `coverageReporters` configured **pytest:** - [ ] `pytest-cov` installed - [ ] `[tool.coverage.run]` section exists - [ ] `[tool.coverage.report]` section exists - [ ] Coverage threshold configured (`--cov-fail-under`) **Rust (cargo-llvm-cov):** - [ ] `cargo-llvm-cov` installed - [ ] Coverage configuration in workspace - [ ] HTML/LCOV output configured ### Step 3: Generate compliance report Print a formatted compliance report: ``` Code Coverage Compliance Report ================================ Project: [name] Framework: [Vitest 2.x | pytest 8.x | cargo-llvm-cov 0.6.x] Coverage Configuration: Provider @vitest/coverage-v8 [CONFIGURED | MISSING] Reporters text, json, html, lcov [ALL | PARTIAL] Output directory coverage/ [CONFIGURED | DEFAULT] Exclusions node_modules, dist, tests [CONFIGURED | INCOMPLETE] Thresholds: Lines 80% [PASS | LOW | NOT SET] Branches 80% [PASS | LOW | NOT SET] Functions 80% [PASS | LOW | NOT SET] Statements 80% [PASS | LOW | NOT SET] CI/CD Integration: Coverage upload codecov/coveralls [CONFIGURED | MISSING] Artifact upload coverage reports [CONFIGURED | MISSING] Overall: [X issues found] ``` If `--check-only`, stop here. ### Step 4: Configure coverage (if --fix or user confirms) Apply coverage configuration based on detected framework. Use templates from [REFERENCE.md](REFERENCE.md): 1. **Install coverage provider** (e.g., `@vitest/coverage-v8`, `pytest-cov`) 2. **Update config file** with thresholds, reporters, exclusions 3. **Add scripts** to package.json or pyproject.toml 4. **Configure CI/CD** with Codecov upload and artifact storage ### Step 5: Update standards tracking Update `.project-standards.yaml`: ```yaml standards_version: "2025.1" last_configured: "[timestamp]" components: coverage: "2025.1" coverage_threshold: 80 coverage_provider: "[v8|istanbul|pytest-cov|llvm-cov]" coverage_reporters: ["text", "json", "html", "lcov"] coverage_ci: "codecov" ``` ### Step 6: Print final report Print a summary of changes applied, scripts added, and next steps for verifying coverage. For detailed configuration templates, see [REFERENCE.md](REFERENCE.md). ## Agentic Optimizations | Context | Command | |---------|---------| | Quick compliance check | `/configure:coverage --check-only` | | Auto-fix all issues | `/configure:coverage --fix` | | Custom threshold | `/configure:coverage --fix --threshold 90` | | Check coverage config exists | `find . -maxdepth 1 -name 'vitest.config.*' -o -name 'jest.config.*' 2>/dev/null` | | Verify coverage directory | `test -d coverage && echo "EXISTS"` | ## Flags | Flag | Description | |------|-------------| | `--check-only` | Report status without offering fixes | | `--fix` | Apply all fixes automatically without prompting | | `--threshold <percentage>` | Set coverage threshold (default: 80) | ## Examples ```bash # Check compliance and offer fixes /configure:coverage # Check only, no modifications /configure:coverage --check-only # Auto-fix with custom threshold /configure:coverage --fix --threshold 90 ``` ## Error Handling - **No test framework detected**: Suggest running `/configure:tests` first - **Coverage provider missing**: Offer to install - **Invalid threshold**: Reject values <0 or >100 - **CI token missing**: Warn about Codecov/Coveralls setup ## See Also - `/configure:tests` - Configure testing frameworks - `/test:coverage` - Run tests with coverage - `/configure:all` - Run all compliance checks - **Codecov documentation**: https://docs.codecov.com - **pytest-cov documentation**: https://pytest-cov.readthedocs.io
Related in Web Dev
generating-lwc-components
IncludedLightning Web Components with PICKLES methodology and 165-point scoring. Use this skill when the user creates or edits LWC components, builds wire service patterns, or writes Jest tests for LWC. TRIGGER when: user creates/edits LWC components, touches lwc/**/*.js, .html, .css, .js-meta.xml files, or asks about wire service, SLDS, or Jest LWC tests. DO NOT TRIGGER when: Apex classes (use generating-apex), Aura components, or Visualforce.
tanstack-query
IncludedManage server state in React with TanStack Query v5. Set up queries with useQuery, mutations with useMutation, configure QueryClient caching strategies, implement optimistic updates, and handle infinite scroll with useInfiniteQuery. Use when: setting up data fetching in React projects, migrating from v4 to v5, or fixing object syntax required errors, query callbacks removed issues, cacheTime renamed to gcTime, isPending vs isLoading confusion, keepPreviousData removed problems.
document-processor-api
IncludedProcess documents with Nutrient DWS. Use when the user wants to generate PDFs from HTML or URLs, convert Office/images/PDFs, assemble or split packets, OCR scans, extract text/tables/key-value pairs, redact PII, watermark, sign, fill forms, optimize PDFs, or produce compliance outputs like PDF/A or PDF/UA. Triggers include convert to PDF, merge these PDFs, OCR this scan, extract tables, redact PII, sign this PDF, make this PDF/A, or linearize for web delivery.
nutrient-document-processing
IncludedProcess documents with Nutrient DWS. Use when the user wants to generate PDFs from HTML or URLs, convert Office/images/PDFs, assemble or split packets, OCR scans, extract text/tables/key-value pairs, redact PII, watermark, sign, fill forms, optimize PDFs, or produce compliance outputs like PDF/A or PDF/UA. Triggers include convert to PDF, merge these PDFs, OCR this scan, extract tables, redact PII, sign this PDF, make this PDF/A, or linearize for web delivery.
tanstack-query
IncludedManage server state in React with TanStack Query v5. Covers useMutationState, simplified optimistic updates, throwOnError, network mode (offline/PWA), and infiniteQueryOptions. Use when setting up data fetching, fixing v4→v5 migration errors (object syntax, gcTime, isPending, keepPreviousData), or debugging SSR/hydration issues with streaming server components.
accelint-nextjs-best-practices
IncludedNext.js performance optimization and best practices. Use when writing Next.js code (App Router or Pages Router); implementing Server Components, Server Actions, or API routes; optimizing RSC serialization, data fetching, or server-side rendering; reviewing Next.js code for performance issues; fixing authentication in Server Actions; or implementing Suspense boundaries, parallel data fetching, or request deduplication.