Files
Amaury Levé 9f531203ec Promote 4 experimental test skills to dotnet-test plugin (#634)
Move assertion-quality, test-gap-analysis, test-smell-detection, and
test-tagging from dotnet-experimental to dotnet-test. These skills have
demonstrated sufficient eval coverage, unique value beyond baseline model
capabilities, and are already integrated into the test-quality-auditor
agent pipeline.

Changes:
- Move skills and tests, dropping the exp- prefix
- Update all cross-references in skill descriptions and routing tables
- Update test-quality-auditor agent and eval scenarios
- Update CODEOWNERS for the moved paths
- Delete duplicate exp-dotnet-test-frameworks (identical to dotnet-test-frameworks)
- Fix stale exp-dotnet-test-frameworks reference in exp-test-maintainability

Skills held back for further iteration:
- exp-mock-usage-analysis: baseline model scores 5/5 on key scenarios
- exp-test-maintainability: quality gains offset by token overhead
2026-05-11 14:46:11 +02:00

129 lines
5.7 KiB
YAML

scenarios:
# ============================================================================
# Goal 1: Broad audit request — agent should run multiple analysis dimensions
# and produce a unified quality summary.
# ============================================================================
- name: "Comprehensive test quality audit of weak test suite"
prompt: |
I'm worried our tests might be giving us false confidence. Can you audit
the test suite in the WeakTests project and tell me how good our tests
really are?
setup:
files:
- path: "WeakTests/WeakTests.csproj"
source: "fixtures/weak-tests/WeakTests.csproj"
- path: "WeakTests/ShoppingCart.cs"
source: "fixtures/weak-tests/ShoppingCart.cs"
- path: "WeakTests/ShoppingCartTests.cs"
source: "fixtures/weak-tests/ShoppingCartTests.cs"
additional_required_skills:
- test-anti-patterns
- assertion-quality
- test-gap-analysis
assertions:
- type: "output_matches"
pattern: "(assertion.free|no.*assert|missing.*assert|without.*assert)"
- type: "output_matches"
pattern: "(tautolog|self.compar|same.*value|trivial)"
- type: "output_matches"
pattern: "(catch.*swallow|try.*catch|exception.*handling)"
- type: "output_matches"
pattern: "(RemoveItem|GetTotalWithDiscount|untest|not.*cover|missing.*test|gap)"
- type: "output_matches"
pattern: "(summary|priorit|rank|critical|sever)"
- type: "exit_success"
rubric:
- "Identified the assertion-free test (AddItem_Works) as a critical issue"
- "Flagged the tautological assertion (comparing total to itself)"
- "Detected the catch-and-swallow exception test pattern"
- "Identified untested production code (RemoveItem, GetTotalWithDiscount, boundary conditions)"
- "Produced a summary or prioritized list of findings"
timeout: 300
# ============================================================================
# Goal 2: Targeted request — route to a single analysis skill
# ============================================================================
- name: "Targeted anti-pattern review"
prompt: |
Can you do a quick review of my test code for common problems? I just
want to know what the biggest issues are.
setup:
files:
- path: "WeakTests/WeakTests.csproj"
source: "fixtures/weak-tests/WeakTests.csproj"
- path: "WeakTests/ShoppingCart.cs"
source: "fixtures/weak-tests/ShoppingCart.cs"
- path: "WeakTests/ShoppingCartTests.cs"
source: "fixtures/weak-tests/ShoppingCartTests.cs"
additional_required_skills:
- test-anti-patterns
assertions:
- type: "output_matches"
pattern: "(anti.pattern|problem|issue|warning|critical)"
- type: "exit_success"
rubric:
- "Identified at least three distinct anti-patterns in the test code"
- "Ranked or categorized findings by severity"
- "Provided actionable suggestions for fixing the most critical issues"
timeout: 180
# ============================================================================
# Goal 3: Targeted request — assertion quality analysis
# ============================================================================
- name: "Assertion quality analysis"
prompt: |
Are the assertions in my ShoppingCartTests actually testing anything
meaningful? I want to understand if we have enough assertion variety.
setup:
files:
- path: "WeakTests/WeakTests.csproj"
source: "fixtures/weak-tests/WeakTests.csproj"
- path: "WeakTests/ShoppingCart.cs"
source: "fixtures/weak-tests/ShoppingCart.cs"
- path: "WeakTests/ShoppingCartTests.cs"
source: "fixtures/weak-tests/ShoppingCartTests.cs"
additional_required_skills:
- assertion-quality
assertions:
- type: "output_matches"
pattern: "(shallow|trivial|weak|low.*divers|limited)"
- type: "output_matches"
pattern: "(no.*assert|assertion.free|meaningless|without.*assert|never.*assert)"
- type: "output_matches"
pattern: "(exception|collection|state|structural|missing.*type|more.*assert)"
- type: "exit_success"
rubric:
- "Identified low assertion diversity — tests primarily use equality and null checks"
- "Flagged tests with no assertions or meaningless assertions"
- "Pointed out missing assertion types (exception assertions, collection/state checks, structural verification)"
timeout: 180
# ============================================================================
# Goal 4: Non-activation — request to write tests is out of scope
# ============================================================================
- name: "Decline request to generate new tests"
prompt: |
I need you to write comprehensive unit tests for the ShoppingCart class.
Generate tests that cover all methods with good coverage.
expect_activation: false
setup:
files:
- path: "WeakTests/WeakTests.csproj"
source: "fixtures/weak-tests/WeakTests.csproj"
- path: "WeakTests/ShoppingCart.cs"
source: "fixtures/weak-tests/ShoppingCart.cs"
- path: "WeakTests/ShoppingCartTests.cs"
source: "fixtures/weak-tests/ShoppingCartTests.cs"
assertions:
- type: "output_matches"
pattern: "(out.*scope|not.*cover|cannot|does not|generat|writ.*test|different)"
- type: "exit_success"
rubric:
- "Did not attempt to run a test quality audit"
- "Recognized that generating new tests is outside the scope of quality auditing"
timeout: 60