plugin-dev: validate-settings.sh exits 1 with no diagnostics when frontmatter keys are not all-lowercase

Status Open
Maintainer reply None cached
Activity 2 comments · opened Jul 19, 2026

plugins/plugin-dev/skills/plugin-settings/scripts/validate-settings.sh runs under set -euo pipefail. Check 6 (line 71) pipes grep '^[a-z_][a-z0-9_]*:' into a while loop to list detected fields. If no frontmatter key matches the lowercase pattern, grep exits 1, pipefail fails the pipeline, and set -e kills the script immediately after printing Detected fields:. The file gets exit 1 with no error message, no summary, and no hint of what is wrong:

$ cat .claude/my-plugin.local.md
---
Enabled: true
---
Settings body.

$ bash validate-settings.sh .claude/my-plugin.local.md
...
✅ Frontmatter not empty

Detected fields:
$ echo $?
1

The file is structurally valid; checks 7 and 8 and the final summary never run. Fix is to tolerate a no-match grep in that pipeline ({ grep ... || true; }). Check 7 already has || true and is fine. Happy to open a PR.

View original on GitHub ↗

This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