Skip to content

Remove strict mode from repository validation scripts #170

Description

@codeforester

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

Metadata

Metadata

Assignees

Labels

ciContinuous integration, tests, automation, or release workflows

Type

No type

Fields

No fields configured for issues without a type.

Projects

Status
Done

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions