Contrat MAESTRO V5

Synthèse documentaire alignée sur AGENTS.md 4.1.4 — build 2026.05.11 — mise à jour P73C 2026.05.14

P73C : les schémas ci-dessous sont rendus en SVG inline, visibles hors ligne sans moteur Mermaid ni CDN.

Source normative

AGENTS.md est le contrat d'architecture suprême. Les documents de DOC/10_CONCEPTS sont des références conceptuelles non normatives : ils guident le développement, mais ne remplacent jamais AGENTS.md.

Règle centrale : Kernel garant du framework

Le Kernel est le garant du framework et du bus SYS.

Le boot est séquentiel pour valider les moteurs, les espaces publics et les dépendances officielles étape par étape. Une fois un moteur/module/composant chargé par son propriétaire officiel, le script consomme SYS comme acquis.

Contrat attendu : capture locale des dépendances au point d'entrée officiel, puis usage direct. Pas de revalidation permanente du bus.

Pattern attendu

local SYS_REF = nil
local LOGGER = nil
local UI = nil

function Unit.Init(SYS)
    SYS_REF = SYS
    LOGGER = SYS.LOGGER
    UI = SYS.UI

    return Unit
end

Interdit après la frontière officielle

if type(SYS) ~= "table" then ... end
if type(SYS.UI) ~= "table" then ... end
if type(SYS.LOGGER.Exec) ~= "function" then ... end
local UI = SYS.UI or {}
local Utils = GetUtils()

Schémas contractuels P73B

Usage : les schémas suivants sont des contraintes de code. Ils doivent être relus avant toute nouvelle étape pour éviter les loaders parallèles, les fallbacks, le bruit défensif SYS et le mélange moteur/module/composant. Page complète : MAESTRO_ARCHITECTURE_DIAGRAMS_P73B.html.

Couches runtime

MO_KERNELgarant frameworkSYS validéSYS.FSMdécide la transitionSYS.DISPATCHERexécute action_keyENGINESexposent SYS.NAMEMO_UI_FACTORYscan dynamique CPNT_*expose SYS.UICOMPONENTSCPNT_*dessin génériqueMODULES / MOD_*orchestration métierranges Excel + SYS.UISYS.UI.*BUTTON / CONSOLEPOPUP / SIDEPANELcharge MOD_*utilise composants publicsINTERDITgfx / ParseExcel / ApplyFont côté moduleloader POP dans Factorydofile/require composantviolation
Source Mermaid initiale
flowchart TD
  K[Kernel garantit SYS] --> F[FSM décide]
  F --> D[Dispatcher exécute]
  D --> E[Engines exposent SYS.NAME]
  E --> U[UI Factory expose SYS.UI]
  U --> C[CPNT_* scannés]
  D --> M[MOD_* orchestration métier]
  M --> UI[Composants publics + Excel ranges]
  M -. interdit .-> G[gfx / ParseExcel / ApplyFont]
  U -. interdit .-> B[Logique métier / POP loader]

Module = orchestration. Composant = dessin. Factory = scan dynamique.

Cycle moteur

LOADfichier officielPINGmétas/versionINITcapture SYS localeEXPOSESYS.NAMESTEP_NEXT1 moteur = 1 signalFAIL-FASTfichier absent, contrat invalide, dépendance officielle absentepas de fallback, pas de survie artificielle
Source Mermaid initiale
stateDiagram-v2
  [*] --> Load
  Load --> Ping
  Ping --> Init
  Init --> Expose
  Expose --> StepNext
  Load --> FailFast
  Ping --> FailFast
  Init --> FailFast
  Expose --> FailFast

Un moteur réel = un STEP_NEXT. Pas de fallback.

Règles absolues

Couches métier

CoucheResponsabilitéInterdit
KernelGarantir le framework, construire SYS, preboot minimal, main loop.Reprendre la FSM après activation, masquer un contrat cassé.
FSMDécider la transition à partir des données officielles.Charger des fichiers ou agir comme loader.
DispatcherExécuter l'action demandée : load, ping, init, expose, STEP_NEXT.Décider l'état suivant ou créer une FSM cachée.
EnginesServices runtime officiels exposés dans SYS.NAME.Sortir de leur périmètre ou refaire le rôle d'un autre moteur.
FactoryGrille, rendu, input distribué, scan dynamique COMPONENTS/CPNT_*.lua, exposition SYS.UI.Logique métier, loader POP_*, chargement module, Project Guard.
ComponentsDessin et interaction UI réutilisable exposés dans SYS.UI.Logique métier, DB métier, API métier, chargement de fichiers.
ModulesOrchestration métier et UI par composants publics.Dessin bas niveau, gfx, ParseExcel, ApplyFont, chargement composant.

Périmètre strict des moteurs

Le détail complet est dans Engines V5 et dans DOC/10_CONCEPTS/MAESTRO_ENGINE_PERIMETER_CONTRACT_P73.md.

MoteurExpositionPérimètre strict
MO_KERNELSYSGarant framework, preboot, main loop, handoff vers FSM.
MO_MANIFESTSYS.MANIFEST, SYS.PATHSChemins officiels et scan strict du projet.
MO_LOGGER_ENGINESYS.LOGGERJournal runtime officiel uniquement.
MO_PANIC_HANDLERSYS.PANICAffichage fatal minimal pre-Factory.
MO_BOOT_CONSOLE_ENGINESYS.BOOT_CONSOLEConsole temporaire de boot et miroir logger.
MO_SQL_ENGINESYS.SQLSQL RAM/persistant, transactions et introspection.
MO_ACTION_DISPATCHERSYS.DISPATCHERExécuter les actions FSM officielles.
MO_FSM_ENGINESYS.FSMAutomate et sélection de transition.
MO_LOADERSYS.LOADERParseurs de configuration et dumps boot obligatoires.
MO_CORE_UTILSSYS.UTILS, SYS.CACHEHelpers purs, signatures et métadonnées.
MO_CSS_ENGINESYS.CSSStyles, palette, résolution CSS.
MO_I18N_ENGINESYS.I18N, SYS.TDictionnaires et traduction.
MO_SYSTEM_MONITORSYS.MONITORMesure runtime et performance.
MO_TASK_SCHEDULERSYS.SCHEDULERFile de tâches non bloquantes.
MO_RESOURCES_MANAGERSYS.RESOURCESRessources graphiques officielles.
MO_UI_FACTORYSYS.UIRendu UI, input et composants scannés dynamiquement.
MO_NOTIFIER_ENGINESYS.NOTIFIERNotifications runtime génériques.
MO_MIDI_ENGINESYS.MIDIPont REAPER pour MIDI/projet/RPP.
MO_REST_ENGINESYS.RESTHTTP/curl officiel asynchrone.
MO_AI_ENGINESYS.AIAssistance AI optionnelle via REST/Scheduler.

Factory et composants

Les composants CPNT_* sont des extensions directes de la UI Factory. La Factory les scanne dynamiquement pendant Init(SYS), valide leurs exports et expose l'API publique dans SYS.UI.

Un module consomme uniquement les composants publics : SYS.UI.BUTTON, SYS.UI.CONSOLE, SYS.UI.SIDEPANEL, SYS.UI.TINYNOTEPAD, etc. Il ne charge jamais un composant par chemin.

Popup / Project Guard — décision courante

Langue et i18n

AI