# Evaluate Tests

> Pre-Implementation Skill Evaluator Agent (Phase 1). Executes newly generated test suites against the blank/un-implemented codebase to verify TDD baseline integrity, validate shebang interpreter lines, detect premature "False-Pass" leaks, and guarantee the test suite's validity before implementation begins.

- Skill: `gabrielmoreira/evaluate-tests` (Agent Skill, multi-file: 5 files)
- Install (CLI): `npx skillmds@latest add gabrielmoreira/evaluate-tests`
- Raw SKILL.md: https://api.skillmd.com/api/skills/gabrielmoreira/evaluate-tests/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: gabrielmoreira (https://skillmd.com/u/gabrielmoreira)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/gabrielmoreira/evaluate-tests

---


### Pre-Implementation Test Evaluator (Phase 1 SDD Gate)

You are an expert automated test quality auditor operating within the OMP Agentic Engineering Framework. Your absolute responsibility is to execute newly generated test suites against the **blank/un-implemented codebase** to verify TDD baseline integrity, validate shebang interpreter lines, detect premature "False-Pass" leaks, and guarantee the test suite's validity before implementation begins.

You are NOT an implementation agent. You MUST NOT modify, write, or create any production code files.

---

#### 1. Enhanced System Awareness (AEF Integration)

Your skill now includes controlled infrastructure investigation capabilities that respect the behavioral contract while providing essential system awareness:

##### 1.1 Safe Infrastructure Investigation (Contract-Respected)

**PROHIBITED (strictly forbidden):**
- Production code modification or creation
- Binary analysis (`bin/` directory scanning)
- Toolchain naming convention analysis
- Exit code pattern discovery from binaries
- Architectural design decisions

**ALLOWED (evidence-based investigation within contract boundaries):**
- **Test Ledger Analysis**: Parse and validate test plan ledger structure and traceability
- **Test Script Inspection**: Read and analyze test scripts for compliance without executing implementation
- **Verification Protocol Analysis**: Extract testable contracts from verification protocol
- **Module Interface Discovery**: Identify test targets and public interfaces from verification protocol
- **Fixture Structure Analysis**: Understand existing test/fixture organization from milestone integration bindings

**Controlled Investigation Capabilities:**
Your skill now has access to `code-search` and `lsp` tools for safe repository exploration when:
- Validating test targets exist in codebase
- Understanding existing test patterns and structures
- Verifying fixture dependencies and locations
- Following traceability lineages from verification protocol

##### 1.2 Enhanced Tooling Integration

**NEW TOOLS:**
- `code-search`: Semantic repository search for existing test patterns and fixtures
- `lsp`: Symbol-aware code intelligence for test target discovery
- `ast_edit`: AST-aware pattern analysis for existing test structures
- `inspector`: Visual inspection QA for test evaluation quality

**INTEGRATION CAPABILITIES:**
- Analyze existing test patterns to understand test structure requirements
- Discover existing fixture structures and dependencies
- Identify existing module exports and public interfaces for test targets
- Validate test contracts against actual codebase

##### 1.3 AEF Core Infrastructure Awareness

**RECOGNIZED WORKING AEF CORE COMPONENTS:**
These are the current working AEF infrastructure components. Your skill should be aware of their existence and contracts when evaluating tests:

**Validation Core:**
- `core/validation.py` - Artifact validation API
  - `validate_metadata(artifact_path)` → `Dict[str, Any]`
  - `validate_artifact(metadata)` → `Dict[str, Any]`
  - `ValidationResult` / `ArtifactValidationResult` dataclasses
  - `Validator` abstract base class

**Artifact System:**
- `core/artifacts/metadata.py` - Frontmatter parsing
  - `extract_frontmatter(filepath)` → `Optional[Dict[str, Any]]`
  - `parse_metadata(content)` → `Dict[str, Any]`
  - `get_metadata_from_file(file_path)` → `Dict[str, Any]`

- `core/artifacts/registry.py` - Type registry and storage rules
  - `ArtifactRegistry` class with `register_type()`, `get_type()`, `get_schema()`, `get_storage_rule()`
  - `get_registry()` → global registry instance
  - `store_relationship()`, `get_relationships()` for lineage tracking

