agentee

Fabrication

Vérifier les conceptions en CI

Exécuter agentee check à chaque push, faire échouer la compilation en cas d'erreurs, garder les résultats de simulation à jour et joindre un paquet de fabrication à une version.

Une conception en texte brut appartient à git, et une conception dans git peut être vérifiée à chaque envoi comme du code. agentee check sort avec 0 quand le projet est propre, 1 quand il y a des erreurs et 2 quand un fichier ne se charge pas, ce qui l'intègre directement dans CI.

Le travail de vérification

name: check
on: [push, pull_request]

jobs:
  check:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: curl -fsSL https://agentee.sh/install.sh | sh
      - run: echo "$HOME/.local/bin" >> "$GITHUB_PATH"
      - run: sudo apt-get install -y kicad-symbols kicad-footprints
      - run: agentee check hardware/

Les bibliothèques KiCad ne sont nécessaires que si le travail importe des composants ; un projet qui contient déjà ses symboles et empreintes se vérifie sans elles. Pointez check vers le répertoire du projet, ou exécutez-le depuis l'intérieur.

Fixez la version pour des résultats reproductibles en installant depuis une étiquette de version plutôt que la dernière :

      - run: curl -fsSL https://agentee.sh/install.sh | AGENTEE_VERSION=v0.1.0 sh

Sortie lisible par machine

agentee check --json
{
  "diagnostics": [
    {
      "at": "via [12.550, 11.000]",
      "file": "./lna.pcb.toml",
      "item": "lna",
      "message": "GND via sits in U1.2 0.175 mm from its edge, its 0.300 mm annulus reaches past the pad under the mask; centre it or use a smaller via",
      "rule": "via-annulus-past-pad",
      "severity": "warning"
    }
  ],
  "errors": 0,
  "ok": true,
  "warnings": 3
}

Chaque diagnostic porte son fichier, son élément, son emplacement et sa gravité, et les diagnostics de routage portent leur identifiant de règle. C'est suffisant pour annoter une demande d'extraction, ou pour échouer sur les avertissements dans un projet qui veut les traiter comme des erreurs. Une règle peut aussi être élevée au rang d'erreur dans la carte elle-même avec [drc] severity, ce qui garde la politique dans la conception plutôt que dans le script CI.

Simulations dans CI

La vérification n'exécute jamais une simulation. Chaque résultat enregistre un hachage de la spécification, du cuivre qu'elle a vu et de l'empilement, et la vérification avertit quand ils ne correspondent plus. Sur un exécuteur CI sans GPU, c'est la partie utile : une demande d'extraction qui déplace une piste RF reçoit un avertissement de résultat FDTD périmé, et une interface qui mesure ce résultat échoue tout court.

Les simulations de chute DC, thermiques et logiques sont assez peu coûteuses pour être exécutées dans CI quand l'exécuteur a un GPU, et les simulations logiques n'en ont pas besoin du tout :

      - run: agentee sim counter
        working-directory: hardware

Gardez les exécutions FDTD sur une station de travail et commitez leurs résultats, pour que CI vérifie la conception contre les simulations réellement exécutées.

Rendus à chaque demande d'extraction

      - run: |
          agentee render pcb:main -o main.png --canvas-only
          agentee render sch:main -o main-sch.png --canvas-only
        working-directory: hardware
      - uses: actions/upload-artifact@v4
        with:
          name: renders
          path: hardware/*.png

Le rendu s'exécute sans interface, sans affichage ni GPU, pour que l'examinateur d'un changement matériel voie la carte ainsi que la différence.

Paquets de fabrication à la sortie

on:
  push:
    tags: ["hw-v*"]

jobs:
  fab:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: curl -fsSL https://agentee.sh/install.sh | sh
      - run: echo "$HOME/.local/bin" >> "$GITHUB_PATH"
      - run: agentee fab pcb:main -o fab/
        working-directory: hardware
      - env:
          GH_TOKEN: ${{ github.token }}
        run: gh release create "$GITHUB_REF_NAME" hardware/fab/*.zip hardware/fab/*.csv hardware/fab/fab-notes.txt

fab refuse tant que le routage a des erreurs, pour qu'une étiquette sur une conception cassée échoue au lieu d'expédier des Gerbers. Le filigrane dans la sérigraphie porte l'engagement d'où le paquet a été construit ; une construction depuis un arbre avec des modifications non commitées indique -dirty.

Améliorer ce guide · Markdown pour agents