202 lines
6.8 KiB
Markdown
202 lines
6.8 KiB
Markdown
<!-- file: deltas/0.0.1/alpha.1.md -->
|
|
<!-- version: 1 -->
|
|
|
|
# Delta 0.0.1-alpha.1 — cadrage et gouvernance Knowledge
|
|
|
|
## Base requise
|
|
|
|
Nouveau dépôt applicatif `sasedev-knowledge` avant sa première tranche gouvernée.
|
|
|
|
Aucune release Knowledge antérieure n'existe. L'absence initiale de `VERSION`, rules, plan, delta/history ou code applicatif est normale.
|
|
|
|
Le cadrage de cette tranche a été préparé à partir des artefacts externes autoritaires suivants :
|
|
|
|
```text
|
|
PGR tag stable v0.1.1
|
|
pgr-v0.1.1.zip SHA-256 caaf8f456f7f8520172ea7705fd0cf5c5bf0e942dc4a773410bcbe7fe4ce243a
|
|
PGR publish report pgr-0.1.1-publish.001-report.md = PASS
|
|
Knowledge start prompt prompts/001-V0_0_1_START_PROMPT.md
|
|
```
|
|
|
|
L'absence de `.git` dans l'archive taggée PGR est normale et a été vérifiée comme telle.
|
|
|
|
## Objet
|
|
|
|
Établir le gate de framing `0.0.1-alpha.1` avant toute implémentation fonctionnelle : gouvernance locale, owners/skeletons PGR applicables, architecture Git/forge/PostgreSQL, frontières PGR/HOWTO/snippet, plan de release et validation proportionnée.
|
|
|
|
La version devient :
|
|
|
|
```text
|
|
0.0.1-alpha.1
|
|
```
|
|
|
|
Cette tranche n'ajoute aucun serveur Actix, frontend Vite, schéma PostgreSQL, adapter Gitea ou implémentation Git.
|
|
|
|
## Fichiers ajoutés
|
|
|
|
```text
|
|
.gitignore
|
|
VERSION
|
|
README.md
|
|
RULES.md
|
|
ROADMAP.md
|
|
CHANGELOG.md
|
|
docs/000-README.md
|
|
docs/objectives/001-PROJECT_OBJECTIVES.md
|
|
docs/architecture/001-PROJECT_PROFILE.md
|
|
docs/architecture/002-KNOWLEDGE_ARCHITECTURE.md
|
|
docs/plans/001-V0_0_1_FOUNDATION_PLAN.md
|
|
docs/validation/001-VALIDATION_MATRIX.md
|
|
deltas/0.0.1/alpha.1.md
|
|
prompts/001-V0_0_1_START_PROMPT.md
|
|
```
|
|
|
|
Aucun fichier n'est remplacé ou supprimé.
|
|
|
|
Aucun manifest de suppression n'est nécessaire.
|
|
|
|
## Décisions de cadrage
|
|
|
|
La tranche fixe notamment :
|
|
|
|
- `sasedev-knowledge` comme nom du dépôt applicatif ;
|
|
- `knowledge` comme nom court et préfixe de crates ;
|
|
- la composition PGR réellement applicable sans activer Java/Android/Tauri ;
|
|
- les skeletons `001`, `002` et `003` comme trajectoire de composition, avec matérialisation progressive ;
|
|
- l'absence d'override PGR identifié ;
|
|
- Git comme backend autoritaire du contenu ;
|
|
- une forge comme adapter optionnel distinct des opérations Git ;
|
|
- une synchronisation fonctionnant sans webhook ;
|
|
- PostgreSQL comme état applicatif et projection reconstructible ;
|
|
- le monolithe modulaire comme baseline de départ ;
|
|
- la séparation des dépôts `pgr`, `howtos` et `snippets` ;
|
|
- les frontières de force normative entre PGR, HOWTO, snippet et project-local ;
|
|
- la trajectoire prévisionnelle de `0.0.1` et ses décisions explicitement différées.
|
|
|
|
## Prévalidation assistant effectuée
|
|
|
|
Avant livraison du delta, la stable PGR source a été vérifiée et rejouée :
|
|
|
|
```text
|
|
archive SHA-256 PASS
|
|
archive CRC PASS
|
|
292 entries / 256 files / 36 directories
|
|
root pgr/ PASS
|
|
symlinks 0
|
|
.git absent
|
|
VERSION 0.1.1
|
|
Python tests 48/48 PASS
|
|
Markdown headers clean, 231 files
|
|
Markdown tables clean, 9 tables / 231 files
|
|
Markdown links clean, 267 links / 231 files
|
|
0.1.1 deltas/histories 11 / 11, statuts conformes au publish report
|
|
```
|
|
|
|
Cette prévalidation ne constitue pas le résultat de la gate opérateur Knowledge.
|
|
|
|
## Validation attendue
|
|
|
|
Depuis la racine du nouveau dépôt après extraction du delta :
|
|
|
|
```bash
|
|
test "$(cat VERSION)" = "0.0.1-alpha.1"
|
|
|
|
git diff --check
|
|
|
|
python3 - <<'PY'
|
|
from pathlib import Path
|
|
import re
|
|
|
|
expected = {
|
|
".gitignore",
|
|
"VERSION",
|
|
"README.md",
|
|
"RULES.md",
|
|
"ROADMAP.md",
|
|
"CHANGELOG.md",
|
|
"docs/000-README.md",
|
|
"docs/objectives/001-PROJECT_OBJECTIVES.md",
|
|
"docs/architecture/001-PROJECT_PROFILE.md",
|
|
"docs/architecture/002-KNOWLEDGE_ARCHITECTURE.md",
|
|
"docs/plans/001-V0_0_1_FOUNDATION_PLAN.md",
|
|
"docs/validation/001-VALIDATION_MATRIX.md",
|
|
"deltas/0.0.1/alpha.1.md",
|
|
"prompts/001-V0_0_1_START_PROMPT.md",
|
|
}
|
|
|
|
actual = {
|
|
path.as_posix()
|
|
for path in Path(".").rglob("*")
|
|
if path.is_file() and ".git" not in path.parts
|
|
}
|
|
assert actual == expected, (sorted(actual - expected), sorted(expected - actual))
|
|
|
|
for path_string in sorted(expected):
|
|
path = Path(path_string)
|
|
if path.suffix != ".md":
|
|
continue
|
|
lines = path.read_text(encoding="utf-8").splitlines()
|
|
assert lines[0] == f"<!-- file: {path.as_posix()} -->", path
|
|
assert re.fullmatch(r"<!-- version: [1-9][0-9]* -->", lines[1]), path
|
|
|
|
rules = Path("RULES.md").read_text(encoding="utf-8")
|
|
profile = Path("docs/architecture/001-PROJECT_PROFILE.md").read_text(encoding="utf-8")
|
|
architecture = Path("docs/architecture/002-KNOWLEDGE_ARCHITECTURE.md").read_text(encoding="utf-8")
|
|
plan = Path("docs/plans/001-V0_0_1_FOUNDATION_PLAN.md").read_text(encoding="utf-8")
|
|
|
|
for phrase in (
|
|
"caaf8f456f7f8520172ea7705fd0cf5c5bf0e942dc4a773410bcbe7fe4ce243a",
|
|
"Aucun `OVERRIDE` PGR n'est établi",
|
|
"Git est la source autoritaire du contenu versionné publié",
|
|
):
|
|
assert phrase in rules, phrase
|
|
|
|
for phrase in ("ADOPT", "KEEP-LOCAL", "OVERRIDE", "DEFER", "003-WEB_FRONTEND"):
|
|
assert phrase in profile, phrase
|
|
|
|
for phrase in (
|
|
"Git est le backend du contenu ; une forge est une capacité optionnelle.",
|
|
"RepositoryEventSource",
|
|
"PGR / HOWTO / snippet / project-local",
|
|
"Git versus PostgreSQL",
|
|
):
|
|
assert phrase in architecture, phrase
|
|
|
|
assert "### alpha.2 — workspace Rust/Cargo minimal" in plan
|
|
assert "### rel.1 — fermeture stable" in plan
|
|
|
|
for forbidden in ("src/main.rs", "src/lib.rs", "package.json", "vite.config.ts", "migrations/"):
|
|
assert not Path(forbidden).exists(), forbidden
|
|
|
|
print("Knowledge 0.0.1-alpha.1 framing audit: clean")
|
|
PY
|
|
|
|
git add -A
|
|
git diff --cached --check
|
|
git status --short
|
|
```
|
|
|
|
Revue opérateur complémentaire :
|
|
|
|
- vérifier qu'aucun fichier fonctionnel non listé n'a été introduit ;
|
|
- vérifier que le dépôt est réellement nouveau ou que tout fichier local préexistant non livré a été identifié avant `git add -A` ;
|
|
- vérifier la cohérence des décisions locales et des `DEFER` ;
|
|
- vérifier l'absence de secret, credential, URL privée sensible ou chemin machine absolu ;
|
|
- vérifier que les fichiers Eclipse/IDE locaux restent ignorés.
|
|
|
|
## Transition
|
|
|
|
### PASS
|
|
|
|
Transmettre les sorties complètes de la gate opérateur.
|
|
|
|
L'assistant produit ensuite une archive history séparée pour `history/0.0.1/alpha.1.md`, puis prépare `0.0.1-alpha.2` consacré au workspace Rust/Cargo minimal conformément au plan.
|
|
|
|
Le commit de `alpha.1` intervient uniquement après application du history observé et avant application du delta suivant.
|
|
|
|
### FAIL / PARTIAL / BLOCKED
|
|
|
|
Conserver le résultat réel dans le history correspondant.
|
|
|
|
Rester dans le scope `alpha.1` et produire `0.0.1-alpha.1.fix.1` si le défaut relève de cette tranche. Aucun scope `alpha.2` ne doit être introduit dans le fix.
|