This commit is contained in:
2026-09-28 13:02:02 +02:00
parent aa9f6ace24
commit 98ec46fe73
9 changed files with 368 additions and 19 deletions

View File

@@ -1,11 +1,11 @@
<!-- file: CHANGELOG.md -->
<!-- version: 11 -->
<!-- version: 12 -->
# Changelog SaseDev Knowledge
Ce fichier décrit les changements utiles des releases publiées. Les détails de tranches et preuves opérateur appartiennent aux plans, deltas et histories.
## 0.0.1 (candidate)
## 0.0.1
- établit la gouvernance locale Knowledge à partir de PGR `v0.1.1` vérifiée ;
- cadre trois applications Actix Web distinctes pour PGR, HOWTOs et snippets dans un workspace commun ;

View File

@@ -1,5 +1,5 @@
# file: Cargo.toml
# version: 15
# version: 16
[workspace]
resolver = "3"
@@ -14,7 +14,7 @@ members = [
]
[workspace.package]
version = "0.0.1-rc.2"
version = "0.0.1"
edition = "2024"
publish = false
repository = "https://git.sasedev.com/Sasedev/sasedev-knowledge"

View File

@@ -1,5 +1,5 @@
<!-- file: README.md -->
<!-- version: 8 -->
<!-- version: 9 -->
# SaseDev Knowledge
@@ -11,7 +11,7 @@ Le dépôt applicatif retenu est `sasedev-knowledge`. Le nom court du projet et
La version courante est définie par [`VERSION`](VERSION).
`0.0.1` est une release de fondation. Elle établit la gouvernance, les frontières d'architecture, le workspace minimal, les premiers contrats et les validations nécessaires avant toute implémentation fonctionnelle importante.
`0.0.1` est la première stable de fondation de SaseDev Knowledge. Elle établit la gouvernance, les frontières d'architecture, le workspace Rust/Web, les premiers contrats provider-neutral et les validations nécessaires avant les capacités fonctionnelles des releases suivantes.
## Topologie produit de fondation
@@ -35,7 +35,7 @@ Le workspace Rust matérialise sept packages : les trois frontières de fondatio
## Frontend de référence et rendu Maud
Knowledge adopte le profil Web PGR comme partie obligatoire de la fondation. `alpha.4` matérialise un package partagé de laboratoire sous `Web/knowledge-template-lab/` avec npm, TypeScript strict, Vite, Sass et Bootstrap.
Knowledge adopte le profil Web PGR comme partie obligatoire de la fondation. La stable `0.0.1` matérialise un package partagé de laboratoire sous `Web/knowledge-template-lab/` avec npm, TypeScript strict, Vite, Sass et Bootstrap.
Ce package sert à développer, prévisualiser et valider les assets et templates statiques de référence indépendamment des serveurs Actix. Il n'est pas une quatrième application produit ni une UI de production.
@@ -43,7 +43,7 @@ Les templates statiques sont un **harness de conception/validation**, pas le mot
Le mécanisme observé dans `actix-auth-app` est documenté comme corpus technique à adapter, pas comme code autoritaire à copier.
`alpha.5` matérialise `knowledge-web-lib` et les trois launchers `knowledge-*-server`. La bibliothèque commune possède le rendu Maud, la sélection dev-server/manifest Vite et le service des assets de production ; les trois `main.rs` ne contiennent que la sélection de façade et du nom de variable d'environnement de bind.
La stable `0.0.1` matérialise `knowledge-web-lib` et les trois launchers `knowledge-*-server`. La bibliothèque commune possède le rendu Maud, la sélection dev-server/manifest Vite et le service des assets de production ; les trois `main.rs` ne contiennent que la sélection de façade et du nom de variable d'environnement de bind.
Le runtime exige un bind configuré par launcher et l'une des deux sources d'assets suivantes : `KNOWLEDGE_VITE_DEV_ORIGIN` en développement ou `KNOWLEDGE_VITE_MANIFEST_PATH` en production. `KNOWLEDGE_ASSET_BASE_PATH` peut remplacer le préfixe `/` de production. Aucune route admin/login n'est matérialisée à ce stade.
@@ -70,10 +70,10 @@ Le runtime exige un bind configuré par launcher et l'une des deux sources d'ass
- [`docs/studies/001-AUTH_ADMIN_CORPUS_STUDY.md`](docs/studies/001-AUTH_ADMIN_CORPUS_STUDY.md) — étude des deux corpus historiques auth/admin et décisions de réutilisation conceptuelle ;
- [`docs/studies/002-ACTIX_MAUD_VITE_CORPUS_STUDY.md`](docs/studies/002-ACTIX_MAUD_VITE_CORPUS_STUDY.md) — étude ciblée du pattern Vite manifest / Actix / Maud à adapter pour Knowledge ;
- [`docs/studies/003-V0_0_1_FOUNDATION_RECONCILIATION.md`](docs/studies/003-V0_0_1_FOUNDATION_RECONCILIATION.md) — réconciliation `beta.1`, état matérialisé, DEFER conservés et revue d'horizon ;
- [`docs/plans/001-V0_0_1_FOUNDATION_PLAN.md`](docs/plans/001-V0_0_1_FOUNDATION_PLAN.md) — plan vivant de `0.0.1` ;
- [`docs/plans/001-V0_0_1_FOUNDATION_PLAN.md`](docs/plans/001-V0_0_1_FOUNDATION_PLAN.md) — plan historique de la fondation stable `0.0.1` ;
- [`docs/validation/001-VALIDATION_MATRIX.md`](docs/validation/001-VALIDATION_MATRIX.md) — matrice de validation ;
- [`prompts/001-V0_0_1_START_PROMPT.md`](prompts/001-V0_0_1_START_PROMPT.md) — prompt de démarrage autoritaire de la release.
- [`prompts/002-V0_0_2_START_PROMPT.md`](prompts/002-V0_0_2_START_PROMPT.md) — handoff préparé pour `0.0.2`, exécutable uniquement après publication vérifiée de `0.0.1`.
- [`prompts/002-V0_0_2_START_PROMPT.md`](prompts/002-V0_0_2_START_PROMPT.md) — handoff préparé pour `0.0.2`, à utiliser uniquement après publication du tag `v0.0.1` et vérification post-tag `PASS`.
## Langue et nomenclature

