Problem
STANDARDS.md inherits Base's Bash standards. Base section 3.3 says Base-owned executable shell files must not use set -e, set -u, or pipefail; only GitHub Actions run: blocks are a narrow exception.
At main commit a107134, both executable repository validation entrypoints use set -e:
tests/validate.sh
tests/lint-warnings.sh
That makes the canonical local gate depend on implicit shell exit behavior instead of making each validation failure explicit.
Scope
- Remove
set -e from both validation scripts.
- Add explicit failure handling and useful diagnostics for every required command, pipeline, loop, example, and delegated test.
- Keep workflow-local strict mode in
.github/workflows/ unchanged.
- Add a lightweight validation guard that prevents strict mode from returning to production/validation shell entrypoints while allowing intentional BATS fixtures.
Acceptance Criteria
- The validation scripts contain no strict-mode enablement.
- A failing ShellCheck, BATS suite, example, or delegated warning lint exits nonzero at the correct step.
- Successful output remains concise and the canonical command remains
./tests/validate.sh.
Validation
tests/lint-warnings.sh
./tests/validate.sh
- targeted negative smoke tests for each delegated stage
git diff --check
Problem
STANDARDS.mdinherits Base's Bash standards. Base section 3.3 says Base-owned executable shell files must not useset -e,set -u, orpipefail; only GitHub Actionsrun:blocks are a narrow exception.At
maincommita107134, both executable repository validation entrypoints useset -e:tests/validate.shtests/lint-warnings.shThat makes the canonical local gate depend on implicit shell exit behavior instead of making each validation failure explicit.
Scope
set -efrom both validation scripts..github/workflows/unchanged.Acceptance Criteria
./tests/validate.sh.Validation
tests/lint-warnings.sh./tests/validate.shgit diff --check