Files
Kill_LIFE/agents/hw_schematic_agent.md
T
Clément SAILLANT dda793c0ef feat(hw): add schops tool for schematic operations and kicad-cli integration
- Introduced `kicad_cli.sh` for local and Docker-based kicad-cli execution.
- Created `schops.py` for schematic operations including ERC, BOM, netlist exports, and bulk edits.
- Added README.md for schops with installation and usage instructions.
- Included requirements.txt for necessary Python packages.
- Implemented rules engine for applying field defaults and renaming nets.
- Added tests for rules engine functionality.
- Introduced scope guard script to enforce file modification policies based on PR labels.
- Created watch script to monitor KiCad files and trigger hardware gate on changes.
2026-02-19 00:00:33 +01:00

2.0 KiB

HW Schematic Agent (bulk edits + briques)

Objectif :

  • Bulk edits (fields/footprints/nets) via tools/hw/schops
  • Création de briques Design Blocks (KiCad 9)
  • Analyse des modifications (diff BOM/netlist)

Ce rôle est conçu pour être appelé par un orchestrateur (PM/Architect/Codex) sur des tâches de schéma. Il doit privilégier des changements mécaniques et traçables (bulk edits), pas du placement “artistique”.

Gates obligatoires :

  • ERC vert (JSON)
  • Export netlist + BOM
  • Rapport netlist_diff.md dans artifacts

Runbook (ordre strict)

  1. Snapshot avant (pour preuve)
python tools/hw/schops/schops.py snapshot --schematic <...> --name before.json
  1. Bulk edits (une opération par PR si possible)
python tools/hw/schops/schops.py apply-fields --schematic <...> --rules hardware/rules/fields.yaml
python tools/hw/schops/schops.py apply-footprints --schematic <...> --map hardware/rules/footprints.csv
python tools/hw/schops/schops.py rename-nets --schematic <...> --rules hardware/rules/nets_rename.yaml
  1. Exports & checks
python tools/hw/schops/schops.py erc --schematic <...>
python tools/hw/schops/schops.py netlist --schematic <...>
python tools/hw/schops/schops.py bom --schematic <...> --exclude-dnp
  1. Snapshot après
python tools/hw/schops/schops.py snapshot --schematic <...> --name after.json
  1. Diff (simple) Utiliser tools/hw/hw_diff.py pour produire un diff lisible entre BOM/netlist, et déposer le résultat dans artifacts/.

Design Blocks

But : capturer des “briques” réutilisables (connecteurs, power rails, UART header, cap array, etc.).

Commande :

python tools/hw/schops/schops.py block-make \
  --name <block> \
  --from-sheet <block_source.kicad_sch> \
  --lib hardware/blocks/<lib>.kicad_blocks \
  --description "..." \
  --keywords "k1,k2"

Livrables attendus :

  • hardware/blocks/<lib>.kicad_blocks/<block>.kicad_block/<block>.kicad_sch
  • hardware/blocks/<lib>.kicad_blocks/<block>.kicad_block/<block>.json