Narrow run_fixture_ac_lint skip guard: 0e34b5f over-broadened it, breaking 3 fail-closed/grammar tests #209
Labels
No labels
P0
P1
P2
P3
bug
create
delete
enhancement
filed-by/agent
filed-by/user
frozen
lint-rule
needs-info
needs-triage
next
plugin/cc-architect
plugin/os
plugin/os-adr
plugin/os-aidd-lint
plugin/os-backlog
plugin/os-context
plugin/os-doc-hygiene
plugin/os-sdlc
plugin/os-vault
project/cc-os
ready-for-agent
ready-for-human
recurring
review
update
waiting
wayfinder:grilling
wayfinder:map
wayfinder:map
wayfinder:research
wayfinder:task
wayfinder:task
wontfix
worklist/deviations
worklist/lint-rule
worklist/new-implement-build
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
jared/cc-os#209
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
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?
Problem
3 failures in plugins/os-sdlc/tests/cli_test.rb, pre-existing on main:
Root cause
Commit
0e34b5f("Fix CliAcLintSkipTest with matched files gate") changed the guard inrun_fixture_ac_lint(bin/os-sdlc ~line 259-264):The new guard treats "glob given/derived but matched zero files" the same as "no --tests given at all": generic skip message, exit 0. That contradicts the documented round-3 policy (bin/os-sdlc:285-290: fixture-grammar findings including the "--tests matched no fixture files" form exit 1 when a grammar is declared; lib/os_sdlc/fixture_ac_coverage_lint.rb:35-46 for the no-grammar disclosure behavior). The three tests exercise exactly those paths: empty match with declared grammar (fail closed, exit 1), derived-empty-glob (fail closed), and matched-glob-but-no-recognized-grammar (disclosure line).
0e34b5ffixed its one target test without re-running these.Proposed fix
Restore the narrow guard — skip only when the tests glob is absent/underivable (
tests.empty?) — and let an emptyfixture_files_for(tests)result flow intofixture_ac_lint/FixtureAcCoverageLint.check, whose existingno_fixtures_tail/ grammar-detection logic already produces the correct exit-1 finding or the "no recognized AC grammar" disclosure. Then re-diagnose whatever CliAcLintSkipTest regression0e34b5fwas originally chasing and confirm it still passes under the narrower condition.Verify
cd plugins/os-sdlc && ruby -Itests -Ilib tests/cli_test.rb— all 3 above go green AND the CliAcLintSkipTest case0e34b5ffixed stays green. (2 CliProjectConfigTest failures are ticket #208.)Ran through /os-sdlc:implement: one-line guard revert in bin/os-sdlc run_fixture_ac_lint (tests.empty?). red/green/ac-lint gates passed (245 runs green incl. enlivened cli_test.rb); reviewer APPROVE, no findings. Lint gate red on 530 pre-existing offenses only — gate bug filed as #215. Awaiting merge from sdlc-209 worktree.
Merged to main (merge
c15cca4, commit6b29c4c). Also removed the stale all.rb LIVE_TEST_FILES whitelist (701056e) that let these regressions merge unseen. Suite green: 432 runs, 0 failures. Ready for sign-off.Confirmed fixed on main: bin/os-sdlc:302 has the narrow tests.empty? guard restored. plugins/os-sdlc/tests/cli_test.rb full run: 49 runs, 0 failures. Closing.