AgentSkillsCN

test-debt

暴露测试套件债务——跳过的测试、未测试的公共 API、不稳定模式(重试、休眠)、缺失的边缘情况。基于模式的静态分析;不运行覆盖率工具。适用于测试感觉不可靠或发布前使用。

SKILL.md
--- frontmatter
name: test-debt
description: Surface test-suite debt — skipped tests, untested public APIs, flaky patterns (retries, sleeps), missing edge cases. Pattern-based static analysis; does not run coverage tools. Use when tests feel unreliable or before a release.
allowed-tools: Read, Grep, Glob, Bash
user-invocable: true

Test Debt

Surface debt in the test suite — what's skipped, what's untested, what's flaky by design.

Philosophy

"What confidence are we missing, and which code changes are riskier because of it?"

A test suite with a hundred skipped tests is lying to the team about what's covered. A retry loop in a test is telling you the real behavior isn't deterministic. Test debt is where the suite stops being a safety net.

Not a coverage report. This skill is pattern-based — it reads test files and source files, and spots the gaps between them. Runtime coverage is a complementary tool, not this skill's job.

Scope

User specifies a path, glob, or directory. If not specified, ask: "Which directory or test file should I audit?"

Config Integration

Follow references/config-migration.md for preflight.

Read .assistant-config.md for:

  • Test location (set by /teach-charter)
  • Stack (determines skip patterns per framework)
  • Acknowledged Debt

Stack Detection

Detect test framework from dev dependencies / manifest:

  • jest, vitest, mocha, cypress, playwright in package.json
  • pytest in requirements.txt / pyproject.toml
  • rspec in Gemfile
  • Built-in testing package for Go
  • junit / testng for JVM projects

Use the right skip patterns. See references/test-debt-patterns.md.

Process

1. Understand context

Locate the test directory. Count test files. Note the framework in use.

2. Scan

  • Skipped tests: Grep for framework-specific skip markers.
  • Flaky patterns: Grep for retry loops, sleep/setTimeout inside test files, high timeouts.
  • Untested public APIs: Glob source, identify exported symbols (language-specific), cross-reference against test files.

3. Group by location

Group by test file (for skips and flakiness) or by source module (for untested APIs).

4. Assess impact

  • High: skipped tests on critical paths, untested public APIs on entry points
  • Medium: flaky patterns in core test suites
  • Low: skipped tests with tracked issues, untested internal helpers

Reference

  • references/test-debt-patterns.md
  • references/debt-output-format.md
  • references/config-migration.md

Output format

Follow references/debt-output-format.md exactly.

What Makes This Different From a Linter

A linter flags it.skip every time. This skill asks: is this skip tracked, or is it an unowned promise? Is this retry loop legitimate, or is the test fighting non-determinism? Is this exported function genuinely untested, or transitively covered?

The value is the second-order read, not detection.