laurigates/mcu-tinkering-lab

sdkconfig-audit

Audit sdkconfig.defaults by inferring needed settings from source code analysis

First seen Apr 27, 2026

Installation

$ npx skills add laurigates/mcu-tinkering-lab --skill sdkconfig-audit

Also in this package

Other skills from laurigates/mcu-tinkering-lab · top by installs.

npx skills add laurigates/mcu-tinkering-lab

Browse all from laurigates/mcu-tinkering-lab

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 7
License LICENSE
Default branch main
Open issues 38
Status Active

Skill metadata

Parsed from SKILL.md frontmatter.

Allowed toolsRead, Grep, Glob

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 3,050 B
  • docs SUMMARY.md 102 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 14 installs

SKILL.md

Task

Audit sdkconfig.defaults for the project at $1 (relative path under packages/<domain>/).

Process

  1. Read source files (main/.c, main/.h) to detect feature usage
  2. Map features to required sdkconfig entries using the table below
  3. Read existing sdkconfig.defaults (if it exists)
  4. Compare and report missing, unnecessary, or default-reliant settings

Feature Detection → Config Mapping

Source Pattern Required Config Notes
#include "espwifi.h" or espwifi_* calls CONFIGESPWIFI_* basics WiFi subsystem
#include "esp_bt.h" or BLE/BT usage CONFIGBTENABLED=y Bluetooth
CONFIGBTNIMBLEENABLED vs CONFIGBTBLUEDROIDENABLED Depends on stack used Check for NimBLE vs Bluedroid imports
#include "mdns.h" or mdns_init() CONFIGMDNSENABLED=y mDNS discovery
#include "esp_camera.h" CONFIGCAMERA*, PSRAM settings Camera module
#include "esp_tls.h" or HTTPS client CONFIGESPTLS_* TLS/HTTPS
#include "esphttpsota.h" OTA partition table required OTA updates
xTaskCreate with large stacks or many tasks CONFIGESPMAINTASKSTACK_SIZE=8192 Stack sizing
WiFi + BLE + USB init in app_main CONFIGESPMAINTASKSTACK_SIZE=8192+ Multiple subsystem init
#include "tinyusb.h" or USB device CONFIGTINYUSB* USB device stack
espdeepsleep_start() Deep sleep related configs Power management
ledstrip* or WS2812 RMT channel config LED strip driver

Also Check

  • Target chip: CONFIGIDFTARGET should match justfile target variable
  • Flash size: CONFIGESPTOOLPYFLASHSIZE_4MB=y (or appropriate size)
  • Log level: CONFIGLOGDEFAULTLEVELINFO=y (recommended for production)
  • Watchdog: CONFIGESPTASKWDTTIMEOUT_S if project has long-running operations
  • Partition table: Custom CONFIGPARTITIONTABLE_CUSTOM=y if partitions.csv exists

Output Format

## sdkconfig.defaults Audit: <project-name>

### Missing (should add)
| Setting | Reason | Suggested Value |
|---------|--------|-----------------|
| CONFIG_MDNS_ENABLED | Source uses mdns_init() | y |

### Present (looks good)
| Setting | Value | Notes |
|---------|-------|-------|
| CONFIG_IDF_TARGET | "esp32s3" | Matches justfile target |

### Possibly unnecessary
| Setting | Reason |
|---------|--------|
| CONFIG_BT_ENABLED | No Bluetooth usage found in source |

### Recommendations
- <actionable suggestions>

Style Rules

  • Only report actionable findings — don't list every possible sdkconfig option
  • Link to source evidence — show which file/line triggered the detection
  • Don't modify files — this skill is read-only audit; suggest changes for the user to apply