Eine Spec, sie alle zu knechten: eine einzige Quelle der Wahrheit für Firmware, Tests und Doku

Embedded Systems Software Agentic Engineering

Agentic Engineering ist eine Software Entwicklungsdisziplin, in der Menschen Ziele, Randbedingungen und Qualitätsstandards definieren, während AI Agenten Code autonom planen, schreiben, testen und weiterentwickeln, unter strukturierter menschlicher Aufsicht.

Als methodische Basis dafür nutzen wir Spec Driven Development (SDD), ein Vorgehen, das Spezifikationen als ausführbare Verträge behandelt und aus ihnen den Code ableitet. Den methodischen Vergleich mit Wasserfall, Scrum® und SAFe® haben wir in einem eigenen Artikel zusammengefasst: Spec Driven Development, Scrum, SAFe und Wasserfall — was wann taugt →

Die konkrete Form, die wir für unsere Embedded Geräte gewählt haben, ist eine Single Source of Truth (SSOT) in JSON, aus der Firmware, Tests und Handbuch generiert werden. Dieser Artikel beschreibt, wie das in der Praxis aussieht.

Die folgenden Erfahrungen basieren auf Claude™ Opus 4.7 mit 1 M Kontextfenster, betrieben im Modus high bis max.

Die Architektur in einem Bild

Ein schlanker Nachrichtenbus (nicht viel mehr als ein Postfach pro Rolle, mit Persistenz) verbindet mehrere AI Instanzen. Zusammen fahren sie einen weitgehend autonomen Zyklus aus Firmware, Test und Interface Dokumentation für unsere Embedded Geräte.

Wir besetzen fünf Rollen, alle durch AI Instanzen:

Der Mensch sitzt ausserhalb des Zyklus. Ziel ist, ihn so weit wie möglich aus der Schleife herauszunehmen. Er greift ein, wenn etwas klemmt, und entscheidet bei den Fragen, die delegiert nicht beantwortet werden können: Architektur, Kundenwünsche, Priorisierung, letzte Freigabe.

In der Realität gibt es zusätzlich genug Überraschungen, die einen ungefragt wieder an die Tastatur holen: Windows® bootet den Host neu, Claude hat einen Ausfall, die Credits sind aufgebraucht, oder der Tortoise Cache läuft mal wieder Amok und friert das System mit seiner wilden Indexiererei ein.

Das Problem: drift

Ein Embedded Gerät hat ein Interface, eine Liste von Werten mit Adresse, Typ, erlaubtem Bereich, Default und Bedeutung. Dieser Vertrag muss an drei Stellen gleichzeitig wahr sein: in der Firmware, in den Tests und im Handbuch.

In normaler Praxis driften diese drei Kopien fast sofort auseinander. Jemand erweitert einen Wertebereich in der Firmware. Das Handbuch zeigt den alten Bereich. Ein Test prüft das alte Maximum und schlägt aus dem falschen Grund fehl. Nach einem halben Jahr ist niemand mehr sicher, welche der drei Stellen recht hat.

Die einzige dauerhafte Heilung: nicht drei Kopien pflegen, sondern eine.

Die SSOT in JSON

Der Interface Vertrag liegt in einer einzigen, versionierten JSON Datei. Jede Änderung ist über die Versionshistorie genau nachvollziehbar. Jeder Wert ist genau einmal definiert und trägt alles, was weiter unten gebraucht wird: Adresse, Datentyp, erlaubter Bereich, benannte Zustände, Zugriffsregeln (read-only, read/write, geschützt), Einschaltwert und Klartextbeschreibung.

JSON, weil eine Maschine es direkt lesen kann. Menschenlesbar wird die Spec dadurch, dass aus ihr automatisch eine vollständige Interface Referenz für das Handbuch generiert wird. Es gibt also nicht zwei Formate (eines für Maschinen, eines für Menschen), sondern ein Format und einen Generator.

Was generiert wird

Aus der Datei regenerieren wir bei jeder Änderung:

Die Spec ist nicht von Anfang an fehlerfrei. Ein falscher Bereich, ein vergessener Zustand, eine unklare Beschreibung gehört zum Iterationsalltag. Solche Fehler werden in der Spec behoben, danach wird alles darunter neu generiert. Mit zunehmender Reife passiert das immer seltener.

Der Mensch muss die JSON Datei nicht von Hand pflegen, dazu reicht ein Auftrag an den Domain Experten / Spec Owner. Und in der generierten Dokumentation ist alles menschengerecht aufgearbeitet und lässt sich ausgiebig reviewen.

Testen auf echtem Target

Jede Iteration wird auf echter Hardware getestet, ein Aufbau, den man Hardware-in-the-Loop (HIL) nennt. Grund: Timing- und Nebenläufigkeitsfehler zeigen sich nur dort. Das Target in seiner kompletten Hardware zu simulieren ist nur in Teilen möglich, also ist der einfachste Weg, gleich auf dem echten Gerät zu laufen.

