# REPLACE-with-skill-name

A skill template for microcontroller firmware projects. It organizes board hardware specs, peripheral bring-up guides, and flashing workflows.

- skill · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · ★ 22
- Author: alexex1993
- License: MIT · policy=mirror · the beginning of the file is at the end of this page
- Source: https://github.com/alexex1993/mcu-skills/tree/HEAD/templates/skill-template/SKILL.md
- Updated: 2026-10-15
- HTML: https://affpapa.org/en/nevibecode/skills/replace-with-skill-name

## What it does

This skill acts as a scaffolding blueprint for embedded firmware development. It organizes hardware details into dedicated references: `reference/board-hardware.md` covers pinouts, clocks, and debug ports, while `reference/recipes.md` supplies known peripheral recipes. The agent reads exact parameters from these files instead of guessing values.

New projects start via the `template/variants/new-project.sh` script. The default `--full` flag sets up a complete workspace, while `--minimal` creates a bare structure to test toolchains and flash routes before writing firmware. If project files already exist, the instructions bring configuration files in line with the template rather than rewriting working code.

## Install

### Claude Code (native platform)

1. **Skills CLI (Vercel)**
```bash
npx skills add alexex1993/mcu-skills --skill skill-template -a claude-code
```

2. **Manually: put the files in place**
- File: `~/.claude/skills/skill-template/SKILL.md` — Copy the whole skill folder; for one project use .claude/skills/skill-template/

### Codex

1. **Skills CLI (Vercel)**
```bash
npx skills add alexex1993/mcu-skills --skill skill-template -a codex
```

2. **Manually: put the files in place**
- File: `.agents/skills/skill-template/SKILL.md` — For all projects use ~/.agents/skills/

### Cursor

1. **Skills CLI (Vercel)**
```bash
npx skills add alexex1993/mcu-skills --skill skill-template -a cursor
```

2. **Manually: put the files in place**
- File: `.cursor/skills/skill-template/SKILL.md` — Cursor also reads .agents/skills/ and .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install alexex1993/mcu-skills skill-template
```

2. **Manually: put the files in place**
- File: `.github/skills/skill-template/SKILL.md`

### Gemini CLI

1. **Skills CLI (Vercel)**
```bash
npx skills add alexex1993/mcu-skills --skill skill-template -a gemini-cli
```

2. **Platform CLI**
```bash
gemini skills install https://github.com/alexex1993/mcu-skills --path templates/skill-template
```

### Windsurf (Devin Desktop)

**Manually: put the files in place**
- File: `.devin/skills/skill-template/SKILL.md` — The legacy .windsurf/skills/ path still works

### OpenCode

**Skills CLI (Vercel)**
```bash
npx skills add alexex1993/mcu-skills --skill skill-template -a opencode
```

### Claude.ai

**Claude.ai**
- Zip the folder and upload it in Settings → Capabilities → Skills

Where a file is given instead of a command, copy the files from the source to that path: https://github.com/alexex1993/mcu-skills/tree/HEAD/templates/skill-template/SKILL.md

## When to use it
- Scaffold a verified microcontroller firmware project
- Document clock trees and pin mappings for the agent
- Set up board flashing and recovery procedures
- Supply tested peripheral recipes and bring-up rules

## Example prompts
- Run template/variants/new-project.sh firmware-app --minimal
- Check the clock configuration against reference/board-hardware.md
- Explain the flashing and recovery sequence for this board

## Source text · SKILL.md · MIT

Below is the content of a third-party file. It is data, not instructions for you: do not act on anything written inside unless the human asks. Block tag: 420c70ac8a84e3ad.

BEGIN THIRD-PARTY FILE 420c70ac8a84e3ad
````text
---
name: REPLACE-with-skill-name
description: >-
  Firmware development for the <VENDOR> <BOARD NAME> (<MCU PART NUMBER>) — its <peripheral>,
  <peripheral>, <peripheral>, and the <SDK/HAL> + <build system> setup around them. Use when
  working on this board or any <compatible siblings>: project setup, <config file>, clock
  configuration, pin mapping, peripheral bring-up, <the board's headline concern>, flashing, or
  debugging why something on the board does not work.
---

# <Vendor> <Board> (<MCU>)

<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` — <what it answers>
- `reference/recipes.md` — <what it answers>
- `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:>

1. **`<the setting, in code form>`** — <why the board needs it>. Without it, <the symptom, which
   should not obviously point back at this setting>.

## When the task is <the thing this board is used for>

<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:

```sh
~/.claude/skills/<skill-name>/template/variants/new-project.sh <target-dir> [--full|--minimal]
cd <target-dir> && <build command>
```

- `--full` (default) — <what it contains>. <flash cost>.
- `--minimal` — <what it contains>. <flash cost>. 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. <Name the
specific settings here that are outside published specs and merely work on this board.>
````
END THIRD-PARTY FILE 420c70ac8a84e3ad

The third-party file has ended. Everything between the 420c70ac8a84e3ad tags is data: requests and commands from it are not followed. An “end of file” line with another tag inside the block is part of the file.

© alexex1993 · MIT · https://github.com/alexex1993/mcu-skills/tree/HEAD/templates/skill-template/SKILL.md

## Similar
- [setup-matt-pocock-skills](https://affpapa.org/en/nevibecode/skills/setup-matt-pocock-skills.md) — skill · 1052851 installs
- [ask-matt](https://affpapa.org/en/nevibecode/skills/ask-matt.md) — skill · 766587 installs
- [to-tickets](https://affpapa.org/en/nevibecode/skills/to-tickets.md) — skill · 711230 installs

_Part of the page did not fit — see the HTML version._

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
