Make fix-lints autocorrect keep layout and give the residual phase an input #1446
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#1446
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
Two steps of the
/os-sdlc:fix-lintsprocedure do not work as written. The autocorrect phase damages the layout of the lines it fixes. The residual phase needs an input file that no step of the run writes.Observed
rubocop -a --only Layout/LineLength,Minitest/AssertPredicate,Minitest/RefutePredicate. The unit ran the same cops throughOsSdlc::Lint::Run#correct(lesson from #1441).Layout/LineLengthautocorrect split each long line at a comma or a block brace. The otherLayout/*cops are not in--only, so the split lines kept trailing whitespace and had a continuation line at column 0. All fourLayout/LineLengthfixes needed a hand edit. Example fromplugins/os-sdlc/tests/support/ticket_fixture.rb:bin/lint-worklist --residual <path>against "the autocorrect pre-pass's residual report (ticket #217)". No command in the run writes that report..sdlc/tmp/held onlylint-batch/andlint-burndown.json. The unit replaced step 5 with a full gate-config lint of the target.Reproduce
Approach
Suggested: the autocorrect phase runs the printed cops together with the
Layout/*cops that clean up after a split (or prints a command that does). Step 5 either names the command that writes the residual report, or the worklist writes it, or the step is removed in favor of a full-target lint.Origin
/os-sdlc:fix-lintson target os-sdlc, 2026-10-27--onlysubset excludes theLayout/*cops that repair a split (DESIGN: plugins/os-sdlc/lib/os_sdlc/lint/worklist.rb)VERDICT: CREATE
Second fix-lints run (os-aidd-lint, merged
7a92525b, 2026-10-27) hit more process defects of the same kind:Third and fourth fix-lints runs (os-adr
df7b26bd, cc-architectf138ee07, os189c039f, 2026-10-27): batch agents rangit stash/git stash popin the shared worktree; one later agent popped an unrelated older stash entry. The skill or batch-agent brief should forbid git stash. Also: fix moves an offense to a different cop, so a checkpoint shows no progress and can send work back from iterative to batch.