Files
sasedev-knowledge/deltas/0.0.3/rc.1.fix.1.md
2026-09-29 18:08:50 +02:00

5.5 KiB

Delta 0.0.3-rc.1.fix.1 — correction de la vérification des statuts historiques

Base requise

État 0.0.3-rc.1 committé et poussé après application du history :

history/0.0.3/rc.1.md = FAIL

La version devient :

0.0.3-rc.1.fix.1

Objet

Corriger uniquement l'assertion de validation qui a fait échouer rc.1 alors que le history alpha.1 porte bien sémantiquement le statut PARTIAL.

Le fichier historique history/0.0.3/alpha.1.md n'est pas modifié. Sa représentation `PARTIAL` reste une preuve historique valide.

Aucune fonctionnalité Git, Web, PostgreSQL, forge, auth ou workflow produit n'est ajoutée.

Scope

La tranche remplace uniquement :

VERSION
Cargo.toml
README.md
docs/plans/003-V0_0_3_GIT_WRITE_PLAN.md
docs/validation/001-VALIDATION_MATRIX.md

et ajoute :

deltas/0.0.3/rc.1.fix.1.md

Aucun fichier n'est supprimé. crates/, Web/, CHANGELOG.md, ROADMAP.md, docs/architecture/, docs/studies/, docs/rules/, prompts/ et tous les histories antérieurs sont gelés.

Gate opérateur

Exécuter directement dans le shell interactif.

test "$(cat VERSION)" = '0.0.3-rc.1.fix.1'
grep -F 'version = "0.0.3-rc.1.fix.1"' Cargo.toml
grep -A2 '^## Statut$' history/0.0.3/rc.1.md | grep -Fx 'FAIL'

git diff --check

python3 -B scripts/audit_markdown_headers.py README.md RULES.md ROADMAP.md CHANGELOG.md docs prompts deltas history
python3 -B scripts/audit_markdown_links.py README.md RULES.md ROADMAP.md CHANGELOG.md docs prompts deltas history
python3 -B scripts/audit_markdown_tables.py README.md RULES.md ROADMAP.md CHANGELOG.md docs prompts deltas history

cargo fmt --all
cargo fmt --all -- --check

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_crate_root_facades.py crates
python3 -B scripts/audit_rust_export_completeness.py --root . --summary-only

cargo metadata --format-version 1 --no-deps > /tmp/sasedev-knowledge-0.0.3-rc.1.fix.1-metadata.json
cargo check --workspace
cargo clippy --workspace --all-targets --all-features -- -D warnings
cargo test -p knowledge-git-lib --test git_read_path
cargo test -p knowledge-git-lib --test git_write_candidate
cargo test -p knowledge-git-lib --test git_write_push
cargo test --workspace --all-targets --all-features

Contrôles spécifiques courts

Chaque commande est indépendante.

sed -n '/^## Statut$/{n;n;p;q;}' history/0.0.3/alpha.1.md | tr -d '`' | grep -Fx 'PARTIAL'
sed -n '/^## Statut$/{n;n;p;q;}' history/0.0.3/alpha.1.fix.1.md | tr -d '`' | grep -Fx 'PARTIAL'
sed -n '/^## Statut$/{n;n;p;q;}' history/0.0.3/alpha.1.fix.2.md | tr -d '`' | grep -Fx 'PASS'
sed -n '/^## Statut$/{n;n;p;q;}' history/0.0.3/alpha.2.md | tr -d '`' | grep -Fx 'PASS'
sed -n '/^## Statut$/{n;n;p;q;}' history/0.0.3/alpha.3.md | tr -d '`' | grep -Fx 'FAIL'
sed -n '/^## Statut$/{n;n;p;q;}' history/0.0.3/alpha.3.fix.1.md | tr -d '`' | grep -Fx 'PASS'
sed -n '/^## Statut$/{n;n;p;q;}' history/0.0.3/alpha.4.md | tr -d '`' | grep -Fx 'PASS'
sed -n '/^## Statut$/{n;n;p;q;}' history/0.0.3/beta.1.md | tr -d '`' | grep -Fx 'PASS'
sed -n '/^## Statut$/{n;n;p;q;}' history/0.0.3/rc.1.md | tr -d '`' | grep -Fx 'FAIL'

test "$(find history/0.0.3 -maxdepth 1 -type f -name '*.md' | wc -l)" -eq 9
test "$(find deltas/0.0.3 -maxdepth 1 -type f -name '*.md' | wc -l)" -eq 10
test ! -e history/0.0.3/rc.1.fix.1.md

grep -F '## 0.0.3 (candidate)' CHANGELOG.md
grep -F -- '- `( ) 0.0.3` — écriture Git contrôlée et push gardé' ROADMAP.md
grep -F -- '- `(h) 0.0.4` — fondation PostgreSQL partagée' ROADMAP.md
test -f prompts/004-V0_0_4_START_PROMPT.md

test -z "$(git diff --name-only -- crates Web CHANGELOG.md ROADMAP.md docs/architecture docs/studies docs/rules prompts history)"

Vérifier l'hygiène texte :

python3 -c 'from pathlib import Path; roots=[Path("README.md"),Path("RULES.md"),Path("ROADMAP.md"),Path("CHANGELOG.md"),Path("docs"),Path("prompts"),Path("deltas"),Path("history")]; paths=[p for r in roots for p in ([r] if r.is_file() else r.rglob("*")) if p.is_file()]; bad=[str(p) for p in paths if (lambda b: b"\r" in b or not b.endswith(b"\n") or b.endswith(b"\n\n") or any(line != line.rstrip(" \t") for line in b.decode("utf-8").splitlines()))(p.read_bytes())]; print(f"Knowledge 0.0.3-rc.1.fix.1 text hygiene: clean ({len(paths)} file(s))") if not bad else (_ for _ in ()).throw(AssertionError(bad))'

Puis :

test -f Cargo.lock
git check-ignore -q Cargo.lock

if git ls-files --error-unmatch Cargo.lock >/dev/null 2>&1; then
    echo 'Cargo.lock must remain untracked for Knowledge' >&2
    exit 1
fi

test -f Web/knowledge-template-lab/package-lock.json

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

Le staging attendu est limité à :

M  Cargo.toml
M  README.md
M  VERSION
A  deltas/0.0.3/rc.1.fix.1.md
M  docs/plans/003-V0_0_3_GIT_WRITE_PLAN.md
M  docs/validation/001-VALIDATION_MATRIX.md

Transition

PASS

Produire history/0.0.3/rc.1.fix.1.md, l'appliquer, commit/push 0.0.3-rc.1.fix.1, puis préparer 0.0.3-rel.1 comme promotion mécanique stable pré-tag.

FAIL

Produire le history exact puis un nouveau fix RC strictement borné au défaut observé. Ne pas promouvoir rel.1 tant que la RC corrigée n'est pas PASS.