Die Agenten haben aber zusätzlich Skills für die Vorklärung: statisch Code analysieren, lokal auf dem Host Scripts ausführen, gegen eine Simulation des Geräts laufen. Vieles wird so vorab geklärt; nicht jede Frage muss aufs Target. Für die abschliessende Prüfung gilt aber: das Silizium ist der Richter, und es wird gegen die Spec gemessen.

Audit Gates: der Build stoppt bei Drift

Generierung allein reicht nicht. Jemand kann von Hand Drift einbauen, also bricht der Build (nicht nur die Tests) bei Verstössen ab:

Die Prüfungen sind langweilig. Genau das ist der Punkt. Aus “bitte alle synchron halten” wird “der Build geht nicht weiter, wenn nicht”.

Dabei muss man ein Mittelmass finden zwischen Iterationsgeschwindigkeit und Qualität. Meine Lieblingsanweisung an die Agenten dazu: Wir schneiden alte Zöpfe ab. Und zwar jetzt. Diese Anweisung steht für den Agenten natürlich im klaren Widerspruch zu der ebenso gültigen Regel “die Codebasis ist stabil und reif, wir machen nur minimale Änderungen”. Mit beiden gleichzeitig leben zu müssen, ist Teil des Jobs, für Menschen wie für Agenten.

Die Spec gewinnt

Wenn Verhalten und Spec nicht übereinstimmen, ist das ein Fehler in der Firmware oder ein Fehler in der Spec, nie eine Erlaubnis, den Test still anzupassen. Die Korrektur fliesst immer in eine Richtung:

Spec ändern → regenerieren → bauen → flashen → HIL Durchlauf.

Diese Regel ist es, die die Quelle der Wahrheit über Jahre tatsächlich wahr hält. Sie macht auch die Mehrsprachigkeit zum Nicht-Ereignis: Mastersprache einmal pflegen, Übersetzung fliesst einseitig.

In der Praxis läuft eine Spec-Anpassung wie folgt ab. Die Agenten kommunizieren in natürlicher Sprache miteinander. Der Firmware Entwickler stösst zum Beispiel auf einen Registerwert, dessen Verhalten der Testagent als nicht korrekt einstuft. Auf Nachfrage erklärt der Firmware Entwickler seine Implementierung, gemeinsam finden sie eine Lösung. Eine kurze Rückfrage, ob das Problem wirklich verstanden wurde, gehört dazu. Anschliessend wird die Anpassung an den Domain Experten / Spec Owner gemeldet. In der Regel kann dieser sie umsetzen und kommuniziert die Änderung an die betroffenen Stellen weiter.

Skills, Regeln und typische Probleme

Jede Rolle bekommt klare Skills mit. Beobachten wir im Verhalten ein Problem, verfeinern wir die Skills oder die Regeln, statt das Problem manuell aufzufangen. Was uns dabei immer wieder auffällt: die Agenten imitieren menschliches Verhalten in echten Teams ziemlich genau. Drei Klassiker:

Diese Muster sind dieselben, die jeder Engineering Manager aus echten Teams kennt. Sie verschwinden mit klaren Skills, klaren Regeln und einer Spec, die jede Streitfrage entscheidet.

Anekdoten aus der Praxis

Workflow: Menschen sitzen ausserhalb, Agenten fahren Build und Test über mehrere Testbeds, Triage gegen die Spec Die Spec ist die Leitplanke. Der gezeichnete Zyklus wird angestossen, wenn die JSON Spec angepasst werden muss. Der autonome Ping-Pong zwischen Testagent und Firmware läuft separat und ständig weiter.

Was wir bewusst nicht gebaut haben

Kein schwergewichtiges Orchestrierungs Framework. Die Maschinerie bleibt klein: eine Spec Datei, eine Reihe von Generatoren, ein Hardware Testrunner, eine Handvoll Audit Prüfungen, ein schlanker Bus. Klein genug, dass ein neuer Ingenieur das Ganze an einem Nachmittag lesen kann.

Zum Mitnehmen

Funktionelle Tests, die für eine Zertifizierung relevant sind, laufen ausserhalb dieses Zyklus, mit eigenen Protokollen, Auditpfaden und Freigaben.

Schlüsselwörter: Single Source of Truth, Spec Driven Development, Agentic Engineering, Firmware Codegenerierung, Hardware in the Loop, JSON Interface Vertrag, AI Agenten Firmware Beratung, Audit Gates, Claude Opus, Embedded Testing HIL, Embedded Consulting Schweiz, swissEmbedded Firmware Entwicklung

Driften bei euch Firmware, Tests und Handbuch auseinander? Wir bauen die Single Source of Truth Pipeline auf, die alle drei aus einem Vertrag generiert und gegen echte Hardware prüft, vom JSON Schema über die Generatoren bis zum automatisierten HIL Testbed.

Kontaktieren Sie uns →