ci(lint): always run shellcheck (scripts) on this repo's own self-test runs#125
Merged
Conversation
…t runs The 2026-07-21 fleet rollout enforced shellcheck (scripts) on all 29 consumer repos, but the central repo itself never ran the job — the gate `inputs.run_shellcheck_scripts == 'true'` can't fire on pull_request/push self-test triggers, where the inputs context is null. Nothing else lints scripts/ or selftest/*.sh (no hooks, no Makefile; the only other "shellcheck" mention in the repo is a disable-directive comment). Widen the gate: also run when the input stringifies to '' (self-test trigger) AND github.repository is this repo. Callers are unaffected — workflow_call inputs always resolve to 'true'/'false' via their declared defaults, and the repository conjunct pins the new arm to this repo even if that semantic ever drifts. The job body already handles null inputs (`|| 'error'`, `|| '.'`), so no body change is needed. Local baseline: shellcheck -S error over all 12 repo shell scripts (scripts/*.sh + selftest/test_*.sh) is clean, so the job lands green. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
Bugbot is not enabled for your account, so this pull request was not reviewed. Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs. |
|
Coverage Floor — mode:
|
|
No issues found. One-line |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
The 2026-07-21 fleet rollout enforced
shellcheck (scripts)on all 29 consumer repos, but the central repo itself never ran the job: its gateformat('{0}', inputs.run_shellcheck_scripts) == 'true'can never fire on this repo's own pull_request/push self-test triggers, where theinputscontext is null.Verified before changing anything:
shellcheck (scripts): SKIPPED.selftest/andscripts/never invoke shellcheck, and the only other "shellcheck" mention in the repo is a# shellcheck disable=SC2001directive comment in pr-classify.yml. actionlint's shellcheck integration is also off on self-test runs (-shellcheck=).Change
Widen the existing job's
if:instead of duplicating the ~40-line file-collection logic into a standalone self-test job:inputscontext is null → the input stringifies to''→ job runs. The job body already handles null inputs (|| 'error',|| '.'), so it runs at severity=error over the full tree — identical to what fleet callers get.'true'/'false'(omitted inputs resolve to their declared defaults), and thegithub.repositoryconjunct pins the new arm to this repo even if that semantic ever drifted. Same self-detection pattern thedraft-gate-triggersjob already uses.Verification
shellcheck -S errorlocally over all 12 repo shell scripts (3 inscripts/, 9 inselftest/), collected with the job's exact find logic: clean, exit 0 — the job lands green. (Exactly one advisory exists atwarningseverity; severity stayserrorfor fleet parity.)-shellcheck=, matching CI): clean.prettier --checkon lint.yml: clean.selftest/check_draft_gate_triggers.py: OK. Full selftest suite: 39 passed.shellcheck (scripts)should report success (not skipped) in this PR's checks for the first time.Non-goals:
scripts/tests/*.batsstay uncovered (bats DSL; the fleet job doesn't collect those either). The check stays non-required like the other lint jobs — the ruleset currently requires onlyreview / Claude Review.Auto-merge rationale: manual-merge category — touches
.github/workflows/**(production infrastructure), and PRs to ci-workflows itself are always manual-merge per fleet policy.Codex rounds: 2 (both clean; round 2 was adversarial on the GHA expression semantics and independently confirmed the
''-arm / caller-default analysis).🤖 Generated with Claude Code