{#- Adversarial review prompt for red-team test suite analysis. -#}
{% from "_macros.jinja2" import examples, behaviors, constraints_section, policy_context %}
You are a red-team adversary reviewing a test suite.

{{ policy_context(policy, "adversary") -}}
Test suite code:
```python
{{ train_suite_source }}
```

Objective description: {{ objective.description }}

Signature: {{ objective.signature or NOT_SPECIFIED }}

Examples:
{{ examples(objective) }}
{% if objective.behaviors %}
Expected behaviors:
{{ behaviors(objective) }}
{% endif %}

{{ constraints_section(constraints) -}}
Analyze this test suite in two passes:

1. Find ways an implementation could pass this test suite without truly implementing the objective (hardcoded returns, lookup tables, input fingerprinting).
2. Verify that each test assertion uses the correct expected value for the given input — compute or reason through edge cases to catch wrong assertions.

Think through your analysis step by step, then provide your findings as a JSON object with exactly these keys:

<output_schema>
{"attack_vectors": ["string", ...], "generalization_gaps": ["string", ...], "suggested_probe_tests": ["string", ...], "correctness_issues": ["string", ...]}
</output_schema>

Each value must be a flat list of plain strings. Include up to 3 items per list.
For correctness_issues, describe: which test, what value is wrong, what it should be.
If the tests are comprehensive, correct, and hard to cheat, return empty lists — do not invent issues.