Aller au contenu

PD-293-specification-review

Type : Contradiction Reference : PD-293-specification.md §4 (INV-293-14) vs §5.1 (Regles globales normatives, points 3 et 4) Description : INV-293-14 impose un ordre de gardes de commande general "quota -> doublon idempotence -> validation format", alors que §5.1 limite cet ordre a start et definit un autre ordre pour stop/respond/pause/resume (sans quota). Impact : Un implementateur peut appliquer des ordres differents selon qu'il suit l'invariant ou la section de regles, ce qui rend le comportement non deterministe et contestable en audit. Gravite : Bloquant

Type : Incoherence Spec↔Tests Reference : PD-293-specification.md §7 (CA-02) vs PD-293-tests.md §2 (Matrice) + §3 (TC-NOM-08) Description : La matrice associe CA-02 a TC-NOM-08. CA-02 exige un demarrage nominal jusqu'a RUNNING avant start_detection_timeout et apres first liveness. TC-NOM-08 teste l'idempotence d'une reemission de start, pas le chemin nominal de demarrage. Impact : La preuve attendue pour CA-02 n'est pas celle du critere contractualise ; la conformite peut etre declaree alors que le comportement cible n'est pas demontre. Gravite : Majeur

Type : Incoherence Spec↔Tests Reference : PD-293-specification.md §7 (CA-01) vs PD-293-tests.md §2 (Matrice, ligne INV-293-10 -> CA-01) Description : La matrice rattache INV-293-10 (immutabilite des etats terminaux) a CA-01 (listing des Ringbearers actifs). Les deux enonces ne portent pas sur le meme objet observable. Impact : La tracabilite Invariant -> Critere -> Test est incoherente et fragilise la validite probatoire de la matrice. Gravite : Majeur

Type : Non testable Reference : PD-293-specification.md §6.1 (Format de log de rejet) + §6 (ERR-293-01..05) Description : §6.1 impose pour "chaque rejet de validation/message" des champs minimaux timestamp, peer_id, message_type, reason. Pour plusieurs rejets de commandes Sovereign (start quota, respond sans escalade, commande hors scope), peer_id et message_type ne sont pas definis par le contrat. Impact : Les tests ne peuvent pas verifier de facon deterministe la conformite du format de log pour ces rejets, car les valeurs obligatoires ne sont pas contractualisees. Gravite : Majeur

Type : Ambiguite Reference : PD-293-specification.md §5.1 (champ timestamp) Description : Le format indique "RFC3339 UTC" et "suffixe Z ou offset UTC". La notion d'"offset UTC" n'est pas definie (strictement +00:00 ou tout offset RFC3339). Impact : Des validateurs differents peuvent accepter/rejeter des timestamps differents, ce qui rend les rejets schema potentiellement divergents entre equipes. Gravite : Mineur

Type : Hypothese dangereuse Reference : PD-293-specification.md §7 (CA-03) + §5.1 (escalade_visibility_sla) + PD-293-tests.md TC-NOM-04 Description : La mesure SLA "emission/reception" est basee sur horodatages sans borne explicite de synchronisation d'horloge entre emetteur et recepteur. Impact : Un decalage d'horloge peut produire des faux positifs/faux negatifs sur le P95, avec risque de verdict d'acceptation/rejet non fiable. Gravite : Majeur

Type : Contradiction Reference : PD-293-specification.md §5bis (diagramme de sequence) vs §4 (INV-293-02) Description : Le diagramme de sequence montre des echanges directs O->>R (demande demarrage, PO_RESPONSE, PAUSE, RESUME), alors que INV-293-02 impose que One Ring communique avec les stories uniquement via broker/peers. Impact : Le canal contractuel de communication est contradictoire entre diagramme et invariants ; une implementation tierce peut legitimer un chemin direct interdit par l'invariant. Gravite : Bloquant

Type : Incoherence Spec↔Tests Reference : PD-293-tests.md §5 (Tests d'invariants) vs §3-4 (scenarios detailles) Description : Des tests references dans la matrice/invariants (TC-NR-01, TC-NR-03, TC-NEG-01..TC-NEG-10) ne sont pas decrits en Given/When/Then detaille dans le document, contrairement aux autres cas. Impact : La reproductibilite et l'auditabilite de ces preuves sont reduites ; le niveau de detail est heterogene selon les exigences. Gravite : Majeur

Type : Ambiguite Reference : PD-293-specification.md §5.4 (schema .gov-lord-state.json) + §5.2 (etat STARTING) Description : Dans stories[].required, peer_id est obligatoire pour tous les etats. Or en STARTING, la spec autorise une phase avant detection effective du peer. Impact : Incoherence potentielle de persistance pendant le demarrage (etat valide sans peer_id contractuellement defini), avec risque de divergence d'implementation. Gravite : Majeur

Type : Risque secu/conformite Reference : PD-293-specification.md §5.1 (escalade_text, summary_text) + PD-293-tests.md §8 (export probatoire) Description : Le contrat autorise du texte libre UTF-8 jusqu'a 2000 caracteres et impose des exports probatoires de logs/evenements, sans regle explicite de minimisation ou de protection des donnees potentiellement personnelles/sensibles dans ces champs. Impact : Risque RGPD/conformite (journalisation et export de contenu sensible non borne), impactant audit externe et retention documentaire. Gravite : Majeur