⚙️ Règles d'automatisation
Des réflexes déclaratifs, évalués toutes les 15 minutes par le planificateur (et à la demande ci-dessous). Chaque action est journalisée comme événement rule. Garde-fou v1 : une règle ne peut ni fermer ni déplacer une carte entre colonnes — seulement étiqueter, notifier (ntfy) et remonter en tête de colonne.
Aucune règle configurée. Définis KANBANTE_RULES en JSON, par exemple :
[{"name": "Relance révision",
"when": {"column": "review", "min_age_days": 3},
"then": {"notify": true}},
{"name": "Urgent qui vieillit",
"when": {"column": "in_progress", "min_age_days": 7},
"then": {"add_label": "urgent"}}]
Conditions : column, min_age_days (temps dans la colonne), label (présente), wip_over (colonne au-delà de N cartes). Actions : add_label, notify, move_top.
⚠️ {{ err }}
{% endfor %}
📜 Règles actives ({{ rules|length }})
-
{% for rule in rules %}
- {{ rule.name }} — quand
{% for k, v in rule.when.items() %}
{{ k }} = {{ v }}{% if not loop.last %}, {% endif %}{% endfor %} → {% for k, v in rule.then.items() %}{{ k }}{% if v is not boolean %} = {{ v }}{% endif %}{% if not loop.last %}, {% endif %}{% endfor %}
{% endfor %}
🕐 Dernière évaluation — {{ last_run.at }}
{% if last_run.actions %}-
{% for action in last_run.actions %}
- {{ action.rule }} : {{ action.repo }} #{{ action.number }} ({{ action.column }}) — {{ action.did|join(', ') }} {% endfor %}
Aucune action déclenchée.
{% endif %}