os-sdlc: bring bin/ scripts under lint coverage (bin/os-sdlc is 1075 unlinted lines) [capture] #267
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#267
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?
Context
Noticed live while triaging #265: plugins/os-sdlc/bin/os-sdlc is 1075 lines and has never been linted. Double blind spot: (1) all lint invocations (os-sdlc lint, bin/lint-worklist) pass only project.yaml code_path — typically lib/ — so bin/ is never handed to rubocop; (2) even if it were, rubocop skips extensionless scripts unless AllCops Include lists them (neither plugins/os-sdlc/.rubocop.yml nor root .rubocop.yml has an Include). Other unlinted bin/ files: lint-worklist (184), os-sdlc-workspace (74), dup-sweep (36), dead-code-sweep (23). Fix likely: AllCops Include for bin/* in the plugin config + widen the lint path; see ADR-0091 (LintWorklistRubocopConfig is the single config authority) and ADR-0066. Expect a large offense backlog on first run — likely wants /os-sdlc:fix-lints treatment and possibly extracting bin/os-sdlc logic into lib/.
Work started (main branch, /implement session): AllCops Include for bin/* + widening the lint path per ticket, then offense backlog cleanup.
Pipeline run complete on branch sdlc/267 (worktree .sdlc/worktrees/sdlc-267, commit
f7d8d32). Reviewer verdict: APPROVE after two REQUEST-CHANGES rounds. Awaiting human merge gate. Note: the predicted offense backlog did not materialize -- bin/ was already clean (117 files, 0 offenses). ADR-0100 records the lint-scope decision.Resolution
Done: bin/ scripts brought under lint coverage: lint_path returns code_path plus Ruby files in its sibling bin/ as explicit rubocop file args; Lint#call and RubocopReportFetcher multi-path single-invocation; both the os-sdlc lint gate and bin/lint-worklist consume the widened set. AllCops Include deliberately NOT used (resolves relative to the defining config; breaks shared-config targets). ADR-0100 records the decision. Suite OS_SDLC_TARGET ambient-leak fixed in test_helper.
Evidence: Merge
daeb1ad(branch sdlc/267, commitf7d8d32) on main; reviewer APPROVE after two REQUEST-CHANGES rounds; suite 716 runs 0 failures; worktree lint gate inspects 117 files (112 lib + 5 bin), 0 offenses -- predicted backlog did not existFollow-ups: none