fix: green the make lint baseline on master #427
No reviewers
Labels
No labels
Agent
Compat/Breaking
Kind/Bug
Kind/Documentation
Kind/Enhancement
Kind/Feature
Kind/Security
Kind/Testing
Priority
Critical
Priority
High
Priority
Low
Priority
Medium
Reviewed
Confirmed
Reviewed
Duplicate
Reviewed
Invalid
Reviewed
Won't Fix
Status
Abandoned
Status
Blocked
Status
Need More Info
No milestone
No assignees
2 participants
Notifications
Total time spent: 41 seconds
Due date
igor
41 seconds
No due date set.
Dependencies
No dependencies set
Reference
joshtronic/igor!427
Loading…
Reference in a new issue
No description provided.
Delete branch "agent/423-green-lint-baseline"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What this PR does
make lintbaseline on masterBoth halves of
make lintwere failing on a cleanmaster. Every agent run was spending turns re-deriving whether a warning was its own or pre-existing (two runs did exactly that on 2026-07-24, with extragit stash/re-run cycles), and any genuine new regression was invisible under the standing noise.shellcheck
bin/test-automerge.sh:451SC2034 --AUTOMERGE_BLOCK_COOLDOWN_SECSis read bylib/automerge.sh, which this file sources; shellcheck cannot see across the source boundary. Narrowly-scopeddisablewith the reason inline, rather than deleting a line the test actually needs.bin/tick.sh:4634SC2015 --[ cond ] && log ... || truerewritten as a plainif. The|| trueexisted only to keep errexit off the false branch, which anifdoes not need, so the rewrite is equivalent and removes the ambiguousA && B || Cshape instead of suppressing the warning.markdownlint
Not named in the issue, but the other half of the same red baseline -- fixing only shellcheck still left
make lintexiting 2. 16 MD022/MD032 violations, all in one design spec, all from the same cause: ATX headers with no blank line after them, which also pulled the lists following those headers into MD032. Blank lines inserted around headers; no prose changed.Test plan
make lintexits 0 on this branch (was exit 2 on master)make testpasses -- 24 suites viabin/check-sync.shshellcheck bin/*.sh lib/*.shcleanmdl .reports 0 violations (was 16)set -eNote for the reviewer
CI currently runs
make testonly, so lint is not gated and this baseline can rot again. I deliberately did not add a lint job in this PR -- the runner would needshellcheck/mdlinstalled, and a CI change that fails unattended overnight is worse than the problem it fixes. Filed separately as a follow-up.Closes #423
make lintbaseline on master🤖 Review —
APPROVE(automated)CI for
5212f914: successLint-baseline cleanup: two narrowly-scoped shellcheck fixes plus blank lines around headers in one design spec. In scope, behavior-preserving, CI green — approving.
Findings
bin/tick.sh:4634— theA && B || true→ifrewrite is equivalent for the condition (a non-numericSHOT_Nmakes[ -gt ]exit 2, which aniftreats as false, not fatal under errexit). One hairline difference worth knowing: in the old form|| truealso swallowed a failure oflogitself; in the new form a failinglogpropagates out of theifbody and would abort underset -e.logis a write-to-stderr/file helper so this is effectively unreachable, and the rewrite is the right shape — noting it only so nobody is surprised later.bin/test-automerge.sh:451—disable=SC2034with the cross-source-boundary reason inline is the correct call here; the variable is genuinely consumed by the sourcedlib/automerge.sh. No test coverage was removed to appease the linter.Coverage / follow-up notes
make lintnow exits 0) is not verifiable from CI, which runsmake testonly — so my confidence here comes from the diff plus the violation-count arithmetic above, not from a green lint run. The description is upfront about this rather than implying CI proved it, which is the honest framing.shellcheck/mdl), but it means this baseline can silently rot again next week. Worth making sure the filed follow-up actually lands, otherwise this PR is a one-shot cleanup rather than a fix.Independent review by the harness on
claude-opus-5(effort: high). The human reviewer is requested once Igor has reviewed; a human still merges.