CRC wave 4: apply CopSource, Cops, ProjectConfig renames and moves #1268

Closed
opened 2026-10-23 18:27:39 +00:00 by jared · 2 comments
Owner

Problem

Apply 4 ledger rows (rename and move) for CopSource, Cops, ProjectConfig. Each row's path, constant, and test path change as listed in Approach.

Reproduce

n/a: structure-only refactor, no behavior change.

Approach

  1. Required work, in order:
    1. plugins/os-sdlc/lib/os_sdlc/cop_source.rb -> plugins/os-sdlc/lib/os_sdlc/cops/cop_source.rb
      • constant: OsSdlc::CopSource -> RuboCop::Cop::Sdlc::Structural::CopSource
      • test: plugins/os-sdlc/tests/cop_source_test.rb -> plugins/os-sdlc/tests/cops/cop_source_test.rb
    2. plugins/os-sdlc/lib/os_sdlc/effect_call.rb -> plugins/os-sdlc/lib/os_sdlc/cops/effect_in_model/effect_call.rb
      • constant: OsSdlc::EffectCall -> RuboCop::Cop::Sdlc::Structural::EffectInModel::EffectCall
      • test: no test file
    3. plugins/os-sdlc/lib/os_sdlc/project/config.rb -> plugins/os-sdlc/lib/os_sdlc/project_config.rb
      • constant: OsSdlc::Project::Config -> OsSdlc::ProjectConfig
      • test: plugins/os-sdlc/tests/project/config_check_retired_commit_key_test.rb -> plugins/os-sdlc/tests/project_config_check_retired_commit_key_test.rb, plugins/os-sdlc/tests/project/config_check_target_path_test.rb -> plugins/os-sdlc/tests/project_config_check_target_path_test.rb, plugins/os-sdlc/tests/project/config_command_missing_message_test.rb -> plugins/os-sdlc/tests/project_config_command_missing_message_test.rb, plugins/os-sdlc/tests/project/config_load_selected_test.rb -> plugins/os-sdlc/tests/project_config_load_selected_test.rb, plugins/os-sdlc/tests/project/config_path_root_test.rb -> plugins/os-sdlc/tests/project_config_path_root_test.rb, plugins/os-sdlc/tests/project/config_test.rb -> plugins/os-sdlc/tests/project_config_test.rb
    4. plugins/os-sdlc/lib/os_sdlc/project/config/document.rb -> plugins/os-sdlc/lib/os_sdlc/project_config/document.rb
      • constant: OsSdlc::Project::Config::Document -> OsSdlc::ProjectConfig::Document
      • test: no test file
        Before you finish, grep the repository for each old file path and each old constant, not only the constant. Config and docs keep old paths (for example .rubocop.yml, loader collapse lists).
  2. Governing rulings:
    • R44
    • R107
    • R114

Acceptance criteria

  • Every named ledger row is applied, or logged in deviations.md, or reported blocked.
  • cd plugins/os-sdlc && ruby tests/all.rb 0 failures.
  • ruby -e 'require "./plugins/os-sdlc/lib/os_sdlc"; OsSdlc::Db.connect!(":memory:"); OsSdlc.loader.eager_load' silent.

Owner sketch

Each constant matches its new path; callers follow the new name.

Non-goals

  • No behavior change.
  • No new tests.
  • No deletion of code that has callers.

Origin

  • Session: c1bedec6-7e01-45ab-b9db-22d63652c19f
  • Transcript: /home/jared/.claude/projects/-home-jared-dev-cc-os--claude-worktrees-crc-os-sdlc-run-4/c1bedec6-7e01-45ab-b9db-22d63652c19f.jsonl
  • Where: plugins/os-sdlc/lib/os_sdlc/cop_source.rb, plugins/os-sdlc/lib/os_sdlc/effect_call.rb, plugins/os-sdlc/lib/os_sdlc/project/config.rb, plugins/os-sdlc/lib/os_sdlc/project/config/document.rb
  • CRC refactor run: docs/crc/os-sdlc.
  • Ledger: docs/crc/os-sdlc/ledger.tsv
  • Wave: 4.
