> ## Documentation Index
> Fetch the complete documentation index at: https://docs.embedder.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Skills

> Learn how Embedder discovers, installs, invokes, and automatically loads reusable agent skills, including project-local and shared skill packs.

Skills are reusable instruction packages for specialized work. Each package has a `SKILL.md` file with a name, a description, and the workflow the agent should follow. A package can also include reference files.

Embedder ships with skills for embedded platforms, hardware debugging, dashboards, plotting, optimization, and static-analysis workflows. You can install more skills for one project or for every project on your machine.

## How Embedder discovers skills

Embedder scans recursively for files named `SKILL.md`. It combines the bundled catalog with skills from these locations:

* User locations: `~/.embedder/skills`, `~/.claude/skills`, and `~/.agents/skills`
* Project locations: `.embedder/skills`, `.claude/skills`, and `.agents/skills`

A filesystem skill with the same frontmatter `name` as a bundled skill replaces the bundled definition in the catalog. Platform-scoped skills are hidden when the selected platform does not match their metadata.

At the start of a conversation, Embedder takes a snapshot of the available skill names, descriptions, and locations. It watches skill directories for later changes. If you install a new skill during the conversation, Embedder announces it separately and can load it immediately. A new conversation includes it in the regular skill catalog.

## Invoke a skill

You can invoke a skill in three ways:

1. Ask for work that matches its description. The agent should load the matching skill before it continues.
2. Name the skill in your request, such as `Use debug-gdb to inspect this fault`.
3. Run its generated slash command, such as `/debug-gdb inspect the hard fault`, when the skill name is a valid command name and does not conflict with a built-in command.

When the agent invokes a skill, Embedder loads `SKILL.md` and its supported companion files into the conversation context. Skill lookup by the agent is case-insensitive, but using the displayed name avoids ambiguity.

<Note>
  Loading a skill gives the agent instructions. It does not grant permissions,
  install a toolchain, connect hardware, or bypass the current mode.
</Note>

## Automatic loading

A skill can declare `autoLoad` conditions in its frontmatter:

```yaml theme={"system"}
---
name: example-board
description: Build and debug firmware for Example Board.
autoLoad:
  platforms:
    - EXAMPLE_BOARD
  modes:
    - debug
---
```

Embedder recognizes these conditions:

* `always`: load the skill whenever its other conditions match.
* `manufacturers`: match the manufacturer of a selected project component.
* `platforms`: match a normalized platform name exactly.
* `platformPrefixes`: match the start of a normalized platform name.
* `hardwareProviders`: match connected hardware, such as `gdb`, `serial`, or `bluetooth`, in Debug mode.
* `modes`: restrict loading to named modes such as `act` or `debug`.
* `compliance`: match the project's selected per-file compliance standard or standard family.

Platform and manufacturer conditions also limit whether you can invoke the skill directly. For example, a board pinout skill is unavailable when another platform is selected.

## Install a skill

Use the built-in installer for local packages and remote HTTPS sources:

```bash theme={"system"}
embedder skill install "./path/to/SKILL.md"
embedder skill install "./path/to/skill-directory"
embedder skill install "https://example.com/skills/board/SKILL.md"
embedder skill install "https://github.com/owner/repository/tree/main/skills/board"
```

The default destination is the current project's `.embedder/skills` directory. Add `--user` only when you want the skill in every project:

```bash theme={"system"}
embedder skill install "./path/to/skill-directory" --user
```

Other options are:

* `--overwrite`: replace a skill with the same name. The installer never replaces one by default.
* `--project-root "<path>"`: install into a project other than the current working directory.

The installer requires a top-level `SKILL.md`. Its frontmatter `name` must contain lowercase letters, numbers, and single hyphens between segments. Installation is atomic, so a failed replacement leaves the existing skill intact.

For remote packages, the installer accepts raw HTTPS files, GitHub blob URLs, and GitHub tree URLs. It rejects embedded credentials, non-HTTPS redirects, path traversal, and symbolic links. A package can contain at most 100 files and 1 MB total, with a 250 KB limit per file.

<Warning>
  Read a remote skill before installing it. A skill can tell the agent to edit
  files or run commands within your existing permission model.
</Warning>

## Bundled skill catalog

Bundled skills do not carry a formal category field. The shipped catalog falls into the groups below. Your selected platform, connected hardware, mode, and compliance profile determine which entries you see.

### Skill management

* `install-skills` provides the guarded installation workflow and loads automatically in Act and Debug modes.

### Vendor SDKs and project workflows

* STMicroelectronics: `STM32`, `STM32N6`, and `stm32-cubemx2`
* Infineon: `infineon-aurix` and `infineon-aurix-cli-build`
* NXP: `nxp` and `nxp-imxrt1186`
* Nordic Semiconductor: `nrf-zephyr`
* Renesas: `renesas-ra-fsp`
* Silicon Labs: `silabs-simplicity-studio` and `sixg301`
* XMOS: `xmos`
* Board-specific operational workflows: `psoc-edge-e84` and `APOLLO510_EVB`

### Board and pinout references

