Delete the ADR-0066 lint installer per ADR-0298 #1320

Closed
opened 2026-10-25 16:44:41 +00:00 by jared · 2 comments
Owner

Problem

ADR-0298 (commit 09da348a) supersedes ADR-0066. os-sdlc now layers its rubocop config at run time and installs nothing into target repos. The ADR-0066 installer is still in the code.

Reproduce

n/a: dead code after a decision. Run grep -rn "Lint::SetupCommand" plugins/os-sdlc/lib.

Approach

Delete the installer, its tests, and its onboarding wiring.
Files to delete: plugins/os-sdlc/lib/os_sdlc/lint/setup.rb, lint/setup/target_ruby_version.rb, lint/setup_command.rb, lint/rubocop_delta_header.rb, lint/rubocop_delta_header/inherit_from.rb, lint/rubocop_delta_header/inherit_mode.rb, and plugins/os-sdlc/tests/support/lint_setup_scenario.rb.
Remove the call to OsSdlc::Lint::SetupCommand in lib/os_sdlc/boot/onboarding.rb:41.
Also delete (only lint/setup.rb uses them): lib/os_sdlc/lint/rubocop_delta_classification.rb, lint/rubocop_delta_classification/cop_classification.rb, lint/rubocop_delta_classification/delta_cop_check.rb, lint/rubocop_delta_classification/stock_cop_defaults.rb, and plugins/os-sdlc/templates/rubocop-base.yml (read only by Lint::Setup::TEMPLATE_PATH).
The lint-init command in boot/onboarding.rb is lines 39-42 (desc "lint-init ..." and def lint_init). Delete the whole command, and change the line-18 message "expected lint-init or project-config" to name only project-config.
skills/fix-lints/references/lint-exemption-ladder.md lines 34-36 describe bin/os-sdlc lint-init and .rubocop-sdlc.yml. Remove that description.
Leave tests/fixtures/crc_shares/** and eval/ticket-takedown/** as they are. They are frozen records that name the old files.

Required work:

  1. Delete the installer files listed above — check: absent RubocopDeltaHeader in plugins/os-sdlc/lib/**/*.rb
  2. Remove the SetupCommand call from boot/onboarding.rb — check: absent Lint::SetupCommand in plugins/os-sdlc/lib/os_sdlc/boot/*.rb
  3. Delete the installer tests listed under Retired tests and the support file lint_setup_scenario.rb. In tests/adapter/yaml_readers_test.rb delete only test_delta_report_failure_names_the_file; keep the other tests in that file.
  4. Delete the delta classification files and templates/rubocop-base.yml — check: absent RubocopDeltaClassification in plugins/os-sdlc/lib/**/*.rb
  5. Delete the lint-init command and its message text — check: absent lint-init in plugins/os-sdlc/lib/os_sdlc/boot/onboarding.rb
  6. Remove the lint-init description from skills/fix-lints/references/lint-exemption-ladder.md — check: absent lint-init in plugins/os-sdlc/skills/fix-lints/references/lint-exemption-ladder.md
  7. Update the lint-init entries in docs/implementation-status/os-sdlc.md and docs/implementation-status.md to say ADR-0298 deleted it — check: absent ADR-0066 (lint-init) in docs/implementation-status/os-sdlc.md

Acceptance criteria

  1. Given the os-sdlc plugin, when its eager load runs, then it loads with no installer constant.
  2. Given a target directory, when bin/os-sdlc lint-init <dir> runs, then it fails as an unknown subcommand and writes no file into the directory.
  3. Given plugins/os-sdlc/lib, plugins/os-sdlc/tests (except tests/fixtures/crc_shares), and plugins/os-sdlc/bin, when they are searched for Lint::Setup, RubocopDeltaHeader, or RubocopDeltaClassification, then no match exists.

Retired tests

plugins/os-sdlc/tests/lint/setup_classification_test.rb
plugins/os-sdlc/tests/lint/setup_generated_base_test.rb
plugins/os-sdlc/tests/lint/setup_delta_merge_test.rb
plugins/os-sdlc/tests/lint/setup_delta_header_test.rb
plugins/os-sdlc/tests/lint/rubocop_delta_header_test.rb
plugins/os-sdlc/tests/controller/project/cli_lint_init_seam_test.rb
plugins/os-sdlc/tests/adapter/yaml_readers_test.rb#test_delta_report_failure_names_the_file

Owner sketch

Deletion. No object takes over. OsSdlc::Boot::Onboarding keeps project-config as its only subcommand. Run-time layering already exists in OsSdlc::Lint::WorklistRubocopConfig#write (lib/os_sdlc/lint/worklist_rubocop_config.rb); #1319 routes every rubocop call through it.

