20aed903ba
- 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>
5.2 KiB
5.2 KiB
Plan d'execution - Runtime Firmware vers Bundle et Web
Statut
- Etat: draft executable
- Date: 2026-03-01
- Source de verite runtime:
hardware/firmware/data/story/scenarios/DEFAULT.json
Objectif
Coordonner les agents et developpeurs pour:
- synchroniser les artefacts conversationnels sur le runtime firmware,
- garantir que le frontend consomme les donnees runtime sans hypothese fragile,
- stabiliser les gates de validation cross-team.
Contraintes
- Ne pas utiliser
scenario-ai-coherence/*comme source runtime. - Ne pas inferrer la logique de transitions depuis des docs narratifs.
- Les IDs de step (
STEP_*,SCENE_*, mix) sont contractuels tels qu'exposes par le firmware.
Ordonnancement
FW-001-> 2.SCN-101-> 3.SCN-102-> 4.WEB-201-> 5.WEB-202-> 6.QA-301
Tickets
FW-001 - Baseline runtime firmware
- Owner: Firmware dev
- Inputs:
hardware/firmware/data/story/scenarios/DEFAULT.json - Travail:
- Confirmer
id,version,initial_step, liste desstep_id. - Exporter un snapshot runtime horodate dans
artifacts/runtime-sync/<date>/. - Publier un changelog court des transitions (
event_type,event_name,target_step_id).
- Outputs:
artifacts/runtime-sync/<date>/DEFAULT.runtime.snapshot.jsonartifacts/runtime-sync/<date>/transition-index.md
- Definition of done:
- Snapshot valide JSON.
- Liste complete des steps et transitions.
- Diff partage a l'equipe scenario et web.
SCN-101 - Synchronisation du bundle conversationnel
- Owner: Scenario/Content agent
- Inputs:
- Snapshot
FW-001 scenario-ai-coherence/zacus_conversation_bundle_v3/scenario_runtime.json
- Travail:
- Aligner
scenario.id,version,initial_step. - Aligner l'ordre et le nombre de steps sur le runtime firmware.
- Conserver les meta narratives hors runtime (boot policy, led policy, etc.) si non contradictoires.
- Outputs:
scenario-ai-coherence/zacus_conversation_bundle_v3/scenario_runtime.jsonaligne firmware- note de migration
artifacts/runtime-sync/<date>/bundle-sync-notes.md
- Definition of done:
- Aucun step runtime orphelin.
- Aucun
targetvers step inexistant. - Validation runtime bundle executee.
SCN-102 - Regeneration coherence visuelle/documentaire
- Owner: Scenario/Content agent
- Inputs:
- Runtime bundle aligne (
SCN-101) - FSM source
scenario-ai-coherence/zacus_conversation_bundle_v3/fsm_mermaid.md
- Travail:
- Regenerer la FSM mermaid depuis les transitions runtime.
- Mettre a jour les sections de docs impactees par
initial_step/nombre de steps. - Documenter les differences majeures versus version precedente.
- Outputs:
scenario-ai-coherence/zacus_conversation_bundle_v3/fsm_mermaid.mdartifacts/runtime-sync/<date>/runtime-delta.md
- Definition of done:
- 1 noeud mermaid par step runtime.
- 1 edge mermaid par transition runtime.
- Relecture croisee firmware/scenario signee.
WEB-201 - Alignement contrat API runtime
- Owner: Web dev
- Inputs:
- Runtime firmware baseline (
FW-001) - contrat API
specs/STORY_RUNTIME_API_JSON_CONTRACT.md
- Travail:
- Verifier que le parser frontend accepte les IDs mixtes.
- Retirer toute hypothese de prefixe (
STEP_only). - Aligner les actions de controle sur les routes effectivement exposees.
- Outputs:
- patch frontend d'alignement API (si necessaire)
- note
artifacts/runtime-sync/<date>/web-api-alignment.md
- Definition of done:
- UI affiche
scenario_idetcurrent_stepreels. - Aucun crash parser sur steps heterogenes.
- Actions
next/unlock/networkfonctionnelles selon flavor.
WEB-202 - Tests de contrat
- Owner: Web dev + QA
- Inputs:
- contrats de payload Story V2/Legacy
- fixtures runtime issues de
FW-001
- Travail:
- Ajouter fixtures JSON conformes et non conformes.
- Ajouter tests unitaires parser/status/list.
- Ajouter tests e2e minimum sur transitions critiques.
- Outputs:
- fixtures
tests/fixtures/runtime-contract/* - tests unitaires/e2e de contrat
- Definition of done:
- cas nominal + cas erreur couverts.
- build/lint/tests front OK.
- rapport de couverture de contrat.
QA-301 - Gate integration cross-team
- Owner: QA gatekeeper
- Inputs:
- livrables
FW-001,SCN-101,SCN-102,WEB-201,WEB-202
- Travail:
- Executer gates scenario/audio/printables.
- Executer gates frontend (lint/build/unit/e2e).
- Valider coherence runtime firmware <-> bundle.
- Outputs:
artifacts/runtime-sync/<date>/qa-report.md
- Definition of done:
- toutes gates vertes ou ecarts documentes + action plan.
- decision GO/NOGO explicite.
Gates minimales a passer
python3 tools/scenario/validate_scenario.py game/scenarios/zacus_v2.yamlpython3 tools/scenario/export_md.py game/scenarios/zacus_v2.yamlpython3 tools/audio/validate_manifest.py audio/manifests/zacus_v2_audio.yamlpython3 tools/printables/validate_manifest.py printables/manifests/zacus_v2_printables.yamlnpm --prefix 'frontend-scratch-v2' run lintnpm --prefix 'frontend-scratch-v2' run build- importer/exporter YAML + IR Runtime 3 sans perte fonctionnelle
Regle de handoff entre agents
Chaque ticket passe seulement avec ces evidences:
- diff des fichiers modifies,
- commande(s) executee(s) + verdict,
- limites connues et impacts.