MUTANT RED TEAM REPORT (trace-driven)
{% set confirmed = report.vulnerabilities|length %} {% if confirmed > 0 %}
{{ confirmed }} CONFIRMED VULNERABILITIES — {{ report.vulnerable_behaviors|length }}/{{ report.total_behaviors }} behaviors
{% else %}
NO CONFIRMED VIOLATION IN {{ report.total_behaviors }} BEHAVIOR(S) — SCOPED TEST
{% endif %}
{{ report.total_turns }} turns · {{ report.traces|length if report.traces else report.total_turns // 2 }} traces · {{ "%.1f"|format(report.duration_seconds) }}s · {{ report.total_behaviors }} behavior(s), {{ report.total_turns // 2 }} attacks
Trace-driven, verified: only observable policy violations count. A 'defended' result means no confirmed violation within scope — not secure.
{% if report.rules and report.rules|length > 0 %}
Rules: {{ report.rules|join(", ") }}
{% endif %}
GOAL & RULES
Goal: {{ report.goal }}
{% if report.rules and report.rules|length > 0 %}
Security rules:
{% else %}
Rules: built-in checks (prompt leakage, secret exposure, unauthorized tool use)
{% endif %} {% if report.vulnerabilities %}
🚨 FINDINGS — TRACE-VERIFIED
{% for vuln in report.vulnerabilities %} {% set sev_icon = '🔴' if vuln.severity.value == 'critical' else ('🟠' if vuln.severity.value == 'high' else ('🟡' if vuln.severity.value == 'medium' else '🔵')) %} {% set sev_class = 'text-red' if vuln.severity.value in ['critical', 'high'] else 'text-yellow' %} {% set conf = "%.0f"|format(vuln.confidence * 100) if vuln.confidence else "n/a" %}
{{ sev_icon }} FINDING #{{ loop.index }}: {{ vuln.behavior_name }} {{ vuln.severity.value.upper() }} · {{ conf }} ({{ vuln.verification_type }})
Behavior: {{ vuln.behavior }} ({{ vuln.behavior_name }})
Rule: {{ vuln.violated_rule or report.goal }}
Severity: {{ vuln.severity.value.upper() }}   Confidence: {{ conf }} ({{ vuln.verification_type }})
Violation: {{ vuln.violation }}
{% set repro = vuln.minimal_attack_path if vuln.minimal_attack_path and vuln.minimal_attack_path|length > 0 else vuln.attack_path %} {% if repro and repro|length > 0 %} {% set first_step = repro[0] %} {% set last_step = repro[-1] %}
Attack strategy: {{ last_step.strategy }}   ({{ repro|length }} steps, minimal)
Exact attack (minimal):
"{{ first_step.attacker_message }}"
Exact trace output:
"{{ last_step.target_response }}"
{% if last_step.tool_calls and last_step.tool_calls|length > 0 %}
Violating tool call: {{ last_step.tool_calls[0] }}
{% endif %} {% if vuln.trace_evidence and vuln.trace_evidence.tool_calls %}
Trace tool calls: {{ vuln.trace_evidence.tool_calls }}
{% endif %} {% endif %}
Impact: {{ vuln.impact }}
{% if vuln.evidence %}
Evidence (observable): "{{ vuln.evidence }}"
{% endif %} {% if vuln.recommended_mitigation %}
✓ Recommended Mitigation:
{{ vuln.recommended_mitigation }}
{% endif %}
Minimal Reproduction ({{ repro|length }} steps):
{% for step in repro %}
Turn {{ step.turn_number }} [{{ step.strategy }}] Attacker: "{{ step.attacker_message[:80] }}..."
Target: "{{ step.target_response[:80] }}..." {% if step.tool_calls and step.tool_calls|length > 0 %}
tool: {{ step.tool_calls[0] }} {% endif %}
{% endfor %} {% if vuln.attack_path|length > repro|length %}
Full exploit was {{ vuln.attack_path|length }} steps → minimized to {{ repro|length }}.
{% endif %}
Why vulnerable: {{ vuln.violation }}
{% if vuln.regression_test_path %}
Regression test: {{ vuln.regression_test_path }}
{% endif %}
{% endfor %}
{% endif %}
EXECUTION TIMELINE
{% set global_turn = namespace(count=0) %} {% for transcript in report.transcripts %} {% for i in range(0, transcript.turns|length - 1, 2) %} {% set global_turn.count = global_turn.count + 1 %} {% set attacker_turn = transcript.turns[i] %} {% set target_turn = transcript.turns[i+1] if (i+1) < transcript.turns|length else none %} {% set plan = attacker_turn.metadata.get('plan', {}) %} {% set behavior = plan.get('behavior', transcript.behavior) %} {% set strategy = plan.get('strategy', 'direct') %} {% set escalation = plan.get('escalation', 1) %} {% set reason_summary = plan.get('reason_summary', '') %} {% set eval_data = target_turn.metadata.get('evaluation', {}) if target_turn else {} %} {% set turn_progress = eval_data.get('progress', 'no_progress') %} {% set icon = '✅' if turn_progress == 'success' else ('⚠️' if turn_progress == 'partial_progress' else '❌') %} {% set border_class = 'green' if turn_progress == 'success' else ('yellow' if turn_progress == 'partial_progress' else 'red') %} {% set text_class = 'text-green' if turn_progress == 'success' else ('text-yellow' if turn_progress == 'partial_progress' else 'text-red') %}
Turn {{ global_turn.count }} {{ icon }}
Behavior:    {{ behavior.split('.')[-1].replace('_', ' ').title() }}
Strategy:    {{ strategy }} (escalation: {{ escalation }}/5)

Attacker:
"{{ attacker_turn.content }}"
{% if target_turn %}
Target:
"{{ target_turn.content }}"
{% endif %}
Result:      {{ icon }} {{ turn_progress.replace('_', ' ').upper() }}
{% if reason_summary or eval_data.get('reasoning') %}
Planner:
{{ eval_data.get('reasoning', reason_summary) }}
{% endif %}
{% endfor %} {% endfor %}
ATTACK GRAPH
Goal: {{ report.goal }}
{% for transcript in report.transcripts %} {% for i in range(0, transcript.turns|length - 1, 2) %} {% set attacker_t = transcript.turns[i] %} {% set plan = attacker_t.metadata.get("plan", {}) %} {% set b_id = plan.get("behavior", transcript.behavior) %} {% set strategy = plan.get("strategy", "direct") %} {% set target_t = transcript.turns[i+1] if (i+1) < transcript.turns|length else none %} {% set eval_data = target_t.metadata.get("evaluation", {}) if target_t else {} %} {% set progress = eval_data.get("progress", "no_progress") %} {% set icon = '✅' if progress == 'success' else ('⚠️' if progress == 'partial_progress' else '❌') %} {% set text_class = 'text-green' if progress == 'success' else ('text-yellow' if progress == 'partial_progress' else 'text-red') %}
{{ icon }} {{ b_id.split('.')[-1].replace('_', ' ').title() }} ({{ strategy }})
{% endfor %} {% endfor %}
{% if report.root_cause %}
ROOT CAUSE ANALYSIS
Why did this succeed?
{{ report.root_cause.why_succeeded }}

{% if report.root_cause.root_causes %}
Root Causes:
{% endif %}
IMPACT
{% set sev = report.root_cause.impact_severity.lower() %} {% set sev_class = 'text-red' if sev == 'critical' else ('text-red' if sev == 'high' else ('text-yellow' if sev == 'medium' else 'text-green')) %}
Severity:  {{ report.root_cause.impact_severity.upper() }}
Risk:      {{ report.root_cause.impact_description }}
{% if report.root_cause.recommendations %}
RECOMMENDATIONS
{% endif %} {% else %}
SCOPED RESULT — NO VIOLATION OBSERVED
No vulnerability was observed within the tested scope.

No violation was observed for the tested behaviors and attack attempts in this session ({{ report.total_behaviors }} behavior(s), {{ report.total_turns // 2 }} attack(s)). This does NOT mean the system is secure — only that these specific attacks did not succeed. For deeper coverage, test broader behavior sets and higher escalation levels.
{% endif %} {% if report.hypothesis_evolution %}
HYPOTHESIS EVOLUTION
{% for snapshot in report.hypothesis_evolution %} {% set progress = snapshot.get('result', 'no_progress') %} {% set icon = '✅' if progress == 'success' else ('⚠️' if progress == 'partial_progress' else '❌') %} {% set text_class = 'text-green' if progress == 'success' else ('text-yellow' if progress == 'partial_progress' else 'text-red') %} {% endfor %}
Turn Hypothesis Tested Result Hypotheses Confidence
{{ snapshot.turn }} {{ snapshot.get('tested', '')[:60] }} {{ icon }} {% for h in snapshot.get('hypotheses', []) %} {% if h.status == 'rejected' %} ✗ {{ h.text[:25] }}... {% elif h.confidence > 0.7 %} {{ "%.0f"|format(h.confidence * 100) }}% {% elif h.confidence > 0.3 %} {{ "%.0f"|format(h.confidence * 100) }}% {% else %} {{ "%.0f"|format(h.confidence * 100) }}% {% endif %} {% if not loop.last %} · {% endif %} {% endfor %}
{% set final = report.hypothesis_evolution[-1] %}
Final Hypotheses:
{% for h in final.get('hypotheses', []) %} {% if h.status == 'rejected' %}
✗ {{ h.text }} (rejected)
{% elif h.confidence > 0.7 %}
● {{ h.text }} ({{ "%.0f"|format(h.confidence * 100) }}%)
{% elif h.confidence > 0.3 %}
● {{ h.text }} ({{ "%.0f"|format(h.confidence * 100) }}%)
{% else %}
● {{ h.text }} ({{ "%.0f"|format(h.confidence * 100) }}%)
{% endif %} {% endfor %}
{% endif %}
ATTACK STATISTICS
{% for b in report.behaviors_tested %} {% set name = b.behavior_name or b.behavior.split('.')[-1].replace('_', ' ').title() %} {% set strategy = 'direct' %} {% for t in report.transcripts %} {% if t.behavior == b.behavior %} {% set strategy = t.strategy or 'direct' %} {% endif %} {% endfor %} {% endfor %}
Behavior Attempts Result Strategy
{{ name }} {{ b.attempts }} {% if b.successes > 0 %} ✅ {{ b.successes }}/{{ b.attempts }} {% else %} ❌ 0/{{ b.attempts }} {% endif %} {{ strategy }}
Total Turns:         {{ report.total_turns }}
Behaviors Tested:    {{ report.total_behaviors }}
Vulnerabilities:     {{ report.vulnerabilities|length }}/{{ report.total_behaviors }}
{% set crit = namespace(count=0) %} {% set high = namespace(count=0) %} {% set med = namespace(count=0) %} {% for v in report.vulnerabilities %} {% if v.severity.value == 'critical' %}{% set crit.count = crit.count + 1 %}{% endif %} {% if v.severity.value == 'high' %}{% set high.count = high.count + 1 %}{% endif %} {% if v.severity.value == 'medium' %}{% set med.count = med.count + 1 %}{% endif %} {% endfor %}
🔴 Critical:    {{ crit.count }}
🟠 High:        {{ high.count }}
🟡 Medium:      {{ med.count }}
Duration:            {{ "%.1f"|format(report.duration_seconds) }}s
{% if report.regression_paths %}
REGRESSION TESTS
{% endif %}