testing-protocol

tao3k's avatarfrom tao3k

Testing workflow tools following Modified-Code Protocol for intelligent test selection.

⭐2stars🔀0forks📁View on GitHub🕐Updated Jan 11, 2026

When & Why to Use This Skill

This Claude skill implements an intelligent Testing Protocol that automates test selection based on code changes. By analyzing modified files via the Modified-Code Protocol, it determines the most efficient testing strategy—whether to run a full suite, targeted tests, or skip tests for documentation—optimizing development cycles and resource usage.

Use Cases

  • Automated Test Selection: Automatically determines the optimal test suite to run based on git-detected changes (staged, unstaged, or untracked).
  • Efficiency Optimization: Saves time and compute resources by skipping tests for non-functional changes like documentation or text files.
  • Targeted Integration Testing: Specifically identifies and runs MCP-related tests when changes are isolated to server or router components.
  • Development Workflow Planning: Helps developers create a clear test strategy and identify relevant test cases for complex code modifications.
name"testing_protocol"
version"1.0.0"
description"Testing workflow tools following Modified-Code Protocol for intelligent test selection."
authors["omni-dev-fusion"]

Testing Protocol Skill System Prompts

When using the Testing Protocol skill, follow these patterns for effective test execution.

Modified-Code Protocol

Step 1: Identify Modified Files

The smart_test_runner automatically detects:

  • Staged files (git diff --cached --name-only)
  • Unstaged files (git diff --name-only)
  • Untracked files (git ls-files --others)

Step 2: Categorize Changes

Category Detection Action
docs_only .md, .txt, .rst, .adoc Skip tests
mcp_server mcp-server/ in path MCP tests only
tool_router tool-router/ in path MCP tests only
nix_config .nix or devenv in path Full suite
code_changes .py, .nix, .yaml, etc. Full suite

Step 3: Execute Appropriate Tests

  • Skip: Return immediately with rationale
  • MCP only: Run just test-mcp-only
  • Full: Run just test

When to Use Each Tool

smart_test_runner (Most Common)

await smart_test_runner()

Automatically determines what to test.

smart_test_runner with focus

await smart_test_runner(focus_file="src/agent/tests/test_phase13.py")

When you know exactly what to test.

run_test_command

await run_test_command(command="just test-mcp-only")

When you need to run a specific test command.

get_test_protocol

await get_test_protocol()

To remind yourself of the protocol rules.

Test Command Reference

Command Purpose
just test Full test suite
just test-unit Unit tests only
just test-int Integration tests
just test-mcp MCP tests (includes mcp tests)
just test-mcp-only MCP tests only
pytest path Specific file/directory

Common Scenarios

After making a documentation change

await smart_test_runner()
# Returns: {"strategy": "skip", "reason": "Docs only - skipping tests"}

After changing MCP server code

await smart_test_runner()
# Returns: {"strategy": "mcp_only", "command": "just test-mcp-only"}

After changing Nix configuration

await smart_test_runner()
# Returns: {"strategy": "full", "command": "just test"}

After a bug fix in Python code

await smart_test_runner()
# Returns: {"strategy": "full", "command": "just test"}