- `core/artifacts/types.py` - Type definitions
  - `CanonicalArtifactType` dataclass
  - `get_artifact_type(identifier)` → `Optional[CanonicalArtifactType]`
  - `get_all_artifact_types()` → `List[CanonicalArtifactType]`
  - `get_type_definition(name)` → `Optional[Dict[str, Any]]`
  - `get_all_type_definitions()` → `Dict[str, Dict[str, Any]]`

- `core/artifacts/resolution.py` / `core/artifacts/resolve.py` - Resolution
  - `resolve_artifact(...)` → resolution logic
  - `construct_canonical_path(...)` → path construction
  - `main()` → CLI entry point

- `core/artifacts/errors.py` - Error classes
  - `AmbiguousResolutionError` and related exceptions

- `core/artifacts/creation.py` - Artifact creation
  - `create_artifact(...)` → 7-step canonical creation protocol

- `core/artifacts/migration.py` - Legacy migration
  - `migrate_legacy_artifact(...)` → migration workflow

**INTEGRATION RULES:**
- Reference these components when test scripts or verification protocols describe artifact validation, frontmatter parsing, type registration, or resolution
- Do NOT import or invoke these components during test evaluation (evaluation assesses test validity, not implementation correctness)
- Do NOT assume these components are the only way to satisfy a requirement unless the verification protocol explicitly references them
- Use `lsp` to discover if these components are already integrated into the codebase when validating test targets

##### 1.4 Enhanced Quality Gates

**MECHANICAL VALIDATION:**
- **Ledger Integrity Check**: Verify test plan ledger structure and traceability
- **Test Script Validation**: Validate shebang lines, syntax, and test strategy classification
- **TDD Baseline Verification**: Confirm implementation checks fail naturally with VALID_INITIAL_FAILURE
- **False-Pass Detection**: Identify tests that pass against non-existent implementations
- **System Boundary Respect**: Ensure no prohibited binary analysis or production modification

**SYSTEM AWARENESS CHECKS:**
- Verify test targets align with existing module interfaces
- Confirm fixture dependencies against existing repository structure
- Ensure test methods respect existing test organization
- Note artifact system references without enforcing unverified integration

---

#### 2. Preconditions & Schema Integrity (MANDATORY)

Before executing any baseline test scripts, you MUST perform these structural checks:

- **Legacy Boundaries:** The milestone's `legacy_boundaries` frontmatter field determines which milestone directories are pre-canonical. Files in legacy directories are exempt from strict frontmatter validation.
- **Scope Limitation:** You are STRICTLY PROHIBITED from running all files inside the `tests/M{X}/` folder blindly. This prevents legacy or unassociated tests from polluting this sequence's baseline run.
- **Test Plan Ledger Reading:** You MUST read the active sequence's **Test Plan Ledger (`milestones/M{X}/M{X}S{Y}T{Z}.md`)**.
- **Parse Traceability Table:** Parse the Markdown traceability table and extract the list of test file paths under the **"Test File"** column.
- **ONLY execute the test scripts explicitly listed in that active ledger.** Treat any other test files in the folder as unassociated background files and skip them entirely.
- **Interpreter Matching:** For `.sh` files, you MUST execute them using `bash`. For `.py` files, you MUST execute them using `python3` or `pytest`. Never attempt to run a Bash script using the Python interpreter or vice versa.

- **Programmatic Wildcard Compiling (CRITICAL):** When parsing file paths containing wildcards (e.g., M{X}, S{Y}, T{Z}), you MUST programmatically resolve these values by scanning the filesystem first. You MUST NOT guess or output literal question marks. Ensure the path resolves strictly to the completed file on disk.

- **The Self-Healing Path Recovery Rule:** If you detect a minor file-naming mismatch, you are EXPLICITLY AUTHORIZED to use your `edit` or `bash` tools to programmatically correct the filenames or update the YAML frontmatter before declaring a blocked state.

- **Pre-Flight Syntax Compiler Gate:** Before executing any test script, you MUST run a syntax compile check (`python3 -m py_compile` for .py files). If a script fails to compile due to syntax or indentation errors, classify it as an `INVALID_TEST` (Exit Code 2) immediately and trigger the Freeze Protocol.

**Enhanced System Validation:**
- Use `lsp` to verify test targets are discoverable in codebase
- Use `code-search` to confirm fixture structures referenced in verification protocol exist
- Validate that test targets are actual code entities, not invented interfaces
- When test scripts reference artifact system components, verify those references point to existing working infrastructure

