{% include "_header.html" %}

📦 {{ repo_info.name }}

{{ owner }} · {{ repo_info.description or 'Aucune description dans Gitea.' }}

{% if health_dot %} Santé du flux {% endif %}
📋 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 %}
{{ ms.closed }}/{{ ms.total }} terminées{% if ms.eta_label %} · 🔮 {{ ms.eta_label }}{% endif %}
{% else %}
Aucune issue dans ce jalon pour le moment.
{% endif %}
{% endfor %} {% else %}

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 }}
{% if health.zombies %}
    {% for z in health.zombies[:5] %}
  • #{{ z.number }} {{ z.title }} · {{ z.column_label }} · {{ z.days_inactive }} j
  • {% endfor %}
{% endif %}

Détail de la santé →

{% else %}

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 }}
{% else %}

Pas assez d'historique de fermetures pour prévoir — le journal se remplit au fil des cartes terminées.

{% endif %}

Toutes les prévisions →

🕘 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 %}
{% else %}

Aucun événement du journal pour ce projet pour le moment.

{% endif %}

Journal complet →

📝 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 %}

Ouvrir le board pour éditer →

{% include "_palette.html" %}