class OsSdlc::Boot::Onboarding < Thor
  def project_config(name = nil)
end

Deleted constants: OsSdlc::Lint::Setup, Lint::Setup::TargetRubyVersion, Lint::SetupCommand, Lint::RubocopDeltaHeader (and InheritFrom, InheritMode), Lint::RubocopDeltaClassification (and CopClassification, DeltaCopCheck, StockCopDefaults).

Origin

  • Trigger: Writing ADR-0298 in this session.
  • Improvised this session: none
  • Chain: Installer code remains ← ADR-0066 was superseded by ADR-0298 and the code was not removed ← DESIGN (docs/adr, ADR-0298)
  • Root candidate: none found; searched Lint::Setup, SetupCommand, RubocopDeltaHeader, lint-init, .rubocop-sdlc.yml, ADR-0298, delta_header, lint/setup
    VERDICT: CREATE
  • Where: plugins/os-sdlc/lib/os_sdlc/lint/setup.rb
  • Session: f4187368-5e7e-459d-80c6-ddf7620389cd
  • Transcript: /home/jared/.claude/projects/-home-jared-dev-cc-os/f4187368-5e7e-459d-80c6-ddf7620389cd.jsonl
## Problem ADR-0298 (commit 09da348a) supersedes ADR-0066. os-sdlc now layers its rubocop config at run time and installs nothing into target repos. The ADR-0066 installer is still in the code. ## Reproduce n/a: dead code after a decision. Run `grep -rn "Lint::SetupCommand" plugins/os-sdlc/lib`. ## Approach Delete the installer, its tests, and its onboarding wiring. Files to delete: plugins/os-sdlc/lib/os_sdlc/lint/setup.rb, lint/setup/target_ruby_version.rb, lint/setup_command.rb, lint/rubocop_delta_header.rb, lint/rubocop_delta_header/inherit_from.rb, lint/rubocop_delta_header/inherit_mode.rb, and plugins/os-sdlc/tests/support/lint_setup_scenario.rb. Remove the call to `OsSdlc::Lint::SetupCommand` in lib/os_sdlc/boot/onboarding.rb:41. Also delete (only lint/setup.rb uses them): lib/os_sdlc/lint/rubocop_delta_classification.rb, lint/rubocop_delta_classification/cop_classification.rb, lint/rubocop_delta_classification/delta_cop_check.rb, lint/rubocop_delta_classification/stock_cop_defaults.rb, and plugins/os-sdlc/templates/rubocop-base.yml (read only by `Lint::Setup::TEMPLATE_PATH`). The `lint-init` command in boot/onboarding.rb is lines 39-42 (`desc "lint-init ..."` and `def lint_init`). Delete the whole command, and change the line-18 message "expected lint-init or project-config" to name only project-config. skills/fix-lints/references/lint-exemption-ladder.md lines 34-36 describe `bin/os-sdlc lint-init` and `.rubocop-sdlc.yml`. Remove that description. Leave tests/fixtures/crc_shares/** and eval/ticket-takedown/** as they are. They are frozen records that name the old files. Required work: 1. Delete the installer files listed above — check: absent `RubocopDeltaHeader` in `plugins/os-sdlc/lib/**/*.rb` 2. Remove the SetupCommand call from boot/onboarding.rb — check: absent `Lint::SetupCommand` in `plugins/os-sdlc/lib/os_sdlc/boot/*.rb` 3. Delete the installer tests listed under Retired tests and the support file lint_setup_scenario.rb. In tests/adapter/yaml_readers_test.rb delete only test_delta_report_failure_names_the_file; keep the other tests in that file. 4. Delete the delta classification files and templates/rubocop-base.yml — check: absent `RubocopDeltaClassification` in `plugins/os-sdlc/lib/**/*.rb` 5. Delete the lint-init command and its message text — check: absent `lint-init` in `plugins/os-sdlc/lib/os_sdlc/boot/onboarding.rb` 6. Remove the lint-init description from skills/fix-lints/references/lint-exemption-ladder.md — check: absent `lint-init` in `plugins/os-sdlc/skills/fix-lints/references/lint-exemption-ladder.md` 7. Update the `lint-init` entries in docs/implementation-status/os-sdlc.md and docs/implementation-status.md to say ADR-0298 deleted it — check: absent `ADR-0066 (lint-init)` in docs/implementation-status/os-sdlc.md ## Acceptance criteria 1. Given the os-sdlc plugin, when its eager load runs, then it loads with no installer constant. 2. Given a target directory, when `bin/os-sdlc lint-init <dir>` runs, then it fails as an unknown subcommand and writes no file into the directory. 3. Given plugins/os-sdlc/lib, plugins/os-sdlc/tests (except tests/fixtures/crc_shares), and plugins/os-sdlc/bin, when they are searched for `Lint::Setup`, `RubocopDeltaHeader`, or `RubocopDeltaClassification`, then no match exists. ## Retired tests plugins/os-sdlc/tests/lint/setup_classification_test.rb plugins/os-sdlc/tests/lint/setup_generated_base_test.rb plugins/os-sdlc/tests/lint/setup_delta_merge_test.rb plugins/os-sdlc/tests/lint/setup_delta_header_test.rb plugins/os-sdlc/tests/lint/rubocop_delta_header_test.rb plugins/os-sdlc/tests/controller/project/cli_lint_init_seam_test.rb plugins/os-sdlc/tests/adapter/yaml_readers_test.rb#test_delta_report_failure_names_the_file ## Owner sketch Deletion. No object takes over. `OsSdlc::Boot::Onboarding` keeps `project-config` as its only subcommand. Run-time layering already exists in `OsSdlc::Lint::WorklistRubocopConfig#write` (lib/os_sdlc/lint/worklist_rubocop_config.rb); #1319 routes every rubocop call through it. ```ruby class OsSdlc::Boot::Onboarding < Thor def project_config(name = nil) end ``` Deleted constants: `OsSdlc::Lint::Setup`, `Lint::Setup::TargetRubyVersion`, `Lint::SetupCommand`, `Lint::RubocopDeltaHeader` (and `InheritFrom`, `InheritMode`), `Lint::RubocopDeltaClassification` (and `CopClassification`, `DeltaCopCheck`, `StockCopDefaults`). ## Origin - Trigger: Writing ADR-0298 in this session. - Improvised this session: none - Chain: Installer code remains ← ADR-0066 was superseded by ADR-0298 and the code was not removed ← DESIGN (docs/adr, ADR-0298) - Root candidate: none found; searched Lint::Setup, SetupCommand, RubocopDeltaHeader, lint-init, .rubocop-sdlc.yml, ADR-0298, delta_header, lint/setup VERDICT: CREATE - Where: plugins/os-sdlc/lib/os_sdlc/lint/setup.rb - Session: f4187368-5e7e-459d-80c6-ddf7620389cd - Transcript: /home/jared/.claude/projects/-home-jared-dev-cc-os/f4187368-5e7e-459d-80c6-ddf7620389cd.jsonl
Author
Owner

