GOAL
{{ report.goal }}
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:
{% for cause in report.root_cause.root_causes %}
- {{ cause }}
{% endfor %}
{% 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
{% for rec in report.root_cause.recommendations %}
- {{ rec }}
{% endfor %}
{% endif %}
{% else %}
DEFENSE STATUS
All tested behaviors were successfully defended.
The target system resisted all attack strategies attempted during this session. Continue testing with broader behavior sets and higher escalation levels for deeper coverage.
{% endif %}
{% if report.hypothesis_evolution %}
HYPOTHESIS EVOLUTION
| Turn |
Hypothesis Tested |
Result |
Hypotheses Confidence |
{% 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') %}
| {{ 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 %}
|
{% 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
| Behavior |
Attempts |
Result |
Strategy |
{% 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 %}
| {{ name }} |
{{ b.attempts }} |
{% if b.successes > 0 %}
✅ {{ b.successes }}/{{ b.attempts }}
{% else %}
❌ 0/{{ b.attempts }}
{% endif %}
|
{{ strategy }} |
{% endfor %}
Total Turns: {{ report.total_turns }}
Behaviors Tested: {{ report.total_behaviors }}
Vulnerabilities: {{ report.vulnerable_behaviors|length }}/{{ report.total_behaviors }} ({{ "%.0f"|format(report.overall_vulnerability_rate * 100) }}%)
Duration: {{ "%.1f"|format(report.duration_seconds) }}s
{% if report.regression_paths %}
REGRESSION TESTS
{% for path in report.regression_paths %}
- Saved: {{ path }}
{% endfor %}
{% endif %}