Files
sasedev-knowledge/deltas/0.0.2/alpha.1.md
2026-09-28 15:11:03 +02:00

186 lines
5.2 KiB
Markdown

<!-- file: deltas/0.0.2/alpha.1.md -->
<!-- version: 1 -->
# Delta 0.0.2-alpha.1 — adoption PGR et cadrage Git/synchronisation
## Baseline requise
Partir de la stable autoritaire :
```text
tag Knowledge v0.0.1
commit Knowledge 98ec46fe73bd50dacbe6be220650d87dd2000b74
archive SHA-256 1f0b2cfaecee1cbee621abb9c3c95811773ebfc17c374c4369fdc220bcf7d72d
publish report sasedev-knowledge-0.0.1-publish.001-report.md = PASS
```
Le prompt exécuté est :
```text
prompts/002-V0_0_2_START_PROMPT.md
```
La version devient :
```text
0.0.2-alpha.1
```
## Objet
Fermer les décisions obligatoires de démarrage de `0.0.2` avant toute implémentation Git fonctionnelle :
- vérifier et adopter explicitement la stable PGR courante `v0.1.3` dans son scope applicable ;
- activer `230-ADOPTION` pour la migration PGR du projet existant ;
- préserver l'historique `0.0.1` construit sous PGR `v0.1.1` ;
- documenter l'inventaire des contrats Git/sync existants ;
- sélectionner le processus `git` contrôlé après comparaison avec `gix` et `git2` ;
- attribuer à la future `knowledge-git-lib` l'ownership de la configuration physique et du backend Git ;
- fixer une racine d'état Git généré hors du dépôt source ;
- établir le plan versionné `0.0.2` et sa première gate.
Aucun runtime Git, aucune crate et aucune dépendance ne sont ajoutés dans cette tranche.
## Adoption PGR
La baseline PGR applicable devient :
```text
PGR tag v0.1.3
PGR commit fe80dbbb737390a7ea99df27d979bd59ccfb86e3
PGR archive SHA-256 f3a7dffd5fe0fd3542e6b5207fda0b94bca2bd05bd5a54542d0a08d635a5d6ee
PGR publish report pgr-0.1.3-publish.001-report.md = PASS
```
Le mapping durable est enregistré dans `docs/architecture/001-PROJECT_PROFILE.md`.
Les changements PGR `0.1.2`/`0.1.3` sur Java/Maven/Gradle/Android ne rendent pas ces profils applicables à Knowledge. Le `DEFER` Tauri reste inchangé. Aucun `OVERRIDE` n'est introduit.
## Décision Git
L'étude :
```text
docs/studies/004-V0_0_2_GIT_IMPLEMENTATION_STUDY.md
```
retient le client Git externe piloté via `std::process::Command`, sans shell.
Le layout retenu est conceptuellement :
```text
<git-state-root>/
hooks-disabled/
repositories/<source-key>.git/
snapshots/<source-key>/<resolved-revision>/
```
Aucun de ces chemins n'est créé par `alpha.1`.
## Scope
REPLACE :
```text
VERSION
Cargo.toml
README.md
RULES.md
docs/000-README.md
docs/architecture/001-PROJECT_PROFILE.md
docs/architecture/002-KNOWLEDGE_ARCHITECTURE.md
docs/validation/001-VALIDATION_MATRIX.md
```
ADD :
```text
docs/studies/004-V0_0_2_GIT_IMPLEMENTATION_STUDY.md
docs/plans/002-V0_0_2_GIT_SYNC_PLAN.md
deltas/0.0.2/alpha.1.md
```
DELETE : aucun.
Aucun fichier sous `crates/` ou `Web/` n'est modifié.
Aucun history `0.0.2-alpha.1` n'est inclus : il doit refléter les preuves opérateur après application.
## Gate opérateur
Après application du delta :
```bash
test "$(cat VERSION)" = '0.0.2-alpha.1'
grep -F 'version = "0.0.2-alpha.1"' Cargo.toml
git diff --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_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
)
```
Puis rejouer les contrôles de manifest Vite et les trois smokes HTTP selon les commandes déjà possédées par la gate stable `0.0.1`.
Contrôles spécifiques de cette tranche :
```bash
test -f docs/studies/004-V0_0_2_GIT_IMPLEMENTATION_STUDY.md
test -f docs/plans/002-V0_0_2_GIT_SYNC_PLAN.md
test -f deltas/0.0.2/alpha.1.md
test ! -e history/0.0.2/alpha.1.md
grep -F 'PGR stable tag v0.1.3' docs/architecture/001-PROJECT_PROFILE.md
grep -F '`230-ADOPTION`' docs/architecture/001-PROJECT_PROFILE.md
grep -F 'processus `git` contrôlé' docs/studies/004-V0_0_2_GIT_IMPLEMENTATION_STUDY.md
grep -F 'repositories/<source-key>.git' docs/studies/004-V0_0_2_GIT_IMPLEMENTATION_STUDY.md
grep -F 'snapshots/<source-key>/<resolved-revision>' docs/studies/004-V0_0_2_GIT_IMPLEMENTATION_STUDY.md
git diff --name-only -- crates Web
git diff --cached --check
```
`git diff --name-only -- crates Web` doit être vide pour cette tranche.
Le `Cargo.lock` peut être généré ou modifié localement par Cargo mais reste ignoré/non suivi conformément à la stable `0.0.1`. Le `package-lock.json` reste versionné.
## Transition
### PASS
Produire séparément :
```text
history/0.0.2/alpha.1.md
```
avec les résultats réels, l'appliquer, puis commit/push `0.0.2-alpha.1` avant préparation de `alpha.2`.
### FAIL
Produire le history réel `FAIL`, le committer, puis corriger uniquement cette tranche avec :
```text
0.0.2-alpha.1.fix.1
```
Ne pas préparer `alpha.2` tant que la tranche courante n'est pas fermée conformément au workflow.