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:
co-authored by
Claude Opus 5.5
parent
6958accec2
commit
d017f3338b
Executable
+36
@@ -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 ]
|
||||
Reference in New Issue
Block a user