* feat(ci): add ShellCheck linter to Lefthook pre-commit hooks
Add shell script linting via ShellCheck to catch common bugs (unquoted
variables, missing error handling, POSIX portability issues) before commit.
- Create `.shellcheckrc` with project-wide defaults (disable SC1091, SC2154)
- Create `.ci/shellcheck/shellcheck.sh` wrapper (local binary → Docker fallback)
- Add `shellcheck` pre-commit hook in `lefthook.yml` with glob/exclude patterns
Lints 23 infrastructure scripts (test, CI, deploy, helpers) while excluding
36 documentation example scripts in `shared/text/` and `layouts/shortcodes/`.
https://claude.ai/code/session_01X2gknrNvC5GGNExHU93FG6
* Update .shellcheckrc
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* fix(ci): derive shellcheck minimum version from pinned version
Single source of truth — the minimum local version is now parsed from
SHELLCHECK_VERSION instead of being maintained as separate constants.
This prevents drift between the Docker image version and the local
binary requirement.
https://claude.ai/code/session_01X2gknrNvC5GGNExHU93FG6
* fix(ci): remove unused external-sources from .shellcheckrc
external-sources=true only takes effect with the -x flag, which the
wrapper doesn't pass. Source-following isn't needed for pre-commit
linting of individual files, and SC1091 is already disabled.
https://claude.ai/code/session_01X2gknrNvC5GGNExHU93FG6
---------
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>