{% extends "base.html" %} {% block title %}Request {{ req.request_id[:12] }} - MoralStack{% endblock %} {% block content %}
| Turn | Request | Domain |
|---|---|---|
| {{ s.turn_index if s.turn_index is not none else '—' }} | {% if s.is_current %}{{ (s.request_id or '')[:12] }} (current) {% else %}{{ (s.request_id or '')[:12] }}{% endif %} | {{ s.domain or '—' }} |
| Op | Outcome | Similarity | Reason | From turn |
|---|---|---|---|---|
| {{ ev.operation or '—' }} | {{ ev.outcome or '—' }} | {% if ev.similarity is not none %}{{ "%.3f" | format(ev.similarity) }}{% else %}—{% endif %} | {{ ev.reason or '—' }} | {{ ev.from_turn if ev.from_turn is not none else '—' }} |
| Op | Outcome |
|---|---|
| {{ ev.operation or '—' }} | {{ ev.outcome or '—' }} |
Structured runtime posture from decision traces (risk, retrieval context, per-cycle summaries). Scheduler / speculative / gating fields appear here as they are emitted.
The DCCL evaluated whether this request invokes a deployer-authorized behavior.
{% if compliance_card.action_payload_summary %}Output autorizzato: {{ compliance_card.action_payload_summary }}
{% endif %} {% if compliance_card.rationale %}Rationale: {{ compliance_card.rationale }}
{% endif %} {% if compliance_card.modules_deferred_detail %}Modules deferred to compliance: {{ compliance_card.modules_deferred | join(', ') }}
{% endif %}Orchestration events persisted independently of LLM calls (scheduler, retrieval, convergence). Empty when no rows were recorded for this request.
| Cycle | Stage | Component | Event | Decision | Reason | Duration | Status |
|---|---|---|---|---|---|---|---|
| {{ row.get('cycle') if row.get('cycle') is not none else '—' }} | {{ row.get('stage') or '—' }} | {{ row.get('component') or '—' }} | {{ row.get('event') or '—' }} | {{ row.get('decision') or '—' }} | {{ row.get('reason') or '—' }} | {% if row.get('duration_ms') is not none %}{{ row.get('duration_ms') | round(1) }} ms{% else %}—{% endif %} | {{ row.get('status') or '—' }} |
No orchestration events recorded for this request.
{% endif %}Per-cycle summaries from CYCLE_SUMMARY decision traces.
No per-cycle summary traces for this request.
{% endif %}Structured explanation of which orchestrator branch ran after risk
assessment (fast, deliberative, early exit) and why thresholds, risk_policy_action, and sensitive-overlay
floors matter. Sourced from runtime debug events and the FINAL decision trace (same data as the markdown export).
This response was generated because the {{ execution_summary.excluded_domain }} domain is not enabled in this deployment's constitution configuration.
The domain was detected during risk estimation. Deliberation and constitutional analysis were skipped entirely.
To re-enable: remove excluded: true from
moralstack/constitution/data/overlays/{{ execution_summary.excluded_domain }}.yaml.
Relevant principles are retrieved at the start of deliberation via parallel domain agents (constitution store); that phase appears as constitution / relevant_principles in the Deliberation journey and Execution timeline below. Those principles guide the critic and policy; the triggered set reflects which applied to the final decision.
These principles were selected for this request and used to guide the critic (e.g. violation checks) and policy. They influence subsequent responses throughout the deliberation.
{{ p.id }}
{% if p.title %}{{ p.title }}{% endif %}
Principles that applied to the final decision (from policy overlay). Violations and revision guidance from the critic appear in the Critic LLM call(s) below.
{{ p.id }}
{% if p.title %}{{ p.title }}{% endif %}
{{ relevant_principles.overlay_applied }}
{{ relevant_principles.winning_rule }}
{{ relevant_principles.reason_codes | join(', ') }}
{{ code }}{{ req.prompt }}
{{ req.final_response }}
Exact execution order (first call to last). Steps that overlap in time are marked Parallel.
When each module ran over time. Overlapping bars = parallel execution.
{{ preview }}
{{ call.prompt }}
{{ call.system_prompt }}
{{ call.raw_response }}
{{ call.parsed_summary_json }}
{{ final_decision_card.reason_codes | join(', ') }}
Why not REFUSE? {{ final_decision_card.why_not_refuse }}
{% endif %} {% if final_decision_card.why_not_safe_complete %}Why not SAFE_COMPLETE? {{ final_decision_card.why_not_safe_complete }}
{% endif %} {% if final_decision_card.why_not_normal_complete %}Why not NORMAL_COMPLETE? {{ final_decision_card.why_not_normal_complete }}
{% endif %}{{ preview }}
{{ call.prompt }}
{{ call.system_prompt }}
{{ call.raw_response }}
{{ call.parsed_summary_json }}
{{ preview }}
{{ call.prompt }}
{{ call.system_prompt }}
{{ call.raw_response }}
{{ call.parsed_summary_json }}
{{ t.trace_json }}
{{ ev.payload_json }}
Question {{ benchmark_result.question_id }} ({{ benchmark_result.category }}) | expected_action={{ benchmark_result.expected_action }}
Time: {{ benchmark_result.baseline_time_ms | round(0) | int }}ms | Predicted action: {{ benchmark_result.baseline_predicted_action or '-' }}
{{ benchmark_result.baseline_response }}
Judge reasoning: {{ benchmark_result.baseline_eval.get('judge_reasoning', '') }}
{% endif %}Time: {{ benchmark_result.moralstack_time_ms | round(0) | int }}ms | Final action: {{ benchmark_result.moralstack_final_action or '-' }} | Path: {{ benchmark_result.moralstack_path or '-' }}
{{ benchmark_result.moralstack_response }}
Judge reasoning: {{ benchmark_result.moralstack_eval.get('judge_reasoning', '') }}
{% endif %}Winner: {{ benchmark_result.winner | upper }} (margin: {{ benchmark_result.winner_margin | round(1) }})
{{ benchmark_result.comparison_reasoning }}