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

{{ t('tasks.change-impact-analysis.change-overview') }}

{{ render_narrative(narrative.changeExplanation, "changeImpactAnalysis.userNarrative.changeExplanation") }}

{{ change.changeRequest.summary | inline_code }}

{{ t('tasks.change-impact-analysis.what-the-change-touches-and-where-it-stops') }}

{{ render_narrative(narrative.impactExplanation, "changeImpactAnalysis.userNarrative.impactExplanation") }}

{{ t('tasks.change-impact-analysis.what-it-touches') }}

{% for row in change.impactItems %}{{ summary_card(row.id ~ " · " ~ row.target, row.impactKind ~ " / " ~ t('macros.layout.impact') ~ " " ~ row.level ~ " / " ~ t('macros.layout.confidence') ~ " " ~ row.confidence, anchor=row.id) }}{% endfor %}

{{ t('tasks.change-impact-analysis.where-the-change-stops') }}

{{ render_narrative(narrative.unaffectedExplanation, "changeImpactAnalysis.userNarrative.unaffectedExplanation") }}

{{ t('tasks.change-impact-analysis.blast-radius') }}

{{ figure(blastRadiusFigure) }}

{{ t('tasks.change-impact-analysis.tests-operations-compatibility') }}

{{ t('tasks.change-impact-analysis.compatibility') }}

{{ t('tasks.change-impact-analysis.migration') }}

{{ t('tasks.change-impact-analysis.rollback') }}

{{ t('tasks.change-impact-analysis.security-and-performance') }}

{{ t('tasks.change-impact-analysis.plan-readiness') }}

{{ render_narrative(narrative.planningReadiness, "changeImpactAnalysis.userNarrative.planningReadiness") }}

{{ t('tasks.change-impact-analysis.behaviour-that-must-not-change') }}

{% for row in change.preservedBehaviors %}{% else %}{% endfor %}
{{ t('tasks.change-impact-analysis.body') }}{{ t('tasks.change-impact-analysis.evidence') }}
{{ row.statement | inline_code }}{{ row.currentCodeEvidence | code_evidence }}
{{ t('tasks.change-impact-analysis.no-behaviour-is-pinned') }}

{{ t('tasks.change-impact-analysis.what-this-does-to-the-tests') }}

{% for row in change.testImpact %}{% else %}{% endfor %}
{{ t('tasks.change-impact-analysis.scope') }}{{ t('tasks.change-impact-analysis.action-needed') }}{{ t('tasks.change-impact-analysis.tests-targeted') }}{{ t('tasks.change-impact-analysis.evidence') }}
{{ row.scope | inline_code }}{{ row.action | inline_code }}{% for path in row.testPaths %}{{ path }}{% if not loop.last %} {% endif %}{% endfor %}{{ row.currentCodeEvidence | code_evidence }}
{{ t('tasks.change-impact-analysis.no-test-is-affected') }}

{{ t('tasks.change-impact-analysis.what-this-does-to-operations') }}

{% for row in change.operationalImpact %}{% else %}{% endfor %}
{{ t('tasks.change-impact-analysis.area') }}{{ t('tasks.change-impact-analysis.impact') }}{{ t('tasks.change-impact-analysis.evidence') }}
{{ row.area | inline_code }}{{ row.impact | inline_code }}{{ row.currentCodeEvidence | code_evidence }}
{{ t('tasks.change-impact-analysis.there-is-no-operational-impact') }}
{{ analysis_review(analysisReviewIds) }} {% endblock %}