View File

@@ -1,5 +1,5 @@
<!-- file: ROADMAP.md -->
<!-- version: 5 -->
<!-- version: 6 -->
# Roadmap SaseDev Knowledge
@@ -9,7 +9,7 @@ Statuts : `( )` planifié, `(x)` terminé, `(d)` différé, `(c)` annulé.
## Fondation
- `( ) 0.0.1` — fondation Knowledge : gouvernance PGR, workspace à trois applications Actix Web, architecture Git/forge/PostgreSQL partagé, frontières PGR/HOWTO/snippet, contrat d'administration locale protégée sans UI/auth complète, workspace Rust, premiers contrats, baseline Web reproductible, rendu Maud et intégration réelle du manifest Vite, sans implémentation métier disproportionnée.
- `(x) 0.0.1` — fondation Knowledge : gouvernance PGR, workspace à trois applications Actix Web, architecture Git/forge/PostgreSQL partagé, frontières PGR/HOWTO/snippet, contrat d'administration locale protégée sans UI/auth complète, workspace Rust, premiers contrats, baseline Web reproductible, rendu Maud et intégration réelle du manifest Vite, sans implémentation métier disproportionnée.
## Horizon engagé

View File

@@ -1 +1 @@
0.0.1-rc.2
0.0.1

116
deltas/0.0.1/rel.1.md Normal file
View File

