Agent skill

Feature Contract

by FastLED in FastLED/FastLED

Generate a structured implementation contract before making any code changes to FastLED.

MITAuto-check passedDevelopment

Install Feature Contract

skills CLI
$ npx skills add FastLED/FastLED --skill feature-contract -a claude-code

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

GitHub CLI
$ gh skill install FastLED/FastLED feature-contract --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/feature-contract .claude/skills/feature-contract && 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
feature-contract
GitHub stars
7.5k
Token cost
~1.7k tokens
SKILL.md length
628 words
Files
1
Skills in repo
23
Repo updated
First seen
Licence
MIT

At a glance

Generate a structured implementation contract before making any code changes to FastLED.

  • Works in 7 steps: Understand the Request → Define Scope → Assess Platform Impact → …
  • Tasks that involve Test generation
  • SKILL.md covers Why Use a Contract, Steps, Rules and What Makes a Good Acceptance…
  • Calls bash

What it does

Feature Contract is an agent skill from FastLED/FastLED. Generate a structured implementation contract before making any code changes to FastLED. Defines scope, affected files, API changes, platform impact, risk assessment, and test plan. Use before implementing any feature, bug fix, driver addition, or refactoring.

Its SKILL.md is about 1.7k 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 Development, covering Test generation, Debugging and Embedded systems. It works with ESP32. 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 Debugging
  • Tasks that involve Embedded systems

Example prompts

  • “/feature-contract”

Workflow steps

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

  1. Understand the Request
  2. Define Scope
  3. Assess Platform Impact
  4. Assess Risks
  5. Define Test Plan
  6. Define Rollback Strategy
  7. Generate Contract Document

What it can do on your machine

Read from SKILL.md and the folder at commit 8d6ed12. 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

Feature Contract loads about 1.7k tokens when it runs. Until then it costs about 69 tokens; SKILL.md has 628 words of instructions outside code blocks.

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

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 8d6ed12, republished under its MIT licence (© FastLED). 628 words, ~1,687 tokens.

