Files
Kill_LIFE/docs/plans/15_plan_mcp_runtime_alignment.md
T
root e67fb754c2 feat: KiCad 10 native, QEMU simulation, compliance EU, firmware fixes
Session kxkm-ai 25-26 mars 2026 — 98/98 tâches TODO complétées.

Hardware:
- KiCad 10.0.0 native avec sym/fp-lib-table locales
- Nouveau block SPI (gen_spi_header.py), ERC clean
- Module partagé hardware/lib/kicad_gen.py (5 générateurs refactorisés)
- Pipeline export: tools/hw/hw_export.sh (ERC + SVG + PDF + netlist)
- KiBot 1.8.5 installé, .kibot.yaml configuré

Firmware:
- Fix I2S driver conflict: migration I2sMic vers nouvelle API i2s_channel_*
- Fix WDT risk: yield() dans CompletePushToTalk (voice_controller.cpp)
- Fix XSS wifi_manager.cpp: innerHTML → createElement/textContent
- Fix null check FwIsValidWavHeader
- Dead code supprimé: i2s_audio.cpp.bak, i2s_audio.h

Simulation MCU:
- QEMU ESP32-S3 v9.2.2 installé (tools/sim/)
- Script run_qemu_esp32s3.sh — boot OK vérifié
- [env:esp32s3_qemu] dans platformio.ini
- Wokwi CI: wokwi.toml + diagram.json + scenario.yaml
- SPICE bridge POC: tools/sim/spice_bridge.py (ngspice → ADC/brownout)

Compliance:
- Profil iot_wifi_eu validé (16 standards, 8 evidence)
- 4 evidence remplis: risk_assessment, security_architecture,
  test_plan_radio_emc, supply_chain_declarations
- plan.yaml complété avec données produit réelles

CI:
- Job hardware-export (KiCad 10 ERC + SVG + PDF + netlist)
- Job firmware-sim (Wokwi, conditionnel WOKWI_CLI_TOKEN)
- evidence_pack.yml enrichi avec exports hardware

Docs & RAG:
- specs/02_arch.md complet (481 lignes, 4 ADR, diagrammes)
- docs/SIMULATION.md (3 niveaux: native, QEMU, Wokwi)
- 6 chunks ingérés dans kb-kicad RAG
- Dataset HF: tools/generate_hf_dataset.py + datasets/kb_kicad_qa.jsonl
- Rapport analyse: docs/plans/ANALYSIS_REPORT_2026-03-25.md
- Recherche OSS: docs/research/oss_similar_projects.md

Infra:
- ZeroClaw 0.1.7 installé (cargo install)
- APIFY_API_KEY configurée, smoke OK
- Tests: 39/39 firmware + 26/26 Python stable

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

5.4 KiB

15) Plan d'alignement MCP local

Last updated: 2026-03-25

Ce fichier est le plan MCP canonique cote Kill_LIFE.

Sources de verite associees:

  • docs/MCP_SETUP.md
  • docs/MCP_SUPPORT_MATRIX.md
  • docs/MCP_ECOSYSTEM_MATRIX.md
  • docs/KICAD_BENCHMARK_MATRIX.md
  • docs/MCP_CAD_PROVENANCE_2026-03-14.md
  • specs/kicad_mcp_scope_spec.md
  • specs/mcp_tasks.md

Objectif

Faire de Kill_LIFE le repo de consommation et de gouvernance MCP, sans maintenir un second serveur KiCad concurrent et sans brouiller la provenance des surfaces CAD/MCP.

Etat actuel

  • mcp.json pointe vers 10 serveurs MCP reels: kicad, validate-specs, knowledge-base, github-dispatch, freecad, openscad, ngspice, platformio, apify, huggingface
  • tools/hw/run_kicad_mcp.sh est le point d'entree canonique pour le runtime KiCad
  • tools/hw/cad_stack.sh mcp est deja aligne sur ce launcher
  • python3 tools/hw/mcp_smoke.py --timeout 30 passe sur la machine auditee via fallback conteneur
  • validate-specs existe comme CLI et comme serveur MCP stdio
  • la pile MCP locale converge sur 2025-03-26
  • l'observabilite synthetique MCP est exposee via /api/ops/summary si la stack compagnon mascarade tourne
  • le garde-fou bash tools/tui/cad_mcp_audit.sh audit retourne 0 actionable hit au lot provenance du 2026-03-14
  • 2026-03-25: ajout de ngspice (simulation SPICE), platformio (build firmware), apify (fetch docs); smokes passes; PlatformIO 6.1.19 installe dans .pio-venv/

