Files
sasedev-knowledge/deltas/0.0.3/rel.1.fix.1.md
2026-09-29 19:00:14 +02:00

4.3 KiB

Delta 0.0.3 rel.1.fix.1 — complétion de la preuve de clôture stable

Baseline et version

Baseline : 0.0.3-rel.1 avec history/0.0.3/rel.1.md appliqué, committé et poussé avec le statut PARTIAL.

Ce delta MUST NOT être appliqué avant ce commit.

Version produit avant et après application :

0.0.3

rel.1.fix.1 est une tranche opérationnelle de clôture ; elle ne change pas la version SemVer stable visée.

Objet

Compléter uniquement les deux preuves absentes du transcript rel.1 :

  • audit explicite de l'ensemble exact du workspace à partir de cargo metadata ;
  • audit explicite d'hygiène texte.

Toutes les preuves produit/runtime de rel.1 — Rust, Git, Web, Vite et trois smokes HTTP — sont déjà PASS et sont conservées dans son history. Ce fix ne modifie aucun fichier concerné par ces preuves.

Scope

REPLACE :

docs/plans/003-V0_0_3_GIT_WRITE_PLAN.md
docs/validation/001-VALIDATION_MATRIX.md

ADD :

deltas/0.0.3/rel.1.fix.1.md

DELETE : aucun.

Aucun changement sous VERSION, Cargo.toml, crates/, Web/, CHANGELOG.md, ROADMAP.md, docs/architecture/, docs/studies/, docs/rules/ ou prompts/.

Gate opérateur

Exécuter depuis la racine du dépôt :

test "$(cat VERSION)" = '0.0.3'
grep -F 'version = "0.0.3"' Cargo.toml
sed -n '/^## Statut$/{n;n;p;q;}' history/0.0.3/rel.1.md | tr -d '`' | grep -Fx 'PARTIAL'

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 metadata --format-version 1 --no-deps > /tmp/sasedev-knowledge-0.0.3-rel.1.fix.1-metadata.json

python3 -c 'import json; from pathlib import Path; m=json.loads(Path("/tmp/sasedev-knowledge-0.0.3-rel.1.fix.1-metadata.json").read_text()); expected={"knowledge-app-lib","knowledge-domain-lib","knowledge-git-api","knowledge-git-lib","knowledge-sync-api","knowledge-web-lib","knowledge-pgr-server","knowledge-howtos-server","knowledge-snippets-server"}; assert {p["name"] for p in m["packages"]} == expected; assert len(m["workspace_members"]) == 9; print("Knowledge 0.0.3-rel.1.fix.1 workspace audit: clean")'

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-rel.1.fix.1 text hygiene: clean ({len(paths)} file(s))") if not bad else (_ for _ in ()).throw(AssertionError(bad))'

test -z "$(git diff --name-only -- VERSION Cargo.toml crates Web CHANGELOG.md ROADMAP.md docs/architecture docs/studies docs/rules prompts)"
test ! -e history/0.0.3/rel.1.fix.1.md

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 show-ref --verify --quiet refs/tags/v0.0.3
test ! -e sasedev-knowledge-0.0.3-publish.001-report.md

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

Staging attendu

Avant ajout du history de ce fix :

A  deltas/0.0.3/rel.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/rel.1.fix.1.md, l'appliquer, puis créer le premier commit stable avec le message exact :

0.0.3

Après push de master, créer/pousser le tag annoté v0.0.3, vérifier tag/commit/archive réellement publiés puis produire séparément le rapport post-tag sasedev-knowledge-0.0.3-publish.001-report.md.

FAIL / PARTIAL / BLOCKED

Conserver le résultat réel dans son history et corriger uniquement la fermeture stable dans le fix suivant, sans créer le tag.