Files
pgr/deltas/0.1.2/beta.1.md
2026-09-28 01:03:26 +02:00

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 PASS de alpha.3 et 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/522 restent 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.