Define the first observable milestone
Choose one behavior that exercises the smallest useful path through the hardware. A good milestone identifies:- the intended board and populated peripherals;
- the interface, pins, and operating conditions;
- the firmware behavior to implement;
- the exact build configuration;
- an observable pass condition, such as a UART line, GPIO waveform, sensor value, or current range.
Establish the hardware context
1
Select or create the project
Run:Select the project associated with the workspace, or create one from a catalog platform, a custom platform, or a complete schematic source set.
2
Confirm the target platform
Choose the exact board or MCU from the project setup picker. The catalog available to your team is the source of truth.If the platform is not in the catalog, choose Add a platform when your account permits custom components, or create the project from schematics.
3
Add populated peripherals
Run
/peripheral and attach the exact catalog parts fitted to the board. For an off-catalog part, add its PDF documentation as a custom peripheral when that feature is available.Adding a peripheral supplies identity and indexed documentation. It does not generate a driver, assign pins, or prove that the part is populated.4
Review schematic evidence
When schematics are available, compare the active project components with the parsed design. Use references such as
@sch:component:U4, @sch:net:I2C1_SDA, and @sch:power_domain:VDD_IO to attach the relevant connectivity to a prompt.Initialize the repository workflow
Run/init after selecting the project:
EMBEDDER.md.
The resulting guide should record:
- the exact target, toolchain, build configuration, and artifact path;
- test, flash, debug, and observation commands;
- connected probes, serial settings, and bench constraints;
- generated or vendored code boundaries;
- the expected result and evidence status for each workflow.
/init does not flash hardware or install dependencies unless you approve that optional validation.
Ground the implementation in the design
Ask Embedder to inspect source, indexed component documents, and parsed schematics before it chooses registers or pins:
If a required fact remains ambiguous, resolve it before implementation. Do not substitute documentation from a nearby MCU, board revision, or peripheral variant.
Choose Plan or Act
Use Plan mode when the prototype changes architecture, spans several modules, introduces a new driver boundary, or depends on unresolved hardware choices:Implement and verify in layers
Treat each layer as separate evidence. A later success does not repair a missing earlier result.1
Run the smallest host check
Add or run the focused unit test, simulator check, or static diagnostic that covers the changed code. Fix the first useful failure before broadening the test scope.
2
Build the intended firmware
Run the exact command recorded for the project. Confirm the configuration and identify the resulting ELF, HEX, or BIN artifact.
3
Confirm the physical target
Check the board, MCU, probe or bridge, serial transport, and power state. Require an explicit choice when more than one target is connected.
4
Flash and capture early output
Use the dedicated flash workflow so target arbitration, programming verification, reset handling, and early serial capture apply.
5
Observe the real interface
Verify the behavior at the layer that matters. Read serial or RTT output for a software-visible result. Use a logic analyzer, oscilloscope, power analyzer, or debugger when the pass condition depends on pins, timing, current, or target state.
Escalate a hardware failure to Debug
Switch to Debug mode when source inspection, host tests, and ordinary serial output cannot explain the target:hardware_status to confirm which probes and instruments are ready. A custom platform entry provides context; it does not create a new flasher, debugger backend, or instrument provider.
Keep the prototype reproducible
Before calling the milestone complete:- Record the exact build, test, flash, and observation workflows in
EMBEDDER.md. - Keep the pin choice, board revision, and required jumpers with the project instructions.
- Save reusable hardware checks under
.embedder/hardware/. - Report which evidence was observed and which assumptions remain inferred.
- Rerun the narrow pass condition from a clean build or known target state.
Common firmware workflows
Follow the project, plan, build, flash, and debug sequence in detail.
Schematics
Upload complete designs and reference parsed components, nets, and pins.
Configure EMBEDDER.md
Record verified commands, artifacts, equipment, and safety rules.
Supported hardware
Check catalog platforms, probes, transports, and instrument boundaries.

