📦 {{ repo_info.name }}
{{ owner }} · {{ repo_info.description or 'Aucune description dans Gitea.' }}
📋 Ouvrir le board
⚡ Capture
📥 Triage
🩺 Santé
🔮 Prévisions
🖥️ Wallboard
{% if repo_info.html_url %}
🔗 Gitea ↗
{% endif %}
🎯 Jalons ouverts
{% if milestones %} {% for ms in milestones %}
{{ ms.title }}
{% if ms.due_label %}{{ '⚠️ ' if ms.late }}échéance {{ ms.due_label }}{% endif %}
{% if ms.total %}
{% else %}
{% endif %}
Aucun jalon ouvert. Les jalons se créent dans Gitea — le board et le récit de sprint s'appuient dessus.
{% endif %}🩺 Santé du flux
{% if health %}- 📂 {{ health.open_count }} cartes ouvertes {% if health.slowest %}
- 🐢 Goulot : {{ COLUMN_LABELS[health.slowest.column] }} — séjour médian {{ health.slowest.median_days }} j {% else %}
- 🐢 Pas encore de goulot mesurable (historique trop court). {% endif %}
- 🧟 Zombies (≥ {{ health.zombie_days }} j sans activité) : {{ health.zombies|length }}
-
{% for z in health.zombies[:5] %}
- #{{ z.number }} {{ z.title }} · {{ z.column_label }} · {{ z.days_inactive }} j {% endfor %}
Santé indisponible pour le moment.
{% endif %}🔮 Prévisions
{% if throughput %}- Débit : {{ throughput.avg }} fermetures / semaine en moyenne (min {{ throughput.min }} · max {{ throughput.max }}, 4 dernières semaines complètes)
- Issues ouvertes : {{ repo_info.open_issues_count or 0 }}
Pas assez d'historique de fermetures pour prévoir — le journal se remplit au fil des cartes terminées.
{% endif %}🕘 Activité récente
{% if events %}-
{% for e in events %}
- {{ EVENT_ICONS.get(e.event_type, '•') }} #{{ e.issue_number }} — {{ e.event_type }}{% if e.to_column %} → {{ COLUMN_LABELS.get(e.to_column, e.to_column) }}{% endif %} · {{ e.created_at[:16].replace('T', ' ') }} {% endfor %}
Aucun événement du journal pour ce projet pour le moment.
{% endif %}📝 Notes du projet
{% if notes %}{{ notes }}
{% else %}
Aucune note. Les notes s'écrivent depuis le panneau « 🗒️ Notes » du board et vivent avec le projet.
{% endif %}