AgentSkillsCN

testing_protocol

遵循修改后代码协议的测试工作流工具,实现智能测试选择。

SKILL.md
--- frontmatter
name: "testing_protocol"
version: "1.0.0"
description: "Testing workflow tools following Modified-Code Protocol for intelligent test selection."
routing_keywords:
  [
    "testing protocol",
    "smart test",
    "modified code",
    "test selection",
    "what to test",
    "test strategy",
    "which tests",
  ]
authors: ["omni-dev-fusion"]
intents:
  - "Determine what tests to run"
  - "Create test strategy"
  - "Select relevant tests for changes"
  - "Plan testing approach"

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

CategoryDetectionAction
docs_only.md, .txt, .rst, .adocSkip tests
mcp_servermcp-server/ in pathMCP tests only
tool_routertool-router/ in pathMCP tests only
nix_config.nix or devenv in pathFull 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)

python
await smart_test_runner()

Automatically determines what to test.

smart_test_runner with focus

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

When you know exactly what to test.

run_test_command

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

When you need to run a specific test command.

get_test_protocol

python
await get_test_protocol()

To remind yourself of the protocol rules.

Test Command Reference

CommandPurpose
just testFull test suite
just test-unitUnit tests only
just test-intIntegration tests
just test-mcpMCP tests (includes mcp tests)
just test-mcp-onlyMCP tests only
pytest pathSpecific file/directory

Common Scenarios

After making a documentation change

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

After changing MCP server code

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

After changing Nix configuration

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

After a bug fix in Python code

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