Agent skill

Esp32 Test Plan

by FastLED in FastLED/FastLED

Generate a structured multi-layer test plan for FastLED changes targeting ESP32.

MITAuto-check passedTesting & QA

Install Esp32 Test Plan

skills CLI
$ npx skills add FastLED/FastLED --skill esp32-test-plan -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install FastLED/FastLED esp32-test-plan --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/FastLED/FastLED.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/esp32-test-plan .claude/skills/esp32-test-plan && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
esp32-test-plan
GitHub stars
7.5k
Token cost
~1.9k tokens
SKILL.md length
470 words
Files
1
Skills in repo
23
Repo updated
First seen
Licence
MIT

At a glance

Generate a structured multi-layer test plan for FastLED changes targeting ESP32.

  • Works in 5 steps: Classify the Change → Define Test Cases → FastLED Test Commands → …
  • Tasks that involve Test generation
  • SKILL.md covers Testing Philosophy in FastLED, Step 1: Classify the Change, Step 2: Define Test Cases and Step 3: FastLED Test Commands, plus 3 more sections
  • Calls bash

What it does

Esp32 Test Plan is an agent skill from FastLED/FastLED. Generate a structured multi-layer test plan for FastLED changes targeting ESP32. Covers host unit tests, WASM compile checks, platform compile checks, and hardware validation. Use after defining an implementation contract, before writing any code.

Its SKILL.md is about 1.9k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Testing & QA, covering Test generation, Embedded systems and Unit testing. It works with ESP32 and WebAssembly. The repository describes itself as: The FastLED library for colored LED animation on Arduino. Please direct questions/requests for help to the FastLED Reddit community: http://fastled.io/r We'd like to use github… The licence is MIT.

When your agent uses it

  • Tasks that involve Test generation
  • Tasks that involve Embedded systems
  • Tasks that involve Unit testing

Example prompts

  • “/esp32-test-plan”

Workflow steps

5 steps, taken from the step headings in SKILL.md.

  1. Classify the Change
  2. Define Test Cases
  3. FastLED Test Commands
  4. Writing Host Unit Tests for FastLED
  5. Generate Test Plan Document

What it can do on your machine

Read from SKILL.md and the folder at commit ce225ed. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • bash

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Esp32 Test Plan loads about 1.9k tokens when it runs. Until then it costs about 66 tokens; SKILL.md has 470 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~66
When it runs · the whole SKILL.md, loaded when a task matches
~1.9k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from FastLED/FastLED at commit ce225ed, republished under its MIT licence (© FastLED). 470 words, ~1,892 tokens.

