| name | project-health |
| description | Audit project completeness against the monorepo standard checklist (docs, config, registration) |
| argument-hint | [project-path|all] |
| user-invocable | true |
| allowed-tools | Read, Grep, Glob, Bash(just:*), Bash(ls:*) |
Task
Audit project(s) for completeness against the monorepo standard checklist.
- If
$ARGUMENTS is a project path → audit that single project
- If
$ARGUMENTS is all or empty → audit all projects under packages/<domain>/
Checklist
For each project, check these items. Report pass/warn/fail for each.
1. README.md
- Pass: File exists and is >10 lines
- Warn: File exists but is very short (<10 lines)
- Fail: Missing
2. CLAUDE.md
- Pass: File exists and is >20 lines
- Warn: File exists but is very short
- Fail: Missing
3. WIRING.md (hardware projects only)
- Pass: File exists
- Skip: Project has no GPIO usage (simulation, docs hub)
- Fail: Project uses hardware but has no WIRING.md
To determine if a project uses hardware: check for gpio_config, #define.*GPIO, ledc_, i2c_, spi_, uart_ in source files.
4. justfile
- Pass: File exists and imports
tools/esp32.just
- Warn: File exists but doesn't import shared config
- Fail: Missing (for ESP-IDF projects)
- Skip: ESPHome or non-ESP-IDF projects
5. Root justfile registration
- Pass: Project appears as
mod in root justfile
- Fail: Not registered
Check by grepping root justfile for the project directory name.
6. sdkconfig.defaults (ESP-IDF only)
- Pass: File exists
- Fail: Missing for ESP-IDF project
7. version.txt
- Pass: File exists
- Fail: Missing
8. .gitignore coverage
- Pass: Project has own
.gitignore OR root .gitignore covers common patterns (build/, sdkconfig)
- Warn: No coverage found
9. Credentials handling (WiFi/API projects only)
- Pass:
credentials.h.example or secrets.yaml.example exists
- Skip: Project doesn't use WiFi or API credentials
- Fail: Source references credentials but no example file exists
Check by grepping for #include "credentials.h", #include "secrets.h", wifi_config in source.
10. mDNS configuration (WiFi STA projects only)
- Pass:
mdns in CMakeLists.txt REQUIRES and CONFIG_MDNS_ENABLED in sdkconfig.defaults
- Skip: Project doesn't use WiFi STA mode
- Fail: WiFi STA project without mDNS
Check by grepping for esp_wifi_set_mode.*WIFI_MODE_STA or wifi_init_sta in source.
Output Format
Single Project
## Project Health: <project-name>
| Check | Status | Notes |
|-------|--------|-------|
| README.md | PASS | 85 lines |
| CLAUDE.md | FAIL | Missing |
| ... | ... | ... |
Score: 8/10 checks passed
Suggested actions:
- Run `/project-claude-md <path>` to generate CLAUDE.md
- Run `/wiring-doc <path>` to generate WIRING.md
All Projects
## Monorepo Health Summary
| Project | README | CLAUDE | WIRING | justfile | registered | sdkconfig | version | gitignore | creds | mDNS | Score |
|---------|--------|--------|--------|----------|------------|-----------|---------|-----------|-------|------|-------|
| robocar-main | PASS | FAIL | ... | ... | ... | ... | ... | ... | ... | ... | 7/10 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
Projects needing attention:
- <project>: missing CLAUDE.md, WIRING.md