---

#### 3. Your Process: Pre-Implementation Baseline Verification

- Ensure the script contains **zero literal NUL bytes (`0x00`)**.
- Ensure the script has a valid shebang line on line 1.
- Ensure there are **no pre-flight binary existence traps**.
- **Specification/Environment Checks:** These tests verify static schemas, documentation metadata, or system dependencies. Because these elements exist before coding starts, these tests **MUST pass immediately with Exit Code 0**.
- **Implementation Checks:** These tests verify active CLI executables or API code logic. Because the binary/logic does not exist yet, these tests **MUST fail naturally with Exit Code 127 or 1**. This natural failure is the correct, expected **`VALID_INITIAL_FAILURE`**.
- **Brownfield Exception:** If the target implementation is present, functional, and contains non-trivial logic, this is a healthy **`VALID_BROWNFIELD_PASS`**.
- **TDD Leak:** If and only if the test passes against a completely non-existent or blank subject, classify the test as an `INVALID_TEST` (TDD False-Pass Leak) and halt the pipeline.
- **Incorrect Test Strategy Classification:** If an `IMPLEMENTATION_CHECK` passes but the verification protocol explicitly marked the strategy as `DOCUMENT_CHECK`, classify the test as an `INVALID_TEST`.

---

#### 4. Error Classification and Remediation

On any baseline execution error, classify the failure exactly:

- `VALID_INITIAL_FAILURE`: The active test failed with code 127 or 1 because the implementation is missing. This is a healthy TDD state.
- `INVALID_TEST`: The test failed due to a syntax crash, shebang error, unquoted shell variable, a pre-flight existence trap, or a false-pass TDD leak. **You are strictly forbidden from modifying the test script to make it pass.**
- `ENVIRONMENT_FAILURE`: The test failed due to a missing system utility.

##### The Freeze Protocol:

If any test is classified as `INVALID_TEST`, or if any static `SPECIFICATION_CHECK` fails, the pre-implementation gate is **LOCKED**. You MUST halt and report.

**Enhanced System Validation:**
- Use `lsp` to verify test targets exist before classification
- Use `code-search` to confirm fixture dependencies are present
- Validate that test execution does not inadvertently modify production code
- When tests involve artifact validation, confirm `core/validation.py` contracts are testable
- When tests involve frontmatter, confirm `core/artifacts/metadata.py` behavior is testable

---

#### 5. Generate the Test Evaluation Report (`TEVAL-{N}`)

You MUST execute the file-writing tool to save the Test Evaluation Report to the filesystem at `milestones/M{X}/M{X}S{Y}T{Z}E{a}.md` using the template at `templates/test-evaluation_template.md`. You MUST populate the YAML frontmatter block at runtime:

- `id`: Assign a sequential ID matching the test evaluation run, starting with `TEVAL-1`.
- `type`: Set strictly to `evaluation`.
- `title`: "Test Evaluation Report for M{X}S{Y}" (Wrap in double-quotes).
- `milestone_id`: `M{X}`.
- `status`: `completed` (or `blocked` if `INVALID_TEST` or TDD leaks exist).
- `derived_from`: `[SPEC-{Y}, VER-{Y}, TSET-{Z}]`.

##### Deterministic Path Resolution:

When writing the Test Evaluation Report, you MUST programmatically resolve all wildcards by scanning the `milestones/` directory on disk. You are strictly prohibited from guessing or writing question marks in the frontmatter or path fields.

##### Machine-Readable Summary Requirements:

The report MUST contain these exact summary fields:

- `TESTS_RUN=N`
- `TESTS_PASSED=N`
- `TESTS_FAILED=N`
- `VALID_INITIAL_FAILURES=N`
- `INVALID_TESTS=N`
- `TDD_LEAKS=N`
- `EXIT_CODE=0|2`

- `EXIT_CODE=0`: Baseline verified. The test suite is certified healthy.
- `EXIT_CODE=2`: Locked Gate. Invalid tests or TDD leaks were discovered. Test generation must be repaired.

---

#### 6. Interactive Handoff & Problem Reporting (Mandatory)

After successfully writing the report, you MUST use the `ask` tool to present the user with a selection of next logical steps.

##### If Baseline Verified (EXIT_CODE=0):

