066acde0cb
- Feature maps: agentic intelligence, digital factory, yiacad global/UI/UX/backend - Audits: consolidation, refactor manifest, exhaustive refonte - Research: OSS AI-native CAD, digital factory stack, mascarade observability - Plans: lots 19-26 (mesh tri-repo, UI/UX refonte, yiacad global, intelligence agentique, mistral agents/studio, hypnoled, EDA AI tools, git EDA platform) - Operator docs: machine registry, alignment, sync status, provider compat - Mascarade/Kill_LIFE product contracts and OPS bridge - PCB AI fab integration map, artifact WMS index - References directory Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
8.4 KiB
8.4 KiB
Fork IA-native KiCad + FreeCAD (YiACAD) pour Kill_LIFE
Objectif: disposer de forks dédiés pour la couche technique AI-native de Kill_LIFE
(automations MCP, scripts de conversion, audits, benchmarks) sans casser la chaîne principale.
Le lot associé est nommé YiACAD et pilote une fusion opérationnelle KiCad + FreeCAD
(avec OpenSCAD en couverture 3D) dans un mode host-first piloté par lot.
1) Principe de production
- Ne pas réinventer la stack existante:
- conserver
tools/hw/cad_stack.sh,tools/hw/run_kicad_mcp.shettools/run_freecad_mcp.sh.
- conserver
- Maintenir les forks locaux de référence:
KiCad/ KiCadFreeCAD/FreeCAD
- Travailler des branches IA-native par repo:
kill-life-ai-native
- Garder un manifeste de provenance et de remotes stable:
- fork
origin - source
upstream
- fork
2) Script d'amorçage (prêt à exécuter)
Le script de base ajouté:
tools/cad/ai_native_forks.sh
Flux type:
- Préparer l’infra locale:
mkdir -p .runtime-home/cad-ai-native-forks
- Générer une base locale sans créer de fork GitHub:
bash tools/cad/ai_native_forks.sh --dry-run --base-dir .runtime-home/cad-ai-native-forks
- Créer les forks GitHub (si besoin), puis cloner:
gh auth login
bash tools/cad/ai_native_forks.sh \
--create-forks \
--base-dir .runtime-home/cad-ai-native-forks \
--owner <ton-org-github> \
--branch kill-life-ai-native
- Vérifier le manifeste:
cat .runtime-home/cad-ai-native-forks/manifest.md
3) Lot YiACAD (pilotage de fusion CAD)
Le lot yiacad-fusion regroupe l'amorçage + smoke CAD + preuves:
- préparation des forks (
prepare) viatools/cad/ai_native_forks.sh - smoke de santé CAD (
smoke) via:tools/hw/cad_stack.sh doctor-mcptools/hw/run_kicad_mcp.sh --doctortools/hw/kicad_host_mcp_smoke.py --json --quicktools/freecad_mcp_smoke.py --json --quicktools/openscad_mcp_smoke.py --json --quicktools/run_freecad_mcp.sh --doctortools/run_openscad_mcp.sh --doctor
- statut (
status) et logs (logs) dansartifacts/cad-fusion - purge contrôlée (
clean-logs) avec rétention définie.
Entrées disponibles:
bash tools/cad/yiacad_fusion_lot.sh --action preparebash tools/cad/yiacad_fusion_lot.sh --action smokebash tools/cad/yiacad_fusion_lot.sh --action statusbash tools/cad/yiacad_fusion_lot.sh --action logsbash tools/cad/yiacad_fusion_lot.sh --action clean-logs --days 7 --yes- via cockpit:
bash tools/cockpit/refonte_tui.sh --action yiacad-fusion:prepare - via cockpit:
bash tools/cockpit/refonte_tui.sh --action yiacad-fusion:smoke
Lancement standard:
bash tools/cockpit/refonte_tui.sh --action yiacad-fusion:prepare
bash tools/cockpit/refonte_tui.sh --action yiacad-fusion:smoke
4) Intégration Kill_LIFE
tools/cad/ai_native_forks.shorchestre déjà:- le clone local des dépôts,
- la création éventuelle de branches
kill-life-ai-native, - la normalisation des remotes (
origin/upstream).
- Le flux de refonte attend que chaque lot touchant KiCad/FreeCAD fournisse:
- un
lot_id, - un
owner_agentexplicite, - un
write_setrestreint, - une preuve
log_ops, - et une validation
mesh_status(demesh_sync_preflight.sh).
- un
- Les preuves YiACAD sont archivées dans:
artifacts/cad-fusion/yiacad-fusion-last.logartifacts/cad-fusion/yiacad-fusion-last-status.md
5) Structure actuelle (2026-03-20 11:20)
- Base locale:
/Users/electron/Documents/Lelectron_rare/Kill_LIFE/.runtime-home/cad-ai-native-forks/ - Répertoires détectés:
kicad-ki(branchekill-life-ai-nativepréparée localement)freecad-ki(branchekill-life-ai-nativepréparée localement)
- Remotes:
origin(fork GitHub cible)upstream(remote principal)
- Manifeste actif:
/Users/electron/Documents/Lelectron_rare/Kill_LIFE/.runtime-home/cad-ai-native-forks/manifest.md
- Artefacts YiACAD:
artifacts/cad-fusion/
6) Prochaine phase opérationnelle
--create-forksnon encore exécuté côté GitHub (forks distants non publiés).- Après création des forks distants:
- pousser la branche
kill-life-ai-native, - déclarer les remotes
origin/upstream, - publier la preuve de CI dans:
docs/CAD_AI_NATIVE_FORK_STRATEGY.mdCHANGELOG_AI_NATIVE.md(par repo fork)
- compléter la preuve YiACAD (prepare + smoke + status + purge contrôlée).
- pousser la branche
6bis) Dernière exécution opératoire validée (2026-03-21 13:31 CET)
prepare:ok- manifeste présent
kicad-kisurkill-life-ai-native(eec5b07179)freecad-kisurkill-life-ai-native(5ea732ef3c)
status:ok- snapshot canonique mis à jour dans
artifacts/cad-fusion/yiacad-fusion-last-status.md
- snapshot canonique mis à jour dans
logs:ok- l’inventaire
artifacts/cad-fusion/*reste lisible viatools/cad/yiacad_fusion_lot.sh --action logs
- l’inventaire
clean-logs --days 14:ok- aucun candidat à purger sur cette passe
smoke:blockedCAD stack doctor:okKiCad MCP host doctor:okKiCad MCP host smoke:blockedFreeCAD MCP smoke:readyOpenSCAD MCP smoke:ready
- blocage observé:
- la lane
mascarade-mainne matérialise pas l’entrypoint hôte attendu:finetune/kicad_mcp_server/dist/index.js - le doctor KiCad recadre désormais
REQUESTED_RUNTIME=autoversSELECTED_RUNTIME=container - la priorité immédiate est soit de matérialiser cet entrypoint, soit de conserver explicitement le fallback conteneur comme état supporté
- la lane
- preuves:
artifacts/cad-fusion/yiacad-fusion-last.logartifacts/cad-fusion/yiacad-fusion-last-status.mdartifacts/refonte_tui/refonte_tui_20260321_133030.logartifacts/refonte_tui/refonte_tui_20260321_133042.log
7) Gouvernance de livraison
- Point d'entrée IA-native:
- lier toute évolution KiCad/FreeCAD aux lots
T-LOT-*et aux tâches mesh tri-repo.
- lier toute évolution KiCad/FreeCAD aux lots
- Règles minimales:
- aucune écriture directe sur
mainsans lot validé, - passer par le cockpit TUI (
tools/cockpit/refonte_tui.sh) pour préflight/log + evidence, - valider les artefacts CAD avant export (ERC/DRC/BOM/netlist/export).
- aucune écriture directe sur
- Alignement externe:
- maintenir la veille OSS similaire (
docs/OSS_AI_NATIVE_CAD_RESEARCH_2026-03-20.md) en revue périodique.
- maintenir la veille OSS similaire (
- Carte de conformité YiACAD:
- chaque exécution du lot doit produire un statut, un log et le fichier
statusmis à jour.
- chaque exécution du lot doit produire un statut, un log et le fichier
8) Carte opérationnelle IA-native CAD (2026-03-20)
flowchart TD
Docs[docs/CAD_AI_NATIVE_FORK_STRATEGY.md] --> ForkState[tools/cad/ai_native_forks.sh]
ForkState --> Branches[branches kill-life-ai-native]
Branches --> MCPOverlay[tools/hw/run_kicad_mcp.sh / tools/run_freecad_mcp.sh]
MCPOverlay --> HostFirst[tools/hw/cad_stack.sh]
HostFirst --> Preflight[tools/cockpit/mesh_sync_preflight.sh]
Preflight --> LotRouting[tools/cockpit/lot_chain.sh]
LotRouting --> Evidence[artifacts/refonte_tui/*.log + artifacts/cad-fusion/*.log]
Evidence --> RepoPlan[docs/plans/18_plan_enchainement_autonome_des_lots_utiles.md]
RepoPlan --> ReadmeGate[tools/doc/readme_repo_coherence.sh]
RepoPlan --> Revue[docs/OSS_AI_NATIVE_CAD_RESEARCH_2026-03-20.md]
9) Rappels de conformité
constraints.yamlreste source de vérité pour les choix d’outils.- Les gates hardware (
ERC/DRC/netlist/BOM) restent obligatoires pour les artefacts exportés versKill_LIFE. - Aucune modification de source upstream n’est poussée sans branche dédiée et revue.
10) Delta 2026-03-21 - etat reel yiacad-fusion
- le write-set
Kill_LIFEdu lot est maintenant proprement cadre:tools/cad/yiacad_fusion_lot.shtools/cockpit/refonte_tui.shtools/cockpit/render_weekly_refonte_summary.sh- ce document de strategie
- l'hygiene locale est alignee:
refonte_tui.shpropage maintenant--daysversyiacad-fusion:clean-logs- la synthese hebdomadaire distingue explicitement le blocage externe du repo local
- le blocage dur restant reste externe a
Kill_LIFE:mascarade-main/finetune/kicad_mcp_server/dist/index.jsn'est pas materialise- tant que cet entrypoint hote manque,
KiCad MCP host smokeresteblocked
- consequence operatoire:
yiacad-fusionpeut etre clos comme lotimplémenté/documenté, mais ne doit pas etre promu comme lanereadysans soit materialisation de cet entrypoint, soit decision explicite d'accepter le fallback conteneur comme etat supporte.