* ST Nucleo board and PCB-group skills use `NUCLEO_*` names and cover the bundled Nucleo-32, Nucleo-64, Nucleo-64-P, and Nucleo-144 families.
* Infineon board skills use `KIT_*` and `TRIBOARD_*` names. The bundle also includes `AURIX_TC4X_MOTOR_POWER_BOARD`.
* Other board references include `renesas-ek-ra8p1`, `nxp-imxrt1186`, `psoc-edge-e84`, `sixg301`, and `APOLLO510_EVB`.

The exact Infineon board skill IDs are below. Skill IDs and catalog platform IDs are not always one-to-one: `KIT_A2G_TC397_TFT` is the shared skill for the catalog platforms `KIT_A2G_TC397_3V3_TFT` and `KIT_A2G_TC397_5V_TFT`. Its auto-load aliases include both underscore and hyphen spellings for each board.

```text theme={"system"}
KIT_AURIX_TC275_LITE
KIT_A2G_TC375_LITE
KIT_A2G_TC387_MOTORCTR
KIT_A2G_TC397_TFT
KIT_A2G_TC397XA_TRB_S
KIT_A3G_TC4D7_LITE
AURIX_TC4X_MOTOR_POWER_BOARD
TRIBOARD_TC3X2
TRIBOARD_TC3X3
TRIBOARD_TC3X4L
TRIBOARD_TC3X4T
TRIBOARD_TC3X5
TRIBOARD_TC3X6
TRIBOARD_TC3X7
TRIBOARD_TC3X9
```

The exact ST board and PCB-group skill IDs are:

```text theme={"system"}
NUCLEO_64_MB1136
NUCLEO_32_MB1180
NUCLEO_144_MB1137
NUCLEO_144_MB1312
NUCLEO_64P_MB1319
NUCLEO_64_MB1360
NUCLEO_64_MB1367
NUCLEO_144_MB1364
NUCLEO_144_MB1363
NUCLEO_144_MB1549
NUCLEO_64_MB1841
NUCLEO_64_MB1932
NUCLEO_64_WB0
NUCLEO_G431KB
NUCLEO_G031K8
NUCLEO_C031C6
NUCLEO_C071RB
NUCLEO_C5A3ZG
NUCLEO_H533RE
NUCLEO_H563ZI
NUCLEO_H7S3L8
NUCLEO_L552ZE_Q
NUCLEO_N657X0_Q
NUCLEO_WL55JC
NUCLEO_WB55RG
NUCLEO_WB15CC
NUCLEO_WBA55CG
```

See [Supported hardware](/supported-hardware/index) for every board model covered by each grouped skill.

### Debuggers, transports, and instruments

* Debuggers and trace: `debug-gdb`, `debug-jtrace`, `debug-itm`, and `debug-rtt`
* Serial and wireless: `debug-serial` and `debug-bluetooth`
* Logic and mixed-signal instruments: `debug-saleae`, `debug-digilent`, `debug-picoscope`, and `debug-oscilloscope`
* Power instruments: `debug-joulescope` and `debug-ppk2`

Most hardware-provider skills load in Debug mode when the corresponding provider is connected.

### Telemetry and dashboards

* `plot` covers live Teleplot streams, plot configuration, XY views, and derived math channels.
* `dashboard-authoring` covers project-local Monitor dashboards and the built-in component API.
* `dashboard-custom-components` covers SVG and Canvas components when the built-in API does not provide the required view.

### Optimization and protocol analysis

* `optimize` covers measured firmware optimization workflows.
* `can-codebase-decoder` derives CAN decoding context from the current codebase and can load for serial debugging.

### Coding standards and validation

* `misra-c-2012-coding` supplies coding guidance when a matching compliance profile is active.
* `validate-CERT` and `validate-MISRA` define evidence-based validation workflows.

### Coverity

* `coverity-cli`, `coverity-connect`, and `coverity-compliance` cover local analysis, Connect workflows, and compliance configuration.
* `validate-coverity` checks the resulting analysis evidence.

### Parasoft C/C++test

* `parasoft-cpptest-cli` and `parasoft-cpptest-mcp` cover CLI and MCP workflows.
* `validate-parasoft` checks configuration, execution, and report evidence.

### Perforce QAC

The QAC bundle includes:

* Setup and interfaces: `qac-install`, `qac-quick-start`, `qac-cli`, `qac-eclipse`, `qac-vscode`, and `qac-live`
* Core analyzers and modules: `qac-qac`, `qac-qacpp`, `qac-qarust`, `qac-dataflow`, `qac-mta`, `qac-rcma`, and `qac-namecheck`
* Compliance modules: `qac-ascm`, `qac-barrccm`, `qac-certccm`, `qac-certcppcm`, `qac-cweccm`, `qac-cwecppcm`, `qac-hkccm`, `qac-hkcppcm`, `qac-m2cpp`, and `qac-mc25cm`
* Product references and integration: `qac-manual`, `qac-release-notes`, and `qac-validate`
* End-to-end evidence checking: `validate-qac`

## Create a compatible package

A minimal skill needs `name` and `description` frontmatter:

```markdown theme={"system"}
---
name: board-bringup
description: Bring up and verify the Example Board.
---

# Board bring-up

Follow the board's power, flash, and serial verification sequence.
```

Put references beside `SKILL.md` when the workflow needs fixed templates or concise supporting material. Use the installer after authoring so Embedder validates the package before placing it in a discovery directory.
