5efb380da5
* feat: automate yiacad pr review lane * fix: stabilize yiacad review and spec gates * fix: scope kicad exports to repo hardware * fix: ignore kicad block library sources in exports * feat: Add infra VPS monitoring runbook and healthcheck scripts - Created INFRA_VPS_RUNBOOK_2026.md detailing operational procedures for monitoring VPS services. - Added infra_vps_healthcheck.sh script for automated health checks on DNS, TLS, TCP, and HTTP for VPS services. - Introduced infra_vps_security_audit.sh for non-intrusive security checks on external VPS services. - Established JSON schema for infra VPS inventory in infra_vps.schema.json. - Developed integration for runtime status reporting in the Next.js API route. - Implemented Playwright tests for smoke testing the application and ensuring core functionalities. - Updated Makefile for development dependencies and testing commands. - Created various test files for unit and end-to-end testing across different components. * feat(agentics): update mesh agents, gates, prompts, and workflows
4.3 KiB
4.3 KiB
YiACAD T-UX-004 - Orchestration UX native
Intent
Faire passer YiACAD d'un ensemble d'actions et d'adaptateurs CAD disponibles a une app autonome pilotee: palette de commandes, review center, inspector persistant et contrats de restitution homogenes entre l'app, le backend et les artefacts.
Contexte
- Normalisation canonique
2026-03-29:YiACADest une app independante.KiCad,FreeCAD,KiBot,KiAutoet les runtimes CAD sont des moteurs integres a YiACAD, pas les shells produit de reference.- les references historiques aux forks
kicad-ki/freecad-ki, plugins et workbenches restent archivees comme traces d'exploration, mais ne definissent plus la cible produit.
- Les actions de base sont disponibles via
tools/cad/yiacad_native_ops.py. - Le prochain risque n'est plus l'absence d'action mais la dispersion de l'experience utilisateur.
- Les ancrages SOT 2026 sont publies dans:
specs/yiacad_2026_stack_target_spec.mdspecs/yiacad_adr_20260329_sot.mdspecs/yiacad_90_day_delivery_plan.mdspecs/yiacad_plugin_workbench_ci_plan.md
Objectifs
- Exposer une palette de commandes YiACAD sur les surfaces majeures de l'app.
- Creer un review center lisible pour
ERC/DRC,BOM review,ECAD/MCAD sync. - Rendre l'inspector YiACAD persistant et contextuel.
- Uniformiser les contrats de sortie pour chaque action YiACAD.
Non-objectifs
- construire un backend compile complet dans ce lot
- faire de
KiCadouFreeCADles surfaces hotes principales de YiACAD - lancer des validations lourdes automatiques depuis l'UI
Requirements fonctionnels
- La palette doit exposer au minimum:
YiACAD StatusYiACAD ERC/DRCYiACAD BOM ReviewYiACAD ECAD/MCAD SyncOpen Artifacts
- Le review center doit afficher:
- statut global
- severite
- chemin artefact
- prochaine action recommandee
- L'inspector doit pouvoir rester ouvert et se mettre a jour selon le contexte projet.
- L'app doit rester exploitable sans integration compilee dans
KiCadouFreeCAD. - Les retours doivent rester compréhensibles hors IA et sans magie implicite.
Requirements non fonctionnels
- fallback non-IA explicite
- latence et etat de traitement visibles
- sorties deterministes reutilisables par les TUI
- pas de dependance obligatoire a un shell
KiCadouFreeCAD - echec d'adaptateur visible et isole du shell produit YiACAD
- authoring canonique sur
desktop, review canonique surweb
Contrat de sortie cible
{
"component": "yiacad",
"surface": "yiacad-desktop|yiacad-web|yiacad-api|tui",
"action": "review.erc_drc",
"execution_mode": "interactive|batch|background",
"status": "done|degraded|blocked",
"severity": "info|warning|error",
"summary": "human readable summary",
"details": "optional long form details",
"artifacts": [
{
"kind": "report|log|export|evidence",
"path": "/abs/path/to/file",
"label": "optional human label"
}
],
"next_steps": ["open review center", "rerun with project loaded"],
"context_ref": "optional project/runtime reference"
}
Schema canonique publiée:
specs/contracts/yiacad_uiux_output.schema.json- exemple:
specs/contracts/examples/yiacad_uiux_output.example.json
Règles de compat:
statusreste strictement borné àdone | degraded | blockedseverityreste strictement borné àinfo | warning | error- toutes les extensions doivent être additives et optionnelles
- les surfaces UI ne doivent jamais avoir à parser un message libre pour retrouver
artifactsounext_steps
Diagramme de flux
flowchart LR
A["User action"] --> B["YiACAD app shell"]
B --> C["YiACAD context broker"]
C --> D["yiacad_native_ops / backend / CAD adapters"]
D --> E["Normalized result contract"]
E --> F["Review center"]
E --> G["Inspector"]
E --> H["Artifacts"]
Agents
DesignOps-UI: orchestration UX, palette, review centerYiACAD-App lane: shell desktop/web/app et navigationEDA-Engines lane: KiCad, FreeCAD, KiBot, KiAuto, workers et imports/exportsAgentMatrix lane: plans, TODOs, competence mapping
Taches prioritaires
- definir le contrat de sortie UI commun
- creer la palette de commandes YiACAD dans l'app
- monter le review center
- rendre l'inspector persistant
- brancher les actions app sur le contrat unifie et les moteurs integres