Agent skill

Coverage Report

by n0an in n0an/VivaDicta

Measure VivaDicta test code coverage from the terminal. An agent skill from n0an/VivaDicta.

MITAuto-check passedTesting & QA

Install Coverage Report

skills CLI
$ npx skills add n0an/VivaDicta --skill coverage-report -a claude-code

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

GitHub CLI
$ gh skill install n0an/VivaDicta coverage-report --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/n0an/VivaDicta.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/coverage-report .claude/skills/coverage-report && 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
coverage-report
GitHub stars
131
Token cost
~1.2k tokens
SKILL.md length
538 words
Files
2
Skills in repo
20
Repo updated
First seen
Licence
MIT

At a glance

Measure VivaDicta test code coverage from the terminal. An agent skill from n0an/VivaDicta.

  • Asked what the test coverage is
  • SKILL.md covers Run it, The two paths, and when to use…, Caveats that bite and First-party filtering happens…
  • Calls swift
  • The whole-app coverage %

What it does

Coverage Report is an agent skill from n0an/VivaDicta. Measure VivaDicta test code coverage from the terminal. Use when asked what the test coverage is, a module's or the whole-app coverage %, which lines/files are covered, to get coverage without opening Xcode, or to see coverage after writing tests. Covers both the fast per-SPM-module path (swift test + llvm-cov) and the canonical whole-app path (xcodebuild + xccov), and which first-party targets count.

Its SKILL.md is about 1.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `agents/openai.yaml`).

It sits in Testing & QA, covering Test coverage and iOS development. It works with Xcode and iOS. The repository describes itself as: iOS & watchOS speech-to-text app with AI voice keyboard, on-device RAG, and chat with your notes - powered by Apple Foundation Models, WhisperKit, NVIDIA Parakeet, and 20+ AI…. The licence is MIT.

When your agent uses it

  • Asked what the test coverage is
  • The whole-app coverage %
  • Which lines/files are covered
  • Get coverage without opening Xcode

Example prompts

  • “/coverage-report”

What it can do on your machine

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

    • swift

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

  • Network

    No URLs in SKILL.md.

    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

Coverage Report loads about 1.2k tokens when it runs. Until then it costs about 105 tokens; SKILL.md has 538 words of instructions outside code blocks.

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

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 n0an/VivaDicta at commit b141304, republished under its MIT licence (© n0an). 538 words, ~1,211 tokens.

Download SKILL.mdSave it as .claude/skills/coverage-report/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
coverage-report
description
Measure VivaDicta test code coverage from the terminal. Use when asked what the test coverage is, a module's or the whole-app coverage %, which lines/files are covered, to get coverage without opening Xcode, or to see coverage after writing tests. Covers both the fast per-SPM-module path (swift test + llvm-cov) and the canonical whole-app path (xcodebuild + xccov), and which first-party targets count.

Coverage Report

One script, scripts/coverage/coverage.sh, measures code coverage two ways. Coverage is a runtime metric - you must run the tests to get it (it records which executable lines actually ran). It is not the same as the test/prod LOC ratio, which is a static count - that lives in the loc-report skill.

Run it

bash
# Canonical: full test plan in the simulator. Overall + per-target.
scripts/coverage/coverage.sh app

# ...plus per-file rows for specific files (e.g. after writing ViewModel tests):
scripts/coverage/coverage.sh app ChatViewModel.swift SmartSearchChatViewModel.swift

# Fast: one SPM module via swift test on the macOS host (no simulator).
scripts/coverage/coverage.sh module CloudTranscription

# Most complete: clean DerivedData -> full plan -> auto-fill any dropped module
# row from the module path -> one merged 16-module table. Slow (~10-15 min).
scripts/coverage/coverage.sh full

Env overrides: DESTINATION (simulator, default iPhone 17 Pro Max), RESULT (.xcresult path).

The two paths, and when to use which

app (xcodebuild + xccov)module (swift test + llvm-cov)
Scopewhole app + extensions + all modulesone SPM module
Runs oniOS Simulator (slow)macOS host (fast - seconds)
Reads froma .xcresult bundlethe test binary + default.profdata under .build
Use forthe canonical number, the app targettight iteration on one module while writing its tests

