Shell Lint Policy
ClaudeSec uses the same shell lint scope in local development and CI to reduce mismatch.
CI policy
- Workflow:
.github/workflows/lint.yml - Action:
ludeeus/action-shellcheckpinned by commit SHA - ShellCheck engine version:
v0.11.0 - Failure threshold:
severity: warning(warning and above fail) - Global options:
SHELLCHECK_OPTS=-x - Scan scope:
scandir: ./scriptsadditional_files: runcheck_together: 'yes'
Option policy (SHELLCHECK_OPTS)
- Default baseline is fixed at
-xto resolve sourced file paths consistently. - Any future exception (for example,
-e SC1090) must be added in both places:.github/workflows/lint.yml(SHELLCHECK_OPTS)- this document (
Shell Lint Policy)
Local policy
- Command:
./scripts/lint-shell.sh - Scan scope:
scripts/*.shrun
- Resolution order:
- Use local
shellcheckbinary when available. - Fallback to pinned Docker image
koalaman/shellcheck-alpine:v0.10.0.
- Use local
Verification command
./scripts/lint-shell.sh
See also: CI Operations Playbook