## Problem Apply 4 ledger rows (rename and move) for CopSource, Cops, ProjectConfig. Each row's path, constant, and test path change as listed in Approach. ## Reproduce n/a: structure-only refactor, no behavior change. ## Approach 1. Required work, in order: 1. `plugins/os-sdlc/lib/os_sdlc/cop_source.rb` -> `plugins/os-sdlc/lib/os_sdlc/cops/cop_source.rb` - constant: `OsSdlc::CopSource` -> `RuboCop::Cop::Sdlc::Structural::CopSource` - test: `plugins/os-sdlc/tests/cop_source_test.rb` -> `plugins/os-sdlc/tests/cops/cop_source_test.rb` 2. `plugins/os-sdlc/lib/os_sdlc/effect_call.rb` -> `plugins/os-sdlc/lib/os_sdlc/cops/effect_in_model/effect_call.rb` - constant: `OsSdlc::EffectCall` -> `RuboCop::Cop::Sdlc::Structural::EffectInModel::EffectCall` - test: no test file 3. `plugins/os-sdlc/lib/os_sdlc/project/config.rb` -> `plugins/os-sdlc/lib/os_sdlc/project_config.rb` - constant: `OsSdlc::Project::Config` -> `OsSdlc::ProjectConfig` - test: `plugins/os-sdlc/tests/project/config_check_retired_commit_key_test.rb` -> `plugins/os-sdlc/tests/project_config_check_retired_commit_key_test.rb`, `plugins/os-sdlc/tests/project/config_check_target_path_test.rb` -> `plugins/os-sdlc/tests/project_config_check_target_path_test.rb`, `plugins/os-sdlc/tests/project/config_command_missing_message_test.rb` -> `plugins/os-sdlc/tests/project_config_command_missing_message_test.rb`, `plugins/os-sdlc/tests/project/config_load_selected_test.rb` -> `plugins/os-sdlc/tests/project_config_load_selected_test.rb`, `plugins/os-sdlc/tests/project/config_path_root_test.rb` -> `plugins/os-sdlc/tests/project_config_path_root_test.rb`, `plugins/os-sdlc/tests/project/config_test.rb` -> `plugins/os-sdlc/tests/project_config_test.rb` 4. `plugins/os-sdlc/lib/os_sdlc/project/config/document.rb` -> `plugins/os-sdlc/lib/os_sdlc/project_config/document.rb` - constant: `OsSdlc::Project::Config::Document` -> `OsSdlc::ProjectConfig::Document` - test: no test file Before you finish, grep the repository for each old file path and each old constant, not only the constant. Config and docs keep old paths (for example .rubocop.yml, loader collapse lists). 2. Governing rulings: - R44 - R107 - R114 ## Acceptance criteria - Every named ledger row is applied, or logged in deviations.md, or reported blocked. - `cd plugins/os-sdlc && ruby tests/all.rb` 0 failures. - `ruby -e 'require "./plugins/os-sdlc/lib/os_sdlc"; OsSdlc::Db.connect!(":memory:"); OsSdlc.loader.eager_load'` silent. ## Owner sketch Each constant matches its new path; callers follow the new name. ## Non-goals - No behavior change. - No new tests. - No deletion of code that has callers. ## Origin - Session: c1bedec6-7e01-45ab-b9db-22d63652c19f - Transcript: /home/jared/.claude/projects/-home-jared-dev-cc-os--claude-worktrees-crc-os-sdlc-run-4/c1bedec6-7e01-45ab-b9db-22d63652c19f.jsonl - Where: plugins/os-sdlc/lib/os_sdlc/cop_source.rb, plugins/os-sdlc/lib/os_sdlc/effect_call.rb, plugins/os-sdlc/lib/os_sdlc/project/config.rb, plugins/os-sdlc/lib/os_sdlc/project/config/document.rb - CRC refactor run: docs/crc/os-sdlc. - Ledger: docs/crc/os-sdlc/ledger.tsv - Wave: 4.
Author
Owner

Commits b994c21c, 6fa56585, bcc1890c; rows applied 4/4; rows deviated 1 (ProjectConfig inward edges, A10); rows blocked 0

Commits b994c21c, 6fa56585, bcc1890c; rows applied 4/4; rows deviated 1 (ProjectConfig inward edges, A10); rows blocked 0
Author
Owner

Resolution

Done: CopSource moved to RuboCop::Cop::Sdlc::Structural::CopSource and EffectCall to ...EffectInModel::EffectCall. The Project::Config -> ProjectConfig move (bcc1890c) was reverted by 919748c9, because it added the cycle-edge pair Project<->ProjectConfig; both rows are keep.

Evidence: Commits b994c21c 6fa56585 919748c9, ledger 3215a3f8 f698cb3e; suite 2458 runs 0 failures after the revert; cycle-edges 2; crc-ledger-check and crc-placement exit 0; deviation in docs/crc/os-sdlc/deviations.md.

Follow-ups: none filed; R107 needs a new placement ruling, recorded in docs/crc/os-sdlc/HANDOFF.md run 4 Review (Note for the next run)

## Resolution **Done:** CopSource moved to RuboCop::Cop::Sdlc::Structural::CopSource and EffectCall to ...EffectInModel::EffectCall. The Project::Config -> ProjectConfig move (bcc1890c) was reverted by 919748c9, because it added the cycle-edge pair Project<->ProjectConfig; both rows are keep. **Evidence:** Commits b994c21c 6fa56585 919748c9, ledger 3215a3f8 f698cb3e; suite 2458 runs 0 failures after the revert; cycle-edges 2; crc-ledger-check and crc-placement exit 0; deviation in docs/crc/os-sdlc/deviations.md. **Follow-ups:** none filed; R107 needs a new placement ruling, recorded in docs/crc/os-sdlc/HANDOFF.md run 4 Review (Note for the next run)
jared closed this issue 2026-10-23 18:43:40 +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#1268
No description provided.