test-coverage-advisor

test-coverage-advisor is a skill for Claude Code, Codex from smicolon/ai-kit. It costs 60 tokens per session (2,458 once invoked), scanned A, original, MIT.

A testing guide that recommends test cases for new or completed code and checks whether tests cover the code. It aims to suggest enough tests for at least 90% coverage, where coverage measures how much code the tests exercise.

In plain words
What is it for?
Use it to write or generate tests, add test cases, review coverage, and get testing suggestions before a feature is considered ready for review.
Why use it?
It reduces the chance of marking a feature complete without testing important behavior. It also points out areas that existing tests may miss.

Skill for Claude CodeCodex

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add skills/smicolon/ai-kit/test-coverage-advisor
Any agent
npx skills add smicolon/ai-kit --skill test-coverage-advisor
Clone the repo
git clone --depth 1 https://github.com/smicolon/ai-kit

Made for: Claude Code, Codex.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for test-coverage-advisor

README.md
[![agentmods](https://agentmods.dev/badge/skills/smicolon/ai-kit/test-coverage-advisor.svg)](https://agentmods.dev/skills/smicolon/ai-kit/test-coverage-advisor)
Your own site
<a href="https://agentmods.dev/skills/smicolon/ai-kit/test-coverage-advisor"><img src="https://agentmods.dev/badge/skills/smicolon/ai-kit/test-coverage-advisor.svg" alt="Measured on agentmods" height="20"></a>
Per session 60 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 2,458 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00060 $0.02458
Opus 5 $0.00030 $0.01229
Sonnet 5 $0.00012 $0.00492
Haiku 4.5 $0.00006 $0.00246

Measured yesterday against content hash 2324abdb069e, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

test-coverage-advisor scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

packs/django/skills/test-coverage-advisor/SKILL.md · 395 lines

How it starts

The opening of the file, as written. The whole thing — 395 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Test Coverage Advisor

Auto-suggests comprehensive test cases to achieve the 90%+ test coverage target.

Activation Triggers

This skill activates when:

  • Completing feature implementation
  • Mentioning "done", "finished", "ready", "complete"
  • Saying "review this code"
  • Creating models, services, views, or APIs
  • Asking about testing
  • Before code is marked as complete

Coverage Target (MANDATORY)

90%+ test coverage required for ALL code.

Test categories:

  1. Unit Tests - Models, services, utilities (80%+ of tests)
  2. Integration Tests - API endpoints, workflows (15%+ of tests)
  3. Edge Cases - Error handling, validation (5%+ of tests)

Auto-Analysis Process

Step 1: Identify Untested Code

When feature implementation is complete, scan for:

# models.py - Has tests? ❓
class User(models.Model):
    def activate(self):  # Needs test
        self.is_active = True
        self.save()

# services.py - Has tests? ❓
class UserService:
    @staticmethod
    def create_user(data):  # Needs test
        # ...business logic

# views.py - Has tests? ❓
class UserViewSet(viewsets.ModelViewSet):
    def create(self, request):  # Needs test
        # ...

Step 2: Calculate Coverage Gap

Current coverage: X%
Target coverage: 90%
Gap: Y%
Missing: Z test cases

Step 3: Generate Missing Test Cases

For Model:

# users/tests/test_models.py
import pytest
import users.models as _users_models

@pytest.mark.django_db
class TestUserModel:
    """User model tests."""

    def test_create_user(self):
        """Test user creation with required fields."""
        user = _users_models.User.objects.create(
            email='[email protected]',
            first_name='Test'
        )

        assert user.id is not None  # UUID assigned
        assert user.email == '[email protected]'
        assert user.created_at is not None
        assert user.is_deleted is False

    def test_user_str_representation(self):
        """Test __str__ returns email."""
        user = _users_models.User.objects.create(email='[email protected]')
        assert str(user) == '[email protected]'

    def test_activate_user(self):
        """Test activate method sets is_active."""
        user = _users_models.User.objects.create(email='[email protected]')
        user.activate()

        assert user.is_active is True

    def test_soft_delete(self):
        """Test soft delete sets is_deleted flag."""
        user = _users_models.User.objects.create(email='[email protected]')
        user.soft_delete()

        assert user.is_deleted is True
        # User still in database
        assert _users_models.User.objects.filter(id=user.id).exists()

Read the full file on GitHub · 395 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. yesterday Changed 2324abdb069e
  2. 4d ago First seen · 395 lines · 60 tokens per session scan A 3a3ac961791d

Subscribe to this mod's changes

test-coverage-advisor is a skill published in the GitHub repository smicolon/ai-kit (6 stars, last pushed yesterday), licensed MIT. It adds 60 tokens to every session and 2,458 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.