smart-test-runner

Execute only tests impacted by recent code changes and their transitive callers.

3|2|Updated Jan 23, 2026
One-click install
npx skills add https://github.com/robotijn/ctoc --skill smart-test-runner-robotijn
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: smart-test-runner
Source: https://github.com/robotijn/ctoc/tree/main/skills/testing/smart-test-runner
Command: npx skills add https://github.com/robotijn/ctoc --skill smart-test-runner-robotijn

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Running full test suites for every small code change wastes hours of developer time, especially on large codebases with hundreds of tests. This skill eliminates that waste by only executing tests impacted by your recent code changes.

Core Features & Use Cases

  • Incremental Test Impact Analysis (TIA): Runs only tests for changed files and their transitive callers, skipping unrelated tests entirely.
  • Content-Hash Caching: Avoids re-running tests that already passed against unchanged file content, surviving branch switches and rebases.
  • Flaky Test Detection: Automatically flags inconsistent test results and persists them to a quarantine list for follow-up, preventing silent failures from shipping to production.
  • Automatic Full-Suite Overrides: Forces a full test run when configuration files, dependency manifests, or critical path code is changed, ensuring no regressions slip through. Use case: For a team working on a mid-sized SaaS codebase, this skill cuts PR test feedback from 45 seconds to 2.3 seconds on average by skipping tests for unchanged code.

Quick Start

Use the smart-test-runner skill to run only the tests affected by the code changes you just made.

Frequently Asked Questions about smart-test-runner

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

FAQPage Schema
How do I run only tests impacted by recent code changes instead of the full test suite?

Incremental test impact analysis executes only tests for changed files and their transitive callers, skipping unrelated tests. This drastically cuts PR test feedback time by avoiding unnecessary full test suite execution on every small code change.

How does content-hash test caching work when switching git branches?

Content-hash based test result caching avoids re-running tests that already passed against unchanged file content. This caching mechanism survives branch switches and rebases, ensuring only tests with modified underlying code are re-executed.

Can I use incremental testing with any programming language or test runner framework?

Yes, incremental testing applies to local development workflows, CI/CD PR pipelines, and pre-commit hooks for codebases using any major programming language or test runner framework. It automatically forces full-suite overrides for configuration or dependency manifest changes.

What is the best way to detect and quarantine flaky tests in a CI/CD pipeline?

Automatic flaky test detection flags inconsistent test results and persists them to a quarantine list for follow-up. This prevents silent failures from shipping to production by isolating unreliable tests during CI/CD optimization and incremental test runs.

When should I override incremental testing and force a full test suite run?

Automatic full-suite overrides force a complete test run when configuration files, dependency manifests, or critical path code is changed. This ensures no regressions slip through when changes are too broad for standard test impact analysis to safely skip tests.