Files
le-mystere-professeur-zacus/docs/architecture/system-map.md
T
L'électron rare 20aed903ba feat: AI integration — voice pipeline, hints engine, MCP server, analytics, security
- Voice pipeline: ESP32 WebSocket client → voice bridge → LLM → Piper TTS (Tower :8001)
- Hints engine: 3 puzzles (LA_440, LEFOU_PIANO, QR_FINALE), anti-cheat, 3 hint levels
- MCP hardware server: 6 tools (puzzle, audio, LED, camera, scenario, status), stdio transport
- Analytics: ESP32 module + 6 web endpoints + Dashboard UI with chat interface
- Security: auth middleware (Bearer NVS), rate limiting, input validation on 30 endpoints
- Frontend: code-split (1.1MB → 210KB initial), ErrorBoundary, API timeout, WS reconnect
- Tests: 24 Python + 38 TypeScript + 18 MCP = 80 project tests (+ 19 mascarade)
- Specs: AI_INTEGRATION_SPEC, MCP_HARDWARE_SERVER_SPEC, QA_TEST_MATRIX_SPEC
- Docs: SECURITY, DEPLOYMENT_RUNBOOK, voice pipeline guide, AI architecture map
- 6 AI agent definitions (.github/agents/ai_*.md)
- TUI orchestration script (tools/dev/zacus_tui.py)
- Docker compose TTS for Tower + KXKM-AI
- CHANGELOG, README, mkdocs.yml updated
- Cycle detection (DFS) in runtime3 validator
- Sprint plan: plans/SPRINT_AI_INTEGRATION.md

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 13:52:45 +01:00

1.1 KiB

System Map

Canonical System

flowchart TD
  subgraph Authoring
    YAML["game/scenarios/zacus_v2.yaml"]
    Blockly["frontend-scratch-v2 Blockly graph"]
  end

  subgraph Runtime3
    Compiler["compile_runtime3.py / runtime3.ts"]
    IR["Runtime 3 IR JSON"]
    Sim["simulate_runtime3.py"]
  end

  subgraph Delivery
    Audio["audio/manifests"]
    Printables["printables/manifests"]
    Kit["kit-maitre-du-jeu"]
    Docs["docs + MkDocs"]
  end

  subgraph Device
    Firmware["hardware/firmware adapter"]
    Board["freenove_esp32s3"]
    Media["media / network / UI"]
  end

  YAML --> Compiler
  Blockly --> Compiler
  Compiler --> IR
  IR --> Sim
  IR --> Firmware
  YAML --> Audio
  YAML --> Printables
  YAML --> Kit
  YAML --> Docs
  Firmware --> Board
  Firmware --> Media

Design Notes

  • YAML stays canonical for narrative truth during migration.
  • Blockly is the preferred authoring UX, not the runtime artifact itself.
  • Runtime 3 IR is the portable contract between authoring and execution.
  • Firmware owns board integration, not story semantics.