{% extends "html/base.template.html" %} {% from "html/macros/layout.html" import narrative as render_narrative, summary_card, row_key %} {% from "html/macros/forms.html" import direction_selection %} {# One direction, read top to bottom as what it changes, how, why it ranks where it does, and what the reader should expect afterwards. Every block is a field the writer already fills; the card used to show the goal line and the coverage table and left the mechanism, scores, votes, commitments and invariants in the record only. #} {% macro option_card(row, rank, criteria) -%} {% set extra = cardLinks.get(row.id, {}) %}

#{{ rank }} · {{ row.id | inline_code(extra) }} · {{ t('macros.layout.proposed-by') }} {{ row.proposedBy | inline_code(extra) }}

{{ row.name | inline_code(extra) }}

{{ t('tasks.implementation-option-selection.what-changes') }}

{{ t('tasks.implementation-option-selection.goal') }} {{ row.goal | inline_code(extra) }}

{{ t('tasks.implementation-option-selection.change-areas') }}

{% for item in row.scopeCommitments %}{{ row_key(pairs=[(t('macros.layout.id'), item.id), (t('macros.layout.kind'), item.kind | enum_label('commitmentKind'))]) }}{% endfor %}
{{ t('tasks.implementation-option-selection.commitment') }}{{ t('tasks.implementation-option-selection.commitment-body') }}{{ t('tasks.implementation-option-selection.requirements') }}
{{ item.commitment | inline_code(extra) }}{{ item.requirementIds | join(", ") | inline_code(extra) }}

{{ t('tasks.implementation-option-selection.how-it-works') }}

{{ row.coreMechanism | inline_code(extra) }}

{{ t('tasks.implementation-option-selection.boundaries') }}

{{ t('tasks.implementation-option-selection.why-this-direction') }}

{{ t('tasks.implementation-option-selection.weighted-score') }} {{ row.weightedScore }} / 5

{% for score in row.criterionScores %}{% endfor %}
{{ t('tasks.implementation-option-selection.criterion') }}{{ t('tasks.implementation-option-selection.weight') }}{{ t('tasks.implementation-option-selection.score') }}{{ t('tasks.implementation-option-selection.reason') }}
{{ score.criterion | enum_label('optionCriterion') }}{{ criteria.get(score.criterion, '') }}{{ score.score }}{{ score.rationale | inline_code(extra) }}

{{ t('tasks.implementation-option-selection.feasibility-votes') }}

{% for vote in row.feasibilityVotes %}{{ row_key(pairs=[(t('tasks.implementation-option-selection.worker'), vote.worker)], status_name=t('tasks.implementation-option-selection.verdict'), status_raw=vote.verdict, status_text=vote.verdict | enum_label('feasibilityVerdict')) }}{% endfor %}
{{ t('tasks.implementation-option-selection.worker') }}{{ t('tasks.implementation-option-selection.reason') }}{{ t('tasks.implementation-option-selection.counterevidence') }}
{{ vote.rationale | inline_code(extra) }}{{ vote.counterevidence | inline_code(extra) }}
{% if row.safetyBlockers %}

{{ t('tasks.implementation-option-selection.safety-blockers') }}

{% endif %} {{ unresolved_facts(row, extra) }}

{{ t('tasks.implementation-option-selection.expected-outcome') }}

{{ t('tasks.implementation-option-selection.coverage-line') | replace('{covered}', row.coverageSummary.coveredCount) | replace('{total}', row.coverageSummary.totalCount) | replace('{verdict}', row.coverageSummary.coverageVerdict | enum_label('coverageVerdict')) }}

{{ t('macros.layout.coverage-percent') }} {{ row.coverageSummary.coveragePercent }}% · {{ t('macros.layout.scope-precision-percent') }} {{ row.coverageSummary.scopePrecisionPercent }}%

{% for coverage in row.requirementCoverage %}{{ row_key(pairs=[(t('macros.layout.id'), coverage.requirementId), (t('macros.layout.status'), coverage.status)]) }}{% endfor %}
{{ t('tasks.implementation-option-selection.requirement') }}{{ t('tasks.implementation-option-selection.satisfaction') }}{{ t('tasks.implementation-option-selection.verification') }}
{{ coverage.satisfaction | inline_code(extra) }}{{ coverage.expectedVerification | inline_code(extra) }}
{% if row.planningInvariants %}

{{ t('tasks.implementation-option-selection.planning-invariants') }}

{% endif %}

{{ t('macros.layout.evidence') }} {{ row.codeEvidence | evidence_refs(extra) }}

{%- endmacro %} {% macro unresolved_facts(row, extra) -%} {% if row.unresolvedFeasibilityFacts %}

{{ t('tasks.implementation-option-selection.unresolved-facts') }}

{% endif %} {%- endmacro %} {% block human_content %}

{{ t('tasks.implementation-option-selection.selection-status') }}

{{ t('tasks.implementation-option-selection.mode') }}
{{ selection.mode }}
{{ t('tasks.implementation-option-selection.routing') }}
{{ selection.routing }}
{{ render_narrative(narrative.selectionGuidance, "implementationOptionSelection.userNarrative.selectionGuidance") }} {% if selection.mode == "preselected-validation" %}

{{ t('tasks.implementation-option-selection.preselected-direction') }}

{{ t('tasks.implementation-option-selection.option-id') }}
{{ selection.preselectedDirection.optionId | inline_code }}
{{ t('tasks.implementation-option-selection.direction') }}
{{ selection.preselectedDirection.direction | inline_code }}
{{ t('tasks.implementation-option-selection.confirmation-evidence') }}
{{ selection.preselectedDirection.confirmationEvidence | inline_code }}
{{ t('tasks.implementation-option-selection.citation') }}
{{ selection.preselectedDirection.citation | inline_code }}
{% endif %}
{% if directionSelection %}{{ direction_selection(directionSelection) }}{% endif %}

{{ t('tasks.implementation-option-selection.original-requirements') }}

{{ humanSummary.outcome | inline_code }}

{{ render_narrative(narrative.comparisonOverview, "implementationOptionSelection.userNarrative.comparisonOverview") }}

{{ t('tasks.implementation-option-selection.requirement-ids') }} {{ selection.decisionContext.originalRequirementIds | join(", ") | inline_code }}

{% if selection.decisionContext.leadingCauseRefs %}

{{ t('tasks.implementation-option-selection.leading-causes') }} {{ selection.decisionContext.leadingCauseRefs | join(", ") | inline_code }}

{% endif %} {% if selection.decisionContext.upstreamDecisionRefs %}

{{ t('tasks.implementation-option-selection.upstream-decisions') }} {{ selection.decisionContext.upstreamDecisionRefs | join(", ") | inline_code }}

{% endif %}

{{ t('tasks.implementation-option-selection.evaluation-criteria') }}

{{ t('tasks.implementation-option-selection.evaluation-criteria-intro') }}

{% for criterion in selection.evaluationCriteria %}{% endfor %}
{{ t('tasks.implementation-option-selection.criterion') }}{{ t('tasks.implementation-option-selection.weight') }}{{ t('tasks.implementation-option-selection.why-it-matters') }}
{{ criterion.criterion | enum_label('optionCriterion') }}{{ criterion.weight }}{{ criterion.rationale | inline_code }}

{{ t('tasks.implementation-option-selection.ranked-options') }}

{{ render_narrative(narrative.rankingExplanation, "implementationOptionSelection.userNarrative.rankingExplanation") }}
{% for row in selection.rankedOptions %}{{ option_card(row, loop.index, criteriaWeights) }}{% else %}

{{ t('tasks.implementation-option-selection.no-valid-options') }}

{% endfor %}

{{ t('tasks.implementation-option-selection.recommended-direction') }}

{% if recommendedOption %}{{ summary_card(recommendedOption.id ~ " · " ~ recommendedOption.name, recommendedOption.goal ~ " " ~ recommendedOption.coreMechanism, "important") }}{% else %}

{{ t('tasks.implementation-option-selection.no-recommendation') }}

{% endif %}

{{ t('tasks.implementation-option-selection.candidate-audit') }}

{% for row in selection.candidateAudit %}{{ row_key(pairs=[(t('macros.layout.id'), row.id), (t('macros.layout.proposed-by'), row.proposedBy)]) }}{% else %}{% endfor %}
{{ t('tasks.implementation-option-selection.candidate') }}{{ t('tasks.implementation-option-selection.goal-column') }}{{ t('tasks.implementation-option-selection.disposition') }}{{ t('tasks.implementation-option-selection.reason') }}{{ t('macros.layout.coverage-percent') }}{{ t('macros.layout.scope-precision-percent') }}
{{ row.goal | inline_code(cardLinks.get(row.id, {})) }}{% if row.get("scopeCommitments") %}
    {% for item in row.scopeCommitments %}
  • {{ item.id | inline_code(cardLinks.get(row.id, {})) }} · {{ item.commitment | inline_code(cardLinks.get(row.id, {})) }}
  • {% endfor %}
{% endif %}
{{ row.disposition }}{% if row.mergedInto %} → {{ row.mergedInto | inline_code }}{% endif %}{{ row.reason | inline_code }}{{ unresolved_facts(row, cardLinks.get(row.id, {})) }}{{ row.coverageSummary.coveragePercent }}{{ row.coverageSummary.scopePrecisionPercent }}
{{ t('tasks.implementation-option-selection.no-audit-entries') }}
{% endblock %}