diff --git a/.claude/settings.json b/.claude/settings.json new file mode 100644 index 0000000..d1b8006 --- /dev/null +++ b/.claude/settings.json @@ -0,0 +1,26 @@ +{ + "permissions": { + "allow": [ + "WebFetch(domain:github.com)", + "Bash(git submodule:*)", + "WebFetch(domain:api.github.com)", + "Bash(make aperant-status:*)", + "Bash(make aperant-install:*)", + "Bash(make aperant-build:*)", + "Bash(make aperant-test:*)", + "Bash(/Users/electron/Documents/Lelectron_rare/Kill_LIFE/tools/run_knowledge_base_mcp.sh --doctor)", + "Bash(/Users/electron/Documents/Lelectron_rare/Kill_LIFE/tools/run_github_dispatch_mcp.sh --doctor)", + "Bash(/Users/electron/Documents/Lelectron_rare/Kill_LIFE/tools/hw/run_kicad_mcp.sh --doctor)", + "Bash(ssh -o ConnectTimeout=5 -o BatchMode=yes clems@192.168.0.120 'echo OK')", + "Bash(ssh -o ConnectTimeout=5 -o BatchMode=yes root@192.168.0.119 'echo OK')", + "Bash(ssh -o ConnectTimeout=5 -o BatchMode=yes kxkm@kxkm-ai 'echo OK')", + "Bash(ssh -o ConnectTimeout=5 -o BatchMode=yes cils@192.168.0.210 'echo OK')" + ], + "additionalDirectories": [ + "/Users/electron/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings", + "/Volumes/root/mascarade-main/api/src/routes", + "/Volumes/root/mascarade-main/api/src", + "/Volumes/root/mascarade-main/core/tests" + ] + } +} diff --git a/.github/workflows/docs_reference_gate.yml b/.github/workflows/docs_reference_gate.yml new file mode 100644 index 0000000..f1985f1 --- /dev/null +++ b/.github/workflows/docs_reference_gate.yml @@ -0,0 +1,34 @@ +name: docs-reference-gate + +on: + workflow_dispatch: + pull_request: + paths: + - "README.md" + - "docs/**" + - "specs/**" + - "tools/doc/readme_repo_coherence.sh" + - ".github/workflows/docs_reference_gate.yml" + push: + branches: + - main + paths: + - "README.md" + - "docs/**" + - "specs/**" + - "tools/doc/readme_repo_coherence.sh" + - ".github/workflows/docs_reference_gate.yml" + +permissions: + contents: read + +jobs: + readme-repo-coherence: + name: README repo coherence + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Audit README and repo references + shell: bash + run: bash tools/doc/readme_repo_coherence.sh audit diff --git a/.github/workflows/mesh_contracts.yml b/.github/workflows/mesh_contracts.yml new file mode 100644 index 0000000..3a6532b --- /dev/null +++ b/.github/workflows/mesh_contracts.yml @@ -0,0 +1,52 @@ +name: Mesh Contract Handshake + +on: + push: + branches: [main] + paths: + - "specs/contracts/**" + - "tools/specs/mesh_contract_check.py" + - ".github/workflows/mesh_contracts.yml" + - "tools/autonomous_next_lots.py" + pull_request: + branches: [main] + paths: + - "specs/contracts/**" + - "tools/specs/mesh_contract_check.py" + - ".github/workflows/mesh_contracts.yml" + - "tools/autonomous_next_lots.py" + +permissions: + contents: read + +jobs: + mesh_contracts: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - uses: actions/setup-python@v5 + with: + python-version: "3.11" + + - name: Validate mesh contract examples + run: | + mkdir -p artifacts/ci + python3 tools/specs/mesh_contract_check.py \ + --schema specs/contracts/agent_handoff.schema.json \ + --instance specs/contracts/examples/agent_handoff.mesh.json \ + | tee artifacts/ci/agent_handoff_contract.json + python3 tools/specs/mesh_contract_check.py \ + --schema specs/contracts/repo_snapshot.schema.json \ + --instance specs/contracts/examples/repo_snapshot.mesh.json \ + | tee artifacts/ci/repo_snapshot_contract.json + python3 tools/specs/mesh_contract_check.py \ + --schema specs/contracts/workflow_handshake.schema.json \ + --instance specs/contracts/examples/workflow_handshake.mesh.json \ + | tee artifacts/ci/workflow_handshake_contract.json + + - name: Upload mesh contract reports + uses: actions/upload-artifact@v4 + with: + name: mesh-contract-handshake + path: artifacts/ci/*.json diff --git a/.github/workflows/repo_state_header_gate.yml b/.github/workflows/repo_state_header_gate.yml index 0dc89e5..9293040 100644 --- a/.github/workflows/repo_state_header_gate.yml +++ b/.github/workflows/repo_state_header_gate.yml @@ -20,11 +20,9 @@ jobs: with: python-version: "3.11" - - name: Clone sibling repos + - name: Prepare environment integrations run: | - cd .. - git clone --depth=1 https://github.com/electron-rare/RTC_BL_PHONE.git RTC_BL_PHONE - git clone --depth=1 https://github.com/electron-rare/le-mystere-professeur-zacus.git le-mystere-professeur-zacus + echo "No sibling repo clones configured for this environment" - name: Build global header run: | diff --git a/Makefile b/Makefile index 7cbe664..e07a2ae 100644 --- a/Makefile +++ b/Makefile @@ -64,3 +64,47 @@ cad-openscad: cad-pio: @if [ -z "$(CAD_ARGS)" ]; then echo "usage: make cad-pio CAD_ARGS='system info'"; exit 1; fi $(CAD_STACK) pio $(CAD_ARGS) + +# ── Aperant (autonomous multi-agent framework) ────────────────── +APERANT_BRIDGE := bash tools/cockpit/aperant_bridge.sh + +.PHONY: aperant-status aperant-install aperant-dev aperant-start aperant-build aperant-test aperant-update + +aperant-status: + $(APERANT_BRIDGE) status + +aperant-install: + $(APERANT_BRIDGE) install + +aperant-dev: + $(APERANT_BRIDGE) dev + +aperant-start: + $(APERANT_BRIDGE) start + +aperant-build: + $(APERANT_BRIDGE) build + +aperant-test: + $(APERANT_BRIDGE) test + +aperant-update: + $(APERANT_BRIDGE) update + +aperant-web-install: + $(APERANT_BRIDGE) web-install + +aperant-web-dev: + $(APERANT_BRIDGE) web-dev + +aperant-web-build: + $(APERANT_BRIDGE) web-build + +aperant-deploy: + $(APERANT_BRIDGE) deploy + +aperant-tower-status: + $(APERANT_BRIDGE) tower-status + +aperant-tower-logs: + $(APERANT_BRIDGE) tower-logs diff --git a/README.md b/README.md index 89f8fb1..5c1238f 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Kill_LIFE 🚀 — Modèle de Projet Embarqué IA-Natif +# Kill_LIFE 🚀 — Control Plane IA-native, cockpit opérateur et lot pilote extensions [![CI](https://img.shields.io/github/actions/workflow/status/electron-rare/Kill_LIFE/ci.yml?branch=main&label=CI)](https://github.com/electron-rare/Kill_LIFE/actions) @@ -11,16 +11,56 @@ --- -Bienvenue dans **Kill_LIFE**, le modèle open source pour systèmes embarqués IA où chaque étape est traçable, chaque evidence pack est rangé, et chaque agent suit un workflow sécurisé. Ce projet vise la reproductibilité, la conformité et l'automatisation pour l'embarqué IA multi-cibles. +Bienvenue dans **Kill_LIFE**, le control plane public du programme agentique `Kill_LIFE`. Le repo concentre aujourd'hui le cockpit opérateur, la chaîne spec-first, les contrats runtime/MCP, les preuves d'exécution, et le lot pilote qui alimente les extensions VS Code soeurs `kill-life-studio`, `kill-life-mesh` et `kill-life-operator`. + +La regle de lecture 2026-03-22 est simple: + +- ce `README.md` décrit le produit/programme et les décisions de consolidation +- `docs/index.md` est la navigation opérateur canonique +- `tools/cockpit/README.md` est l'entrée outillage/TUI canonique +- `specs/README.md` reste la source de vérité de la chaîne spec-first +- `docs/KILL_LIFE_CONSOLIDATION_AUDIT_2026-03-22.md` porte l'audit structure, les risques, la matrice IA et la carte de fonctionnalites + +La boucle courte de gouvernance locale est désormais: + +`lot_chain -> intelligence_tui(memory) -> runtime_ai_gateway(status)` + +Le programme d'integration intelligence actuellement actif se suit dans: + +- `docs/plans/22_plan_integration_intelligence_agentique.md` +- `docs/plans/22_todo_integration_intelligence_agentique.md` +- `docs/plans/23_plan_yiacad_git_eda_platform.md` +- `docs/plans/23_todo_yiacad_git_eda_platform.md` +- `specs/04_tasks.md`
Don't Panic Playlist apocalypse
+## Entrées canoniques + +| Surface | Rôle | Entrée recommandée | +| --- | --- | --- | +| Produit / programme | Vue d'ensemble, périmètre, stratégie | `README.md` | +| Navigation opérateur | Index docs, runbooks, preuves, routines | `docs/index.md` | +| Cockpit / TUI | Commandes shell, contrats `cockpit-v1`, santé runtime | `bash tools/cockpit/yiacad_operator_index.sh --action status` | +| Gouvernance intelligence | owners, mémoire et prochaines actions | `bash tools/cockpit/intelligence_tui.sh --action status --json` | +| Gateway runtime/MCP/IA | synthèse consolidée runtime, mesh et Mascarade | `bash tools/cockpit/runtime_ai_gateway.sh --action status --refresh --json` | +| Chaîne spec-first | Intake -> spec -> arch -> plan -> tasks | `specs/README.md` | +| Audit consolidé | forces, faiblesses, opportunités, risques, IA | `docs/KILL_LIFE_CONSOLIDATION_AUDIT_2026-03-22.md` | +| Veille OSS | benchmark MCP, orchestration, VS Code agents | `docs/WEB_RESEARCH_OPEN_SOURCE_2026-03-22.md` | + ## 🧩 Présentation -Kill_LIFE est un modèle agentique pour systèmes embarqués IA, orienté spec-first, sécurité et traçabilité. Il s'appuie sur des agents spécialisés, des workflows automatisés et une arborescence claire. +Kill_LIFE n'est plus seulement un squelette embarqué. Le repo sert désormais de source de vérité publique pour un programme plus large: opérations locales, gouvernance tri-repo, runtime MCP/IA, lot YiACAD, et spécialisation progressive des extensions VS Code. + +Le positionnement retenu pour cette passe de consolidation est: + +- `Kill_LIFE` = control plane, cockpit, contrats, preuves et référentiel documentaire +- `kill-life-studio` = produit, specs, décisions, périmètre, roadmap +- `kill-life-mesh` = orchestration multi-repo, handoffs, ownership, dépendances +- `kill-life-operator` = exécution, checks, evidence, runbooks > « Bienvenue dans le meilleur des mondes : ici, chaque commit est validé, chaque gate est passé, et chaque agent sait que la vraie liberté, c'est d'avoir un evidence pack bien rangé. » > — Aldous Huxley, version CI/CD @@ -36,6 +76,8 @@ Kill_LIFE est un modèle agentique pour systèmes embarqués IA, orienté spec-f - **Tool-first** : Scripts reproductibles ([tools/](tools/)), evidence pack canonique dans `docs/evidence/` et expose en artifact CI. - **Pipeline hardware/firmware** : Bulk edits, exports, tests, conformité, snapshots. - **CAD headless** : KiCad 10 first + FreeCAD + OpenSCAD via MCP, conteneurisés. +- **YiACAD** : lot IA-native de fusion KiCad + FreeCAD (with logs dédiés et smoke canari). +- **Pilotage tri-repo** : contract `ready|degraded|blocked` piloté par `mesh_sync_preflight.sh` + `refonte_tui.sh`. - **Sécurité & conformité** : Sanitisation, sorties sûres, sandboxing, scope guard, anti-prompt injection ([OpenClaw Sandbox](https://www.openclaw.io/)). - **Runtime agentique** : `ZeroClaw` en local on-demand, `LangGraph` et `AutoGen` comme patterns d'intégration optionnels. @@ -76,10 +118,10 @@ flowchart TD Issue[Issue label ai:*] --> PR[Pull Request] PR --> Gate[Gate tests + conformité] Gate --> Evidence[Evidence Pack] - Evidence --> CI[18 workflows CI/CD] + Evidence --> CI[22 workflows CI/CD] CI --> Deploy[Déploiement multi-cible] PR --> Agents[6 Agents PM Archi FW QA Doc HW] - Agents --> Specs[specs/ — 16 specs] + Agents --> Specs[specs/ — 21 specs] Agents --> Firmware[firmware/ PlatformIO] Agents --> Hardware[hardware/ KiCad] Agents --> Docs[docs/] @@ -92,6 +134,7 @@ flowchart TD MCP --> KiCad[KiCad MCP] MCP --> FreeCAD[FreeCAD MCP] MCP --> OpenSCAD[OpenSCAD MCP] + MCP --> YiACAD[YiACAD lot] MCP --> HF[HuggingFace MCP] Compliance --> Evidence OpenClaw --> Sandbox[Sandbox] @@ -117,7 +160,7 @@ flowchart TD Kill_LIFE/ ├── firmware/ # Code PlatformIO (ESP32/STM32) ├── hardware/ # Assets hardware et blocs KiCad -├── specs/ # 16 specs et tâches canoniques (00_intake → 04_tasks + MCP/ZeroClaw/CAD) +├── specs/ # 21 specs et tâches canoniques (00_intake → 04_tasks + MCP/ZeroClaw/CAD) ├── workflows/ # Workflows JSON canoniques + templates + schéma ├── agents/ # 6 agents spécialisés (PM, Archi, FW, QA, Doc, HW) ├── bmad/ # Gates (S0, S1), rituels (kickoff), templates (handoff, status) @@ -130,18 +173,74 @@ Kill_LIFE/ │ ├── ai/ # ZeroClaw launchers, intégrations (langgraph, autogen, n8n) │ ├── mistral/ # Safe patch et outils Mistral │ └── ci/ # Audit CI +├── web/ # Frontend Next.js YiACAD (dashboard, editor, viewer, review) ├── deploy/cad/ # Dockerfiles et compose CAD/runtime ├── docs/ # Docs opérateur, bridge, plans, workflows ├── test/ # Tests Python (stable + MCP) ├── .github/ │ ├── agents/ # 6 définitions agents GitHub │ ├── prompts/ # 37 prompts (plan_wizard_*, start_*, Eureka_*) -│ └── workflows/ # 18 workflows CI/CD +│ └── workflows/ # 22 workflows CI/CD ├── KIKIFOU/ # Diagnostic, diagramme, mapping, recommandations ├── mcp.json # 7 serveurs MCP configurés └── mkdocs.yml # Site docs ``` +## Gouvernance refonte / IA-native + +- Audit de consolidation: [docs/KILL_LIFE_CONSOLIDATION_AUDIT_2026-03-21.md](docs/KILL_LIFE_CONSOLIDATION_AUDIT_2026-03-21.md) +- Spec intelligence: [specs/agentic_intelligence_integration_spec.md](specs/agentic_intelligence_integration_spec.md) +- Feature map intelligence: [docs/AGENTIC_INTELLIGENCE_FEATURE_MAP_2026-03-21.md](docs/AGENTIC_INTELLIGENCE_FEATURE_MAP_2026-03-21.md) +- Manifeste: [docs/REFACTOR_MANIFEST_2026-03-20.md](docs/REFACTOR_MANIFEST_2026-03-20.md) +- Contrat mesh: [docs/TRI_REPO_MESH_CONTRACT_2026-03-20.md](docs/TRI_REPO_MESH_CONTRACT_2026-03-20.md) +- Plans lot: [specs/04_tasks.md](specs/04_tasks.md) +- Gestion des agents: [docs/plans/12_plan_gestion_des_agents.md](docs/plans/12_plan_gestion_des_agents.md) +- To-do mesh: [docs/plans/19_todo_mesh_tri_repo.md](docs/plans/19_todo_mesh_tri_repo.md) +- CAD AI-native: [docs/CAD_AI_NATIVE_FORK_STRATEGY.md](docs/CAD_AI_NATIVE_FORK_STRATEGY.md) +- Git EDA platform: [docs/YIACAD_GIT_EDA_PLATFORM_2026-03-22.md](docs/YIACAD_GIT_EDA_PLATFORM_2026-03-22.md) +- Web stack spec: [specs/yiacad_git_eda_platform_spec.md](specs/yiacad_git_eda_platform_spec.md) +- YiACAD lane: `bash tools/cockpit/refonte_tui.sh --action yiacad-fusion:prepare` et `tools/cad/yiacad_fusion_lot.sh` +- Workflow IA: [docs/AI_WORKFLOWS.md](docs/AI_WORKFLOWS.md) +- TUI intelligence: `bash tools/cockpit/intelligence_tui.sh --action status` +- Memoire intelligence: `bash tools/cockpit/intelligence_tui.sh --action memory --json` +- Scorecard intelligence: `bash tools/cockpit/intelligence_tui.sh --action scorecard --json` +- Comparaison inter-repos: `bash tools/cockpit/intelligence_tui.sh --action comparison --json` +- File recommandations IA: `bash tools/cockpit/intelligence_tui.sh --action recommendations --json` +- Gateway runtime/MCP/IA: `bash tools/cockpit/runtime_ai_gateway.sh --action status --refresh --json` +- Sync locale: `bash tools/cockpit/lot_chain.sh status` rafraichit la memoire `intelligence_tui` avant de mettre a jour le suivi `lots` +- Commande d'entrée: `bash tools/cockpit/refonte_tui.sh --action status` +- Index operateur YiACAD: `bash tools/cockpit/yiacad_operator_index.sh --action status` +- Phase active 2026-03-21: alignement lot 22, durcissement cockpit/logs, veille officielle MCP/agentique/IA, politique racine/mirror explicite et priorisation firmware/CAD/MCP. + +### Refonte UI/UX Apple-native 2026 + +- Audit UX: [docs/YIACAD_APPLE_UI_UX_AUDIT_2026-03-20.md](docs/YIACAD_APPLE_UI_UX_AUDIT_2026-03-20.md) +- Audit exhaustif refonte: [docs/YIACAD_EXHAUSTIVE_REFOUNTE_AUDIT_2026-03-20.md](docs/YIACAD_EXHAUSTIVE_REFOUNTE_AUDIT_2026-03-20.md) +- Spécification technique: [specs/yiacad_uiux_apple_native_spec.md](specs/yiacad_uiux_apple_native_spec.md) +- Spécification lot suivant `T-UX-004`: [specs/yiacad_tux004_orchestration_spec.md](specs/yiacad_tux004_orchestration_spec.md) +- Feature map UI/UX: [docs/YIACAD_APPLE_UI_UX_FEATURE_MAP_2026-03-20.md](docs/YIACAD_APPLE_UI_UX_FEATURE_MAP_2026-03-20.md) +- Feature map lot suivant: [docs/YIACAD_TUX004_FEATURE_MAP_2026-03-20.md](docs/YIACAD_TUX004_FEATURE_MAP_2026-03-20.md) +- Veille Apple + OSS: [docs/YIACAD_APPLE_UI_UX_OSS_RESEARCH_2026-03-20.md](docs/YIACAD_APPLE_UI_UX_OSS_RESEARCH_2026-03-20.md) +- Plan dédié: [docs/plans/20_plan_refonte_ui_ux_yiacad_apple_native.md](docs/plans/20_plan_refonte_ui_ux_yiacad_apple_native.md) +- To-do dédié: [docs/plans/20_todo_refonte_ui_ux_yiacad_apple_native.md](docs/plans/20_todo_refonte_ui_ux_yiacad_apple_native.md) +- TUI dédiée: `bash tools/cockpit/yiacad_uiux_tui.sh --action status|program-audit|next-spec|next-feature-map` + +### Bundle global YiACAD 2026 + +- Audit global: [docs/YIACAD_GLOBAL_REFACTOR_AUDIT_2026-03-20.md](docs/YIACAD_GLOBAL_REFACTOR_AUDIT_2026-03-20.md) +- Evaluation IA: [docs/YIACAD_GLOBAL_AI_INTEGRATION_ASSESSMENT_2026-03-20.md](docs/YIACAD_GLOBAL_AI_INTEGRATION_ASSESSMENT_2026-03-20.md) +- Feature map globale: [docs/YIACAD_GLOBAL_FEATURE_MAP_2026-03-20.md](docs/YIACAD_GLOBAL_FEATURE_MAP_2026-03-20.md) +- Recherche OSS globale: [docs/YIACAD_GLOBAL_OSS_RESEARCH_2026-03-20.md](docs/YIACAD_GLOBAL_OSS_RESEARCH_2026-03-20.md) +- Architecture backend: [docs/YIACAD_BACKEND_ARCHITECTURE_2026-03-20.md](docs/YIACAD_BACKEND_ARCHITECTURE_2026-03-20.md) +- Spec globale: [specs/yiacad_global_refonte_spec.md](specs/yiacad_global_refonte_spec.md) +- Spec backend: [specs/yiacad_backend_architecture_spec.md](specs/yiacad_backend_architecture_spec.md) +- Plan global: [docs/plans/21_plan_refonte_globale_yiacad.md](docs/plans/21_plan_refonte_globale_yiacad.md) +- TODO globale: [docs/plans/21_todo_refonte_globale_yiacad.md](docs/plans/21_todo_refonte_globale_yiacad.md) +- TUI globale: `bash tools/cockpit/yiacad_refonte_tui.sh --action status` +- Prochain front canonique: + - architecture: backend YiACAD derriere `tools/cad/yiacad_native_ops.py` + - produit: `T-UX-004` (`command palette`, `review center`, `inspector` persistant) + ### Chaîne de specs Le workflow spec-first suit une séquence canonique dans `specs/` : @@ -182,10 +281,63 @@ Voir [KIKIFOU/diagramme.md](KIKIFOU/diagramme.md) pour le diagramme complet et [ Plan d'analyse repo courant: - [docs/plans/REPO_DEEP_ANALYSIS_2026-03-11.md](docs/plans/REPO_DEEP_ANALYSIS_2026-03-11.md) +- [docs/REFACTOR_MANIFEST_2026-03-20.md](docs/REFACTOR_MANIFEST_2026-03-20.md) +- [docs/WEB_RESEARCH_OPEN_SOURCE_2026-03-20.md](docs/WEB_RESEARCH_OPEN_SOURCE_2026-03-20.md) - [docs/KILL_LIFE_FEATURE_MAP_2026-03-11.md](docs/KILL_LIFE_FEATURE_MAP_2026-03-11.md) - [docs/KILL_LIFE_WORKFLOW_LOCAL_SEQUENCE_2026-03-11.md](docs/KILL_LIFE_WORKFLOW_LOCAL_SEQUENCE_2026-03-11.md) - [docs/KILL_LIFE_WORKFLOW_GITHUB_SEQUENCE_2026-03-11.md](docs/KILL_LIFE_WORKFLOW_GITHUB_SEQUENCE_2026-03-11.md) - [docs/EVIDENCE_ALIGNMENT_2026-03-11.md](docs/EVIDENCE_ALIGNMENT_2026-03-11.md) +- [docs/AGENTIC_LANDSCAPE.md](docs/AGENTIC_LANDSCAPE.md) +- [docs/AI_WORKFLOWS.md](docs/AI_WORKFLOWS.md) +- [tools/cockpit/refonte_tui.sh](tools/cockpit/refonte_tui.sh) +- [docs/CAD_AI_NATIVE_FORK_STRATEGY.md](docs/CAD_AI_NATIVE_FORK_STRATEGY.md) +- [docs/TRI_REPO_MESH_CONTRACT_2026-03-20.md](docs/TRI_REPO_MESH_CONTRACT_2026-03-20.md) + +Infrastructure opérationnelle: + +- Machines SSH opérateur (port SSH: `22`, priorité opérationnelle: Tower -> KXKM -> CILS -> local -> root): + + | Machine | Utilisateur | Rôle | Port | Script principal | + |---|---|---|---:|---| + | `clems@192.168.0.120` | `clems` | Machine de pilotage / orchestration locale | `22` | `run_alignment_daily.sh`, `ssh_healthcheck.sh` | + | `kxkm@kxkm-ai` | `kxkm` | Mac opérateur | `22` | `run_alignment_daily.sh` | + | `cils@100.126.225.111` | `cils` | Mac opérateur secondaire (`photon`, locké: pas de service essentiel) | `22` | `run_alignment_daily.sh` | + | `root@192.168.0.119` | `root` | Serveur système / exécution matérielle (réserve) | `22` | `run_alignment_daily.sh` | + +- Politique de charge P2P: `mesh_sync_preflight.sh --load-profile tower-first` + - ordre: `Tower -> KXKM -> CILS -> local -> root` + - `cils` accepte uniquement le repo critique `Kill_LIFE` en mode verrouillé. +- Repos GitHub actifs: + - `electron-rare/Kill_LIFE` + - `electron-rare/mascarade` + - `electron-rare/crazy-life` (privé) +- Snapshot machines/repos: + - [docs/MACHINE_SYNC_STATUS_2026-03-20.md](docs/MACHINE_SYNC_STATUS_2026-03-20.md) + - [docs/MACHINE_ALIGNMENT_CONTRACT_2026-03-20.md](docs/MACHINE_ALIGNMENT_CONTRACT_2026-03-20.md) + +### Health-check SSH (vérification machine) + +```bash +bash tools/cockpit/ssh_healthcheck.sh --json +``` + +- Vérification de connectivité par machine avec statut `OK`/`KO` par ligne. +- Logs horodatés: `artifacts/cockpit/ssh_healthcheck__.log`. +- Contrat d’alignement opérationnel: [docs/MACHINE_ALIGNMENT_CONTRACT_2026-03-20.md](docs/MACHINE_ALIGNMENT_CONTRACT_2026-03-20.md) + +Routine quotidienne: + +```bash +bash tools/cockpit/run_alignment_daily.sh --json +bash tools/cockpit/run_alignment_daily.sh --skip-healthcheck --json +``` + +- Lance health-check SSH + `repo_refresh` en mode header-only. +- Intègre la mémoire opérationnelle: [docs/MACHINE_SYNC_STATUS_2026-03-20.md](docs/MACHINE_SYNC_STATUS_2026-03-20.md) et [docs/MESH_SYNC_INCIDENT_REGISTER_2026-03-20.md](docs/MESH_SYNC_INCIDENT_REGISTER_2026-03-20.md). +- En mode charge sensible, utiliser `--mesh-load-profile photon-safe`. +- Écrit un log horodaté: `artifacts/cockpit/machine_alignment_daily__.log`. +- Purge auto configurable (`--purge-days `, défaut `14`). +- Sur les machines non-pilotes, utiliser `--skip-healthcheck` si la clé SSH n’est pas prévue pour l’auto-check mutuel. --- @@ -395,6 +547,7 @@ Contraintes projet (depuis [`specs/constraints.yaml`](specs/constraints.yaml)) : | Repo | Rôle | Accès | |---|---|---| | **Kill_LIFE** | Source de vérité : workflows, runtime, evidence packs, firmware, CAD, compliance | 🌍 public | +| **ai-agentic-embedded-base** | Compagnon local : miroir exporté des `specs/` + seed firmware minimal, jamais source de vérité primaire | local | | **crazy_life** | Surface web/devops et workflow editor | 🔒 privé | | **mascarade** | Orchestration et bridge historique (sync uniquement) | 🔒 privé | @@ -410,7 +563,7 @@ Articulation détaillée : [`docs/MASCARADE_BRIDGE.md`](docs/MASCARADE_BRIDGE.md ## ⚙️ CI & release -**18 workflows GitHub Actions** couvrent l'ensemble du cycle : +**22 workflows GitHub Actions** couvrent l'ensemble du cycle : | Catégorie | Workflows | |---|---| @@ -523,3 +676,61 @@ MIT. Voir [`licenses/MIT.txt`](licenses/MIT.txt). - Repo card: `/Users/electron/.codex/memories/electron_rare_chantier/REPOS/Kill_LIFE.md` + +## Delta mesh tri-repo 2026-03-20 + +Cette refonte opere desormais en mode maillé entre `Kill_LIFE`, `mascarade` et `crazy_life`. + +- Contrat de gouvernance: [docs/TRI_REPO_MESH_CONTRACT_2026-03-20.md](docs/TRI_REPO_MESH_CONTRACT_2026-03-20.md) +- Spec des contrats publics: [specs/mesh_contracts.md](specs/mesh_contracts.md) +- Todo de transition: [docs/plans/19_todo_mesh_tri_repo.md](docs/plans/19_todo_mesh_tri_repo.md) +- Preflight machines/repos: [tools/cockpit/mesh_sync_preflight.sh](tools/cockpit/mesh_sync_preflight.sh) +- Operations logs: [tools/cockpit/log_ops.sh](tools/cockpit/log_ops.sh) + +Regles actives: + +- un lot doit declarer `owner_repo`, `owner_agent`, `write_set`, `preflight`, `validations`, `evidence`, `sync_targets` +- aucun revert de changements externes +- aucune propagation sans preflight de convergence +- les MCP sont conformes en `ready` ou `degraded`; `blocked` doit etre justifie + +## Full operator lane (2026-03-20) + +- Workflow source of truth: `workflows/embedded-operator-live.json` +- Live provider bridge: + - `tools/ops/operator_live_provider_smoke.js` + - `tools/ops/operator_live_provider_smoke.py` +- TUI runbook: `bash tools/cockpit/full_operator_lane.sh all` +- Patchset sync: `bash tools/cockpit/full_operator_lane_sync.sh --json` +- Evidence contract: `specs/contracts/operator_lane_evidence.schema.json` +- Operator doc: `docs/FULL_OPERATOR_LANE_2026-03-20.md` +- Provider/runtime note: `docs/PROVIDER_RUNTIME_COMPAT_2026-03-20.md` +- Validated on `clems`: + - dry-run `success` + - live `success` + - provider/model observed: `claude` / `claude-sonnet-4-6` + +### Refonte globale YiACAD 2026 + +- Audit global: [docs/YIACAD_GLOBAL_REFACTOR_AUDIT_2026-03-20.md](docs/YIACAD_GLOBAL_REFACTOR_AUDIT_2026-03-20.md) +- Evaluation IA: [docs/YIACAD_GLOBAL_AI_INTEGRATION_ASSESSMENT_2026-03-20.md](docs/YIACAD_GLOBAL_AI_INTEGRATION_ASSESSMENT_2026-03-20.md) +- Feature map globale: [docs/YIACAD_GLOBAL_FEATURE_MAP_2026-03-20.md](docs/YIACAD_GLOBAL_FEATURE_MAP_2026-03-20.md) +- Recherche OSS globale: [docs/YIACAD_GLOBAL_OSS_RESEARCH_2026-03-20.md](docs/YIACAD_GLOBAL_OSS_RESEARCH_2026-03-20.md) +- Spec globale: [specs/yiacad_global_refonte_spec.md](specs/yiacad_global_refonte_spec.md) +- Plan global: [docs/plans/21_plan_refonte_globale_yiacad.md](docs/plans/21_plan_refonte_globale_yiacad.md) +- TODO globale: [docs/plans/21_todo_refonte_globale_yiacad.md](docs/plans/21_todo_refonte_globale_yiacad.md) +- Index operateur: `bash tools/cockpit/yiacad_operator_index.sh --action status` +- TUI globale: `bash tools/cockpit/yiacad_refonte_tui.sh --action status` +- Facade backend locale: `python3 tools/cad/yiacad_backend_service.py status` + +### Delta 2026-03-21 - backend service YiACAD + +- Service local: [docs/YIACAD_BACKEND_SERVICE_2026-03-21.md](docs/YIACAD_BACKEND_SERVICE_2026-03-21.md) +- Client service-first: `python3 tools/cad/yiacad_backend_client.py --json-output health` +- TUI backend: `bash tools/cockpit/yiacad_backend_service_tui.sh --action status` + +## 2026-03-21 - Canonical operator entry +- Entree publique recommandee: `bash tools/cockpit/yiacad_operator_index.sh --action status`. +- Surface de preuves: `bash tools/cockpit/yiacad_proofs_tui.sh --action status`. +- Surface de logs: `bash tools/cockpit/yiacad_logs_tui.sh --action status`. +- Les routes directes historiques restent compatibles, mais ne sont plus l'entree publique recommandee. diff --git a/SYNTHESE_AGENTIQUE.md b/SYNTHESE_AGENTIQUE.md index bbb677a..fd35c88 100644 --- a/SYNTHESE_AGENTIQUE.md +++ b/SYNTHESE_AGENTIQUE.md @@ -10,11 +10,31 @@ Ce document regroupe les éléments essentiels de l’audit agentique : - Documentation complète et conventions partagées. - Automatisation des tâches, validation et traçabilité. - Synchronisation multi-agent et conformité. +- Plan d’exécution refonte piloté par `docs/REFACTOR_MANIFEST_2026-03-20.md`. +- Contrat tri-repo `ready|degraded|blocked` actif pour Kill_LIFE/mascarade/crazy_life. +- YiACAD est maintenant raccordé au scheduler de lots et à une synthèse opératoire hebdomadaire. ## Recommandations -- Maintenir la documentation et la synchronisation. -- Automatiser la validation des specs et evidence packs. -- Vérifier la cohérence des artefacts et la couverture des tests. +- Maintenir la documentation et la synchronisation avec les docs/plans tri-repo. +- Automatiser la validation des specs/lots/logs (`tools/cockpit/refonte_tui.sh`). +- Vérifier la cohérence des artefacts et la couverture des tests avant clôture de lot. +- Structurer la mémoire d’exécution (lot_id / owner_agent / write_set) pour chaque tâche majeure. +- Utiliser `artifacts/cockpit/weekly_refonte_summary.md` comme point d’entrée de revue pour les lots ouverts. + +## Plan de lot actuel (extrait) + +- P0 actif: `T-RE-204` (`zeroclaw-integrations`) reste le lot exécutable bloquant. +- P1 actif: `T-RE-209` / `T-RE-210` portent la maturité YiACAD et son raccord au lot-chain. +- P2 actif: `T-RE-301` à `T-RE-304` câblent la synthèse récurrente et la checklist de sortie. + +## Sources de vérité récentes + +- [docs/REFACTOR_MANIFEST_2026-03-20.md](docs/REFACTOR_MANIFEST_2026-03-20.md) +- [docs/AI_WORKFLOWS.md](docs/AI_WORKFLOWS.md) +- [docs/CAD_AI_NATIVE_FORK_STRATEGY.md](docs/CAD_AI_NATIVE_FORK_STRATEGY.md) +- [docs/plans/19_todo_mesh_tri_repo.md](docs/plans/19_todo_mesh_tri_repo.md) +- [tools/cockpit/refonte_tui.sh](tools/cockpit/refonte_tui.sh) +- [tools/cockpit/render_weekly_refonte_summary.sh](tools/cockpit/render_weekly_refonte_summary.sh) --- diff --git a/deploy/cad/README.md b/deploy/cad/README.md index 4272f19..ff1af9e 100644 --- a/deploy/cad/README.md +++ b/deploy/cad/README.md @@ -4,6 +4,12 @@ Last updated: 2026-03-14 Stack Docker CAD/EDA integree directement dans `Kill_LIFE`. +Important: + +- cette stack reste la base headless et containerisee; +- YiACAD ajoute des surfaces GUI natives utilisateur dans KiCad et FreeCAD; +- la strategie GUI/native est documentee dans `docs/CAD_AI_NATIVE_GUI_RUNBOOK_2026-03-20.md`, `docs/CAD_AI_NATIVE_HOOKS_2026-03-20.md` et `docs/YIACAD_APPLE_UI_UX_AUDIT_2026-03-20.md`. + Backlogs canoniques associes: - plan modelling local: `docs/plans/16_plan_cad_modeling_stack.md` @@ -63,9 +69,9 @@ Le workspace monte dans les conteneurs est la racine de `Kill_LIFE` par defaut. Limites explicites: -- headless seulement -- pas d'UI graphique supportee dans cette stack locale -- les serveurs MCP `FreeCAD` et `OpenSCAD` restent des surfaces MCP separees; ils ne remplacent pas les wrappers CLI locaux +- la stack Docker documentee ici reste headless par nature +- l'UI graphique YiACAD ne passe pas par ces conteneurs, mais par les surfaces natives utilisateur KiCad/FreeCAD +- les serveurs MCP `FreeCAD` et `OpenSCAD` restent des surfaces MCP separees; ils ne remplacent ni les wrappers CLI locaux ni les surfaces GUI YiACAD ## MCP CAD locaux