Files
sasedev-knowledge/deltas/0.0.2/alpha.1.fix.1.md

5.9 KiB

Delta 0.0.2-alpha.1.fix.1 — restructuration du plan de release

Base requise

Partir de l'état 0.0.2-alpha.1 après application et commit du history :

deltas/0.0.2/alpha.1.md          présent et historique
history/0.0.2/alpha.1.md         FAIL

Le delta alpha.1 historique ne doit pas être réécrit.

La version devient :

0.0.2-alpha.1.fix.1

Objet

Corriger uniquement le défaut documentaire observé pendant la revue d'alpha.1 :

  • réaligner le plan 0.0.2 sur le patron de pilotage éprouvé par le plan 0.0.1 ;
  • replacer toutes les tranches sous ## Trajectoire prévisionnelle avec des titres ### ;
  • restaurer un ## Scope global distinct du ## Hors scope ;
  • ajouter ## État acquis et questions ouvertes ;
  • ajouter ## Déclencheurs de REPLAN ;
  • ajouter ## Revue d'horizon ;
  • ordonner les sections de manière cohérente avec la fondation ;
  • ajouter une gate explicite empêchant une nouvelle dérive structurelle du plan.

Le fix ne change ni le choix du backend git, ni l'ownership de knowledge-git-lib, ni le layout mirror/snapshot, ni le scope fonctionnel prévu de 0.0.2.

Aucun code fonctionnel n'est ajouté.

Scope

REPLACE :

VERSION
Cargo.toml
docs/plans/002-V0_0_2_GIT_SYNC_PLAN.md
docs/validation/001-VALIDATION_MATRIX.md

ADD :

deltas/0.0.2/alpha.1.fix.1.md

DELETE : aucun.

Le history history/0.0.2/alpha.1.md doit déjà être présent dans la base mais n'est pas inclus dans ce delta.

Aucun fichier sous crates/ ou Web/ n'est modifié.

Structure attendue du plan

Le plan doit présenter, dans cet ordre :

## Statut et sources
## Mission
## État acquis et questions ouvertes
## Scope
## Hors scope
## Stratégie de validation
## Trajectoire prévisionnelle
### alpha.1 — ...
### alpha.2 — ...
### alpha.3 — ...
### alpha.4 — ...
### beta.1 — ...
### rc.1 — ...
### rel.1 — ...
## Déclencheurs de REPLAN
## Clôture et transition
## Revue d'horizon

Les détails des tranches restent des forecasts et ne doivent pas être confondus avec le scope global de la release.

Gate opérateur

Après application du history alpha.1, commit/push de cet état, puis application du présent delta :

test "$(cat VERSION)" = '0.0.2-alpha.1.fix.1'
grep -F 'version = "0.0.2-alpha.1.fix.1"' Cargo.toml

grep -A2 '^## Statut$' history/0.0.2/alpha.1.md | grep -Fx 'FAIL'

git diff --check

python3 - <<'PY'
from pathlib import Path
import re

path = Path("docs/plans/002-V0_0_2_GIT_SYNC_PLAN.md")
text = path.read_text(encoding="utf-8")
lines = text.splitlines()

assert lines[0] == "<!-- file: docs/plans/002-V0_0_2_GIT_SYNC_PLAN.md -->"
assert lines[1] == "<!-- version: 2 -->"

required_h2 = [
    "## Statut et sources",
    "## Mission",
    "## État acquis et questions ouvertes",
    "## Scope",
    "## Hors scope",
    "## Stratégie de validation",
    "## Trajectoire prévisionnelle",
    "## Déclencheurs de REPLAN",
    "## Clôture et transition",
    "## Revue d'horizon",
]
positions = [lines.index(heading) for heading in required_h2]
assert positions == sorted(positions), positions

trajectory_start = lines.index("## Trajectoire prévisionnelle")
replan_start = lines.index("## Déclencheurs de REPLAN")
trajectory = lines[trajectory_start + 1:replan_start]

for phase in ("alpha.1", "alpha.2", "alpha.3", "alpha.4", "beta.1", "rc.1", "rel.1"):
    assert any(line.startswith(f"### {phase} — ") for line in trajectory), phase

for line in lines:
    assert re.fullmatch(r"## (?:alpha|beta|rc|rel)\\..*", line) is None, line

for phrase in (
    "0.0.2-alpha.1` est `FAIL`",
    "alpha.1.fix.1",
    "REPLAN obligatoire si",
    "État courant : **non réalisée**.",
    "Aucune version postérieure à `0.0.2` n'est réservée",
):
    assert phrase in text, phrase

print("Knowledge 0.0.2-alpha.1.fix.1 plan structure audit: clean")
PY

python3 -B scripts/audit_rust_test_layout.py crates
python3 -B scripts/audit_rust_blank_lines.py crates
python3 -B scripts/audit_rust_item_spacing.py crates
python3 -B scripts/audit_rust_module_order.py crates
python3 -B scripts/audit_rust_trait_import_blocks.py crates
python3 -B scripts/audit_rust_reexport_blocks.py crates
python3 -B scripts/audit_rust_export_completeness.py --root . --summary-only

cargo fmt --all -- --check
cargo metadata --format-version 1 --no-deps
cargo check --workspace
cargo clippy --workspace --all-targets --all-features -- -D warnings
cargo test --workspace --all-targets --all-features

(
  cd Web/knowledge-template-lab
  npm ci
  npm run typecheck
  npm run build
)

git diff --name-only -- crates Web

git add -A
git diff --cached --check
git status --short

Attendus spécifiques :

  • Knowledge 0.0.2-alpha.1.fix.1 plan structure audit: clean ;
  • git diff --name-only -- crates Web vide ;
  • aucun history/0.0.2/alpha.1.fix.1.md avant réception des résultats opérateur ;
  • aucun changement de comportement Git ou Web.

Les warnings Sass déjà observés dans Bootstrap ne constituent pas à eux seuls un FAIL si npm run build reste PASS.

Revue opérateur complémentaire

Vérifier que :

  • le plan se lit d'abord au niveau release (Mission, Scope, Hors scope) puis au niveau tranches sous Trajectoire prévisionnelle ;
  • les déclencheurs de REPLAN sont suffisamment explicites pour empêcher l'élargissement silencieux d'une tranche ;
  • les questions ouvertes restent différées jusqu'à la tranche qui les consomme ;
  • la revue d'horizon ne pré-réserve pas de version suivante ;
  • aucune décision technique validée par l'étude Git n'a été changée par simple restructuration documentaire.

Transition

PASS

Produire history/0.0.2/alpha.1.fix.1.md, appliquer ce history, committer/pousser le fix, puis seulement préparer 0.0.2-alpha.2.

FAIL / PARTIAL / BLOCKED

Conserver le résultat réel dans history/0.0.2/alpha.1.fix.1.md et rester dans le scope alpha.1 avec alpha.1.fix.2 si nécessaire.