5.5 KiB
Delta 0.0.5-alpha.3.fix.1 — couverture des tables dans les exemples Markdown fenced
Baseline et version
Baseline attendue : commit opérateur de 0.0.5-alpha.3, réalisé après application de history/0.0.5/alpha.3.md avec statut FAIL.
Le hash de ce commit n'est pas anticipé.
Version avant application :
0.0.5-alpha.3
Version après application :
0.0.5-alpha.3.fix.1
Objet
Corriger le faux négatif découvert pendant la gate opérateur de alpha.3 : audit_markdown_tables.py ignorait toutes les tables placées dans des blocs fenced, y compris les exemples explicitement markdown du template 004-FILE_FAMILY_CONTRACTS.md.
Le fix étend uniquement le contrat de l'audit de tables. Il ne transforme pas l'audit en analyseur général des blocs de code et n'introduit aucun contenu de la tranche Rust alpha.4.
Scope
REPLACE :
VERSION
scripts/audit_markdown_tables.py
docs/templates/004-FILE_FAMILY_CONTRACTS.md
docs/validation/001-VALIDATION_MATRIX.md
ADD :
tests/test_markdown_tables.py
deltas/0.0.5/alpha.3.fix.1.md
DELETE : aucun.
Le history history/0.0.5/alpha.3.md appartient au commit baseline du FAIL et n'est pas inclus dans l'archive du fix.
Correction
scripts/audit_markdown_tables.py passe en révision interne 2.
L'audit continue de contrôler les tables Markdown ordinaires. Dans un bloc fenced :
- une fence explicitement
markdownest auditée ; - une fence explicitement
mdest auditée ; - une fence d'un autre langage ou sans langage reste ignorée.
Cette frontière évite les faux positifs sur les sorties terminal, extraits de code ou tableaux ASCII qui utilisent éventuellement des pipes sans être du Markdown à gouverner.
tests/test_markdown_tables.py verrouille quatre cas :
- table ordinaire et table fenced Markdown valides toutes deux comptées ;
- table mal alignée dans une fence
markdownrejetée ; - alias
mdaudité ; - fence non Markdown conservée hors scope.
docs/templates/004-FILE_FAMILY_CONTRACTS.md passe en révision 2 et réaligne les deux tables fenced révélées par le nouvel audit.
docs/validation/001-VALIDATION_MATRIX.md passe en révision 10 et explicite la frontière de PGR-MD-TABLE-001.
Validation opérateur
Après application du history FAIL, commit de alpha.3, puis application du présent delta :
test "$(cat VERSION)" = '0.0.5-alpha.3.fix.1'
test -f history/0.0.5/alpha.3.md
test -f deltas/0.0.5/alpha.3.md
test -f deltas/0.0.5/alpha.3.fix.1.md
test -f tests/test_markdown_tables.py
test ! -e history/0.0.5/alpha.3.fix.1.md
grep -A2 '^## Statut$' history/0.0.5/alpha.3.md | grep -Fx 'FAIL'
grep -Fx '# version: 2' scripts/audit_markdown_tables.py
grep -Fx '<!-- version: 2 -->' docs/templates/004-FILE_FAMILY_CONTRACTS.md
grep -Fx '<!-- version: 10 -->' docs/validation/001-VALIDATION_MATRIX.md
grep -Fx '# version: 1' tests/test_markdown_tables.py
python3 -B -m unittest discover -s tests -p 'test_markdown_tables.py' -v
python3 -B -m unittest discover -s tests -v
python3 -B scripts/audit_markdown_headers.py \
README.md RULES.md ROADMAP.md CHANGELOG.md docs deltas history prompts
python3 -B scripts/audit_markdown_tables.py \
README.md RULES.md ROADMAP.md CHANGELOG.md docs deltas history prompts
python3 -B scripts/audit_markdown_links.py \
README.md RULES.md ROADMAP.md CHANGELOG.md docs deltas history prompts
python3 -B scripts/audit_markdown_tables.py docs/templates/004-FILE_FAMILY_CONTRACTS.md
python3 -B - <<'PY'
from pathlib import Path
import re
history = Path('history/0.0.5/alpha.3.md').read_text(encoding='utf-8')
assert re.search(r'## Statut\s+FAIL\s', history)
script = Path('scripts/audit_markdown_tables.py').read_text(encoding='utf-8')
assert '_MARKDOWN_FENCE_LANGUAGES = frozenset({"markdown", "md"})' in script
assert 'audit_fenced_markdown' in script
template = Path('docs/templates/004-FILE_FAMILY_CONTRACTS.md').read_text(encoding='utf-8')
assert template.count('```markdown') == 2
matrix = Path('docs/validation/001-VALIDATION_MATRIX.md').read_text(encoding='utf-8')
assert 'fences explicitement `markdown` ou `md`' in matrix
assert 'sorties terminal' in matrix
print('0.0.5 alpha.3.fix.1 fenced Markdown table audit: clean (regression covered, two template examples governed)')
PY
git diff --check
git add VERSION scripts/audit_markdown_tables.py tests/test_markdown_tables.py \
docs/templates/004-FILE_FAMILY_CONTRACTS.md \
docs/validation/001-VALIDATION_MATRIX.md \
deltas/0.0.5/alpha.3.fix.1.md
git diff --cached --check
git status --short
La sortie Git attendue avant ajout du history du fix est exactement :
M VERSION
A deltas/0.0.5/alpha.3.fix.1.md
M docs/templates/004-FILE_FAMILY_CONTRACTS.md
M docs/validation/001-VALIDATION_MATRIX.md
M scripts/audit_markdown_tables.py
A tests/test_markdown_tables.py
Le contrôle ciblé du template doit désormais compter ses deux exemples :
Markdown table audit: clean (2 table(s), 1 file(s))
La suite Python doit compter 19 tests si aucun autre test n'est ajouté localement avant exécution.
Transition
PASS
Créer et appliquer séparément history/0.0.5/alpha.3.fix.1.md, committer et pousser le fix, puis reprendre le plan 0.0.5 à alpha.4.
FAIL
Rester dans 0.0.5-alpha.3.fix.M. Le scope MUST rester limité au contrat de PGR-MD-TABLE-001 et aux tables révélées par ce contrôle tant qu'aucun défaut plus large ne justifie un REPLAN.