Gate: full-tree lint sweep as a hard suite-gate check #1418
Labels
No labels
P0
P1
P2
P3
bug
category/code-change
category/cross-repo
category/eval-run
category/investigation
category/no-test-target
category/owner-ruling
category/prose-artifact
category/recurring-chore
category/structure
category/umbrella
crc-refactor
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
rule-proposal
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#1418
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
The gate lints only changed files (
Gate::Commands,diffed_ruby_files). An offense in a file that no ticket touches never surfaces. Example: 27 realSdlc/Minitest/PackedArrayAssertionoffenses in os-me were never reported. Jared ruled on 2026-10-27 that every cop the gate enforces is universal, and that a full-tree sweep on the same chain is a hard check. No ratchet and no baseline: the check counts every offense.Reproduce
n/a: missing check; the 2026-10-27 full-tree run found 1076 offenses on the gate chain across 8 targets, none reported by the gate.
Approach
Add a suite-gate step that lints the whole target with the gate's own chain and fails on any offense.
Sdlc/*(Jared, 2026-10-27).Required work:
SWEEPinplugins/os-sdlc/lib/os_sdlc/gate/commands.rbRejected: Sdlc-only sweep — the gate already enforces Metrics, Layout and Style on changed files; two standards for the same code (Jared ruled A, 2026-10-27).
Rejected: a ratchet or baseline count — a baseline is an exclusion list.
Acceptance criteria
lint_config, when the sweep runs, then it uses the plugin config first and the target's own file second.Owner sketch
Blocked by
#1417, then fix-lints must bring every
.sdlctarget to zero offenses on the gate chain first (os-me, os-backlog, os-aidd-lint, os-adr, cc-architect, os, os-sdlc, takedown). Otherwise this check fails every run.Origin
plugins/os-sdlc/lib/os_sdlc/gate/commands.rb:75-87) ← DESIGN (gate/commands.rb)plugins/os-sdlc/lib/os_sdlc/gate/commands.rbVERDICT: CREATE
Lint-worklist counts, 2026-10-28 (main, each target on its own gate chain; the worklist shows the first non-empty phase).
Tickets that still block a zero full-tree check:
#1417 is closed. os-backlog on the gate chain gives 14 offenses, the same as the worklist (13 + 1).