Décisions en ADR ; plans et feuille de route temporaires

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Pierre MARTIN
2026-11-02 13:23:18 +01:00
co-authored by Claude Opus 5.5
parent 6958accec2
commit d017f3338b
17 changed files with 446 additions and 266 deletions
+36
View File
@@ -0,0 +1,36 @@
#!/usr/bin/env bash
# Vérifie la forme des ADR de docs/adr/ (voir l'ADR 0001) :
# numérotation continue à partir de 0001, titre conforme au numéro, statut
# valide, sections obligatoires, et présence de chaque ADR dans l'index.
set -euo pipefail
cd "$(dirname "$0")/../docs/adr"
erreurs=0
signaler() {
echo "$1"
erreurs=$((erreurs + 1))
}
attendu=1
for f in [0-9][0-9][0-9][0-9]-*.md; do
num="${f%%-*}"
if [ "$((10#$num))" -ne "$attendu" ]; then
signaler "$f : numéro attendu $(printf '%04d' "$attendu")"
fi
attendu=$((10#$num + 1))
head -n1 "$f" | grep -qE "^# $num\. " \
|| signaler "$f : la première ligne doit être « # $num. Titre »"
grep -qE '^- \*\*Statut\*\* : (proposé|accepté|remplacé par [0-9]{4}|obsolète)$' "$f" \
|| signaler "$f : statut absent ou invalide"
grep -qE '^- \*\*Date\*\* : [0-9]{4}-[0-9]{2}-[0-9]{2}$' "$f" \
|| signaler "$f : date absente ou invalide"
for section in Contexte Décision "Alternatives écartées" Conséquences; do
grep -qx "## $section" "$f" || signaler "$f : section « $section » absente"
done
grep -qF "]($f)" README.md || signaler "$f : absent de l'index docs/adr/README.md"
done
[ "$attendu" -gt 1 ] || signaler "aucun ADR trouvé"
[ "$erreurs" -eq 0 ]