Move os-sdlc to the A15 domain-first layout #946

Closed
opened 2026-10-04 20:28:52 +00:00 by jared · 3 comments
Owner

Problem

ADR-0272 requires every cc-os Ruby plugin to use the domain-first layout. os-sdlc still uses role directories.

Reproduce

n/a: design ticket.

Approach

Move os-sdlc to the A15 layout after the two blockers land. Blocked by #935 (the inward-dependency lint must read a file's role from its name or the ledger, not its path) and by #945 (crc-refactor skill update). File list: docs/crc/os-adr/lens-challenge-a1.md section "Files that change with the lens", under "Code, os-sdlc".

Dependencies to change:

  • plugins/os-sdlc/lib/os_sdlc.rb:23-26 collapse list.
  • plugins/os-sdlc/lib/os_sdlc/lint/inward_dependencies.rb: ROLE_LAYER.fetch at line 107 raises on a domain directory.
  • plugins/os-sdlc/lib/os_sdlc/cops/registry_outside_entry_point.rb:12,16 and row_index_on_model.rb:16: allowed paths name **/model/** and **/controller/**.

Required work:

  1. Remove the role-directory collapse list — check: absent model in plugins/os-sdlc/lib/os_sdlc.rb

Acceptance criteria

  1. Given os-sdlc after the move, when the inward-dependency lint runs, then it raises no error on a domain directory.
  2. Given os-sdlc after the move, when the suite runs, then it is green.

Origin

  • Trigger: ADR-0272 accepted; os-adr moved first on branch crc-os-adr-2026-10-04.
  • Improvised this session: none
  • Chain: os-sdlc uses role directories ← predates A15 ← DESIGN (ADR-0272)
  • Root candidate: none
  • Where: plugins/os-sdlc/lib/os_sdlc.rb
  • Session: ed701ed0-1700-4d83-93da-30abc0fa9a77
  • Transcript: /home/jared/.claude/projects/-home-jared-dev-cc-os--claude-worktrees-crc-os-adr-2026-10-04/ed701ed0-1700-4d83-93da-30abc0fa9a77.jsonl

VERDICT: CREATE

## Problem ADR-0272 requires every cc-os Ruby plugin to use the domain-first layout. os-sdlc still uses role directories. ## Reproduce n/a: design ticket. ## Approach Move os-sdlc to the A15 layout after the two blockers land. Blocked by #935 (the inward-dependency lint must read a file's role from its name or the ledger, not its path) and by #945 (crc-refactor skill update). File list: `docs/crc/os-adr/lens-challenge-a1.md` section "Files that change with the lens", under "Code, os-sdlc". Dependencies to change: - `plugins/os-sdlc/lib/os_sdlc.rb:23-26` collapse list. - `plugins/os-sdlc/lib/os_sdlc/lint/inward_dependencies.rb`: `ROLE_LAYER.fetch` at line 107 raises on a domain directory. - `plugins/os-sdlc/lib/os_sdlc/cops/registry_outside_entry_point.rb:12,16` and `row_index_on_model.rb:16`: allowed paths name `**/model/**` and `**/controller/**`. Required work: 1. Remove the role-directory collapse list — check: absent `model` in `plugins/os-sdlc/lib/os_sdlc.rb` ## Acceptance criteria 1. Given os-sdlc after the move, when the inward-dependency lint runs, then it raises no error on a domain directory. 2. Given os-sdlc after the move, when the suite runs, then it is green. ## Origin - Trigger: ADR-0272 accepted; os-adr moved first on branch crc-os-adr-2026-10-04. - Improvised this session: none - Chain: os-sdlc uses role directories ← predates A15 ← DESIGN (ADR-0272) - Root candidate: none - Where: plugins/os-sdlc/lib/os_sdlc.rb - Session: ed701ed0-1700-4d83-93da-30abc0fa9a77 - Transcript: /home/jared/.claude/projects/-home-jared-dev-cc-os--claude-worktrees-crc-os-adr-2026-10-04/ed701ed0-1700-4d83-93da-30abc0fa9a77.jsonl VERDICT: CREATE
Author
Owner

Blocked by #935 (the inward-dependency lint must read a file's role from the class name suffix or the crc ledger job_category column, not from the path) and by #945 (crc-refactor skill update to A15).

Blocked by #935 (the inward-dependency lint must read a file's role from the class name suffix or the crc ledger job_category column, not from the path) and by #945 (crc-refactor skill update to A15).
Author
Owner

Scope note from implementation 45 (#1005, 2026-10-15): the lens A15 challenge found that plugins/os-sdlc/eval/ticket-takedown/lib/takedown also uses role directories (adapter/, command/, model/, presenter/, query/). Consider widening this ticket to that lib. Do the move after #1009 lands, because #1009 moves the only LintRun reference to controller/run_cli.rb.

Scope note from implementation 45 (#1005, 2026-10-15): the lens A15 challenge found that plugins/os-sdlc/eval/ticket-takedown/lib/takedown also uses role directories (adapter/, command/, model/, presenter/, query/). Consider widening this ticket to that lib. Do the move after #1009 lands, because #1009 moves the only LintRun reference to controller/run_cli.rb.
Author
Owner

Resolution

Done: Folded into the os-sdlc crc-refactor umbrella #835; the still-live requirements are recorded in a #835 comment.

Evidence: Skill is already A15 (172c798c, #945); #935 blocker is stale; docs/crc/PLAN.md Phase 1 runs os-sdlc under #835.

Follow-ups: folded into #835

## Resolution **Done:** Folded into the os-sdlc crc-refactor umbrella #835; the still-live requirements are recorded in a #835 comment. **Evidence:** Skill is already A15 (172c798c, #945); #935 blocker is stale; docs/crc/PLAN.md Phase 1 runs os-sdlc under #835. **Follow-ups:** folded into #835
jared closed this issue 2026-10-16 16:22:25 +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#946
No description provided.