Objet
Ce document définit la vue descendante TEC / VER vers les preuves de réalisation dans
les dépôts produit. Il ne crée aucune prescription : les sources normatives restent les
chapitres techniques et la matrice générée.
État de suivi
Les prescriptions et obligations publiées sont suivies lorsqu’une preuve de réalisation a été inspectée. L’absence de ligne ne vaut ni conformité ni non-conformité : elle signifie que la réalisation n’a pas encore été évaluée dans ce registre.
Les références de réalisation seront ajoutées au fil des traductions techniques. Une référence vers un ADR, un test, une procédure ou du code est informative : elle prouve un état observé sans devenir la source de la prescription.
Séquençage à reprendre dans le plan d’action et d’implémentation
Cette vue reprend DEC-0060 et DEC-0061 ; elle ne crée pas de tickets, de calendrier ni de preuve de réalisation. Les responsables et jalons précis sont à affecter dans le plan.
| Sujet | Phase actuelle | Passe différée | Preuves de clôture |
|---|---|---|---|
| Tests instables — TEC-OPS-012 | Identifier par tag, conserver résultats et motif, inscrire la reprise au plan | Corriger dans un second temps selon le séquençage du plan | VER-OPS-014 : stabilité démontrée, tag retiré, dette suivie sans faux résultat vert |
| Idempotence commune REST — TEC-INT-006 | Documenter la cible extensible ; pas d’implémentation générique immédiate ni activation par défaut ; conserver les protections spécifiques existantes | Après le gros de l’implémentation API : inventorier usages/risques, préciser les contrats, implémenter et qualifier, activer explicitement par commande | VER-OPS-015 : preuves de concurrence, panne, droits et activation ; la planification seule ne vaut pas livraison |
Ces reports ne suppriment pas les preuves obligatoires à un jalon déjà prescrit et ne reportent pas la sûreté des reprises de jobs ou des effets obligatoires.
Exception DEC-0248 : convertQuotation requiert réalisation et qualification du
contrat commun dès le Lot 0, registre propriétaire Sales, selon TEC-INT-006 et le
contrat Sales. VER-OPS-015 et VER-FCT-026 sont des prérequis de livraison ciblée ;
la passe générale reste différée pour les autres commandes. Paramètres de clé,
empreinte et conservation à qualifier ; aucune activation ni recette produit acquise.
Format cible
| Prescription | Vérification | Dépôt | Référence de réalisation | État | Preuve relue le |
|---|---|---|---|---|---|
TEC-SEC-001 |
VER-SEC-001 |
elena |
13504323, compose.dev.yaml (instance postgres-audit, stockage objet rustfs-audit dédié, identité de traitement d’audit, identifiant de déploiement), docker/rustfs/audit-archive.policy.json, database/schema/01-provision-audit.sql, bin/verify-audit-isolation, tests/tooling/dev-compose-contract.test.mjs : séparation locale du métier et de l’audit conforme ; essai croisé entre deux projets de sociétés non rejoué dans cette relecture ; qualification et production différées |
partiel | 2026-09-21 |
TEC-SEC-003 |
VER-SEC-003, VER-SEC-006 |
elena |
13504323, Modules/Foundation/app/Audit/{AuditHasher,AuditChainVerifier}.php, Modules/Foundation/app/Audit/Sealing/, commandes audit:seal, audit:verify, audit:verify-seals, audit:checkpoint, tests/Feature/{AuditHashChainTest,AuditBatchSealingTest,AuditSealArchiveTest,AuditSealVerificationTest,AuditVerificationEventsTest}.php, Modules/Foundation/tests/Feature/{AuditSealBatchPostgresTest,AuditDeliveryOutboxTest,PersonalAuditFragmentStorePostgresTest}.php, Modules/Referential/tests/Feature/{ContactAuditTest,ContactPersonalFragmentTest}.php : chaîne, lots Merkle signés, archive objet, contrôle quotidien, valeurs personnelles du Contact hors entrée immuable et purge du contexte de reprise conformes à DEC-0251 et DEC-0256 ; signataire local transitoire, KMS/HSM, WORM qualifié, réplication, sauvegardes indépendantes, rotation et exercice annuel absents |
partiel | 2026-09-21 |
TEC-SEC-004 |
VER-SEC-004 |
elena |
13504323, Modules/Foundation/app/Audit/{AuditDeliveryOutbox,AuthorizationDenialAuditor,AuditAdministrationRecorder}.php, Modules/Foundation/app/Auth/{SsoGuard,ApiKeyGuard}.php, Modules/Dwt/app/Import/Audit/ImportAuditTrail.php, Modules/PdfGeneration/app/Services/{PdfTemplateService,ContextualPdfGenerationService}.php, Modules/Manufacturing/app/Services/WorkorderService.php, Modules/Referential/app/Services/ThirdPartyService.php, tests/Feature/AuditDeliveryAlertsTest.php, Modules/Foundation/tests/Feature/{AuditDeliveryOutboxTest,AuthorizationDenialAuditTest}.php, Modules/Dwt/tests/Feature/Import/Audit/, Modules/PdfGeneration/tests/Feature/Audit/PdfTemplateAuditTrailTest.php, Modules/Manufacturing/tests/Feature/WorkorderAuditTrailTest.php : échec fermé, refus audités, alertes et reprise conformes à DEC-0252 et DEC-0257 ; les commandes client de Manufacturing écrivent encore par le chemin dégradable jusqu’à leur reprise par le module Ventes |
partiel | 2026-09-21 |
TEC-SEC-011 |
VER-SEC-016 |
elena |
13504323, Modules/Foundation/app/Http/Controllers/Api/AuditTrailController.php, Modules/Foundation/app/Audit/{AuditRestitutionPolicy,AuditEventFilters,AuditAuthorResolver}.php, Modules/Foundation/tests/Feature/{AuditTrailAuthorAttributionTest,AuditTrailRestitutionTest,AuditTrailFilteringTest,AuditTrailExportEndpointTest}.php : auteur par identifiant local, différences des cibles non personnelles, filtres, total, NDJSON et échec fermé conformes |
conforme | 2026-09-21 |
TEC-SEC-012 |
VER-SEC-017 |
elena |
13504323, Modules/Foundation/app/Contributions/permissions.php, routes api/v1/audit/{legal-holds,retention-policy,verifications}, commande audit:reconcile-restored-fragments, Modules/Foundation/tests/Feature/{AuditLegalHoldEndpointTest,AuditLegalHoldPostgresTest,AuditRetentionPolicyEndpointTest,AuditVerificationEndpointTest,AuditReconcileRestoredFragmentsTest}.php, tests/Feature/{AuditRetentionLegalHoldTest,AuditRetentionPolicyEffectTest}.php : six permissions sans octroi par défaut, conservation à titre légal, durées bornées, vérification à la demande et rapprochement conformes |
conforme | 2026-09-21 |
TEC-SEC-013 |
VER-SEC-018 |
elena |
13504323, Modules/*/app/Contributions/audit-events.php, Modules/Foundation/app/PublicApi/Audit/, commande audit:catalog-sync, tests/Unit/Architecture/AuditEventCatalogExhaustivenessTest.php, tests/Feature/AuditCatalogVersioningTest.php : inventaire exécutable, version auditée, catégorie de conservation portée par le fait et purge par catégorie conformes |
conforme | 2026-09-21 |
TEC-INT-013 |
VER-FCT-040 |
elena |
Constat de DEC-0153 maintenu ; aucune nouvelle inspection applicative | écart applicatif ouvert ; recette non exécutée | — |
TEC-INT-014 |
VER-FCT-041 |
elena |
Constat de DEC-0154 maintenu ; aucune nouvelle inspection applicative | écart applicatif ouvert ; recette non exécutée | — |
TEC-INT-015 |
VER-FCT-042 |
elena |
Constat de DEC-0155 maintenu ; aucune nouvelle inspection applicative | écart applicatif ouvert ; recette non exécutée | — |
TEC-INT-016 |
VER-FCT-043 |
elena |
Constat de DEC-0156 maintenu ; aucune nouvelle inspection applicative | écart applicatif ouvert ; recette non exécutée | — |
TEC-INT-017 |
VER-FCT-044 |
elena |
Constat de DEC-0157 maintenu ; aucune nouvelle inspection applicative | écart applicatif ouvert ; recette non exécutée | — |
TEC-INT-018 |
VER-FCT-045 |
elena |
Constat de DEC-0159 maintenu ; aucune nouvelle inspection applicative | écart applicatif ouvert ; recette non exécutée | — |
TEC-INT-019 |
VER-FCT-046 |
elena |
Constat de DEC-0160 maintenu ; aucune nouvelle inspection applicative | écart applicatif ouvert ; recette non exécutée | — |
TEC-INT-020 |
VER-FCT-047 |
elena |
Constat de DEC-0161 maintenu ; aucune nouvelle inspection applicative | écart applicatif ouvert ; recette non exécutée | — |
TEC-INT-021 |
VER-FCT-048 |
elena |
Constat de DEC-0162 maintenu ; aucune nouvelle inspection applicative | écart applicatif ouvert ; recette non exécutée | — |
TEC-INT-022 |
VER-FCT-049 |
elena |
Constat de DEC-0163 maintenu ; aucune nouvelle inspection applicative | écart applicatif ouvert ; recette non exécutée | — |
TEC-INT-023 |
VER-FCT-050 |
elena |
Constat de DEC-0164 maintenu ; aucune nouvelle inspection applicative | écart applicatif ouvert ; recette non exécutée | — |
TEC-INT-024 |
VER-FCT-051 |
elena |
Constat de DEC-0165 maintenu ; aucune nouvelle inspection applicative | écart applicatif ouvert ; recette non exécutée | — |
TEC-INT-025 |
VER-FCT-052 |
elena |
Constat de DEC-0166 maintenu ; aucune nouvelle inspection applicative | écart applicatif ouvert ; recette non exécutée | — |
TEC-INT-026 |
VER-FCT-053 |
elena |
DEC-0167 et DEC-0168 : exclusion uniforme et indication visible prescrites ; aucune nouvelle inspection applicative | écart applicatif ouvert ; recette non exécutée | — |
TEC-INT-033 |
VER-FCT-060 |
elena |
DEC-0175 : import direct depuis la validation terminée et ses réglages serveur ; aucune nouvelle inspection applicative | évolution applicative ouverte ; recette non exécutée | — |
TEC-INT-036 |
VER-FCT-063 |
elena |
DEC-0178 : parcours complet par lots sans plafond implicite et interruption explicite ; aucune nouvelle inspection applicative | complétude moteur et conformité à vérifier ; recette non exécutée | — |
TEC-INT-037 |
VER-FCT-064 |
elena |
DEC-0193, DEC-0330 ; inspection statique du 2026-09-30 : « Éditer » et « Dupliquer » passent par window.open (ImportConfigurationsListView.vue l. 152, 161) et le brouillon vit sous une clé de session unique (dwt.import-wizard.draft, isolation par onglet du navigateur seulement) ; le nom du duplicata est vidé à l’ouverture (ImportConfigurationEditView.vue l. 226-230) |
non-conforme par lecture statique : onglet du navigateur et brouillon non isolé par instance d’onglet de travail, libellés des onglets d’édition et de duplication non distingués (ElenaAppLayout rattache les deux routes à la même entrée dwt.import-configurations.index), nom du duplicata non prérempli ; recette non exécutée |
2026-09-30 |
TEC-INT-035 |
VER-FCT-062 |
elena |
DEC-0177 : association persistée, unicité atomique et accès au même suivi sous contrôle des droits ; aucune nouvelle inspection applicative | évolution applicative ouverte ; recette non exécutée | — |
TEC-INT-034 |
VER-FCT-061 |
elena |
DEC-0176 : contrôles métier ordinaires à l’écriture et résultats propres à l’import réel ; aucune nouvelle inspection applicative | évolution applicative ouverte ; recette non exécutée | — |
TEC-INT-032 |
VER-FCT-059 |
elena |
DEC-0174 : mention de conservation conditionnée au mode réel courant ; aucune nouvelle inspection applicative | écart applicatif ouvert ; recette non exécutée | — |
TEC-INT-031 |
VER-FCT-058 |
elena |
DEC-0173 : message dérivé des réglages effectifs du lancement ; aucune nouvelle inspection applicative | écart applicatif ouvert ; recette non exécutée | — |
TEC-INT-030 |
VER-FCT-057 |
elena |
DEC-0172 : lignes non traitées distinctes depuis les résultats serveur ; aucune nouvelle inspection applicative | écart applicatif ouvert ; recette non exécutée | — |
TEC-INT-029 |
VER-FCT-056 |
elena |
DEC-0171 : bilan fondé sur le mode exécuté prescrit ; aucune nouvelle inspection applicative | écart applicatif ouvert ; recette non exécutée | — |
TEC-INT-028 |
VER-FCT-055 |
elena |
DEC-0170 : séparateur à corriger, UTF-8 historiquement existant ; aucune nouvelle inspection applicative | écart applicatif ouvert ; recette non exécutée | — |
TEC-INT-027 |
VER-FCT-054 |
elena |
DEC-0169 : format CSV existant conservé, seule feuille exécutée prescrite ; aucune nouvelle inspection applicative | contenu réimportable à mettre en conformité ; recette non exécutée | — |
TEC-INT-012 |
VER-FCT-039 |
elena |
DEC-0152, DEC-0330 ; inspection statique du 2026-09-30 : ImportConfigurationsListView.vue ouvre window.open (l. 152, 161) pour « Utiliser », « Modifier » et « Dupliquer », sans to ni double-clic, là où ImportJobsListView.vue est conforme (l. 299, 319) |
non-conforme par lecture statique : le contenant est un onglet du navigateur au lieu d’un onglet de travail, et l’isolation sessionStorage du brouillon ne sépare que les onglets du navigateur, non les préparations ouvertes dans un même onglet de travail ; recette non exécutée |
2026-09-30 |
TEC-INT-010 |
VER-FCT-037 |
elena |
Constat de DEC-0150 maintenu ; aucune nouvelle inspection applicative | écart applicatif ouvert ; recette non exécutée | — |
TEC-INT-011 |
VER-FCT-038 |
elena |
Constat de DEC-0151 maintenu ; aucune nouvelle inspection applicative | écart applicatif ouvert ; recette non exécutée | — |
TEC-INT-009 |
VER-FCT-036 |
elena |
DEC-0179 ; aucune nouvelle preuve applicative, écart de remplacement implicite DEC-0149 maintenu | à mettre en conformité et à vérifier ; recette non exécutée | — |
TEC-INT-008 |
VER-FCT-035 |
elena |
758bb3c4be18ecf0d8b5f1d106cffd8d287bf062, Modules/Dwt/resources/js/views/ImportReviewView.vue (34–49, 132–137) et stores/import-wizard.ts du module : associations disponibles mais résumé, compteur et exclusions absents de la vue |
non-conforme par lecture statique ; recette non exécutée | 2026-09-15 |
TEC-DAT-009 |
VER-FCT-023 |
elena |
45c03a18, Modules/Referential/app/Services/ThirdPartyService.php, migrations 2026_09_10_*, Modules/Referential/tests/Feature/{ThirdPartyTest,ThirdPartyMutationTest}.php, tests/Feature/Database/ThirdPartyPostgresProofTest.php : identité, rôles, adresses, qualification client, désactivation et suppression conformes ; valeurs d’adresse autonomes des documents absentes faute de propriétaires Sales/Billing |
partiel | 2026-09-21 |
TEC-INT-007 |
VER-FCT-024 |
elena |
45c03a18, Modules/Referential/graphql/third_party.graphql, Modules/Referential/resources/js/views/{ThirdPartyFormView,ThirdPartiesListView}.vue, Modules/Referential/app/PublicApi/CustomerOrderThirdPartyEligibility.php : fiche, liste, éligibilité client des commandes, désactivation et suppression conformes ; offres et corrections documentaires d’adresse (DEC-0086, DEC-0158) absentes |
partiel | 2026-09-21 |
TEC-01-005 |
VER-FCT-028 |
elena |
8467b7b9, Modules/Referential/app/Services/{ContactService,ContactPeriodService}.php, Modules/Referential/app/Http/Controllers/Api/ContactRelationController.php, Modules/Referential/app/GraphQL/ThirdPartyViewGate.php, Modules/Referential/app/Import/{ContactLinkImportResource,ContactLinkImportService}.php, migration 2026_09_21_000000_*, Modules/Referential/tests/Feature/{ContactPeriodTest,ContactMutationTest,ContactGraphqlTest,ContactReadAuthorizationTest}.php, Modules/Referential/tests/Feature/Import/ContactLinkImportResourceTest.php, tests/Feature/Database/{ContactPeriodPgsqlTest,ContactRelationConcurrencyPgsqlTest}.php, e2e/specs/contacts-relation-periods.spec.mjs : ordre et primaire, périodes DEC-0183/0249, retrait le jour même d’un rattachement erroné DEC-0273, reprise des rattachements par la ressource d’import dédiée DEC-0182/0274 (ordre préparé, positions jamais complétées, date source obligatoire, rejeu idempotent), consultation depuis Tiers, lectures auditées, suppression anonymisante conformes ; courses sur deux sessions PostgreSQL dans les deux ordres, restauration d’un instantané, parcours navigateur FR/EN des périodes et coût SQL constant de la liste prouvés ; plans PostgreSQL et charge sur volumes qualifiés, contenu de l’export, consentement et recette produit restent à produire |
partiel | 2026-09-22 |
TEC-ARC-003 |
VER-FCT-006 |
elena |
Modules/Referential/app/PublicApi/, tests/Unit/NeighborModelBoundaryTest.php, tests/Unit/PhpModuleDependencyGateTest.php, composer.json, phpstan.neon.dist |
partiel | 2026-08-25 |
TEC-ARC-004 |
VER-FCT-009 |
elena |
tests/Unit/NeighborModelBoundaryTest.php, composer.json, phpstan.neon.dist, recherche de CrossModuleReadable et de fournisseurs de builders publics |
non-conforme | 2026-08-25 |
TEC-DAT-002 |
VER-FCT-007, VER-FCT-008 |
elena |
Modules/Dwt/app/Application/Intermodule/ReferentialImportOrchestrator.php, Modules/Foundation/app/{Architecture/OrchestratorGraphBuilder.php,PublicApi/Transactions/{CrossModuleOrchestrator.php,IntermoduleTransaction.php}}, docs/architecture/{intermodule-matrix.json,orchestrator-graph.json,receipts/ELENA-906.json}, tests PostgreSQL et de contrat associés |
conforme | 2026-09-02 |
TEC-DAT-006 |
VER-FCT-013 |
elena |
tests/Support/DisposableDatabaseGuard.php, tests/TestCase.php, tests/Feature/ModuleStubGenerationTest.php, database/schema/01-provision-core.sql, deploy/postgres/bootstrap.sql, recherche de dump et manifeste de régime |
partiel | 2026-08-26 |
Écarts observés pour TEC-ARC-003
- La frontière in-process
Referential/PublicApiet les DTO publics existent. ReferentialLookuputilise encore une interface, une implémentation et un binding sans seconde implémentation documentée ; leur simplification doit être instruite lors de la prochaine évolution substantielle.ReferentialEntityExistsrésout encoreReferentialLookupvia le conteneur au lieu d’une injection explicite.NeighborModelBoundaryTestrefuse actuellement tous les modèles Eloquent voisins ; cette protection conservatrice doit évoluer pour autoriser uniquement les modèles marqués parTEC-ARC-004.PhpModuleDependencyGateTestrefuse les dépendances absentes du manifeste.composer checkexécute Pint, PHPStan/Larastan et PHPUnit, mais les preuves relues ne refusent pas encore tous les namespaces internes horsPublicApi, le service locator, les types ORM exposés ou les cycles, et ne couvrent donc qu’une partie deVER-FCT-006.
État de TEC-ARC-004
phpstan.neon.distexécute actuellement PHPStan au niveau 5 avec baseline, contre le niveau 8 global et le niveau 9 sans baseline prescrits sur les frontières.- Le dépôt ne contient pas encore l’attribut
CrossModuleReadable, de fournisseur public deBuilder<PublishedModel>, d’allowlist d’opérations de lecture ou de règle interdisant les mutations et échappatoires deVER-FCT-009. - L’implémentation stricte existante bloque donc aussi le nouveau cas conforme et ne démontre pas
les jointures, agrégations,
havinget paginations intermodules autorisées.
État de TEC-DAT-002
La revue du dépôt elena confirme la convention machine-lisible prescrite :
ReferentialImportOrchestrator est déclaré sous le chemin attendu, porte le marqueur et
l’attribut requis, et son graphe archivé est recalculé contre le code réel. Les scénarios de
mutation du contrôle de graphe couvrent notamment les marqueurs et attributs absents, les
participants ou ordres invalides, les orchestrateurs imbriqués et les cycles de précédence.
La preuve PostgreSQL jetable npm run e2e:pgsql a été rejouée le 2026-09-02 sur dev :
117 tests et 787 assertions passent, puis le projet isolé elena-e2e-976 est retiré. Elle
exerce le rollback atomique de l’effet Referential et du verdict DWT, la reprise idempotente,
le graphe d’orchestration et la gouvernance des FK interschémas. Les commits
7af11ce5, b2e4ee15 et 7d28d2b7 sont tous ancêtres de origin/dev ; le reçu versionné
docs/architecture/receipts/ELENA-906.json identifie les critères VER-FCT-007 et
VER-FCT-008 et ne déclare aucun écart.
État de TEC-DAT-006
- Les migrations et le générateur de module observés suivent déjà une pratique
up()sansdown()obligatoire ;ModuleStubGenerationTestvérifie explicitement cette convention. DisposableDatabaseGuardprotège les tests contre l’utilisation d’une base non déclarée jetable. Cette preuve ne constitue pas encore la porte générale exigée avant toute reconstruction destructive de préproduction.- Le provisioning PostgreSQL est versionné dans
database/schema/01-provision-core.sqletdeploy/postgres/bootstrap.sql, mais ces scripts créent aussi des objets susceptibles d’être présents dans un dump natif PostgreSQL ; ils devront être partitionnés sans chevauchement avant la baseline. - Aucun schema dump Laravel de baseline, manifeste de régime, preuve d’activation irréversible ni
test complet de
VER-FCT-013n’a été trouvé lors de la revue. La réalisation est donc partielle.
États autorisés : non-évalué, conforme, partiel, non-conforme, non-applicable.
Règles
- Toute ligne référence une
TECet uneVERexistantes. conformeexige une preuve exécutable ou relue et une date ISO.- Un écart ne modifie pas silencieusement le CDC : il entraîne soit un correctif produit, soit une décision modifiant la prescription.
- Les preuves sensibles ou credentials ne sont jamais copiés dans le CDC.