mcpField
H
hardware-tdd

hardware-tdd

github.com/wedsamuel1230Testing & quality2857 installsUpdated 2w ago
Repository

About hardware-tdd

A skill for building a staged test plan for hardware projects, separating host tests, simulation, builds, and target evidence. It helps embedded developers tie requirements to observable proof without treating compilation or simulation as proof of physical behavior.

Key features

  1. 01Map requirements to observable tests
  2. 02Test pure C/C++ logic on host
  3. 03Use simulations within model limits
  4. 04Compile for the exact board
  5. 05Separate proof stages and evidence
  6. 06Track failures and unverified cases

Use cases

  1. 01Planning tests for embedded requirements
  2. 02Testing logic with fake sensors and actuators
  3. 03Separating build results from target behavior
  4. 04Recording evidence for hardware checks

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/wedsamuel1230/embedded-engineering-skills --skill hardware-tdd

After installing, type/hardware-tddin Claude Code to confirm it loaded.

Details

From the project README

Hardware TDD

Build the test ladder before claiming a feature is complete. Pure behavior can often be tested off-target; voltage, pin mux, timing under load, and physical assembly still require target evidence.

Intake

Record exact board/revision, framework/toolchain, hardware invariants, safety inhibits, simulator model, available instruments, test fixtures, and the proof stage required by the user.

Process

  1. Turn requirements into observable behavior and safety invariants.
  2. Write host tests for pure C/C++ logic using fakes for time, serial, sensors, and actuators. Keep hardware adapters thin.
  3. Use Wokwi or another simulator only for peripherals and timing that its model actually represents; record model limitations.
  4. Run an exact-board compile and static checks with the selected toolchain.
  5. Create a one-change target checklist: power-off continuity, controlled power-up, input observation, output inhibit, reset/recovery, and logs.
  6. Ask a physical gate for measurements, photos, or serial output. Do not infer target success from a host test or compile log.
  7. Record failures as evidence and keep the next test bounded.

Test matrix

LayerExampleProvesDoes not prove
Hostdebounce/state/packet parserdeterministic logicpin voltage or wiring
Simulationmodeled sensor/LED/UARTmodeled interactionsregulator, clone, EMI, thermal behavior
Buildexact FQBN/environmentsource and dependency compileupload or behavior
Targetserial, meter, scope, photoobserved hardware behaviorfield reliability unless loaded
Systemintegrated load/failure caserequirement under scenariofuture deployment safety

Anti-rationalization

ShortcutResponse
"The unit test passed."Keep all physical and system stages open.
"Wokwi matches the board."List what the model omits and verify those items on hardware.
"The sketch compiled."Require upload identity and target observations separately.
"The photo proves it works."Require board identity, measurement context, and observed result.
"Mark it done and test later."Keep the loop item blocked or needs-review until evidence exists.

Verification

  • Every requirement maps to a test, proof stage, and artifact path.
  • Host/simulation/build/target/system results are labeled separately.
  • Physical-only steps emit the concrete Physical gate format from embedded-project-loop.
  • Failed and unverified cases remain visible in the report.

Shared output contract

Use the shared Arduino skill contract: state assumptions, required tools and versions, implementation steps, tests/evidence by proof stage, known limitations, and recovery/security notes.

Comments

Markdown supported