0.0.1-alpha.1
This commit is contained in:
201
deltas/0.0.1/alpha.1.md
Normal file
201
deltas/0.0.1/alpha.1.md
Normal file
@@ -0,0 +1,201 @@
|
||||
<!-- 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.
|
||||
Reference in New Issue
Block a user