Aller au contenu

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 :

  1. P1.5F est CLOSED_PASS ;
  2. les preuves P1.5G sont disponibles pour les scénarios réellement inclus ;
  3. le SHA Git déployé est exact ;
  4. l'image worker est identifiée ;
  5. les hashes de configuration sont figés ;
  6. les datasets sont fingerprintés ;
  7. les artefacts live sont conservés hors dépôt ;
  8. 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.