The app target itself (VivaDicta.app) can only be measured the app way - swift test cannot build an iOS app.

full is app + a clean rebuild + auto-fill. It deletes DerivedData first (a clean relink recovers most dropped per-target rows - see the wobble caveat below), runs the full plan, then for any module whose row still dropped or came back 0/0 it runs the module path and splices the number in. Result: a number for every module in one command. Filled rows are labeled module-floor (own-tests-only - a floor for app-exercised modules like TextProcessing). Use full when you want the complete, reliable per-module table; use app for a fast warm-build check.

Caveats that bite

  • macOS-host runs exclude iOS-only files, so a module's module-path total differs slightly from its Xcode/xccov number (e.g. CloudTranscription reads ~2,231 lines via swift test vs ~3,073 in Xcode). Use module for relative per-file progress; trust app/xccov for the canonical total.
  • The aggregate per-target rows are non-deterministic. An SPM module is a static lib linked into both the app and its own test bundle; the linker's cross-binary dedup sometimes leaves a module without a clean mapping, so its standalone row drops out of some runs (or returns 0/0) - and which modules drop shifts run to run. The code is still tested. A clean build recovers most rows (~18/21 vs ~13/21 incremental) - that's what full does, filling any still-dropped row from the module path. For a deterministic single-module number, use the module path.
  • The headline is dominated by the ~73k-line VivaDicta.app target (~9%) - it is ~80% of the code, so module-level test work barely moves the global %. Judge progress by per-logic-module coverage and per-file ViewModel rows, not the headline.
  • After a toolchain bump, rm -rf Modules/<Module>/.build once before the module path (stale .swiftmodule import error).
Show full SKILL.md (118 more words)Show less

First-party filtering happens in the script, not the test plan

VivaDicta/VivaDictaTestPlan.xctestplan has no defaultOptions.codeCoverage pin (it was removed 2026-06-20), so Xcode gathers coverage for all targets - Firebase/Google/GUL/KeyboardKit/etc. (FirebaseCrashlytics alone is ~10k lines) are in the bundle. So the raw bundle % is meaningless (~25%). coverage.sh filters to first-party at report time (first_party_overall): the 16 production modules + VivaDicta app + the 4 extensions, with TestUtilities / *Mocks / *Tests excluded → first-party overall ~14%. This is why the script, not the test plan, owns the filtering - adding/removing a module no longer requires editing the test plan. If you ever call xccov by hand, filter to first-party yourself or you'll report the polluted number. The full terminal-coverage reference also lives in AGENTS.md under "Test Coverage".

© n0an, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file in .agents/skills/coverage-report of n0an/VivaDicta.

  • SKILL.md
  • agents/openai.yaml

Open the folder on GitHubat commit b141304

Compare with similar skills

Coverage Report 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.

Coverage Report compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Coverage Report this skilln0an/VivaDicta131—~1.2kAutomated safety check: PassMIT
iOS Accessibility Testingconorluddy/xclaude-plugin183—~5kAutomated safety check: PassMIT
Orca iOS Simulator Controlstablyai/orca87k1 repos~584Automated safety check: PassApache-2.0
Testing iOS Codebitwarden/ios695—~1.8kAutomated safety check: PassGPL-3.0
iOS Audio E2Ehyochan/react-native-nitro-sound961—~907Automated safety check: PassMIT
Limrun iOS Simulatorsuperset-sh/superset15k—~5.2kAutomated safety check: NotesCustom licence