Download SKILL.mdSave it as .claude/skills/feature-contract/SKILL.md (or your agent's skills folder).
name
feature-contract
description
Generate a structured implementation contract before making any code changes to FastLED. Defines scope, affected files, API changes, platform impact, risk assessment, and test plan. Use before implementing any feature, bug fix, driver addition, or refactoring.
argument-hint
<feature or bug description>
context
fork
agent
feature-contract-agent

Generate an implementation contract for a FastLED change. The contract must be reviewed before any code is written.

$ARGUMENTS

Why Use a Contract

FastLED runs on 100+ microcontroller platforms. A change that seems simple can break:

  • Platform-specific driver behavior (ESP32, Teensy, AVR, STM32, RP2040, nRF52...)
  • Public API compatibility (users pin to specific versions)
  • Timing-sensitive LED protocols (a single wrong bit ruins the strip)
  • Build-system portability (meson, fbuild, Arduino IDE all involved)

The contract documents what changes, what risks exist, and how to prove it works — before a line of code is written.

Steps

1. Understand the Request

Determine:

  • What is the requested change? (feature / bug fix / refactor / platform port / driver addition)
  • Which LED chipsets or platforms are affected?
  • What is the expected behavior after the change?
  • Are there hardware constraints? (specific ESP32 variant, specific LED protocol, pin count)
  • Is this a public API change or internal implementation?
2. Define Scope

Document:

  • Summary: One-paragraph description of the change
  • Non-goals: What this change explicitly does NOT do
  • Affected files: Every file to be created, modified, or deleted
  • APIs touched: Public functions, types, or macros that will change
3. Assess Platform Impact

For each affected area, evaluate impact:

Platform AreaImpactNotes
AVR (Arduino Uno/Mega/Nano)[None/Low/Med/High]RAM-constrained, no FPU
ESP32 (all variants)[None/Low/Med/High]RMT/I2S/SPI/PARLIO drivers
Teensy (3.x, 4.x)[None/Low/Med/High]ARM Cortex-M, bitbang & DMA
RP2040 (Raspberry Pi Pico)[None/Low/Med/High]PIO-based drivers
STM32[None/Low/Med/High]HAL dependencies
WASM (web browser target)[None/Low/Med/High]Emulation only
nRF52[None/Low/Med/High]BLE coexistence
4. Assess Risks

Evaluate each risk category:

Timing Risks (critical for LED protocols):

  • Does the change affect bit-timing (T0H, T1H, reset pulse)?
  • Could added latency cause LED flicker or color errors?
  • Is the change tested on hardware, not just WASM/emulation?

API Compatibility Risks:

  • Does this change any public header or function signature?
  • Will existing user sketches compile without modification?
  • Is a deprecation path needed?

Memory Risks:

  • Does this add to SRAM usage (critical for AVR with 2KB)?
  • Does this add to flash usage?
  • Are heap allocations properly checked for NULL?

Concurrency Risks (ESP32 / RTOS platforms):

  • Shared state accessed from multiple tasks or ISR?
  • DMA buffer lifetime during transfer?
  • Interrupt-safe API used where required?

Build System Risks:

  • Does this require changes to meson.build, library.properties, or component.mk?
  • Is the new code compiled only on relevant platforms (guards correct)?
Show full SKILL.md (250 more words)Show less
5. Define Test Plan

Specify the test layers that apply:

LayerAppliesTests
Host unit tests (bash test)AlwaysLogic, math, data structures
WASM compile check (bash compile wasm)AlwaysCatches most compile errors
Platform compile (bash compile <platform>)If driver codeCatches platform-specific errors
Hardware validation (bash autoresearch)If driver or timing changeOnly definitive proof for LED output

List specific test cases:

  • Positive: Expected behavior with valid inputs
  • Negative: Error handling, boundary values
  • Regression: Existing tests that must still pass
6. Define Rollback Strategy

Document:

  • How to revert the change (git revert, feature flag, etc.)
  • Whether any NVS/EEPROM data migration is needed
  • Whether users need to update their code if the API changes
7. Generate Contract Document
markdown
# Implementation Contract: [Title]

## Change Summary
[One-paragraph description of what changes and why]

## Non-Goals
- [What this explicitly does NOT include]

## Affected Files
| File | Action | Description |
|------|--------|-------------|
| src/platforms/esp/32/foo.h | MODIFY | [What changes] |
| src/fl/bar.h | CREATE | [Purpose] |

## APIs Touched
- `FastLED.addLeds<...>()` — [How it changes, if at all]
- `CRGB` — [Impact]

## Platform Impact
| Platform | Impact | Rationale |
|---------|--------|-----------|
| AVR | None | No new code on AVR path |
| ESP32 | High | New RMT encoder implementation |
| ... | ... | ... |

## Risk Assessment

### Timing: [LOW / MED / HIGH]
[Details — will LED protocols still work?]

### API Compatibility: [LOW / MED / HIGH]
[Details — will existing user code still compile and run?]

### Memory: [LOW / MED / HIGH]
[Details — RAM/flash impact, especially for AVR]

### Concurrency: [LOW / MED / HIGH]
[Details — ISR safety, DMA lifetime, task interaction]

### Build System: [LOW / MED / HIGH]
[Details — meson.build, guards, new dependencies]

## Test Plan
- [ ] Host unit test: [test name / description]
- [ ] WASM compile: `bash compile wasm --examples Blink`
- [ ] Platform compile: `bash compile <platform>`
- [ ] Hardware validation: [specific test on which board]
- [ ] Regression: `bash test --cpp` — all existing tests pass

## Rollback Strategy
[Steps to safely revert this change]

## Acceptance Criteria
- [ ] [Specific, measurable criterion]
- [ ] All platform compiles pass
- [ ] No regressions in host test suite
- [ ] [Hardware test evidence if applicable]

Rules

  1. Never skip the contract for non-trivial changes. A "small" change to a shared header can break 100 platform builds.
  2. Define platform impact explicitly. Unknown = HIGH risk. Investigate before marking LOW.
  3. Hardware validation is required for any driver or timing change. WASM compilation is not sufficient proof.
  4. Public API changes need a compatibility note. FastLED users should not be surprised by breaking changes.
  5. Update the contract if scope changes. Scope creep must be re-reviewed.

What Makes a Good Acceptance Criterion

Good: "WS2812 output on ESP32 shows correct colors at 1000 LEDs without flicker, confirmed by hardware observation" Bad: "It works"

Good: "All existing host tests pass with bash test --cpp" Bad: "Tests pass"

Good: "Sketch compiles on Arduino IDE 2.x with no warnings" Bad: "Compiles somewhere"

© 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/feature-contract of FastLED/FastLED.

Open the folder on GitHubat commit 8d6ed12

Compare with similar skills

Feature Contract 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.

Feature Contract compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Feature Contract this skillFastLED/FastLED7.5k—~1.7kAutomated safety check: PassMIT
Devnpc-live/clawfirm156—~642Automated safety check: PassNone
Commodore64 Vice Debuggingidolpx/meatloaf128—~4.8kAutomated safety check: PassGPL-3.0
C64 Meatloaf Debugidolpx/meatloaf128—~12kAutomated safety check: PassGPL-3.0
Meatloaf Networkingidolpx/meatloaf128—~7.1kAutomated safety check: PassGPL-3.0
Embedded DebuggerAdancurusul/embedded-debugger-mcp199—~1.4kAutomated safety check: PassMIT

Similar skills

  • Dev

    npc-live/clawfirm

    Software development workflow dispatcher. An agent skill from npc-live/clawfirm.

    156 GitHub stars~642 tokensUpdated 3 mo ago
    DevelopmentAuto-check passed
  • Debug Commodore 64 programs running under the VICE emulator through its binary monitor: BASIC, cc65-compiled C, and 6502 assembly.

    128 GitHub stars~4.8k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • C64 Meatloaf Debug

    idolpx/meatloaf

    Debug Commodore 64 BASIC programs, cc65-compiled C PRGs, and Meatloaf ESP32 firmware in tandem, using the Ultimate 64's REST API and Meatloaf's UART serial debug output.

    128 GitHub stars~12k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Meatloaf Networking

    idolpx/meatloaf

    Reference for the Meatloaf full-mode HTTP client protocol — the line-oriented command language (m, h, b, s, status, r-h, r-b, j, c) that an ESP32-based Meatloaf device accepts over the C64's IEC bus…

    128 GitHub stars~7.1k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Embedded Debugger

    Adancurusul/embedded-debugger-mcp

    Embedded hardware debugging workflow for probe-rs targets using embedded-debugger-mcp.

    199 GitHub stars~1.4k tokensUpdated 2 mo ago
    Agent WorkflowsAuto-check passed
  • OpenROAD Bug Fixer

    The-OpenROAD-Project/OpenROAD

    Fixes an OpenROAD bug from a GitHub issue or error code: finds the root cause, implements the fix, adds a regression test and prepares a signed-off commit.

    3.2k GitHub stars~784 tokensUpdated today
    DevelopmentAuto-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 today
    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 today
    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 today
    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 today
    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 today
    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 today
    Auto-check passed

Works with

Questions about Feature Contract

What does Feature Contract do?

Generate a structured implementation contract before making any code changes to FastLED. Feature Contract is an agent skill from FastLED/FastLED. Generate a structured implementation contract before making any code changes to FastLED.

When should I use Feature Contract?

Feature Contract fits situations like: tasks that involve Test generation; tasks that involve Debugging; tasks that involve Embedded systems.

How do I install Feature Contract in Claude Code?

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

How do I install Feature Contract in Codex?

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

Can I use Feature Contract 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 feature-contract -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/feature-contract, .gemini/skills/feature-contract, .github/skills/feature-contract and .opencode/skills/feature-contract in your project.

What does Feature Contract need to run?

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

Does Feature Contract 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 Feature Contract 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 Feature Contract use?

Feature Contract 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 Feature Contract use?

About 1.7k tokens (SKILL.md is roughly 6.7k 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 Feature Contract?

Skills that share tags, products or a category with Feature Contract: Dev (npc-live/clawfirm, 156 stars), Commodore64 Vice Debugging (idolpx/meatloaf, 128 stars), C64 Meatloaf Debug (idolpx/meatloaf, 128 stars) and Meatloaf Networking (idolpx/meatloaf, 128 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Feature Contract?

FastLED (a GitHub organization) maintains it in FastLED/FastLED, which has 7,506 GitHub stars. The repository holds 23 skills in this directory. The repository was last updated on October 7, 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.