Work started on branch ticket-1320 (os-sdlc implement, AFK run approved 2026-10-25).

Work started on branch ticket-1320 (os-sdlc implement, AFK run approved 2026-10-25).
Author
Owner

Resolution

Done: Deleted the ADR-0066 lint installer: lint-init subcommand, Lint::Setup, Lint::SetupCommand, RubocopDeltaHeader, RubocopDeltaClassification, YamlMappingKey, YamlSequenceKey, templates/rubocop-base.yml, 6 retired tests and their support file. Exemption ladder and implementation-status docs now state the ADR-0298 run-time layering.

Evidence: main e2731626. os-sdlc suite 2545 runs, 0 failures, 0 errors. rubocop: no offenses on changed files. All 3 ACs and required-work checks 1-7 pass. Hand-finished after pipeline escalation 72 (deletion ticket, no red round); one design audit, no must-fix findings.

Follow-ups: none: external gems n8n-api#8 and caldotcom-api#5 already filed; stale lint-init mentions in docs/plans/os-sdlc-prune-set.md and plugins/os-sdlc/docs/plan-first-real-run.md are historical plans, dropped.

## Resolution **Done:** Deleted the ADR-0066 lint installer: lint-init subcommand, Lint::Setup, Lint::SetupCommand, RubocopDeltaHeader, RubocopDeltaClassification, YamlMappingKey, YamlSequenceKey, templates/rubocop-base.yml, 6 retired tests and their support file. Exemption ladder and implementation-status docs now state the ADR-0298 run-time layering. **Evidence:** main e2731626. os-sdlc suite 2545 runs, 0 failures, 0 errors. rubocop: no offenses on changed files. All 3 ACs and required-work checks 1-7 pass. Hand-finished after pipeline escalation 72 (deletion ticket, no red round); one design audit, no must-fix findings. **Follow-ups:** none: external gems n8n-api#8 and caldotcom-api#5 already filed; stale lint-init mentions in docs/plans/os-sdlc-prune-set.md and plugins/os-sdlc/docs/plan-first-real-run.md are historical plans, dropped.
jared closed this issue 2026-10-25 19:11:41 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
jared/cc-os#1320
No description provided.