Similar skills

  • iOS Accessibility Testing

    conorluddy/xclaude-plugin

    Guides WCAG 2.1 and VoiceOver accessibility testing for iOS apps, working from the accessibility tree and not from screenshots.

    183 GitHub stars~5k tokensUpdated 26 days ago
    Testing & QAAuto-check passed
  • iOS Simulator control from inside Orca, with the live device view in Orca's emulator pane. Use when driving a booted Apple Simulator on macOS: taps, gestures…

    87k GitHub starsUsed in 1 repo~584 tokens
    MobileAuto-check passed
  • Testing iOS Code

    bitwarden/ios

    Official

    Write tests, add test coverage, unit test, or add missing tests for Bitwarden iOS.

    695 GitHub stars~1.8k tokensUpdated today
    Testing & QAAuto-check passed
  • iOS Audio E2E

    hyochan/react-native-nitro-sound

    Build and run device-backed iOS end-to-end checks for react-native-nitro-sound recording, playback, listeners, pause/resume, seek, speed, interruption, audio-session behavior, and rapid switching.

    961 GitHub stars~907 tokensUpdated 9 days ago
    MobileAuto-check passed
  • Limrun iOS Simulator

    superset-sh/superset

    Drives an app on a Limrun cloud iOS simulator from any OS: launch, tap, type, read the accessibility tree and logs, take screenshots, record video and reach local services.

    15k GitHub stars~5.2k tokensUpdated today
    MobileAuto-check: notes
  • Xcode Simulator Test

    EveryInc/compound-engineering-plugin

    Builds an iOS app, exercises it on a simulator with XcodeBuildMCP and reports PASS, FAIL or PARTIAL with screenshots, logs and per-screen evidence.

    25k GitHub stars~519 tokensUpdated today
    MobileAuto-check passed

More from n0an/VivaDicta

All 20 skills in this repo
  • Swiftdata Pro

    n0an/VivaDicta

    Writes, reviews, and improves SwiftData code using modern APIs and best practices.

    131 GitHub starsUsed in 1 repo~930 tokens
    Auto-check passed
  • iOS Simulator Skill

    n0an/VivaDicta

    21 production-ready scripts for iOS app testing, building, and automation.

    131 GitHub starsUsed in 1 repo~2.5k tokens
    Auto-check passed
  • Asc Metadata Sync

    n0an/VivaDicta

    Sync and validate App Store metadata and localizations with asc, including legacy metadata format migration.

    131 GitHub starsUsed in 1 repo~1k tokens
    Auto-check passed
  • Asc Aso Rankings

    n0an/VivaDicta

    Pull current keyword rankings from Astro MCP, compare against the previous rankings check, and save a new rankings file to the vault.

    131 GitHub stars~985 tokensUpdated 3 days ago
    Auto-check passed
  • Loc Report

    n0an/VivaDicta

    Count Swift lines of code across the VivaDicta codebase and refresh the production-vs-test history chart.

    131 GitHub stars~825 tokensUpdated 3 days ago
    Auto-check passed
  • Asc Release Flow

    n0an/VivaDicta

    Determine whether an app is ready to submit, then drive the App Store release flow with asc, including first-time submission fixes for availability, in-app purchases, subscriptions, Game Center, and…

    131 GitHub starsUsed in 1 repo~3.9k tokens
    Auto-check passed

Works with

Questions about Coverage Report

What does Coverage Report do?

Measure VivaDicta test code coverage from the terminal. An agent skill from n0an/VivaDicta. Coverage Report is an agent skill from n0an/VivaDicta. Measure VivaDicta test code coverage from the terminal.

When should I use Coverage Report?

Coverage Report fits situations like: asked what the test coverage is; the whole-app coverage %; which lines/files are covered; get coverage without opening Xcode.

How do I install Coverage Report in Claude Code?

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

How do I install Coverage Report in Codex?

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

Can I use Coverage Report 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 n0an/VivaDicta --skill coverage-report -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/coverage-report, .gemini/skills/coverage-report, .github/skills/coverage-report and .opencode/skills/coverage-report in your project.

What does Coverage Report need to run?

Going by SKILL.md and its folder, Coverage Report needs the command-line tools its instructions call (swift).

Does Coverage Report access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Coverage Report 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 Coverage Report use?

Coverage Report is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Coverage Report use?

About 1.2k tokens (SKILL.md is roughly 4.8k 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 Coverage Report?

Skills that share tags, products or a category with Coverage Report: iOS Accessibility Testing (conorluddy/xclaude-plugin, 183 stars), Orca iOS Simulator Control (stablyai/orca, 87k stars), Testing iOS Code (bitwarden/ios, 695 stars) and iOS Audio E2E (hyochan/react-native-nitro-sound, 961 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Coverage Report?

n0an (a GitHub user) maintains it in n0an/VivaDicta, which has 131 GitHub stars. The repository holds 20 skills in this directory. The repository was last updated on October 5, 2026.

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