P1.5H — Capacity Certificate and SLO Closure¶
Status: GIT TEMPLATE READY / P1.5G CLOSED_PASS / CERTIFICATE NOT ISSUED / CURRENT REPROOF SELECTION REFRESH GIT PREPARED
P1.5H est la dernière phase de certification de capacité.
Le certificat n'est pas une estimation marketing de ce que le VPS « devrait tenir ». Il décrit uniquement une enveloppe observée et certifiée à partir des preuves live P1.5F/P1.5G.
Autorité¶
Le contrat machine-readable est :
benchmarks/capacity/p1-5h-certificate-contract.json
État CURRENT du template :
certificate_status=NOT_CERTIFIED
numeric_capacity_values_present=false
current_runtime_reproof=GIT_PREPARED_LIVE_EXECUTION_NOT_AUTHORIZED
rerun_set=S0,S1,S2,S5
reuse_candidates=S3,S6
Les preuves live P1.5F/P1.5G existent désormais et P1.5G est globalement CLOSED_PASS. Le dépôt ne publie toutefois pas encore une synthèse numérique de certificat tant que la gate P1.5H n'a pas consolidé l'enveloppe, la ressource limitante, la marge et les seuils avec provenance.
Prérequis¶
Un certificat ne peut être émis que si :
- P1.5F est
CLOSED_PASS; - les preuves P1.5G sont disponibles pour les scénarios réellement inclus ;
- le SHA Git déployé est exact ;
- l'image worker est identifiée ;
- les hashes de configuration sont figés ;
- les datasets sont fingerprintés ;
- les artefacts live sont conservés hors dépôt ;
- chaque scénario inclus respecte son business verifier et ses règles de recovery.
Une preuve issue d'une autre révision/configuration ne peut pas être recollée artificiellement au certificat.
Préparation CURRENT-runtime du reproof P1.5H¶
Après le drift normal des feeds du 22 septembre 2026, la sélection read-only CURRENT a été rafraîchie puis figée dans Git sans rouvrir P1.5F/P1.5G. L'ancienne sélection 67457528367a77e33594f2920546d0f74d2847e487550c339d4af42cc5809ec8 reste historique mais est superseded pour toute nouvelle exécution P1.5H :
authority benchmarks/capacity/p1-5h-current-runtime-reproof-contract.json
selection benchmarks/capacity/p1-5h-current-reproof-selection.json
selection_sha256 d28ddd494c37c49b6384a92b4df333fe9038c9ebbd8beec0e6487d96a860b8b3
selection_source_git_sha 4d0d8609021798cd6e84064a300def297d98551a
runtime_content_reference c67fba3f96af7614ed48551b47f04055b08ff5d6
worker_image ghcr.io/neweden52/cmonchoix-platform-worker@sha256:595382ea83fa7d591e53871ec5f2f271ba7504be0836d3ccf596334f47d77544
dataset_sha256 7df03b65e26dc33cd58a89614cd6de80bad28e1c356a54ebb52d2c206b0cc5ee
offers 705
products 678
merchants 2
Le minimum CURRENT-runtime est volontairement limité :
S0 rerun required / read-only baseline / no recovery
S1 rerun required / Acer / snapshot 102 -> 102 / 172 offers / 818 processed rows / recovery proof required
S2 rerun required / Samsung / 533 eligible rows / 100% churn / snapshot 101 recovery
S5 rerun required / smartphone / CURRENT source+projection fingerprints / recovery proof required
S3 current-runtime evidence reuse candidate / prior dataset retained / CURRENT dataset drift acknowledged / no rerun at this stage
S6 current-runtime evidence reuse candidate / prior dataset retained / CURRENT dataset drift acknowledged / no rerun at this stage
S4 SKIPPED_NOT_AUTHORIZED
identity capacity SKIPPED_NOT_DEPLOYED
Les nouvelles autorités de préparation sont :
benchmarks/capacity/p1-5h-s0-current-reproof-config.json
benchmarks/capacity/p1-5h-s1-current-reproof-config.json
benchmarks/capacity/p1-5h-s2-current-reproof-config.json
benchmarks/capacity/p1-5h-s5-current-reproof-config.json
Cette préparation Git n'autorise aucune exécution live. S1/S2/S5 doivent d'abord obtenir une preuve de recovery CURRENT ; S0/S1/S2/S5 doivent ensuite être alignés sur une release authority correspondant au nouveau SHA Git avant leurs gates live explicites. Aucun rerun automatique n'est autorisé.
Politique P1.5G gouvernant cette première enveloppe¶
La politique versionnée est OWNER_POLICY=G / ALL_AUTHORIZED_SCENARIOS avec la règle :
ALL_AUTHORIZED_SCENARIOS_MUST_HAVE_EXPLICIT_TERMINAL_STATUS
Pour émettre cette première enveloppe P1.5H, S1, S2, S3, S5 et S6 doivent être PASS. Ils sont désormais tous CLOSED_PASS et l'autorité globale P1.5G est benchmarks/capacity/p1-5g-global-closure.json.
S4 peut rester SKIPPED_NOT_AUTHORIZED tant qu'aucune Runtime Concurrency Authority explicite n'autorise des worker counts supplémentaires.
S6 est CLOSED_PASS avec une source heavy-sync explicitement versionnée et une preuve frontend/recovery Git-recorded. Aucun nouveau workload S6 n'est autorisé par la clôture P1.5G.
Les autres dimensions non mesurées restent NOT_VALIDATED; elles ne sont jamais extrapolées depuis les scénarios certifiés.
États du certificat¶
SCOPED_CERTIFIED¶
Le système est certifié uniquement dans l'enveloppe explicitement mesurée.
Exemple conceptuel :
offers <= max_observed_offers
products <= max_observed_products
merchants <= max_observed_merchants
change_percent <= max_observed_change_percent
workers <= max_certified_worker_count
scenarios = liste réellement PASS
Ce n'est jamais une certification de capacité illimitée.
NOT_CERTIFIED¶
Utilisé notamment si :
- P1.5F manque ;
- un hard FAIL existe ;
- une dimension requise n'est pas mesurée ;
- le recovery n'est pas prouvé ;
- l'autorité de concurrence n'existe pas ;
- les preuves sont incohérentes ou périmées.
INVALIDATED¶
Un certificat auparavant valide devient invalide lorsqu'une modification sort des invariants mesurés, par exemple :
- changement Runtime affectant la capacité ;
- nouvelle image worker ;
- changement significatif Compose/Alloy/Prometheus/MariaDB ;
- changement de classe de ressources VPS/DB ;
- modification du contrat de concurrence ;
- changement sémantique des métriques ;
- changement de schéma/write boundary affectant le workload mesuré.
Une ancienne certification n'est donc pas éternelle.
Enveloppe certifiée¶
Le certificat doit contenir au minimum :
max_observed_offers
max_observed_products
max_observed_merchants
max_observed_change_percent
max_certified_worker_count
certified_scenarios
excluded_scenarios
frontend_under_heavy_sync_certified
projection_rebuild_certified
Une dimension non mesurée reste :
NOT_VALIDATED
Elle n'est jamais déduite d'une autre mesure.
S4 et nombre de workers¶
Le nombre de workers certifié est celui réellement autorisé et mesuré.
Si le Runtime n'autorise que 1 worker :
max_certified_worker_count=1
S4 higher counts=SKIPPED_NOT_AUTHORIZED
Le certificat ne peut pas transformer « le harness connaît 2/4 » en « 2/4 sont supportés ».
Résumé des 19 séries¶
Pour chaque série ccx_capacity_*, le certificat conserve :
- unité ;
- médiane des runs mesurés ;
- pire run ;
- minimum observé ;
- maximum observé ;
- scénarios sources.
Les séries restent celles du contrat P1.5D. Aucun indicateur parallèle n'est inventé dans le certificat.
Hard FAIL¶
Le certificat doit prouver l'absence de hard FAIL dans l'enveloppe incluse :
- divergence métier ;
- perte de données ;
- projection incohérente ;
- OOM ;
- restart inattendu ;
- deadlock non récupéré ;
- queue qui ne se draine pas ;
- job abandonné ;
- recovery/rollback en échec ;
- saturation disque causant un échec fonctionnel.
Si un scénario inclus est en hard FAIL, l'enveloppe concernée n'est pas certifiée.
Validation des design targets¶
Trois objectifs existaient avant les benchmarks :
frontend p95 300 ms
HTTP 5xx ratio 0.1 %
projection lag 300 s
Le certificat peut leur donner seulement :
VALIDATED_PASS
VALIDATED_FAIL
NOT_VALIDATED
Un objectif de conception n'est pas rétroactivement transformé en SLO certifié parce qu'il apparaît dans Grafana.
Seuils opérationnels¶
P1.5H interdit les seuils inventés.
Tout seuil opérationnel final doit conserver :
metric
value
unit
evidence scenarios
observed worst case
declared safety margin
rationale
certificate revision
Sans ces éléments :
NOT_VALIDATED
Ressource limitante et marge¶
Un certificat SCOPED_CERTIFIED doit identifier une ressource limitante réelle.
Champs obligatoires :
resource
scenario
observed_value
unit
evidence
safety_margin
next_scaling_action
Le certificat ne peut pas écrire « bottleneck inconnu » et simultanément prétendre que la capacité maximale est certifiée.
La marge est une observation explicite, pas un pourcentage universel inventé à l'avance.
Pas d'extrapolation¶
Pratiques interdites :
- multiplier linéairement un résultat 1 worker pour annoncer 4 workers ;
- extrapoler un feed 100k vers 1M sans mesure ;
- déduire la capacité multi-marchands d'un seul marchand ;
- certifier le frontend sous charge avec seulement S0 ;
- certifier un rebuild sans S5 ;
- transformer la meilleure répétition en capacité nominale ;
- ignorer le pire run ;
- annoncer de l'exactly-once lorsque le transport source ne l'est pas.
Contenu minimal d'un certificat émis¶
certificate identity
revision/image/config authority
dataset fingerprints
scenario statuses S0..S6
certified envelope
19 capacity metric summaries
design-target validation
hard-fail evidence
recovery evidence
limiting resource
safety margin
operational thresholds + provenance
invalidation triggers
known limitations
État CURRENT¶
Après clôture globale P1.5G :
P1.5A-E CLOSED Git
P1.5F live baseline CLOSED_PASS
P1.5G global CLOSED_PASS
P1.5G authority benchmarks/capacity/p1-5g-global-closure.json
P1.5G S1/S2/S3/S5/S6 CLOSED_PASS
P1.5G S4 SKIPPED_NOT_AUTHORIZED UNTIL RUNTIME AUTHORITY
P1.5H certificate NOT_CERTIFIED
La seule manière de transformer le dernier statut en SCOPED_CERTIFIED est de fournir les preuves live demandées. Aucun commit de documentation seul ne peut le faire.