Ce dépôt fournit un environnement de travail préconfiguré pour le harnais Pi. Il permet de piloter la conception de circuits imprimés (PCB) via KiCad en utilisant un agent autonome.
Le processus suit une méthodologie d'ingénierie stricte, allant de la rédaction du cahier des charges à la génération des fichiers de fabrication.
La compétence pcb-flow (définie dans .pi/skills/) agit comme le superviseur et chef d'orchestre du projet. Son utilité est fondamentale pour la conception matérielle par IA : elle définit une machine à états stricte qui empêche l'agent de s'éparpiller, de brûler des étapes ou d'halluciner des composants. Elle force l'agent à valider chaque phase formellement et à n'utiliser que les fichiers présents sur le disque comme source de vérité, évitant ainsi toute dépendance à la mémoire éphémère de la session.
Le processus est ainsi divisé en 6 phases séquentielles. L'état d'avancement est persisté dans le répertoire design/.
| Phase | Étape | Compétence | Fichiers produits | Description |
|---|---|---|---|---|
| 1 | Brief | pcb-brief |
design/brief.md |
Cahier des charges et spécifications techniques. |
| 2 | BOM | pcb-bom |
design/bom.yaml |
Nomenclature des composants sélectionnés. |
| 3 | Datasheets | pcb-datasheets |
design/datasheets/*.md |
Extraction des caractéristiques techniques de référence. |
| 4 | Librairies | pcb-libs |
design/lib/ |
Symboles, empreintes et modèles 3D KiCad. |
| 5 | Schéma | pcb-schematic |
*.kicad_sch |
Fichier source du schéma électronique câblé. |
| 6 | Review | pcb-review |
design/checks/*.json |
Rapports d'audit (ERC/DRC) et exports de production (Gerbers, BOM, PDF). |
Le diagramme suivant détaille l'interaction entre l'orchestrateur principal, les sous-agents spécialisés (chacun exécutant cliproxyapi/gemini-3.8-flash-high), le garde-fou d'interception pcb-gate, les outils externes et les fichiers persistants du répertoire design/ :
%%{init: {"flowchart": {"wrappingWidth": 400}} }%%
flowchart LR
Start(["👤 <b>Démarrage</b><br/>Besoin utilisateur"])
%% Phase 1
P1["<b>Phase 1 · Spécification</b><br/>pcb-brief · Orchestrateur<br/>📁 design/brief.md"]
%% Phase 2
P2["<b>Phase 2 · Sourcing & BOM</b><br/>pcb-bom · part-scout<br/>📁 design/bom.yaml"]
%% Phase 3
P3["<b>Phase 3 · Datasheets</b><br/>pcb-datasheets · extractor<br/>📁 design/datasheets/"]
%% Phase 4
P4["<b>Phase 4 · Librairies</b><br/>pcb-libs · Orchestrateur<br/>📁 design/lib/ (symboles, 3D)"]
%% Porte 1
Gate1{"🛡️ <b>pcb-gate</b><br/>lib_ok ?"}
%% Phase 5
P5["<b>Phase 5 · Schéma KiCad</b><br/>pcb-schematic · Orchestrateur<br/>📁 *.kicad_sch & sch.svg"]
%% Porte 2
Gate2{"🛡️ <b>pcb-gate</b><br/>ERC = 0 ?"}
%% Phase 6
P6["<b>Phase 6 · Audit & Revue</b><br/>pcb-review · reviewer<br/>📁 review.md & Gerbers"]
Success(["🚀 <b>Production</b><br/>Fabrication PCB & PCBA"])
%% Séquence principale
Start --> P1
P1 -->|Brief validé| P2
P2 --> P3
P3 -->|Datasheets OK| P4
P4 --> Gate1
Gate1 -->|✅ Oui| P5
Gate1 -.->|❌ Non : lib incomplète| P4
P5 --> Gate2
Gate2 -->|✅ 0 Erreur| P6
Gate2 -.->|❌ Erreurs| P5
%% Boucles de retour fonctionnelles
P3 -.->|⚠️ Rejet| P2
P6 -.->|🔧 Corrections| P5
P6 -->|Validation finale| Success
L'exécution complète du pipeline requiert l'installation des composants logiciels suivants sur le système hôte. Ils ne sont pas inclus dans le dépôt source.
- Pi Coding Agent
Moteur d'exécution de l'agent.
curl -fsSL https://pi.dev/install.sh | sh - KiCad (v10 ou Nightly)
L'interaction de l'agent requiert l'API IPC introduite dans KiCad 10.
- Configuration requise : Aller dans Préférences → Plugins et cocher "Enable KiCad API".
- Konnect
Interface de communication logicielle permettant à l'agent d'exécuter des requêtes vers KiCad (185+ outils supportés).
- Installation : Charger le fichier
.zipvia le gestionnaire de plugins (Plugin and Content Manager) de KiCad. - Note macOS : En cas de téléchargement manuel, il peut être nécessaire de retirer l'attribut de quarantaine :
xattr -d com.apple.quarantine /chemin/vers/konnect.
- Installation : Charger le fichier
- Pi-Kicad
Extension d'agent dédiée à la manipulation de l'API KiCad.
- L'extension est déjà incluse localement dans ce dépôt (
.pi/npm), aucune installation globale n'est requise.
- L'extension est déjà incluse localement dans ce dépôt (
Ces dépendances permettent l'analyse des spécifications techniques et la conversion de composants depuis des catalogues tiers.
- easyeda2kicad.py
Script de conversion permettant l'import automatique de composants depuis les catalogues EasyEDA/LCSC vers le format natif KiCad.
pip install easyeda2kicad
- Poppler
Bibliothèque de rendu PDF requise pour l'analyse et la lecture des fiches techniques (datasheets).
- macOS :
brew install poppler - Linux :
sudo apt install poppler-utils
- macOS :
- pi-pdf
Extension Pi exploitant Poppler pour extraire les données textuelles des fichiers PDF.
- Installation : Se référer à la documentation du dépôt officiel pour le déploiement sur l'agent.
Pour reproduire le comportement exact de l'environnement de conception initial, les dépendances système et extensions globales suivantes sont nécessaires :
-
tmux Multiplexeur de terminal requis par le harnais Pi pour l'isolation et la gestion des sous-agents. (Vous pouvez aussi utiliser un terminal avec multiplexeur natif, comme cmux)
macOS :
brew install tmux
Linux :
sudo apt install tmux
-
Extensions Pi Globales Les extensions globales requises sont :
- context-mode : Gestion optimisée du contexte pour les gros fichiers.
- pi-web-access : Accès réseau étendu pour l'agent.
- @juicesharp/rpiv-ask-user-question : Interface de questionnement utilisateur (QCM interactif).
- pi-interactive-subagents : Gestion interactive des sous-agents dans le terminal.
Installation en une seule commande :
pi install -l npm:context-mode && \ pi install -l npm:pi-web-access && \ pi install -l npm:@juicesharp/rpiv-ask-user-question && \ pi install -l git:github.com/HazAT/pi-interactive-subagents
- Cloner ce dépôt et se placer à sa racine. Renommez le dossier "pi" en ".pi"
git clone https://github.com/18nelli18/PiCB.git
cd PiCB
mv -r pi .pi- Démarrer l'agent Pi :
tmux new -A -s pi 'pi' - Formuler la requête technique pour amorcer la Phase 1. Exemple : "Conçois un circuit imprimé pour un clignotant à LED basé sur un NE555."
PiCB/
├── .pi/ # Configuration locale et environnement du harnais Pi
│ ├── skills/ # Fichiers de compétences (pcb-flow, pcb-brief, etc.)
│ └── npm/ # Dépendances locales de l'agent (ex: Pi-KiCad)
├── design/ # Répertoire de travail (état persistant du projet)
│ ├── brief.md
│ ├── bom.yaml
│ ├── datasheets/
│ ├── lib/
│ └── checks/
└── README.md
L'état du projet étant intégralement persisté sous forme de fichiers dans le répertoire design/, le processus de conception peut être interrompu, partagé, ou versionné via Git sans perte d'information.
Lors du lancement de la commande pi dans ce dépôt, l'agent inspecte automatiquement le contenu du dossier design/ pour identifier la phase courante et est en mesure de reprendre les opérations à l'endroit exact où elles ont été arrêtées.