find-untested-sources

Identifies source files lacking test coverage using static Roslyn and tree-sitter parsing.

1|Updated Jul 27, 2026
One-click install
npx skills add https://github.com/FittyAr/Cardscape --skill find-untested-sources-fittyar
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: find-untested-sources
Source: https://github.com/FittyAr/Cardscape/tree/main/.agents/skills/find-untested-sources
Command: npx skills add https://github.com/FittyAr/Cardscape --skill find-untested-sources-fittyar

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires tree-sitter-language-pack, Microsoft.CodeAnalysis.CSharp, and includes scripts (resource) components.

What problem does it solve? Answering "which source files have no tests?" normally requires a green build and a full coverage run, which takes minutes on a real repository. This Skill answers that question statically in seconds by parsing source and test files, producing a deterministic source-to-test pairing map without any build, dependency resolution, or compilation. ## Core Features & Use Cases - Dual analysis engines: A Roslyn-based analyzer for .NET-only repositories with strict namespace disambiguation, and a tree-sitter polyglot analyzer covering Python, TypeScript/JavaScript, Go, Java, Rust, Ruby, and C#. - Structured JSON output: Emits untested source lists ordered by declaration count, suggested test file paths, source-to-test pairing maps, and orphan test detection. - Use Case: Before writing new tests, run the analyzer on a repository to get a prioritized worklist of untested files with suggested test locations, then verify each newly written test pairs to its intended source file. ## Quick Start Ask the AI to find all untested source files in this repository and list the suggested test file locations for the top candidates.

Frequently Asked Questions about find-untested-sources

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I find untested source files in a repository?▼

Run the analyzer script against the repository root; it parses every source and test file and emits a JSON list of source files no test references. Results are ordered by declaration count so the highest-API-surface files appear first.

Roslyn vs tree-sitter for finding untested code, which should I use?▼

Use the Roslyn engine for .NET-only repositories because its namespace-aware disambiguation is more accurate on duplicated short names like Settings or Context. Use the tree-sitter engine for polyglot repos spanning Python, TypeScript, Go, Java, Rust, Ruby, and C#.

Does finding untested files require building the project first?▼

No build, dependency resolution, or compilation is required. Both engines perform syntax-only parsing of source files, so analysis completes in seconds even on large repositories.

Can static analysis replace code coverage tools?▼

No. Static pairing answers which files lack any referencing test, not which lines or branches were executed. For line/branch coverage or CRAP risk scoring, run an actual coverage tool on the triaged candidates.

Why are some tested files reported as untested?▼

Types resolved only through reflection, dependency injection strings, or extension methods invoked as instance methods never appear by name in test source, so the static heuristic cannot credit them. Short identifiers under four characters are also dropped to avoid noisy matches.