| Test | Type | Coverage | Status | Issues |
|---|---|---|---|---|
| smoke-test.yaml | Positive | Basic operation | ✅ Passing | Too simple - doesn't validate output quality |
| 02-discovery-test.yaml | Positive | Structure discovery | ⚠️ Needs validation | No assertions on output format |
| 03-search-standards.yaml | Positive | File search | ⚠️ Needs validation | No verification of line ranges |
| 04-content-extraction.yaml | Positive | Content extraction | ⚠️ Needs validation | No verification of key findings |
| 05-no-context-handling.yaml | Negative | Empty directory | ⚠️ Needs validation | Doesn't verify honest reporting |
Missing Positive Tests:
Missing Negative Tests:
Purpose: Verify ContextScout works correctly with valid inputs
Input: "Find context for code standards" Expected Output:
.opencode/context/core/standards/code.mdAssertions:
assertions:
- type: output_contains
value: ".opencode/context/core/standards/code.md"
- type: output_contains
value: "lines"
- type: output_contains
value: "⭐⭐⭐⭐⭐"
- type: output_contains
value: "Key Findings"
Input: "Find context files, prioritize by MVI compliance" Expected Output:
Assertions:
assertions:
- type: custom
validator: "verify_mvi_prioritization"
description: "Files <200 lines should have higher priority"
Input: "Find examples of how to write tests" Expected Output:
examples/ folder firstAssertions:
assertions:
- type: output_contains
value: "examples/"
- type: output_contains
value: "Type: Example"
Purpose: Verify ContextScout handles invalid inputs gracefully
Input: "Find context in /fake/directory/that/does/not/exist" Expected Output:
Assertions:
assertions:
- type: output_not_contains
value: "Found context files"
- type: output_contains
value: "not found"
- type: tool_not_called
tool: "read"
reason: "Should not attempt to read non-existent files"
Input: "Find stuff" Expected Output:
Assertions:
assertions:
- type: output_contains
value: "clarify"
- type: output_contains
value: "specific"
Input: "Find context in directory with broken YAML frontmatter" Expected Output:
Assertions:
assertions:
- type: output_contains
value: "malformed"
- type: no_errors
description: "Should handle gracefully without crashing"
Input: "Find API documentation" Expected Output:
Assertions:
assertions:
- type: all_paths_exist
description: "Every file path mentioned must actually exist"
- type: tool_called
tool: "glob"
reason: "Must verify files exist before claiming they do"
Purpose: Verify ContextScout handles boundary conditions
Input: "Find context in empty .tmp/test-fixtures/empty/" Expected Output:
Status: ✅ Already implemented (05-no-context-handling.yaml)
Input: "Extract key findings from large context file" Expected Output:
Assertions:
assertions:
- type: output_contains
value: "MVI"
- type: output_contains
value: "lines"
Input: "Find context for X which depends on Y which depends on X" Expected Output:
Assertions:
assertions:
- type: output_contains
value: "circular"
- type: timeout_not_exceeded
max_duration: 30000
For each test, verify:
Problem: Current smoke test just checks if agent responds, doesn't validate output quality Fix: Add assertions for expected output format
Problem: Tests don't verify the actual content of responses
Fix: Add assertions section to each test with specific checks
Problem: Tests don't verify agent isn't hallucinating file paths Fix: Add test that verifies all mentioned paths actually exist
Problem: Only 1 negative test (empty directory), need more Fix: Add tests for invalid paths, ambiguous queries, malformed files
Problem: No verification that ContextScout responds quickly Fix: Add timeout assertions and performance benchmarks
Last Updated: 2026-01-07
Status: Test plan created, implementation pending