Release: 1
Type: fix
Priority: medium
Blocks: —
Blocked by: —
Status: todo
Description
The script scripts/shell/linters/shellcheck.sh is missing the set -euo pipefail directive that every other script in scripts/shell/linters/ contains (eslint.sh, yamllint.sh, htmlhint.sh, markdownlint.sh, stylelint.sh, mermaid.sh). This omission violates the uniform standard defined in rules/process/ci-cd.md, section 9 ("Shell Scripts").
Motivation
Without set -euo pipefail, unhandled command errors and references to unset variables inside shellcheck.sh are silently ignored. This is especially problematic for a script that is itself a quality gate: a silent failure inside shellcheck.sh produces a false success in CI, defeating its purpose.
Checklist
Affected Files
| File |
Change |
scripts/shell/linters/shellcheck.sh |
add set -euo pipefail after the shebang line |
CI/linters/shellcheck.yml |
reassemble via assembler |
Note
The task was generated using the MCP server — prog-time/github-issues-server
Description
The script
scripts/shell/linters/shellcheck.shis missing theset -euo pipefaildirective that every other script inscripts/shell/linters/contains (eslint.sh,yamllint.sh,htmlhint.sh,markdownlint.sh,stylelint.sh,mermaid.sh). This omission violates the uniform standard defined inrules/process/ci-cd.md, section 9 ("Shell Scripts").Motivation
Without
set -euo pipefail, unhandled command errors and references to unset variables insideshellcheck.share silently ignored. This is especially problematic for a script that is itself a quality gate: a silent failure insideshellcheck.shproduces a false success in CI, defeating its purpose.Checklist
set -euo pipefailtoscripts/shell/linters/shellcheck.shon the line immediately after#!/usr/bin/env bashbash scripts/assemble-ci.sh scripts/CI/linters scripts/shell/linters CI/lintersCI/linters/shellcheck.ymlnow containsset -euo pipefailin the inlined script bodyshellcheck scripts/shell/linters/shellcheck.sh— no warnings or errors (the script must pass its own linter)bats tests/linters/shellcheck.bats— all existing tests passbats --recursive tests/— the full test suite passesAffected Files
scripts/shell/linters/shellcheck.shset -euo pipefailafter the shebang lineCI/linters/shellcheck.yml