@@ -0,0 +1,116 @@
<!-- file: deltas/0.0.1/rel.1.md -->
<!-- version: 1 -->
# Delta 0.0.1 rel.1 — promotion stable pré-tag
## Baseline et version
Baseline : `0.0.1-rc.2`, avec `history/0.0.1/rc.2.md` appliqué et committé.
Ce delta MUST NOT être appliqué avant ce commit.
Version avant application :
```text
0.0.1-rc.2
```
Version après application :
```text
0.0.1
```
`rel.1` identifie la tranche de clôture opérationnelle ; il ne fait pas partie de la version SemVer du produit.
## Objet
Promouvoir mécaniquement la candidate finale validée vers la stable `0.0.1` sans rouvrir le scope.
La tranche finalise uniquement la version stable, la présentation stable du README, la roadmap, le changelog, l'index documentaire et le statut historique du plan de fondation.
Aucun fichier Rust, frontend, dépendance, contrat Git/sync, règle produit, étude ou prompt de reprise n'est modifié.
## Politique `Cargo.lock`
La politique finale reste inchangée :
```text
Cargo.lock
présent localement
généré par Cargo
ignoré par Git
non suivi
```
Le fichier n'appartient pas au delta ni à la future archive du tag.
`Web/knowledge-template-lab/package-lock.json` reste versionné.
## Scope
REPLACE :
```text
VERSION
Cargo.toml
README.md
ROADMAP.md
CHANGELOG.md
docs/000-README.md
docs/plans/001-V0_0_1_FOUNDATION_PLAN.md
```
ADD :
```text
deltas/0.0.1/rel.1.md
```
DELETE : aucun.
Le history `rc.2` est livré séparément. Le history `rel.1` sera produit uniquement après la gate opérateur.
## Présentation stable attendue
Après application :
```text
VERSION 0.0.1
Cargo workspace version 0.0.1
ROADMAP (x) 0.0.1
CHANGELOG ## 0.0.1
README fondation stable 0.0.1
plan 001 historique de la stable 0.0.1
prompt 002 toujours conditionnel au post-tag PASS
```
`0.0.2` reste la seule prochaine release engagée. Aucun `0.0.3` n'est réservé.
## Gate pré-tag
La gate doit vérifier le history `rc.2` `PASS` committé, les dix-sept histories antérieurs, `rel.1` comme seul delta sans history, la présentation stable, l'absence de diff sous `crates/` ou `Web/`, les politiques de lockfiles, les audits Markdown/texte/Rust, Cargo/Clippy/tests, la baseline Web, le manifest Vite, les trois smokes HTTP et l'hygiène Git finale.
La validation est strictement pré-tag. Ce delta ne déclare ni le tag `v0.0.1`, ni son archive source, ni un rapport post-tag comme existants.
## Transition
### PASS
Produire séparément `history/0.0.1/rel.1.md`, l'appliquer, puis créer le commit stable avec le message exact :
```text
0.0.1
```
Après push de `master`, créer et publier le tag annoté `v0.0.1`, vérifier l'objet tag local/distant et son commit déréférencé, puis télécharger l'archive source réellement produite par Gitea depuis le tag et produire le rapport externe :
```text
sasedev-knowledge-0.0.1-publish.001-report.md
```
Le prompt `002-V0_0_2_START_PROMPT.md` devient la reprise effective de `0.0.2` uniquement après un rapport post-tag `PASS`.
### FAIL
Créer `history/0.0.1/rel.1.md` avec le diagnostic réel, ne pas créer le tag et corriger uniquement la fermeture dans `rel.1.fix.1`.

View File

@@ -1,5 +1,5 @@
<!-- file: docs/000-README.md -->
<!-- version: 4 -->
<!-- version: 5 -->
# Documentation SaseDev Knowledge
@@ -20,7 +20,7 @@
## Plans
- [`plans/001-V0_0_1_FOUNDATION_PLAN.md`](plans/001-V0_0_1_FOUNDATION_PLAN.md) — plan vivant de la release de fondation `0.0.1`.
- [`plans/001-V0_0_1_FOUNDATION_PLAN.md`](plans/001-V0_0_1_FOUNDATION_PLAN.md) — plan historique de la stable de fondation `0.0.1`.
## Validation
@@ -30,4 +30,4 @@ Les deltas et histories sont des artefacts de workflow, pas des substituts à ce
## Handoff
- [`../prompts/002-V0_0_2_START_PROMPT.md`](../prompts/002-V0_0_2_START_PROMPT.md) — prompt de reprise préparé pour `0.0.2`, non exécutable avant publication et vérification post-tag de `0.0.1`.
- [`../prompts/002-V0_0_2_START_PROMPT.md`](../prompts/002-V0_0_2_START_PROMPT.md) — prompt de reprise préparé pour `0.0.2`, à utiliser seulement après publication du tag `v0.0.1` et vérification post-tag `PASS`.

