{% extends "html/base.template.html" %} {% from "html/macros/layout.html" import narrative as render_narrative %} {% from "html/macros/visualizations.html" import figure %} {% block human_content %}

{{ t('tasks.final-verification.verification-verdict') }}

{{ verdictToken }}

{{ render_narrative(narrative.verdictExplanation, "finalVerification.userNarrative.verdictExplanation") }}

{{ t('tasks.final-verification.result-per-requirement') }}

{{ render_narrative(narrative.coverageExplanation, "finalVerification.userNarrative.coverageExplanation") }} {{ figure(coverageFigure, anchor_nodes=true) }}

{{ t('tasks.final-verification.what-the-change-added') }}

{% for row in final.addedSurfaceAudit %}{% else %}{% endfor %}
{{ t('macros.layout.id') }}{{ t('tasks.final-verification.what-the-change-added') }}{{ t('tasks.final-verification.callers') }}{{ t('tasks.final-verification.traced-to') }}{{ t('tasks.final-verification.result-per-requirement') }}
{{ row.id | inline_code }}{{ row.surface | inline_code }}{{ row.callers | inline_code }}{{ row.requirement | inline_code }}{{ row.disposition }} {{ row.note | inline_code }}
{{ t('tasks.final-verification.the-change-added-no-new-surface') }}

{{ t('tasks.final-verification.what-blocks-acceptance') }}

{{ render_narrative(narrative.blockerExplanation, "finalVerification.userNarrative.blockerExplanation") }}
{% for row in final.acceptanceBlockers %}

{{ row.id | inline_code }} · {{ row.severity }}

{{ row.statement | inline_code }}

{{ t('macros.layout.evidence') }} {{ row.evidence | inline_code }}

{{ t('tasks.final-verification.follow-up') }} {{ row.followUpPhase | inline_code }}

{% else %}

{{ t('tasks.final-verification.nothing-is-holding-acceptance') }}

{% endfor %}

{{ t('tasks.final-verification.residual-risk') }}

{% for row in final.residualRisk %}

{{ row.id | inline_code }}

{{ row.item | inline_code }}

{{ t('tasks.final-verification.owner') }} {{ row.owner | inline_code }}

{{ t('tasks.final-verification.escalation-condition') }} {{ row.escalationTrigger | inline_code }}

{% else %}

{{ t('tasks.final-verification.no-residual-risk-was-recorded') }}

{% endfor %}

{{ t('tasks.final-verification.manual-user-test-results') }}

{% if final.manualUserTest.applicable %}{% for row in final.manualUserTest.results %}

{{ row.target | inline_code }} · {{ row.result }}

{{ row.performed | inline_code }}

{{ row.observed | inline_code }}

{% endfor %}{% else %}

{{ final.manualUserTest.exemptionReaffirm | inline_code }}

{% endif %}

{{ t('tasks.final-verification.what-was-verified') }}

{{ t('tasks.final-verification.implementation-report') }}{{ final.sourceImplementationReport.path }}
{{ t('tasks.final-verification.worktree') }}{{ final.sourceImplementationReport.worktreePath }}
{{ t('tasks.final-verification.base-commit') }}{{ final.sourceImplementationReport.implementationBaseRef }}{{ final.sourceImplementationReport.capturedHeadSha }}
{{ t('tasks.final-verification.diff-summary') }}{{ final.sourceImplementationReport.diffSummaryQuote | inline_code }}
{{ t('tasks.final-verification.uncommitted-state') }}{{ final.sourceImplementationReport.gitStatusShort | inline_code }}
{% if final.get("stageReports") %}

{{ t('tasks.final-verification.per-stage-reports') }}

{% endif %}

{{ t('tasks.final-verification.release-path') }}

{{ render_narrative(narrative.releaseReadiness, "finalVerification.userNarrative.releaseReadiness") }} {% if releaseAllowed %}

{{ final.routingRecommendation.target }} — {{ final.routingRecommendation.rationale | inline_code }}

{% else %}

{{ t('tasks.final-verification.the-current-verdict-does-not-allow-release-h') }}

{% endif %}
{% endblock %}