| TC-NOM-01 | ✅ | finality-guard.service.spec.ts | Persistance confirmation_count testée avec audit. |
| TC-NOM-02 | ✅ | finality-guard.service.spec.ts | Refus explicite sous seuil finalité. |
| TC-NOM-03 | ✅ | finality-guard.service.spec.ts | Succès au seuil et au-dessus. |
| TC-NOM-04 | ✅ | signer-registry.service.spec.ts | Revocation ACTIVE + audit + rôles ADMIN/SIGNER_ADMIN. |
| TC-NOM-05 | ✅ | signer-registry.service.spec.ts | Double revocation refusée, pas de mutation. |
| TC-NOM-06 | ✅ | signer-registry.service.spec.ts | Soumission REVOKED refusée. |
| TC-NOM-07 | ✅ | signer-registry.service.spec.ts | Signer absent refusé. |
| TC-NOM-08 | ✅ (hors périmètre CI) | N/A | Prolog E2E documenté non-automatisable (à ne pas signaler). |
| TC-NOM-09 | ✅ | pd275-migration.integration.spec.ts | Cycle up/down/up prévu. |
| TC-NOM-10 | ✅ | pd275-concurrency.integration.spec.ts | Concurrence revoke/submit couverte. |
| TC-NOM-11 | ✅ | pd275-concurrency.integration.spec.ts | Double revoke concurrent + unicité succès. |
| TC-ERR-01 | ✅ | finality-guard.service.spec.ts | Bornes invalides rejetées. |
| TC-ERR-06 | ✅ | signer-registry.service.spec.ts | Échec persistance audit bloque transition. |
| TC-ERR-08 | ✅ (partiel contractuel) | signer-registry.service.spec.ts, signer.controller.spec.ts | Refus non autorisé testé, mais sans preuve HTTP contractuelle complète guard. |
| TC-ERR-09 | ✅ | signer-registry.service.spec.ts, signer.controller.spec.ts | Anti-spoofing revokedBy couvert. |
| TC-INV-06 | ✅ | signer-registry.service.spec.ts | Terminal state REVOKED respecté. |
| TC-INV-07A | ✅ | signer-registry.service.spec.ts | Machine d'état signer validée. |
| TC-INV-07B | ✅ | finality-guard.service.spec.ts | Précondition transition batch couverte. |
| TC-INV-08 | ✅ | signer-registry.service.spec.ts | Invariant vacuously satisfied explicité. |
| TC-NR-01 | ✅ (hors périmètre test) | N/A | Couverture documentaire, pas un test Jest. |