Rename Project::Yaml to Project::Config (coding map, no behavior change) #794

Closed
opened 2026-09-28 14:17:12 +00:00 by jared · 2 comments
Owner

Problem

Project::Yaml is .sdlc/project.yaml, so the domain name is Config (R2). Project::Setup stays: it acts on the Config. T3 frees the name.

Reproduce

n/a: rename only. No test can go red without a structure test (ADR-0224 item 3). Run on maps/coding.yaml.

Approach

Files: 11 lib (adapter/project/yaml.rb -> adapter/project/config.rb; parser/project/yaml/document.rb -> parser/project/config/document.rb; tracker_resolver, tracker/tea, autocorrect_prepass/pass, cli/project_config_command, implementation/open, issue_source, project/setup, controller/lint_worklist, presenter/cli/project_config_command/error_message) and 37 test files (mechanical).
ADRs cited: ADR-0224 (a rename is not an ADR), ADR-0194/0237 (Zeitwerk, one constant per file).

Required work:

  1. Rename the constant and the files with ast-grep. — check: ! grep -rn "Project::Yaml\b\|Yaml::Document" plugins/os-sdlc
  2. The full suite stays green. — check: ruby plugins/os-sdlc/tests/all.rb
  3. Update the names in the charters and skills. — check: ! grep -rn "Project::Yaml" plugins/os-sdlc/agents plugins/os-sdlc/skills docs/implementation-status

Rejected: Project::ConfigFile. The user ruled that the object IS the config.

Acceptance criteria

  1. Given the renamed tree, when the full suite and zeitwerk_eager_load_test.rb run, then both pass.

Owner sketch

class OsSdlc::Project::Config   # adapter/project/config.rb
  def self.load(dir, target:)
  def self.load_shared(dir)
end

Non-goals

Any behavior change.

Blocking edges

Blocked by: T3

Origin

  • Trigger: user ruling R2
  • Improvised this session: none
  • Chain: DESIGN: adapter/project/yaml.rb
  • Where: plugins/os-sdlc/lib/os_sdlc/adapter/project/yaml.rb
  • Session: bb36e383-017d-486e-809f-7ce25d151e61
  • Transcript: /home/jared/.claude/projects/-home-jared-dev-cc-os--claude-worktrees-crc-pass-os-sdlc/bb36e383-017d-486e-809f-7ce25d151e61.jsonl
## Problem `Project::Yaml` is `.sdlc/project.yaml`, so the domain name is Config (R2). `Project::Setup` stays: it acts on the Config. T3 frees the name. ## Reproduce n/a: rename only. No test can go red without a structure test (ADR-0224 item 3). Run on `maps/coding.yaml`. ## Approach Files: 11 lib (adapter/project/yaml.rb -> adapter/project/config.rb; parser/project/yaml/document.rb -> parser/project/config/document.rb; tracker_resolver, tracker/tea, autocorrect_prepass/pass, cli/project_config_command, implementation/open, issue_source, project/setup, controller/lint_worklist, presenter/cli/project_config_command/error_message) and 37 test files (mechanical). ADRs cited: ADR-0224 (a rename is not an ADR), ADR-0194/0237 (Zeitwerk, one constant per file). Required work: 1. Rename the constant and the files with ast-grep. — check: `! grep -rn "Project::Yaml\b\|Yaml::Document" plugins/os-sdlc` 2. The full suite stays green. — check: `ruby plugins/os-sdlc/tests/all.rb` 3. Update the names in the charters and skills. — check: `! grep -rn "Project::Yaml" plugins/os-sdlc/agents plugins/os-sdlc/skills docs/implementation-status` Rejected: `Project::ConfigFile`. The user ruled that the object IS the config. ## Acceptance criteria 1. Given the renamed tree, when the full suite and `zeitwerk_eager_load_test.rb` run, then both pass. ## Owner sketch ```ruby class OsSdlc::Project::Config # adapter/project/config.rb def self.load(dir, target:) def self.load_shared(dir) end ``` ## Non-goals Any behavior change. ## Blocking edges Blocked by: T3 ## Origin - Trigger: user ruling R2 - Improvised this session: none - Chain: DESIGN: adapter/project/yaml.rb - Where: plugins/os-sdlc/lib/os_sdlc/adapter/project/yaml.rb - Session: bb36e383-017d-486e-809f-7ce25d151e61 - Transcript: /home/jared/.claude/projects/-home-jared-dev-cc-os--claude-worktrees-crc-pass-os-sdlc/bb36e383-017d-486e-809f-7ce25d151e61.jsonl
Author
Owner

Work started on branch ticket-794 via /os-sdlc:implement (session bb36e383). #793 merged to main.

Work started on branch ticket-794 via /os-sdlc:implement (session bb36e383). #793 merged to main.
Author
Owner

Resolution

Done: Project::Yaml renamed Project::Config (adapter/project/config.rb), Yaml::Document renamed Config::Document (parser/project/config/document.rb), tests moved to mirror paths, every live reference updated; no behavior change.

Evidence: os-sdlc implementation 59 on the coding map, branch ticket-794: 5 dispatches, reviewer fail then pass, suite-check pass; grep for Project::Yaml across lib bin agents skills tests returns nothing; Zeitwerk eager load clean; commit 86e5af55

Follow-ups: reviewer LENS A1 line: Project#tracker_required_message renders a reader-facing message inside the model (pre-existing); carried to #795 as a comment, no lens edit proposed

## Resolution **Done:** Project::Yaml renamed Project::Config (adapter/project/config.rb), Yaml::Document renamed Config::Document (parser/project/config/document.rb), tests moved to mirror paths, every live reference updated; no behavior change. **Evidence:** os-sdlc implementation 59 on the coding map, branch ticket-794: 5 dispatches, reviewer fail then pass, suite-check pass; grep for Project::Yaml across lib bin agents skills tests returns nothing; Zeitwerk eager load clean; commit 86e5af55 **Follow-ups:** reviewer LENS A1 line: Project#tracker_required_message renders a reader-facing message inside the model (pre-existing); carried to #795 as a comment, no lens edit proposed
jared closed this issue 2026-09-28 16:03:21 +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#794
No description provided.