{% extends "base.html" %} {% block title %}{{ phase.key }}{% endblock %} {% block body %}
closed {{ phase.closed }}{% if summary.first_dispatch %} · worked {{ summary.first_dispatch }} → {{ phase.closed }}{% endif %} · {{ summary.tasks_done }} of {{ summary.tasks_total }} tasks done{% if summary.has_records %} · {{ summary.prs_merged }} PR(s) merged · spent ${{ '%.2f' % spent }}{% else %} · no run records for this phase{% endif %}
{% if retro_verdict.accepted_by %}accepted by {{ retro_verdict.accepted_by }}{% if retro_verdict.accepted_at %} at {{ retro_verdict.accepted_at }}{% endif %}{% else %}recorded {{ retro_verdict.at }}{% endif %}{% if retro_verdict.note %} · {{ retro_verdict.note }}{% endif %}{% if retro_verdict.pr %} · retro PR ↗{% endif %}
{% if retro_verdict.tasks %}| task | kind | status | title |
|---|---|---|---|
| {{ t.id }} | {{ t.kind }} | {{ t.status.replace('_',' ') }} | {{ t.title }} |
{{ r.overall }}
{% endif %} {% if r.highs %}| tasks done | PRs merged | revise rounds | avg lead | first pass | cost | dates |
|---|---|---|---|---|---|---|
| {{ summary.tasks_done }} / {{ summary.tasks_total }} | {% if summary.has_records %}{{ summary.prs_merged }}{% else %}—{% endif %} | {{ summary.revisions }} | {% if summary.avg_lead_hours is not none %}{{ summary.avg_lead_hours }} h{% endif %} | {% if summary.first_pass_rate is not none %}{{ (summary.first_pass_rate * 100)|round|int }}%{% endif %} | {% if summary.has_records %}${{ '%.2f' % spent }}{% else %}—{% endif %} | {% if summary.first_dispatch %}{{ summary.first_dispatch }} → {% endif %}{{ phase.closed }} |
this phase predates run records: PRs merged and cost are not available
{% endif %} {% if metrics.by_difficulty %}| tier | tasks | done | avg rev | first-pass | cost |
|---|---|---|---|---|---|
| {{ tier }} | {{ d.tasks }} | {{ d.done }} | {{ d.avg_revisions }} | {% if d.first_pass_rate is not none %}{{ (d.first_pass_rate * 100)|round|int }}%{% endif %} | ${{ '%.2f' % d.cost_usd }} |
| pr | task | title | tier | merged |
|---|---|---|---|---|
| #{{ row.number }} | {{ row.t.id }} | {{ row.t.title }} | {{ row.t.difficulty }} | {{ row.merged }} |
| no merged PRs recorded | ||||
| #{{ row.t.pr.rsplit('/', 1)[-1] }} | {{ row.t.id }} | {{ stage(row.t.status.value, 18) }}{{ row.t.status.value.replace('_',' ') }} | {{ row.why }} |
| id | status | tier | title | pr | cost |
|---|---|---|---|---|---|
| {{ t.id }} | {{ stage(eff, 18) }}{{ eff.replace('_',' ') }} | {{ t.difficulty }} | {{ t.title }} | {% if t.pr %}#{{ t.pr.rsplit('/', 1)[-1] }}{% endif %} | {% if u.runs %}${{ '%.2f' % u.cost_usd }}{% endif %} |
| no tasks | |||||