os-sdlc: lint-worklist should scan conventional dirs (tests/ missing today) #287
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#287
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
bin/lint-worklist scans only the project's code_path plus its sibling bin/ (LintWorklistTarget#lint_path), so tests/ never enters the worklist — 75 offenses sat invisible until the 2026-08-06 fix-lints pass (commit
cdf1596); bin/ had the same gap, fixed in #267.Proposal (convention over configuration): scan the conventional directories that exist — lib/, bin/, tests/|test/|spec/ — plus an additive lint_paths: key in .sdlc/project.yaml for non-standard layouts, written by setup-project / os-status:fix. No exclude mechanism until a real need appears. Decide and record the convention (ADR if it changes the project.yaml contract).
Decomposition (2026-08-06):
Key tension for the ADR: Project already has an unused test_path field (default "test") — reuse it for lint scanning (no schema change) or add the ticket's proposed additive lint_paths: key?
Work started on main (no feature branch). Decision recorded as ADR-0102 (docs/adr/0102-lint-worklist-scans-all-existing-conventional-dirs-plus-an-additive-lint-paths-key.md): scan all existing conventional dirs (lib/, bin/, tests/|test/|spec/) plus additive lint_paths: key; test_path untouched; no exclude mechanism.
Implemented on main: commit
f042d6c(code) +e979bb5(ADR-0102). LintWorklistTarget#lint_path now scans code_path, bin/, all existing tests/|test/|spec/ dirs, plus the new additive lint_paths: project.yaml key (default []); test_path untouched; no exclude mechanism. setup-project SKILL.md documents the key; os-status needed no change. Verified: 738 runs / 1994 assertions green; rubocop lib/ tests/ clean. Running bin/lint-worklist against os-sdlc immediately surfaced a previously invisible Sdlc/Structural/BinScriptLoad offense — follow-up captured as #289. No PR gate — open for human sign-off.Resolution
Done: lint-worklist now scans all existing conventional test dirs (tests/ test/ spec/) plus additive lint_paths: key in .sdlc/project.yaml
Evidence: commits
f042d6c+e979bb5(ADR-0102); 738 tests green; rubocop clean over 219 files; user signed off 2026-08-06Follow-ups: #289 (BinScriptLoad offense in trim_status_table_test.rb + multi-target lint sweep)