Decisions figees

  • Kill_LIFE ne publie pas de second runtime KiCad host-side concurrent
  • mascarade/finetune/kicad_mcp_server reste l'implementation serveur KiCad de reference
  • stdio reste le seul transport supporte par defaut pour les serveurs locaux
  • huggingface reste l'unique surface MCP distante versionnee dans mcp.json
  • la matrice de support MCP est centralisee dans docs/MCP_SUPPORT_MATRIX.md
  • la provenance officiel / community valide / custom local est centralisee dans docs/MCP_SUPPORT_MATRIX.md et deploy/cad/README.md
  • le backlog executable est centralise dans specs/mcp_tasks.md
  • specs/ a la racine est la source de verite canonique; ai-agentic-embedded-base/specs/ reste un miroir exporte

Travail deja absorbe

  1. Retirer les promesses cassees de mcp.json
  2. Rendre validate-specs executable en CLI et en MCP
  3. Rendre le launcher KiCad operable avec runtime writable
  4. Aligner cad_stack.sh mcp sur le launcher supporte
  5. Stabiliser le fallback conteneur KiCad v10
  6. Ajouter un smoke consommateur versionne
  7. Fixer une doc d'usage canonique et une matrice de support
  8. Classer la provenance MCP/CAD sans desserrer le garde-fou d'audit
  9. [2026-03-25] Ajouter MCP ngspice: simulation SPICE batch via ngspice-42, 4 tools, 4 circuits de reference dans spice/, smoke passe
  10. [2026-03-25] Ajouter MCP platformio: build/test/check/metadata ESP32-S3, PlatformIO 6.1.19 dans .pio-venv/, smoke passe
  11. [2026-03-25] Ajouter MCP apify: fetch docs Espressif/KiCad/PlatformIO, mode dual API/scrape, ingest_to_rag connecte a mascarade core, smoke passe

Travail restant

Priorite 1 — Alignement protocole

  1. Fait
  2. Les launchers MCP supportes et les surfaces auxiliaires suivies convergent vers 2025-03-26.

Priorite 2 — Observabilite

  1. Fait
  2. /api/ops/summary expose l'etat synthetique MCP quand la stack compagnon mascarade est presente.
  3. python3 tools/mcp_runtime_status.py --json fournit un rapport local synthetique quand la stack compagnon n'est pas disponible ou quand on veut visualiser explicitement les blocages environnementaux.

Priorite 3 — Validation host-native

  1. Rejouer le smoke sur une machine avec pcbnew disponible
  2. Confirmer que le chemin hote reste coherent avec le fallback conteneur
  3. Le helper python3 tools/hw/kicad_host_mcp_smoke.py --json --quick est disponible pour qualifier la readiness avant validation live

Priorite 4 — Classement des surfaces auxiliaires

  1. Fait
  2. component_database, kicad_tools et nexar_api sont classes supporte avec dependance externe.
  3. nexar_api reste supporte avec dependance externe; la limite live restante est externe au workspace (quota/plan du token), pas un doute sur la surface.
  4. Le helper python3 tools/nexar_mcp_smoke.py --json qualifie le mode demo; --live sert a valider un vrai token.

Priorite 5 — Provenance et outillage adjacent

  1. Fait
  2. docs/MCP_SUPPORT_MATRIX.md, docs/MCP_ECOSYSTEM_MATRIX.md, docs/MCP_SETUP.md et deploy/cad/README.md classent maintenant officiel, community valide et custom local.
  3. docs/KICAD_BENCHMARK_MATRIX.md et tools/tui/kicad_benchmark_review.sh absorbent K-025: KiAuto reste un appoint opt-in, kicad-automation-scripts reste doc-only, sans remplacer par defaut kicad-cli + kicad-mcp.
  4. Les logs bruts du benchmark vivent sous .ops/kicad-benchmark/*.log, puis sont purges apres extraction des conclusions durables; le rapport Markdown peut rester.

Criteres de sortie

  • Kill_LIFE publie une seule doc operateur MCP canonique
  • la matrice de support ne laisse plus de statut implicite ni de provenance implicite
  • les TODOs MCP ne sont plus dupliques entre docs/plans et specs
  • le prochain lecteur sait immediatement:
    • quel serveur lancer
    • quel alias utiliser
    • ce qui est supporte localement
    • ce qui est officiel, communautaire valide ou custom local
    • ce qui depend encore de mascarade
    • ce qui reste reellement ouvert