9.1 KiB
Delta 0.1.2-beta.1 — réconciliation intégrée et décision finale d'artefacts
Baseline et version
Baseline attendue : commit opérateur de 0.1.2-alpha.3, réalisé après application de history/0.1.2/alpha.3.md avec statut PASS.
Version avant application :
0.1.2-alpha.3
Version après application :
0.1.2-beta.1
Objet
Cette tranche exécute la réconciliation prévue après la scission des owners Java, Maven et Gradle. Elle ne crée aucune nouvelle règle fonctionnelle et ne modifie aucun des profils 520-JAVA.md, 521-MAVEN.md, 522-GRADLE.md ou 610-ANDROID.md.
La beta confirme que la séparation 520/521/522 résout l'ambiguïté d'applicabilité sans importer les choix locaux Games ni ouvrir le scope Android.
Scope
REPLACE :
VERSION
README.md
docs/000-README.md
docs/architecture/003-RULE_PROFILE_MODEL.md
docs/plans/008-V0_1_2_JAVA_GRADLE_REEVALUATION_PLAN.md
ADD :
deltas/0.1.2/beta.1.md
DELETE : aucun.
Aucun history/0.1.2/beta.1.md n'est anticipé.
Réconciliation des owners
La revue confirme les contrats suivants :
520-JAVA.md Java uniquement
521-MAVEN.md Maven uniquement lorsqu'il est réellement utilisé
522-GRADLE.md Gradle uniquement lorsqu'il est réellement utilisé
La composition reste explicite. Un projet Java/Maven applique 520 + 521; un projet Java/Gradle applique 520 + 522; un projet Gradle sans Java n'applique pas 520 par simple transitivité.
L'ancien 520-JAVA_MAVEN_GRADLE.md reste un bridge SUPERSEDED non normatif pour la compatibilité documentaire historique et ne redevient pas sélectionnable.
Réconciliation contre Games
Games fournit une preuve réelle pour Java et Gradle, mais aucune preuve Maven. La beta confirme donc que :
- la séparation JDK de build / niveau source / bytecode-runtime est généralisable ;
- l'ownership
settings/ root / module / propriétés partagées est généralisable ; - une politique Gradle système doit avoir une contrainte effectivement vérifiée ;
- le Wrapper reste un mécanisme conditionnel de reproductibilité ;
- Groovy DSL et absence de Wrapper restent des choix locaux Games ;
- JDK 25, Java 17, Gradle 9.6.0+ et Gradle 9.7.1 ne deviennent aucun minimum PGR ;
- aucun contenu Maven nouveau n'est déduit d'un corpus qui n'utilise pas Maven.
Frontière Android
La beta ne modifie pas 610-ANDROID.md.
Restent explicitement hors du scope 0.1.2 :
AGP
compileSdk / targetSdk / minSdk
SDK / NDK
ABI / JNI
manifests / resources
APK / AAB / signing
Variant API
AVD / devices / smokes Android
contraintes 16 KB
SDL3 et architecture produit Games
Ces responsabilités restent réservées à 0.1.3 ou à un owner plus spécifique.
Décision finale d'artefacts
Aucun artefact technique supplémentaire n'est justifié pour 0.1.2.
Ne sont donc pas ajoutés :
nouveau contrat docs/validation/
template Java/Maven/Gradle générique
skeleton Java/Gradle générique
audit Python Java/Maven/Gradle
artefact Maven déduit de Games
La raison est positive et vérifiable : les trois owners couvrent déjà les responsabilités génériques démontrées, tandis que Java, Maven et Gradle eux-mêmes possèdent les preuves exécutables de compilation/build/test. Ajouter un artefact uniquement pour remplir la release introduirait de la duplication ou une convention insuffisamment éprouvée.
Documentation durable
La tranche actualise :
- le statut racine de la release ;
- l'index documentaire
0.1.2; - le modèle architectural avec la décision beta durable ;
- le plan actif avec le
PASSdealpha.3et la décision finale d'artefacts.
Aucun changement n'est requis dans RULES.md, docs/rules/000-README.md ou ROADMAP.md, déjà réconciliés pendant alpha.3.
Validation opérateur
Après application du history PASS de alpha.3, commit/push de alpha.3, puis application du présent delta :
test "$(cat VERSION)" = '0.1.2-beta.1'
git cat-file -e HEAD:history/0.1.2/alpha.3.md
test -f history/0.1.2/alpha.3.md
test -f deltas/0.1.2/beta.1.md
test ! -e history/0.1.2/beta.1.md
grep -A2 '^## Statut$' history/0.1.2/alpha.3.md | grep -Fx 'PASS'
grep -Fx '<!-- version: 21 -->' README.md
grep -Fx '<!-- version: 34 -->' docs/000-README.md
grep -Fx '<!-- version: 8 -->' docs/architecture/003-RULE_PROFILE_MODEL.md
grep -Fx '<!-- version: 4 -->' docs/plans/008-V0_1_2_JAVA_GRADLE_REEVALUATION_PLAN.md
grep -Fx '<!-- version: 4 -->' docs/rules/520-JAVA.md
grep -Fx '<!-- version: 1 -->' docs/rules/521-MAVEN.md
grep -Fx '<!-- version: 1 -->' docs/rules/522-GRADLE.md
grep -Fx '<!-- version: 4 -->' docs/rules/520-JAVA_MAVEN_GRADLE.md
grep -Fx '<!-- version: 3 -->' docs/rules/610-ANDROID.md
python3 -B -m unittest discover -s tests -v
python3 -B scripts/audit_markdown_headers.py \
README.md RULES.md ROADMAP.md CHANGELOG.md docs deltas history prompts
python3 -B scripts/audit_markdown_tables.py \
README.md RULES.md ROADMAP.md CHANGELOG.md docs deltas history prompts
python3 -B scripts/audit_markdown_links.py \
README.md RULES.md ROADMAP.md CHANGELOG.md docs deltas history prompts
python3 -B - <<'PYGATE'
from pathlib import Path
import re
history = Path('history/0.1.2/alpha.3.md').read_text(encoding='utf-8')
assert re.search(r'## Statut\s+PASS\s', history)
java = Path('docs/rules/520-JAVA.md').read_text(encoding='utf-8')
maven = Path('docs/rules/521-MAVEN.md').read_text(encoding='utf-8')
gradle = Path('docs/rules/522-GRADLE.md').read_text(encoding='utf-8')
legacy = Path('docs/rules/520-JAVA_MAVEN_GRADLE.md').read_text(encoding='utf-8')
android = Path('docs/rules/610-ANDROID.md').read_text(encoding='utf-8')
architecture = Path('docs/architecture/003-RULE_PROFILE_MODEL.md').read_text(encoding='utf-8')
plan = Path('docs/plans/008-V0_1_2_JAVA_GRADLE_REEVALUATION_PLAN.md').read_text(encoding='utf-8')
assert '# Profil Java' in java
assert '# Profil Maven' in maven
assert '# Profil Gradle' in gradle
assert '`SUPERSEDED` depuis `0.1.2-alpha.3`.' in legacy
assert 'Il ne constitue plus un profil sélectionnable' in legacy
for current in ('RULES.md', 'docs/000-README.md', 'docs/rules/000-README.md', 'docs/rules/610-ANDROID.md'):
assert '520-JAVA_MAVEN_GRADLE.md' not in Path(current).read_text(encoding='utf-8'), current
for local_choice in (
'JDK 25',
'source/target 17',
'Gradle 9.6.0',
'Gradle 9.7.1',
'AGP 9.4.0',
):
assert local_choice not in java, local_choice
assert local_choice not in maven, local_choice
assert local_choice not in gradle, local_choice
for android_term in (
'compileSdk',
'targetSdk',
'minSdk',
'NDK',
'ABI/JNI',
'APK/AAB',
'device/AVD',
'SDL3',
):
assert android_term not in maven, android_term
assert android_term not in gradle, android_term
assert 'Matrice AGP / Gradle / JDK' in android
assert '`compileSdk`, `targetSdk` et `minSdk`' in android
for phrase in (
'## Réconciliation beta de Java / Maven / Gradle en `0.1.2`',
'aucune preuve Maven réelle',
'Aucun nouveau contrat sous `docs/validation/`, template, skeleton ou audit Python Java/Maven/Gradle n\'est justifié.',
):
assert phrase in architecture, phrase
for phrase in (
'## Décision après `alpha.3` et réconciliation `beta.1`',
'La gate opérateur de `alpha.3` est `PASS`',
'aucun artefact technique supplémentaire',
'aucun corpus Maven',
'`0.1.3`',
):
assert phrase in plan, phrase
for foreign in (
'Cargo.toml',
'crates/knowledge-domain-lib/src/content_family.rs',
'deltas/0.0.1/alpha.3.fix.2.md',
'history/0.0.1/alpha.3.fix.1.md',
):
assert not Path(foreign).exists(), foreign
print('0.1.2 beta.1 reconciliation audit: clean (owners stable, Games-local choices not generalized, no extra artifacts justified, Android boundary preserved)')
PYGATE
git diff --check
git add README.md VERSION \
docs/000-README.md \
docs/architecture/003-RULE_PROFILE_MODEL.md \
docs/plans/008-V0_1_2_JAVA_GRADLE_REEVALUATION_PLAN.md \
deltas/0.1.2/beta.1.md
git diff --cached --check
git status --short
Le scope indexé attendu avant ajout du history est exactement :
M README.md
M VERSION
A deltas/0.1.2/beta.1.md
M docs/000-README.md
M docs/architecture/003-RULE_PROFILE_MODEL.md
M docs/plans/008-V0_1_2_JAVA_GRADLE_REEVALUATION_PLAN.md
La revue qualitative doit confirmer que :
- aucun choix local Games n'est promu comme minimum générique ;
- Maven n'est pas présenté comme validé par Games ;
- les owners
520/521/522restent indépendants et composables ; - aucun nouveau fichier technique n'est ajouté pour satisfaire une structure théorique ;
- Android reste entièrement hors du scope fonctionnel de
0.1.2; - la documentation durable reflète la scission et la décision d'artefacts sans réécrire les snapshots historiques.
Transition
PASS
Produire history/0.1.2/beta.1.md, puis préparer 0.1.2-rc.1 pour le gel de scope et la release gate complète.
FAIL
Consigner le diagnostic réel dans history/0.1.2/beta.1.md, puis produire beta.1.fix.N ou effectuer un REPLAN uniquement si un défaut d'ownership ou de frontière ne peut pas être corrigé localement.