View File

@@ -1,11 +1,11 @@
<!-- file: docs/plans/001-V0_0_1_FOUNDATION_PLAN.md -->
<!-- version: 17 -->
<!-- version: 18 -->
# Plan 0.0.1 — fondation SaseDev Knowledge
## Statut et sources
Plan actif préparé après vérification de la stable PGR `v0.1.1` et de `pgr-0.1.1-publish.001-report.md` `PASS`.
Plan historique de la stable de fondation `0.0.1`, préparé après vérification de la stable PGR `v0.1.1` et de `pgr-0.1.1-publish.001-report.md` `PASS`.
Sources de cadrage :
@@ -285,9 +285,29 @@ Rejouer une release candidate complète après le changement de politique `Cargo
- rejouer la gate RC complète sur le scope final ;
- autoriser `rel.1` uniquement après `PASS`.
Statut opérateur : **PASS**.
La candidate finale a été validée après récupération d'un commit local erroné non publié. La récupération n'a modifié ni le contenu `rc.2` ni `origin/master`, et l'intégralité de la gate RC a ensuite été confirmée.
### rel.1 — fermeture stable
Exécuter la gate de release, produire le premier history `rel.N[/fix.M]` réellement `PASS`, matérialiser le commit produit `0.0.1`, publier le tag stable selon la politique Git retenue et effectuer la vérification post-tag requise.
Promotion mécanique pré-tag de la candidate validée vers `0.0.1`.
La tranche :
- porte `VERSION = 0.0.1` et la version workspace Cargo identique ;
- marque `0.0.1` terminée dans `ROADMAP.md` ;
- retire le marqueur `candidate` du `CHANGELOG.md` ;
- présente `README.md`, l'index documentaire et le présent plan comme état stable/historique ;
- conserve `0.0.2` comme seule prochaine release engagée ;
- conserve le prompt `002` conditionnel à la publication réelle de `v0.0.1` et au rapport post-tag `PASS` ;
- ne modifie aucun fichier sous `crates/` ou `Web/`, aucune dépendance et aucun contrat technique.
Le résultat opérateur appartient à `history/0.0.1/rel.1.md`, créé uniquement après la gate.
Si `rel.1` est `PASS`, son history est appliqué puis le commit produit porte le message exact `0.0.1`. Le tag stable `v0.0.1` n'est créé et poussé qu'après ce commit et son push sur la branche canonique.
La vérification post-tag est séparée et doit produire `sasedev-knowledge-0.0.1-publish.001-report.md` à partir de l'archive réellement téléchargée depuis le tag et des preuves Git observées. Le prompt `002` reste bloqué jusqu'à un `publish.001 PASS` réel.
## Déclencheurs de REPLAN

213
history/0.0.1/rel.1.md Normal file
View File

@@ -0,0 +1,213 @@
<!-- file: history/0.0.1/rel.1.md -->
<!-- version: 1 -->
# History 0.0.1 rel.1 — promotion stable pré-tag
## Statut
PASS
La gate opérateur de `0.0.1-rel.1` exécutée le `2026-09-28` est propre.
## Baseline opérateur
`rc.2` `PASS` a été historisé, committé et poussé avant application de `rel.1` :
```text
history/0.0.1/rc.2.md = PASS
commit aa9f6ac
message 0.0.1-rc.2
branch master
push origin/master PASS
status clean après push
```
Le push observé a avancé `origin/master` de `c9fee69` à `aa9f6ac`.
`Cargo.lock` reste présent localement, ignoré et non suivi.
## Promotion stable
La version produit est :
```text
VERSION 0.0.1
Cargo workspace version 0.0.1
```
La tranche ne modifie aucun fichier sous :
```text
crates/
Web/
```
La présentation stable est cohérente :
```text
ROADMAP 0.0.1 terminé ; 0.0.2 engagé ; aucun 0.0.3 réservé
CHANGELOG section ## 0.0.1 sans marqueur candidate
README fondation présentée comme première stable
plan 001 plan historique de la stable 0.0.1
prompt 002 toujours conditionné au tag v0.0.1 et au publish.001 PASS
```
## Audit stable
L'audit de cohérence passe :
```text
Knowledge 0.0.1-rel.1 stable audit: clean
(17 prior histories, rel.1 pending)
```
Il confirme notamment :
- exactement sept packages Cargo ;
- les dix-sept histories antérieurs et leurs statuts réels ;
- `rc.2 = PASS` ;
- `rel.1` comme seul delta sans history pendant sa gate ;
- présentation stable cohérente ;
- aucune réservation `0.0.3` ;
- handoff `0.0.2` toujours bloqué jusqu'à la publication vérifiée.
## Markdown et hygiène texte
Les audits PGR passent :
```text
Markdown header audit: clean
Markdown table audit: clean
Markdown link audit: clean
```
L'hygiène texte passe :
```text
Knowledge 0.0.1-rel.1 text hygiene: clean
```
## Rust
Les audits passent :
```text
Rust test-layout audit: clean (7 crate(s))
Rust blank-line audit: clean (18 file(s))
Rust item-spacing audit: clean (18 file(s))
Rust module-order audit: clean (18 file(s))
Rust trait-import-block audit: clean (18 file(s))
Rust re-export-block audit: clean (18 file(s))
Rust export completeness audit: 0 candidate(s) across 7 package(s)
```
Les sept packages compilent en version stable `0.0.1`.
```text
cargo check --workspace PASS
cargo clippy --workspace --all-targets --all-features
-- -D warnings PASS
cargo test --workspace --all-targets --all-features PASS
```
Tests observés :
```text
knowledge-domain-lib : 3 PASS
knowledge-git-api : 1 PASS
knowledge-sync-api : 1 PASS
knowledge-web-lib : 4 PASS
launchers : 0 test chacun
```
Après Cargo :
```text
Cargo.lock local présent
Cargo.lock ignore actif
Cargo.lock Git absent
```
## Web
Les commandes suivantes passent :
```text
npm ci
npm run typecheck
npm run build
```
npm observe toujours `@parcel/watcher@2.6.0` comme script d'installation non couvert par `allowScripts`. Aucune approbation automatique n'est effectuée.
Les warnings Sass Bootstrap restent non bloquants.
## Manifest Vite
L'audit passe :
```text
Knowledge 0.0.1-rel.1 Vite manifest audit: clean
JS assets/assets/main-BMHcm6u9.js
CSS assets/main-V0IwlRbh.css
```
## Smokes HTTP
Les trois launchers passent la gate stable :
```text
knowledge-pgr-server smoke PASS
knowledge-howtos-server smoke PASS
knowledge-snippets-server smoke PASS
Knowledge 0.0.1-rel.1 HTTP smoke: clean
```
## Hygiène Git finale
Les contrôles finaux passent :
```text
Cargo.lock local présent
Cargo.lock ignore actif
Cargo.lock suivi non
git diff --cached --check PASS
```
Le staging final observé avant ajout du présent history est exactement :
```text
M CHANGELOG.md
M Cargo.toml
M README.md
M ROADMAP.md
M VERSION
A deltas/0.0.1/rel.1.md
M docs/000-README.md
M docs/plans/001-V0_0_1_FOUNDATION_PLAN.md
```
## Décision
`0.0.1-rel.1` est `PASS`.
La release stable `0.0.1` peut maintenant être matérialisée.
L'ordre obligatoire est :
```text
appliquer ce history
-> git add / diff --cached --check / status
-> commit exact "0.0.1"
-> push origin master
-> vérifier workspace propre
-> créer le tag annoté v0.0.1 sur ce commit
-> pousser le tag
-> vérifier tag local et distant
-> télécharger l'archive réellement servie par Gitea depuis v0.0.1
-> produire sasedev-knowledge-0.0.1-publish.001-report.md
```
Le présent history ne déclare pas le tag ou le rapport post-tag comme déjà existants.
`prompts/002-V0_0_2_START_PROMPT.md` reste bloqué jusqu'à un `publish.001 PASS` réel.