Communitygithub.com

brunofbloq/embedded-agent-skills

Design, implement and execute embedded firmware verification across host unit/mocks, static analysis, Renode or QEMU simulation, hardware-in-the-loop, J-Link/ST-Link/OpenOCD, UART/RTT, and physical measurement. Use for test strategy, regression, fault injection, acceptance gates, timing/stack/resource evidence and CI test automation on bare-metal, RTOS and embedded Linux targets. Select the cheapest credible test backend and clearly separate virtual-model evidence from real hardware qualification.

What is embedded-agent-skills?

embedded-agent-skills is a Claude Code agent skill that design, implement and execute embedded firmware verification across host unit/mocks, static analysis, Renode or QEMU simulation, hardware-in-the-loop, J-Link/ST-Link/OpenOCD, UART/RTT, and physical measurement. Use for test strategy, regression, fault injection, acceptance gates, timing/stack/resource evidence and CI test automation on bare-metal, RTOS and embedded Linux targets. Select the cheapest credible test backend and clearly separate virtual-model evidence from real hardware qualification.

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

Ask in your favorite AI

Open a new chat with this agent skill pre-loaded.

Documentation

Embedded QA

Deliver evidence-based, reproducible tests without claiming capabilities that the test environment cannot demonstrate. Choose one or more backends appropriate to the feature and its failure modes, not a prescribed test pyramid for every change.

Test workflow

  1. Inspect: Identify actual firmware target, board/silicon revision, toolchain, current test infrastructure, requirements, safety/power/timing constraints, build artifacts and available host/emulator/probe hardware. Reuse existing tests and tooling before introducing a framework.
  2. Define the test oracle independently: Translate requirements into observable positive, negative, boundary, fault, and recovery assertions. Verify expected values against specs and test vectors rather than blindly reproducing implementation outputs.
  3. Choose the lowest-cost faithful backend: Host test portable state machines and protocols. Use Renode only if its CPU, interrupts, memory and peripherals needed by each claim are adequately modeled; otherwise mark BLOCKED_BY_MODEL and use mocks, model work, or HIL. Use real board/probe measurements for electrical, power, DMA/cache, timing and reset behavior.
  4. Build and run: Capture exact firmware image/revision, model version, scripts, stimuli, exit statuses and bounded timeouts. Run targeted checks before wider regression. Isolate test resources, port numbers and teardown; never flash/erase real hardware without authorization.
  5. Report by evidence level: Host, static, simulated, HIL and physical measurement each receive their own PASS/FAIL/NOT_RUN/INCOMPLETE outcome. Mark missing model coverage and test coverage separately. Preserve useful machine-readable logs, not verbose transcripts in the LLM context.
  6. Follow up: Provide the shortest actionable failure reproduction, root-cause evidence or scope limitations. Add stable tests alongside fixes if appropriate.

Conditional references

Use scripts/summarize_robot.py to summarize Robot output.xml (when produced). Do not invent Renode MCP integrations: verify a real installed adapter before relying on it. Protect shared debug probes, UART sockets, and power equipment from concurrent tests.

Deliver: test environment and constraints; commands executed; assertions/results with evidence location; simulated-versus-physical coverage; remaining risks.

Individual skills in this repo

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

Related Skills