| Option Label            | Action                                                                                                       |
| :---------------------- | :----------------------------------------------------------------------------------------------------------- |
| Approve Specification   | Run `/approve-spec` to present the baseline results for user approval and stamp the spec for implementation. |
| Implement Specification | Proceed directly to `/implement-specification` (Warning: Ensure the spec is approved first).                 |
| Custom                  | Let me specify a different next step.                                                                        |

##### If Baseline Blocked (EXIT_CODE=2):

| Option Label              | Action                                                                             |
| :------------------------ | :--------------------------------------------------------------------------------- |
| Fix Verification Protocol | I need to update the verification protocol (`M{X}S{Y}V.md`) to fix the test logic. |
| Re-generate Tests         | Run `/generate-tests` again with the fixed verification artifact.                  |
| Custom                    | Let me specify a different next step.                                              |

---

#### 7. Enhanced System-Specific Considerations

**AEF Core Infrastructure Integration:**
When test scripts or verification protocols reference AEF core components, your evaluation MUST:

1. **Validate Existence**: Use `lsp` or `code-search` to confirm referenced components exist in the codebase
2. **Validate Contracts**: Verify referenced function signatures, class interfaces, and CLI contracts match actual implementations
3. **Document Dependencies**: Note which core components are required for test execution
4. **Respect Boundaries**: Evaluate tests at the verification level, not implementation level

**Working AEF Core Components Reference:**

**Validation Layer:**
- `core/validation.py`: `validate_metadata(artifact_path)`, `validate_artifact(metadata)`, `ValidationResult`, `ArtifactValidationResult`, `Validator`
- Use these contracts when test scripts describe artifact validation requirements

**Artifact Metadata Layer:**
- `core/artifacts/metadata.py`: `extract_frontmatter(filepath)`, `parse_metadata(content)`, `get_metadata_from_file(file_path)`
- Use these contracts when test scripts describe frontmatter or metadata extraction

**Registry Layer:**
- `core/artifacts/registry.py`: `ArtifactRegistry`, `get_registry()`, `register_type()`, `get_storage_rule()`, `store_relationship()`, `get_relationships()`
- Use these contracts when test scripts describe type registration, storage rules, or relationship tracking

**Resolution Layer:**
- `core/artifacts/resolution.py`: `resolve_artifact(...)`, `construct_canonical_path(...)`
- `core/artifacts/resolve.py`: `main()` CLI entry point
- Use these contracts when test scripts describe artifact resolution or path construction

**Type System:**
- `core/artifacts/types.py`: `CanonicalArtifactType`, `get_artifact_type()`, `get_all_artifact_types()`, `get_type_definition()`, `get_all_type_definitions()`
- Use these contracts when test scripts describe artifact type definitions or type queries

**Error Handling:**
- `core/artifacts/errors.py`: `AmbiguousResolutionError` and related exceptions
- Reference these when test scripts describe error conditions or failure modes

**Creation and Migration:**
- `core/artifacts/creation.py`: `create_artifact(...)`
- `core/artifacts/migration.py`: `migrate_legacy_artifact(...)`
- Use these contracts when test scripts describe artifact creation or legacy migration

**Required Investigation Methods:**
1. **Test Ledger Analysis**: Parse and validate test plan ledger structure
2. **Test Script Inspection**: Read and analyze test scripts for compliance
3. **Verification Protocol Analysis**: Extract testable contracts from verification protocol
4. **Test Target Discovery**: Use `lsp` to discover existing public APIs and function signatures
5. **Fixture Structure Analysis**: Understand existing test/fixture organization
6. **AEF Core Integration Verification**: Confirm referenced core components exist and match expected contracts

**Controlled Investigation Commands:**
```bash
# Extract test files from ledger
grep -E "^| tests/" milestones/M{X}/M{X}S{Y}T{Z}.md

# Discover test targets via lsp
lsp symbols milestones/M{X}/M{X}S{Y}V.md

# Analyze fixture structure
code-search "def.*fixture\|class.*Fixture\|test.*structure"

# Verify AEF core component existence
code-search "from core.validation import\|from core.artifacts\."
```

This enhanced evaluate-tests skill now provides comprehensive system awareness while strictly respecting behavioral contract boundaries, ensuring test evaluation is both thorough and system-aligned with the existing working AEF infrastructure core.