Download SKILL.mdSave it as .claude/skills/esp32-test-plan/SKILL.md (or your agent's skills folder).
name
esp32-test-plan
description
Generate a structured multi-layer test plan for FastLED changes targeting ESP32. Covers host unit tests, WASM compile checks, platform compile checks, and hardware validation. Use after defining an implementation contract, before writing any code.
argument-hint
<feature or change description>
context
fork
agent
esp32-test-plan-agent

Generate a comprehensive test plan for a FastLED ESP32 change, covering all applicable testing layers from host logic to hardware validation.

$ARGUMENTS

Testing Philosophy in FastLED

FastLED uses a layered testing strategy where each layer catches a different class of bugs:

LayerWhat It CatchesSpeedHardware Needed
Host unit testsLogic bugs, math errors, data structure issuesSecondsNo
WASM compileCross-platform compile errors, API misuse1-2 minNo
Platform compilePlatform-specific guards, missing headers5-15 minNo
Hardware validationActual LED output correctness, timingManualYes

Rule: Always maximize no-hardware test coverage. Hardware tests are the last resort, not the first.

Step 1: Classify the Change

Determine which layers apply based on the type of change:

Pure Logic Change (math, data structures, color algorithms)
  • ✅ Host unit tests (primary)
  • ✅ WASM compile check
  • ❌ Platform compile (usually not needed)
  • ❌ Hardware validation (not needed for pure logic)
Platform Driver Change (RMT, I2S, SPI, PARLIO)
  • ✅ Host unit tests (for any extractable logic)
  • ✅ WASM compile check
  • ✅ Platform compile (ESP32 + affected variants)
  • ✅ Hardware validation (required — timing must be verified on real hardware)
Public API Change (new parameter, new function, changed behavior)
  • ✅ Host unit tests (test new API surface)
  • ✅ WASM compile check (ensure examples still compile)
  • ✅ Platform compile (at minimum ESP32 + AVR to catch regressions)
  • ⚠️ Hardware validation (if behavior change affects output)
Build System / CI Change
  • ✅ CI run to verify
  • ❌ Hardware validation (not needed)
Documentation / Skill Change
  • ❌ All layers (no code change)

Step 2: Define Test Cases

For each applicable layer, list specific test cases:

Positive cases: Valid inputs produce expected output Negative cases: Invalid inputs fail gracefully (NULL pointers, out-of-bounds, zero length) Boundary cases: Limits of buffers, ranges, LED counts Regression cases: Existing behavior must be preserved

Show full SKILL.md (188 more words)Show less
FastLED-Specific Test Considerations
  • LED count boundaries: Test at 1 LED, typical (60, 144, 300), and large (1000+) counts
  • Color correctness: Test primary colors (R, G, B), black, white, and mixed values
  • Brightness scaling: Test setBrightness(0), setBrightness(128), setBrightness(255)
  • Platform guards: Ensure code compiles on non-ESP32 platforms without changes
  • Memory constraints: Check that code works within AVR 2KB SRAM limit if applicable

Step 3: FastLED Test Commands

bash
# Run all host unit tests
bash test --cpp

# Run a specific test by name
bash test TestName

# Run test in debug mode (ASAN/LSAN/UBSAN — always use when a test fails)
bash test TestName --debug

# Compile for WASM (catches most cross-platform issues without hardware)
bash compile wasm --examples Blink
bash compile wasm --examples Chromancer

# Compile for a specific ESP32 variant
bash compile esp32dev --examples Blink
bash compile esp32s3 --examples Blink
bash compile esp32c3 --examples Blink

# Run linting
bash lint

# Hardware validation (requires connected ESP32)
bash autoresearch --rmt          # For RMT-based LED drivers
bash autoresearch --spi          # For SPI-based LED drivers
bash autoresearch --parlio       # For PARLIO (ESP32-S3 parallel)

Step 4: Writing Host Unit Tests for FastLED

Host tests live in tests/. Conventions:

  • Mirror source path: src/fl/foo.h → tests/fl/foo.cpp
  • Use FL_CHECK_EQ, FL_REQUIRE_TRUE assertion macros
  • Include test.h and FastLED.h
  • No mocks — test real implementations
  • Keep tests simple and fast (< 10 seconds each)
cpp
// Example test structure for tests/fl/my_feature.cpp
#include "test.h"
#include "FastLED.h"
#include "fl/my_feature.h"

using namespace fl;

namespace {

TEST_CASE("MyFeature - basic operation") {
    MyFeature f;
    FL_CHECK_EQ(f.compute(0), 0);
    FL_CHECK_EQ(f.compute(255), 255);
}

TEST_CASE("MyFeature - boundary values") {
    MyFeature f;
    FL_REQUIRE_TRUE(f.compute(256) <= 255); // no overflow
}

} // namespace

Step 5: Generate Test Plan Document

markdown
# Test Plan: [Feature Name]

## Change Reference
- Implementation contract: [link or description]
- Related issue: [GitHub issue number]

## Test Layers

### Layer 1: Host Unit Tests
**Command**: `bash test TestName`

| Test Case | Input | Expected Output | Status |
|-----------|-------|-----------------|--------|
| [description] | [input] | [expected] | ⬜ Pending |

### Layer 2: WASM Compile Check
**Command**: `bash compile wasm --examples Blink`

| Check | Expected | Status |
|-------|----------|--------|
| Compiles without errors | No compiler errors | ⬜ Pending |
| Compiles without warnings | 0 new warnings | ⬜ Pending |

### Layer 3: Platform Compile Checks
**Command**: `bash compile <platform> --examples Blink`

| Platform | Command | Status |
|---------|---------|--------|
| ESP32 | `bash compile esp32dev --examples Blink` | ⬜ Pending |
| ESP32-S3 | `bash compile esp32s3 --examples Blink` | ⬜ Pending |
| ESP32-C3 | `bash compile esp32c3 --examples Blink` | ⬜ Pending |
| AVR (Uno) | `bash compile uno --examples Blink` | ⬜ Pending |

### Layer 4: Hardware Validation
**Command**: `bash autoresearch --<driver>`

| Test Case | Setup | Expected Behavior | Status |
|-----------|-------|-------------------|--------|
| [description] | [board + wiring] | [expected LED output] | ⬜ Pending (hardware) |

## Infrastructure Requirements
- [ ] New test file: `tests/fl/[name].cpp`
- [ ] Example sketch modification (if testing new API): `examples/[name]/`
- [ ] Hardware board: [ESP32 variant] + [LED strip type]

## No-Hardware Tests
[Tests that run on host — must cover the majority of logic]

## Hardware-Required Tests
[Tests that need real ESP32 + LED strip]
- Must be verified by a human with the hardware
- Document serial output and visual confirmation

## Coverage Goals
- All new public API functions have at least one test case
- All error paths have a negative test case
- Critical timing constants have a verification test or hardware measurement
- No regressions: `bash test --cpp` passes with zero new failures

## Pass/Fail Criteria

| Criterion | Measurement |
|-----------|------------|
| Host tests pass | `bash test --cpp` exits 0 |
| WASM compiles | `bash compile wasm` exits 0 |
| Platform compiles | All listed platforms exit 0 |
| Hardware validated | Human-verified LED output correct |
| No regressions | 0 new test failures vs. main branch |

Rules

  1. Every implementation contract must have a test plan before coding starts.
  2. Maximize no-hardware test coverage — extract pure logic into host-testable form.
  3. Hardware validation is non-optional for driver or timing changes — WASM is not sufficient proof.
  4. Debug mode is mandatory when a test fails: bash test TestName --debug enables ASAN/UBSAN that catch memory errors not visible in quick mode.
  5. Never skip the full regression check (bash test --cpp) before declaring done.

© FastLED, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .claude/skills/esp32-test-plan of FastLED/FastLED.

Open the folder on GitHubat commit ce225ed

Compare with similar skills

Esp32 Test Plan next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Esp32 Test Plan compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Esp32 Test Plan this skillFastLED/FastLED7.5k—~1.9kAutomated safety check: PassMIT
RuView CLI, API and WASMruvnet/RuView97k—~1.2kAutomated safety check: NotesMIT
Adk Verify Snippetsgoogle/adk-python22k—~1.4kAutomated safety check: PassApache-2.0
Hermetic Python Unit TestsdimensionalOS/dimos4.6k—~1.4kAutomated safety check: PassCustom licence
Adding Internal API RouteTriliumNext/Trilium38k—~3.3kAutomated safety check: PassAGPL-3.0
OpenROAD Module Test AdderThe-OpenROAD-Project/OpenROAD3.2k—~1.8kAutomated safety check: PassBSD-3-Clause

Similar skills

  • Covers the RuView `wifi-densepose` command line binary, its Axum REST API and the WebAssembly builds for browsers and ESP32, for embedding or scripting RuView.

    97k GitHub stars~1.2k tokensUpdated yesterday
    Backend & APIsAuto-check: notes
  • Adk Verify Snippets

    google/adk-python

    Official

    Checks that every Python code block in a Markdown file actually compiles and runs, by extracting each block to a temporary file, executing it in an isolated subprocess, and writing a pass/fail…

    22k GitHub stars~1.4k tokensUpdated yesterday
    Testing & QAAuto-check passed
  • Hermetic Python Unit Tests

    dimensionalOS/dimos

    Rules for writing, fixing and reviewing pytest unit tests that are hermetic: behavior-focused, deterministic, isolated and cheap to run.

    4.6k GitHub stars~1.4k tokensUpdated yesterday
    Testing & QAAuto-check passed
  • Adding Internal API Route

    TriliumNext/Trilium

    A skill your agent uses when adding, moving, or wiring an internal REST endpoint in Trilium (a new /api/ route) — choosing between a core-shared handler (packages/trilium-core/src/routes/index.ts…

    38k GitHub stars~3.3k tokensUpdated yesterday
    Testing & QAAuto-check passed
  • OpenROAD Module Test Adder

    The-OpenROAD-Project/OpenROAD

    Adds integration or unit tests to an OpenROAD module: writes the Tcl test, generates golden files and registers it in both CMake and Bazel.

    3.2k GitHub stars~1.8k tokensUpdated yesterday
    Testing & QAAuto-check passed
  • Concept Page Test Writer

    leonardomso/33-js-concepts

    Generates Vitest tests for every runnable code example on a JavaScript concept documentation page, following a four-phase extraction and conversion process.

    67k GitHub stars~5.5k tokensUpdated 28 days ago
    Testing & QAAuto-check passed

More from FastLED/FastLED

All 23 skills in this repo
  • CI Fix

    FastLED/FastLED

    Scan all CI builds and tests, find failures, fetch error logs, and fix the code.

    7.5k GitHub stars~897 tokensUpdated yesterday
    Auto-check passed
  • Driver Review

    FastLED/FastLED

    Review and implement hardware driver code — DMA safety, interrupt correctness, timing constraints, peripheral register usage, channel drivers, and peripheral mock implementations.

    7.5k GitHub stars~3.1k tokensUpdated yesterday
    Auto-check passed
  • Embedded Debug

    FastLED/FastLED

    Firmware crash analysis, stack trace decoder, and register dump interpreter for ESP32/ARM/AVR platforms.

    7.5k GitHub stars~1.4k tokensUpdated yesterday
    Auto-check passed
  • Esp32 Log Triage

    FastLED/FastLED

    Parse and classify ESP32 serial log output to identify FastLED-related errors, RMT/I2S/SPI driver faults, timing violations, RTOS issues, and crash signatures.

    7.5k GitHub stars~1.9k tokensUpdated yesterday
    Auto-check passed
  • Memory Audit

    FastLED/FastLED

    Audit embedded code for stack overflow risks, heap fragmentation, static allocation patterns, and memory leaks.

    7.5k GitHub stars~488 tokensUpdated yesterday
    Auto-check passed
  • Platform Port

    FastLED/FastLED

    Guide porting FastLED to new MCU platforms, including int.h types, clockless drivers, SPI implementations, and platform detection.

    7.5k GitHub stars~580 tokensUpdated yesterday
    Auto-check passed

Categories

Questions about Esp32 Test Plan

What does Esp32 Test Plan do?

Generate a structured multi-layer test plan for FastLED changes targeting ESP32. Esp32 Test Plan is an agent skill from FastLED/FastLED. Generate a structured multi-layer test plan for FastLED changes targeting ESP32.

When should I use Esp32 Test Plan?

Esp32 Test Plan fits situations like: tasks that involve Test generation; tasks that involve Embedded systems; tasks that involve Unit testing.

How do I install Esp32 Test Plan in Claude Code?

Run `npx skills add FastLED/FastLED --skill esp32-test-plan -a claude-code`. Or copy the skill folder (.claude/skills/esp32-test-plan in FastLED/FastLED) into .claude/skills/esp32-test-plan in your project. Claude Code loads it when a task matches its description.

How do I install Esp32 Test Plan in Codex?

Run `npx skills add FastLED/FastLED --skill esp32-test-plan -a codex`. Or copy the skill folder (.claude/skills/esp32-test-plan in FastLED/FastLED) into .agents/skills/esp32-test-plan in your project. Codex loads it when a task matches its description.

Can I use Esp32 Test Plan in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add FastLED/FastLED --skill esp32-test-plan -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/esp32-test-plan, .gemini/skills/esp32-test-plan, .github/skills/esp32-test-plan and .opencode/skills/esp32-test-plan in your project.

What does Esp32 Test Plan need to run?

Going by SKILL.md and its folder, Esp32 Test Plan needs the command-line tools its instructions call (bash).

Does Esp32 Test Plan access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Esp32 Test Plan safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Esp32 Test Plan use?

Esp32 Test Plan is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Esp32 Test Plan use?

About 1.9k tokens (SKILL.md is roughly 7.6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Esp32 Test Plan?

Skills that share tags, products or a category with Esp32 Test Plan: RuView CLI, API and WASM (ruvnet/RuView, 97k stars), Adk Verify Snippets (google/adk-python, 22k stars), Hermetic Python Unit Tests (dimensionalOS/dimos, 4.6k stars) and Adding Internal API Route (TriliumNext/Trilium, 38k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Esp32 Test Plan?

FastLED (a GitHub organization) maintains it in FastLED/FastLED, which has 7,505 GitHub stars. The repository holds 23 skills in this directory. The repository was last updated on October 8, 2026.

Source: FastLED/FastLED on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.