()
<One paragraph: what this board is, and what the reference files hold. Say explicitly that the detail lives in the reference files and should be read rather than guessed at.>
reference/board-hardware.md—reference/recipes.md—template/— a complete working project that builds and flashes, plus a scaffolding script.
Orientation
| MCU | <part number, core, flash, RAM, package> |
| Clocks | <crystals populated, and the clock tree that is known to work> |
| Display | <controller, resolution, bus, pins> |
| LED / button | <pin and **polarity** for each> |
| Storage | <internal / external flash, SD, PSRAM, with addresses> |
| USB | <peripheral, pins, bootloader behaviour> |
| Debug | <SWD/JTAG/UART header and pins> |
<Delete rows that don't apply; add rows the board needs.>
Rules that prevent the expensive mistakes
<10–15 numbered rules from your bring-up log. Each is imperative and carries its consequence. Template for one entry:>
<the setting, in code form>— . Without it, <the symptom, which should not obviously point back at this setting>.
When the task is
<The one or two areas where the naive approach is badly wrong. Give the mechanism and the numbers, so the model can generalise past the case you wrote down. Delete if the board has none.>
Starting a new project
Do not hand-assemble one. template/ is a verified-working project — scaffold from it:
~/.claude/skills/<skill-name>/template/variants/new-project.sh <target-dir> [--full|--minimal]
cd <target-dir> && <build command>
--full(default) — . .--minimal— . . Use it to prove the toolchain and the flashing route before adding anything.
When the user already has a project, prefer bringing it in line with the template's
<config file> over rewriting their code.
Flashing
<The full keystroke-level sequence. What enumerates as what. What the board will not do for itself. How to recover a bricked board. The alternative route (probe/SWD) and when it's needed.>
Reporting
State honestly what was verified on hardware versus derived from the datasheet.