0.0.3
This commit is contained in:
112
deltas/0.0.3/rel.1.fix.1.md
Normal file
112
deltas/0.0.3/rel.1.fix.1.md
Normal file
@@ -0,0 +1,112 @@
|
|||||||
|
<!-- file: deltas/0.0.3/rel.1.fix.1.md -->
|
||||||
|
<!-- version: 1 -->
|
||||||
|
|
||||||
|
# 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 :
|
||||||
|
|
||||||
|
```text
|
||||||
|
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 :
|
||||||
|
|
||||||
|
```text
|
||||||
|
docs/plans/003-V0_0_3_GIT_WRITE_PLAN.md
|
||||||
|
docs/validation/001-VALIDATION_MATRIX.md
|
||||||
|
```
|
||||||
|
|
||||||
|
ADD :
|
||||||
|
|
||||||
|
```text
|
||||||
|
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 :
|
||||||
|
|
||||||
|
```bash
|
||||||
|
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 :
|
||||||
|
|
||||||
|
```text
|
||||||
|
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 :
|
||||||
|
|
||||||
|
```text
|
||||||
|
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.
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
<!-- file: docs/plans/003-V0_0_3_GIT_WRITE_PLAN.md -->
|
<!-- file: docs/plans/003-V0_0_3_GIT_WRITE_PLAN.md -->
|
||||||
<!-- version: 11 -->
|
<!-- version: 12 -->
|
||||||
|
|
||||||
# Plan 0.0.3 — écriture Git contrôlée et push gardé
|
# Plan 0.0.3 — écriture Git contrôlée et push gardé
|
||||||
|
|
||||||
@@ -235,6 +235,15 @@ La gate de `alpha.1` reste une gate de cadrage : elle valide baseline, documenta
|
|||||||
- produire le history observé avant commit produit/tag ;
|
- produire le history observé avant commit produit/tag ;
|
||||||
- ne fabriquer aucun rapport post-tag avant publication réelle.
|
- ne fabriquer aucun rapport post-tag avant publication réelle.
|
||||||
|
|
||||||
|
### rel.1.fix.1 — complétion de la preuve de clôture stable
|
||||||
|
|
||||||
|
- conserver `rel.1 = PARTIAL` avec toutes les preuves produit/runtime réellement acquises ;
|
||||||
|
- ne modifier aucun code produit, frontend, changelog, roadmap, architecture, étude, règle ou prompt ;
|
||||||
|
- compléter explicitement l'audit de composition du workspace à partir du JSON `cargo metadata` déjà prévu par la gate ;
|
||||||
|
- compléter explicitement l'audit d'hygiène texte sur les documents gouvernés ;
|
||||||
|
- réutiliser les preuves Cargo/Clippy/tests, Web et smokes HTTP `PASS` de `rel.1` puisqu'aucun fichier concerné n'est modifié ;
|
||||||
|
- autoriser le premier commit stable `0.0.3` uniquement après `PASS` complet de ce fix.
|
||||||
|
|
||||||
## Déclencheurs de REPLAN
|
## Déclencheurs de REPLAN
|
||||||
|
|
||||||
REPLAN avant de poursuivre si :
|
REPLAN avant de poursuivre si :
|
||||||
@@ -264,7 +273,7 @@ La release est fermable lorsque :
|
|||||||
- les règles/architecture décrivent l'état effectivement obtenu ;
|
- les règles/architecture décrivent l'état effectivement obtenu ;
|
||||||
- beta et RC ont fermé les non-régressions prévues.
|
- beta et RC ont fermé les non-régressions prévues.
|
||||||
|
|
||||||
Le `PARTIAL` de `alpha.1` a autorisé `0.0.3-alpha.1.fix.1`. Le premier fix est resté `PARTIAL`, puis `alpha.1.fix.2` a fermé la preuve en `PASS`. `alpha.2` a matérialisé le contrat d'écriture provider-neutral en `PASS`. `alpha.3` est conservée `FAIL` à cause de l'assertion de test `E0369`; `alpha.3.fix.1` a corrigé uniquement le test en `PASS`. `alpha.4` a ensuite fermé le scope fonctionnel alpha en `PASS`. `beta.1` a stabilisé et réconcilié cet état en `PASS`, sans nouveau code produit. `rc.1` a confirmé toutes les preuves produit/runtime mais reste `FAIL` à cause d'une assertion lexicale trop stricte sur le statut historique `alpha.1`. `rc.1.fix.1` a corrigé uniquement cette preuve en `PASS`. `rel.1` assure maintenant la promotion stable pré-tag sans rouvrir le scope.
|
Le `PARTIAL` de `alpha.1` a autorisé `0.0.3-alpha.1.fix.1`. Le premier fix est resté `PARTIAL`, puis `alpha.1.fix.2` a fermé la preuve en `PASS`. `alpha.2` a matérialisé le contrat d'écriture provider-neutral en `PASS`. `alpha.3` est conservée `FAIL` à cause de l'assertion de test `E0369`; `alpha.3.fix.1` a corrigé uniquement le test en `PASS`. `alpha.4` a ensuite fermé le scope fonctionnel alpha en `PASS`. `beta.1` a stabilisé et réconcilié cet état en `PASS`, sans nouveau code produit. `rc.1` a confirmé toutes les preuves produit/runtime mais reste `FAIL` à cause d'une assertion lexicale trop stricte sur le statut historique `alpha.1`. `rc.1.fix.1` a corrigé uniquement cette preuve en `PASS`. `rel.1` a acquis toutes les preuves produit/runtime de la promotion stable mais reste `PARTIAL` parce que deux contrôles annoncés — composition exacte du workspace et hygiène texte — ne figurent pas dans le transcript. `rel.1.fix.1` ferme uniquement ces deux preuves avant le premier commit stable réellement `PASS`.
|
||||||
|
|
||||||
## Revue d'horizon
|
## Revue d'horizon
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<!-- file: docs/validation/001-VALIDATION_MATRIX.md -->
|
<!-- file: docs/validation/001-VALIDATION_MATRIX.md -->
|
||||||
<!-- version: 40 -->
|
<!-- version: 41 -->
|
||||||
|
|
||||||
# Matrice de validation Knowledge
|
# Matrice de validation Knowledge
|
||||||
|
|
||||||
@@ -251,6 +251,22 @@ La fermeture stable pré-tag doit prouver :
|
|||||||
|
|
||||||
Un `PASS` de `rel.1` autorise le commit produit exact `0.0.3`, le push, puis seulement la création/push du tag annoté `v0.0.3`, le téléchargement de l'archive réellement servie et la production séparée du rapport `sasedev-knowledge-0.0.3-publish.001-report.md`.
|
Un `PASS` de `rel.1` autorise le commit produit exact `0.0.3`, le push, puis seulement la création/push du tag annoté `v0.0.3`, le téléchargement de l'archive réellement servie et la production séparée du rapport `sasedev-knowledge-0.0.3-publish.001-report.md`.
|
||||||
|
|
||||||
|
## Gate de `0.0.3-rel.1.fix.1`
|
||||||
|
|
||||||
|
Le fix de complétion de preuve stable doit prouver :
|
||||||
|
|
||||||
|
- `VERSION = 0.0.3` et version workspace identique ; la clôture stable reste la même version produit ;
|
||||||
|
- history `history/0.0.3/rel.1.md` présent avec statut `PARTIAL` et committé avant application ;
|
||||||
|
- aucune modification sous `crates/`, `Web/`, `CHANGELOG.md`, `ROADMAP.md`, `docs/architecture/`, `docs/studies/`, `docs/rules/` ou `prompts/` ;
|
||||||
|
- fichier `cargo metadata --format-version 1 --no-deps` produit puis ensemble exact des neuf packages/workspace members vérifié explicitement ;
|
||||||
|
- hygiène texte explicite `PASS` sur README/RULES/ROADMAP/CHANGELOG/docs/prompts/deltas/history ;
|
||||||
|
- audits Markdown locaux propres après ajout du fix ;
|
||||||
|
- preuves `rel.1` conservées : formatage/audits Rust, Cargo/Clippy/tests, Web/Vite et trois smokes HTTP tous `PASS` ;
|
||||||
|
- tag `v0.0.3` et rapport post-tag toujours absents avant le history `rel.1.fix.1` `PASS` ;
|
||||||
|
- `Cargo.lock` local ignoré/non suivi, package-lock Web versionné et staging final propre.
|
||||||
|
|
||||||
|
Le premier `PASS` d'une clôture `rel.N[/fix.M]` autorise alors le commit produit exact `0.0.3`, le push, puis le tag annoté `v0.0.3` et la vérification post-tag.
|
||||||
|
|
||||||
## PostgreSQL
|
## PostgreSQL
|
||||||
|
|
||||||
Aucune gate PostgreSQL n'est créée avant matérialisation d'une dépendance ou d'un schéma réel.
|
Aucune gate PostgreSQL n'est créée avant matérialisation d'une dépendance ou d'un schéma réel.
|
||||||
|
|||||||
139
history/0.0.3/rel.1.fix.1.md
Normal file
139
history/0.0.3/rel.1.fix.1.md
Normal file
@@ -0,0 +1,139 @@
|
|||||||
|
<!-- file: history/0.0.3/rel.1.fix.1.md -->
|
||||||
|
<!-- version: 1 -->
|
||||||
|
|
||||||
|
# History 0.0.3-rel.1.fix.1 — complétion de la preuve de clôture stable
|
||||||
|
|
||||||
|
## Statut
|
||||||
|
|
||||||
|
PASS
|
||||||
|
|
||||||
|
La gate opérateur de `0.0.3-rel.1.fix.1` exécutée le `2026-09-29` est complète et propre. Elle complète exactement les deux preuves absentes de `rel.1` sans modifier le produit, le Web, la version stable visée ni les documents de release déjà finalisés.
|
||||||
|
|
||||||
|
## Baseline opérateur
|
||||||
|
|
||||||
|
`rel.1` `PARTIAL` a été historisé, committé et poussé avant application du fix :
|
||||||
|
|
||||||
|
```text
|
||||||
|
history/0.0.3/rel.1.md PARTIAL
|
||||||
|
commit 9a1f73d
|
||||||
|
message 0.0.3-rel.1
|
||||||
|
branch master
|
||||||
|
push origin/master PASS
|
||||||
|
workspace après push propre
|
||||||
|
```
|
||||||
|
|
||||||
|
Le push observé a avancé `origin/master` de `0351aa0` à `9a1f73d`.
|
||||||
|
|
||||||
|
## Version et audits documentaires
|
||||||
|
|
||||||
|
La version produit reste volontairement stable pendant cette tranche opérationnelle :
|
||||||
|
|
||||||
|
```text
|
||||||
|
VERSION 0.0.3
|
||||||
|
Cargo workspace version 0.0.3
|
||||||
|
history rel.1 PARTIAL
|
||||||
|
git diff --check PASS
|
||||||
|
Markdown header audit clean (124 file(s))
|
||||||
|
Markdown link audit clean (82 local link(s), 124 file(s))
|
||||||
|
Markdown table audit clean (4 table(s), 124 file(s))
|
||||||
|
```
|
||||||
|
|
||||||
|
## Preuve workspace complétée
|
||||||
|
|
||||||
|
La preuve explicitement manquante dans `rel.1` est maintenant acquise :
|
||||||
|
|
||||||
|
```text
|
||||||
|
cargo metadata --format-version 1 --no-deps PASS
|
||||||
|
workspace packages exacts PASS
|
||||||
|
workspace_members 9
|
||||||
|
```
|
||||||
|
|
||||||
|
L'ensemble exact observé est :
|
||||||
|
|
||||||
|
```text
|
||||||
|
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
|
||||||
|
```
|
||||||
|
|
||||||
|
Le contrôle opérateur imprime :
|
||||||
|
|
||||||
|
```text
|
||||||
|
Knowledge 0.0.3-rel.1.fix.1 workspace audit: clean
|
||||||
|
```
|
||||||
|
|
||||||
|
## Preuve d'hygiène texte complétée
|
||||||
|
|
||||||
|
La seconde preuve manquante est acquise sur les racines documentaires et de gouvernance prévues :
|
||||||
|
|
||||||
|
```text
|
||||||
|
README.md
|
||||||
|
RULES.md
|
||||||
|
ROADMAP.md
|
||||||
|
CHANGELOG.md
|
||||||
|
docs/
|
||||||
|
prompts/
|
||||||
|
deltas/
|
||||||
|
history/
|
||||||
|
```
|
||||||
|
|
||||||
|
Résultat observé :
|
||||||
|
|
||||||
|
```text
|
||||||
|
Knowledge 0.0.3-rel.1.fix.1 text hygiene: clean (124 file(s))
|
||||||
|
```
|
||||||
|
|
||||||
|
Aucun retour chariot CR, fin de fichier incorrecte, double newline terminale ou espace/tab de fin de ligne n'est détecté par cette gate.
|
||||||
|
|
||||||
|
## Scope et invariants de clôture
|
||||||
|
|
||||||
|
Les contrôles finaux passent :
|
||||||
|
|
||||||
|
```text
|
||||||
|
aucun diff VERSION/Cargo.toml/crates/Web/CHANGELOG/ROADMAP/
|
||||||
|
architecture/studies/rules/prompts PASS
|
||||||
|
history/0.0.3/rel.1.fix.1.md avant history absent
|
||||||
|
Cargo.lock présent, ignoré, non suivi
|
||||||
|
Web/knowledge-template-lab/package-lock.json présent
|
||||||
|
tag local v0.0.3 absent
|
||||||
|
sasedev-knowledge-0.0.3-publish.001-report.md absent
|
||||||
|
git diff --cached --check PASS
|
||||||
|
```
|
||||||
|
|
||||||
|
Le staging final observé avant ajout du présent history est exactement :
|
||||||
|
|
||||||
|
```text
|
||||||
|
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
|
||||||
|
```
|
||||||
|
|
||||||
|
## Preuves produit héritées de rel.1
|
||||||
|
|
||||||
|
Ce fix ne modifie aucun fichier produit ou Web. Les preuves complètes acquises pendant `rel.1` restent donc autoritaires pour la clôture stable :
|
||||||
|
|
||||||
|
```text
|
||||||
|
cargo fmt / audits Rust PASS
|
||||||
|
cargo check / Clippy PASS
|
||||||
|
Git read path PASS (2)
|
||||||
|
Git write candidate PASS (2)
|
||||||
|
Git guarded push PASS (2)
|
||||||
|
workspace tests PASS
|
||||||
|
npm ci / typecheck / Vite build PASS
|
||||||
|
Vite manifest PASS
|
||||||
|
knowledge-pgr-server smoke PASS
|
||||||
|
knowledge-howtos-server smoke PASS
|
||||||
|
knowledge-snippets-server smoke PASS
|
||||||
|
```
|
||||||
|
|
||||||
|
## Décision
|
||||||
|
|
||||||
|
`0.0.3-rel.1.fix.1` est `PASS`.
|
||||||
|
|
||||||
|
La clôture stable de `0.0.3` est maintenant suffisamment prouvée. Le présent history doit être appliqué puis inclus, avec les trois fichiers déjà stagés par le fix, dans le premier commit stable portant le message exact `0.0.3`. Après push de `master`, le tag annoté `v0.0.3` peut être créé et poussé. Le rapport post-tag `sasedev-knowledge-0.0.3-publish.001-report.md` ne doit être produit qu'après vérification des identifiants réellement publiés et de l'archive réellement servie par Gitea.
|
||||||
Reference in New Issue
Block a user