Manage xiao esp32 projects
Cross-agent workflow for Seeed Studio XIAO ESP32 projects with PlatformIO, ESP-IDF, MkDocs, and Espressif MCP.
npx -y skills add ashllll/manage-xiao-esp32-projectsAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- 20 days oldThe repository was created 20 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Create, migrate, document, archive, automate, and validate Seeed Studio XIAO ESP32C3/ESP32S3/ESP32C6 projects using PlatformIO, ESP-IDF, MkDocs Material, official Espressif MCP services, and GitHub Actions. Use for scaffolding or maintaining a XIAO ESP32 project, selecting boards, researching peripherals, documenting pins and APIs, configuring Flash/PSRAM, auditing local ESP32 references, removing unreliable derived documentation, generating code from a specification, building firmware, preparing CI/docs, or installing and improving this skill across Codex, Claude Code, Cline, GitHub Copilot, Gemini CLI, Kimi Code CLI, OpenCode, Pi, and Reasonix—especially on Apple Silicon Macs.
SKILL.md
9.4 KB, ~1.9k tokens by cl100k_base, as published. Nobody here has run it
Manage XIAO ESP32 Projects
Build from the bundled, verified PlatformIO + ESP-IDF + MkDocs template. Preserve user code and documentation when applying it to an existing project.
Route the task
- For a new project, run
scripts/bootstrap_project.pyagainst the requested directory. - For an existing project, inspect its files first, then copy or adapt only missing template pieces. Never replace user files wholesale.
- For build, board, Flash, PSRAM, documentation, or CI work, read
references/workflow.md. - For GPIO buses, Wi-Fi, BLE, Zigbee, Thread, Matter, or framework-specific API work, read
references/board-capabilities.md. - For official-source synchronization, local reference consolidation, or deletion after archival, read
references/maintenance.md. - For specification-driven project automation, official Espressif MCP integration, or the capability roadmap, read
references/automation-roadmap.md. - For installing or synchronizing official MCP servers across AI agents, read
references/cross-agent-mcp.mdand runscripts/configure_mcp_clients.py. - For installing, discovering, invoking, validating, or improving this skill across AI agents, read
references/cross-agent-skills.md. Keep one canonical copy under~/.agents/skills/; do not maintain divergent client-specific copies. - Treat
assets/project-template/as the canonical reusable artifact. Do not copy.git,.pio,.venv,site, generatedsdkconfig, or firmware outputs into a new source repository.
Scaffold a project
Before scaffolding, check the current stable releases from the official ESP-IDF
and PlatformIO Espressif32 release pages. Prefer the newest stable PlatformIO
platform that officially integrates ESP-IDF and supports C3, S3, and C6. Pin
that platform exactly; do not use a beta, release candidate, latest, or an
unverified framework override merely to obtain a higher version number.
Run:
python3 scripts/bootstrap_project.py /absolute/target/path \
--name project_name \
--board c3 \
--init-git
Accepted boards are c3, s3, and c6. The template always retains all three PlatformIO environments; --board only selects default_envs.
After scaffolding:
- Inspect
platformio.ini,include/xiao_pins.h, and the board-specificsdkconfiglayers. - Update project-specific pin assignments and peripheral pages.
- Identify the framework before adapting examples. The bundled project uses ESP-IDF; do not paste Arduino APIs into it without an explicit Arduino component or framework change.
- Keep secrets, Wi-Fi credentials, serial ports, and machine-specific settings out of committed files.
- Preserve the runtime self-test contract: validate the selected board profile before starting product tasks and emit
XIAO_RUNTIME_READY version=1only after Flash/PSRAM checks pass. - Keep USB Serial/JTAG as the primary application console so D6/D7 remain available to a product UART; document that ROM boot output may still use UART0.
- Run structural validation before installing or building dependencies.
- Run full firmware and documentation validation when the environment is available.
Validate
Structural validation:
python3 scripts/validate_project.py /absolute/project/path
Full validation:
python3 scripts/validate_project.py /absolute/project/path --build --docs
Require these outcomes:
- C3 and C6 use 4 MB Flash.
- S3 uses 8 MB Flash and Octal PSRAM.
- C3, S3, and C6 firmware builds succeed.
mkdocs build --strictsucceeds.- On Apple Silicon, PlatformIO reports
darwin_arm64and both cross-compilers are Mach-O arm64 executables. - When a matching board is physically connected and the user explicitly requests flashing, the serial log reports
XIAO_RUNTIME_READY version=1and at least ten monotonically increasing heartbeats. A successful upload alone is not a runtime acceptance result. - Firmware delivery packages contain the application, bootloader, partition table, flash arguments, manifest, and SHA-256 checksums; reject an application image above 768 KiB for the template's 1 MiB app partition.
Maintain documentation
- Keep concise, reviewed project guidance in
docs/. - Keep large PDFs, archives, CAD files, and complete vendor mirrors in the external reference library.
- Resolve the optional local reference library from
XIAO_ESP32_REFERENCE_ROOT, defaulting to~/ESP32_资料整理; treat itsREADME.mdas the curated entry point and do not infer trust merely because a file exists locally. - Never use material from a quarantine or recovery directory, including paths matching
~/.Trash/ESP32资料清理_*, as an implementation or documentation source. - Do not recreate full-home manifests, raw scan dumps, or low-trust document symlink farms. Maintain small, reviewed indexes instead.
- Record every peripheral's power requirements, logic level, wiring, bus settings, SDK source/version, examples, and known conflicts.
- Prefer Seeed Wiki/GitHub and Espressif documentation over derived notes when facts conflict.
- Keep XIAO D0–D10 symbolic mappings in
include/xiao_pins.h; avoid raw GPIO numbers in application code. - Document public component APIs, resource ownership, error policy, expected startup logs, and a repeatable real-hardware acceptance procedure. Comments should explain hardware constraints and design intent rather than restating C syntax.
- When local reference documents are corrected, replaced, or removed, update
references/maintenance.mdand any affected files underassets/project-template/in the same task. Then validate the skill, validate the template structurally, and scaffold a temporary project to compare its file inventory with the template.
Use official Espressif MCP services
- Use
espressif-documentationfor current ESP-IDF API, programming guide, and chip-specific documentation queries. - Use
esp-component-registrybefore writing a peripheral driver from scratch. Prefer a compatible, maintained component with examples and a clear license. - Record the source URL, component or documentation version, target chip, retrieval date, and important constraints in project documentation.
- Treat MCP results as research inputs: verify board-specific electrical and pin facts against the official Seeed XIAO documentation.
- Keep remote documentation MCP calls interactive. Do not build rate-limited remote searches into CI or bulk mirroring jobs.
- Configure supported AI clients at user/global scope rather than treating Codex configuration as the source of truth. Keep authentication tokens in each client's secure store, never in the skill.
Handle destructive archival safely
Only remove an original directory when the user explicitly requests it. Before doing so:
- Resolve and print the exact source and archive paths.
- Inventory size, regular files, and symlinks.
- Move or copy into a uniquely named archive directory.
- Verify the archive exists and contains the expected files.
- Repair aliases pointing to the old root.
- Remove only stale aliases whose target entities were already absent.
- Confirm the old path is gone and the reference library has no broken links.
- Write a migration record beside the archive.
Prefer an atomic move on the same filesystem so recovery remains possible from the archive.
Guardrails
- Pin
platformio/espressif32; do not use an unversioned platform in reproducible projects. - Treat "latest" as the newest stable, officially integrated, three-board-tested PlatformIO/ESP-IDF pair. Record both versions and the verification date.
- Do not assume PlatformIO's default generated
sdkconfighas the correct Flash size. - Store generated per-environment
sdkconfigfiles inside.pio/, never at the repository root. - Set
PROJECT_VERexplicitly so an empty Git repository can build. - Do not flash, erase, publish, commit, push, or create a release unless the user requests it.
- Treat
scripts/verify_hardware.py --flashas a hardware-writing operation. Without--flash, the script may reset and read the selected device but must not write persistent state. - Verify actual board variants before applying S3 Sense or Plus camera, microSD, LED, or extra-pin mappings.
- Keep build and documentation generation non-destructive by default. Require an explicit user request before any hardware-writing MCP or command performs flash or erase operations.
- Do not mix PlatformIO-managed ESP-IDF with an independently installed native ESP-IDF toolchain silently. Use the project's PlatformIO environment unless the user explicitly selects a native EIM/ESP-IDF workflow.
- Resolve the real skill path before editing it. After changing the skill, validate the canonical copy and confirm every detected Agent still resolves to that same copy; never optimize one client's stale fork.
What ships with it: 59 files
188.6 KB alongside SKILL.md, 10 of them executable
agents/
- openai.yaml941 B
assets/
- project-template/CHANGELOG.md2.1 KB
- project-template/CMakeLists.txt133 B
- project-template/components/xiao_board/CMakeLists.txt146 B
- project-template/components/xiao_board/include/xiao_board.h1.7 KB
- project-template/components/xiao_board/xiao_board.c3.8 KB
- project-template/docs/debugging/index.md3.6 KB
- project-template/docs/firmware/architecture.md4.2 KB
- project-template/docs/firmware/build-flash.md3.8 KB
- project-template/docs/firmware/configuration.md3.1 KB
- project-template/docs/firmware/release.md2.6 KB
- project-template/docs/getting-started.md3.3 KB
- project-template/docs/hardware/boards.md2.5 KB
- project-template/docs/hardware/pinout.md2.9 KB
- project-template/docs/hardware/power-usb.md2.3 KB
- project-template/docs/index.md2.6 KB
- project-template/docs/peripherals/ads1115.md5.8 KB
- project-template/docs/peripherals/gpio-adc-pwm.md2.6 KB
- project-template/docs/peripherals/i2c.md2.8 KB
- project-template/docs/peripherals/index.md3.4 KB
- project-template/docs/peripherals/spi.md2.4 KB
- project-template/docs/peripherals/_template.md1.6 KB
- project-template/docs/peripherals/uart.md2.4 KB
- project-template/docs/reference/maintenance.md2.8 KB
- project-template/docs/reference/resources.md5.6 KB
- project-template/docs/wireless/index.md2.3 KB
- project-template/docs/workflow.md3.3 KB
- project-template/.gitignore298 B
- project-template/include/xiao_pins.h1.7 KB
- project-template/LICENSE11.1 KB
- project-template/mkdocs.yml1.7 KB
- project-template/platformio.ini1012 B
- project-template/README.md3.3 KB
- project-template/requirements-dev.txt33 B
- project-template/requirements-docs.txt37 B
- project-template/scripts/firmware_tools.pyruns10.5 KB
- project-template/scripts/__init__.pyruns63 B
- project-template/scripts/package_firmware.pyruns1.0 KB
- project-template/scripts/verify_hardware.pyruns3.2 KB
- project-template/sdkconfig.defaults348 B
19 more files not listed here. See all 59 in the repository.