System Card

NEXUS audite les autres. Cette page audite NEXUS : ce que le système fait vraiment, comment il refuse d'inventer, et où sont ses limites — chaque affirmation renvoie au module qui l'implémente.

Architecture

Moteur déterministe — 23 couches d'audit

Le Deep Audit Engine couvre 23 couches d'analyse. Chaque auditeur possède un repli heuristique déterministe sans LLM : si aucune clé d'API n'est configurée, le diagnostic tourne quand même — avec des règles pures, reproductibles, et l'honnêteté insufficient_data partout où la donnée manque.

Chemin LLM — opt-in, multi-fournisseurs

Le chemin LLM est optionnel et routé par un adaptateur multi-fournisseurs (lib/ai/execution-adapter.ts, registre lib/ai/providers-registry.ts) : l'audit in-app et le copilote s'exécutent sur DeepSeek V3 (vérifié live), les agents à outils sur Claude (Anthropic). Clé absente → repli déterministe, jamais de chiffres improvisés.

Les gates bloquants

Cinq portes déterministes, zéro LLM. Un refus n'est jamais silencieux : il est motivé et loggé.

Gate de sourçage (insufficient_data jamais récité)

Aucun chiffre client ne peut sortir d'une cellule-pays non sourcée ou périmée (> 18 mois) : l'ingrédient monétaire est forcé à insufficient_data — jamais une valeur par défaut, jamais un taux « récité » par le modèle. Le refus est loggé, auditable.

lib/diagnostic/audit/fiscal-framework/sourcing.ts

AFC — Audit-Fidelity Contract (déterminisme sur les octets)

Chaque unité actionnable d'un dossier devient une assertion machine-vérifiable (« VERT lorsque <donnée> <opérateur> <cible> »). Le gate prouve le déterminisme byte-identique des assertions relancées, l'ancrage réel de chaque assertion dans le dossier (groundedness) et le round-trip du DSL. Évaluation 100 % déterministe, zéro LLM.

lib/diagnostic/audit/fidelity/gate.ts

Porte double-clé (deux principaux distincts)

Aucun déploiement promu sans DEUX signatures Ed25519 de principaux DISTINCTS (dirigeant + ratificateur vie privée) qui vérifient contre le registre persistant. Clés server-held : « double autorisation authentifiée + scellée », PAS une non-répudiation personnelle — dit tel quel.

lib/diagnostic/deploy/deploy-gate.ts

Sonde comportementale

Verdict pur sur les observations de l'URL live : avant consentement, la page n'émet AUCUN appel de données (tout autre appel = fuite) ; tout hôte appelé doit appartenir à une allowlist déterministe de domaines africains (jamais de géo-IP → verdict reproductible).

lib/diagnostic/deploy/behavioral-probe.ts

Anti-rejeu (chaîne persistée)

La tête de chaîne attestée doit couvrir le reçu de CE déploiement précis : rejouer une attestation valide d'un déploiement antérieur est détecté et refusé. La chaîne de certificats est persistée et chaque maillon référence le précédent (SHA-256).

lib/diagnostic/deploy/deploy-gate.ts

Tagage épistémique

Aucune affirmation sans tag. Le schéma du jumeau REFUSE une assertion non taguée (validation Zod).

[FAIT]

Donnée observée et vérifiable (document, mesure, source citée).

[INFERENCE]

Déduction logique à partir de faits établis.

[ESTIMATION]

Chiffre calculé sous hypothèses explicites, avec marge d'erreur.

[HYPOTHESE_A_VALIDER]

Supposition assumée, listée dans les incertitudes, à confirmer par le client.

Couverture pays — réelle, pas marketing

8 pays-ancres sur 54 disposent de paramètres sourcés (fiscal, privacy, gouvernance/RH) : chaque cellule porte son source_url et sa date as_of, et le statut « sourcé » est dérivé de ces champs — jamais affirmé à la main.

SénégalCôte d'IvoireBéninCamerounNigeriaMarocKenyaAfrique du Sud

Pour les 46 autres pays africains : les paramètres-pays ne sont pas encore sourcés, donc tout calcul qui en dépend renvoie insufficient_data. Nous préférons un « je ne sais pas » vérifiable à un chiffre plausible.

Custody des clés — v1

Les clés Ed25519 des principaux (double-clé) et de l'attestor sont générées côté serveur : clé publique stockée en clair (vérifiable par un tiers), clé privée chiffrée AES-256-GCM (clé dérivée par scrypt d'un secret serveur). Fail-closed : secret absent → aucune signature, jamais de repli en clair.

Limite assumée : custody serveur = « double autorisation authentifiée + scellée », pas une non-répudiation personnelle. La cible est une custody KMS/HSM (gap G2). Cérémonie documentée : docs/pipeline/KEY-CEREMONY.md.

Attestations in-toto / DSSE

Chaque Truth Report signé est enveloppé dans un Statement in-toto v1 (ITE-6) + une enveloppe DSSE signée Ed25519 — vérifiable avec l'outillage standard de l'industrie (cosign, openssl, toute lib DSSE), pas seulement avec le nôtre. Zéro PII dans le Statement. Clé indisponible → 503 honnête, jamais d'attestation dégradée.

Spécification publique : docs/pipeline/ATTESTATION-SPEC.md · Route : GET /api/attestation/audit/[id]

Alignement NIST AI RMF

Mapping de nos mécanismes existants vers les quatre fonctions du cadre. Ce n'est pas une certification : aucun audit indépendant n'a été conduit, et nous ne prétendons pas le contraire.

FonctionMécanismes NEXUS
GOVERNConstitution d'entreprise versionnée (constitution_rules), Policy Engine (vérification AVANT chaque exécution d'outil), modes d'autonomie gradués observer → copilot → autopilot appliqués au runtime.
MAPDNA Scan (contexte d'entreprise), jumeau avec tagage épistémique obligatoire (FAIT/INFERENCE/ESTIMATION/HYPOTHESE_A_VALIDER), traçabilité des données-pays (source_url + as_of sur chaque cellule).
MEASURETrust Score explicable (0-100, décomposé), assertions AFC évaluées green/red de façon déterministe, sonde comportementale sur URL live, harnais de crédibilité des estimations (borne CA, natures jamais sommées).
MANAGEPorte double-clé sur les déploiements, file d'approbations (Neural Bus), anti-rejeu sur chaîne persistée, gate de sourçage bloquant, certificats de travail SHA-256 chaînés vérifiables publiquement (/verify).
Limites connues
  • · Couverture pays : 8 ancres sourcées sur 54 — le reste renvoie insufficient_data.
  • · Custody des clés v1 côté serveur — la cible KMS/HSM n'est pas encore en place.
  • · Les SLO publiés sur /status sont des objectifs — aucun historique de mesure encore.
  • · Aucune certification indépendante (SOC 2, ISO) obtenue à ce jour — voir la feuille de route sur /trust.
  • · Le chemin LLM dépend de clés configurées ; sans elles, seul le repli déterministe s'exécute.
Voir la posture Confiance & Sécurité complète