SKILL.md
Task
Audit sdkconfig.defaults for the project at $1 (relative path under packages/<domain>/).
Process
- Read source files (
main/.c,main/.h) to detect feature usage - Map features to required sdkconfig entries using the table below
- Read existing
sdkconfig.defaults(if it exists) - 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:
CONFIGIDFTARGETshould match justfiletargetvariable - Flash size:
CONFIGESPTOOLPYFLASHSIZE_4MB=y(or appropriate size) - Log level:
CONFIGLOGDEFAULTLEVELINFO=y(recommended for production) - Watchdog:
CONFIGESPTASKWDTTIMEOUT_Sif project has long-running operations - Partition table: Custom
CONFIGPARTITIONTABLE_CUSTOM=yifpartitions.csvexists
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