Communitygithub.com

brunofbloq/embedded-agent-skills

Concevoir, implémenter et exécuter la vérification de firmware embarqué sur des hôtes/mocks, analyse statique, simulation Renode ou QEMU, matériel dans la boucle, J-Link/ST-Link/OpenOCD, UART/RTT et mesures physiques.

Qu'est-ce que embedded-agent-skills ?

Cette compétence permet de délivrer des tests reproductibles et fondés sur des preuves pour du firmware embarqué, sans revendiquer des capacités que l'environnement de test ne peut démontrer. Elle couvre de multiples backends de test : tests sur hôte avec mocks, analyse statique, simulation (Renode/QEMU), matériel dans la boucle (HIL) avec sondes J-Link/ST-Link/OpenOCD, et mesures physiques via UART/RTT. L'utilisateur est guidé pour choisir le backend le moins coûteux et crédible en fonction de la fonctionnalité à tester et de ses modes de défaillance. Chaque résultat de test est rapporté par niveau de preuve (hôte, statique, simulation, HIL, mesure physique) avec des marqueurs distincts pour la couverture manquante du modèle et la couverture de test. La compétence insiste sur l'isolation des ressources, la protection des sondes partagées, et la génération de rapports exploitables sans transcriptions verbeuses dans le contexte LLM. Elle est conçue pour des cibles bare-metal, RTOS et Linux embarqué, et s'intègre dans les workflows CI.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/brunofbloq/embedded-agent-skills/tree/HEAD/skills/embedded-qa

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

QA Embarqué

Délivrer des tests reproductibles et fondés sur des preuves, sans revendiquer des capacités que l'environnement de test ne peut démontrer. Choisir un ou plusieurs backends appropriés à la fonctionnalité et à ses modes de défaillance, et non une pyramide de test prescrite pour chaque modification.

Flux de travail de test

  1. Inspecter : Identifier la cible exacte du firmware, la révision de la carte/silicium, la chaîne d'outils, l'infrastructure de test actuelle, les exigences, les contraintes de sécurité/alimentation/temps, les artefacts de construction et le matériel hôte/émulateur/sonde disponible. Réutiliser les tests et outils existants avant d'introduire un nouveau framework.
  2. Définir l'oracle de test indépendamment : Traduire les exigences en assertions observables positives, négatives, de limite, de défaut et de reprise. Vérifier les valeurs attendues par rapport aux spécifications et aux vecteurs de test plutôt que de reproduire aveuglément les sorties d'implémentation.
  3. Choisir le backend fidèle le moins coûteux : Tester les machines d'état portables et les protocoles sur l'hôte. Utiliser Renode uniquement si son CPU, ses interruptions, sa mémoire et ses périphériques nécessaires à chaque revendication sont correctement modélisés ; sinon marquer BLOCKED_BY_MODEL et utiliser des mocks, un travail de modélisation ou HIL. Utiliser des mesures sur carte réelle/sonde pour le comportement électrique, d'alimentation, DMA/cache, temporel et de réinitialisation.
  4. Construire et exécuter : Capturer l'image exacte du firmware/révision, la version du modèle, les scripts, les stimuli, les codes de sortie et les timeouts bornés. Exécuter des vérifications ciblées avant une régression plus large. Isoler les ressources de test, les numéros de port et le nettoyage ; ne jamais flasher/effacer du matériel réel sans autorisation.
  5. Rapporter par niveau de preuve : Hôte, statique, simulation, HIL et mesure physique reçoivent chacun leur propre résultat PASS/FAIL/NOT_RUN/INCOMPLETE. Marquer séparément la couverture manquante du modèle et la couverture de test. Conserver les logs utiles et lisibles par machine, pas les transcriptions verbeuses dans le contexte LLM.
  6. Suivre : Fournir la reproduction de défaillance la plus courte et actionnable, les preuves de cause racine ou les limitations de périmètre. Ajouter des tests stables en même temps que les corrections si approprié.

Références conditionnelles

  • host-testing.md pour les mocks, sanitizers, tests de propriétés et de défauts.
  • renode-workflow.md pour les fichiers .resc/.repl, Robot Framework, UART et CI.
  • simulation-coverage.md pour la faisabilité précise de Renode et le filtrage des preuves.
  • hil-testing.md pour ST-Link, J-Link, OpenOCD, serial/RTT et l'instrumentation sur carte réelle.

Utiliser scripts/summarize_robot.py pour résumer le fichier output.xml de Robot (lorsqu'il est produit). Ne pas inventer d'intégrations MCP Renode : vérifier un adaptateur installé réel avant de s'y fier. Protéger les sondes de débogage partagées, les sockets UART et les équipements d'alimentation contre les tests concurrents.

Délivrer : environnement de test et contraintes ; commandes exécutées ; assertions/résultats avec emplacement des preuves ; couverture simulée par rapport à physique ; risques restants.

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

Skills associés