Decide whether os-sdlc domain models move out of the Runner namespace #592

Open
opened 2026-09-15 13:42:44 +00:00 by jared · 0 comments
Owner

Context

On 2026-09-15 the user proposed that the os-sdlc domain models belong to OsSdlc, not to OsSdlc::Runner. The Runner is the orchestrator of the os-sdlc process. Implementation, Dispatch, Handoff, Agent and the other table-backed models can serve other processes, for example linting, that are not part of the Runner. This is a decision ticket, not a build ticket.

Observed

Eight model mixins live in plugins/os-sdlc/lib/os_sdlc/runner/: agent.rb, handoff.rb, dispatch.rb, step_result.rb, correction_round.rb, violations.rb, edge_spend.rb, implementation.rb. The registry runner/models.rb mixes them into per-db Sequel model classes. runner/models/base.rb holds the Sequel base class. The same directory holds the commands StartSubagent, CompletionIntake, and NextStep. Models and commands share one namespace.

Reproduce

n/a: architecture decision, nothing fails today.

Expected

A human decides whether the model mixins and Models registry move to OsSdlc::Models (directory lib/os_sdlc/models/), and if so records the decision as an ADR that amends ADR-0136 (collaborators nest under their owner namespace) and confirms ADR-0090 (Zeitwerk naming).

Tasks

  • Human: decide keep in Runner or move to OsSdlc::Models.
  • If move: /os-adr:create recording the decision and the ADR-0136 amendment.
  • If move: file a ready-for-agent rename ticket listing every file, constant, and require_relative to change, with the test suite as the acceptance gate.

Constraints

  • Every constant stays under OsSdlc. This code loads inside host projects, for example the rubocop cops; a bare top-level Handoff or Agent can collide with a host application constant.
  • No behavior change in the move; rename only.

Origin

  • Trigger: discussion after /os-sdlc:responsibility-audit plugins/os-sdlc/lib/os_sdlc/runner/implementation.rb (run 18)
  • Improvised this session: none
  • Chain: models and commands share the Runner namespace <- DESIGN (ADR-0136 collaborators nest under owner; ADR-0167 model registry in runner/models.rb)
  • Root candidate: this ticket
  • Where: plugins/os-sdlc/lib/os_sdlc/runner/models.rb
  • Session: b8f5c70a-9904-4ac3-9cea-77ba0aa5025c
  • Transcript: /home/jared/.claude/projects/-home-jared-dev-cc-os/b8f5c70a-9904-4ac3-9cea-77ba0aa5025c.jsonl
## Context On 2026-09-15 the user proposed that the os-sdlc domain models belong to `OsSdlc`, not to `OsSdlc::Runner`. The Runner is the orchestrator of the os-sdlc process. Implementation, Dispatch, Handoff, Agent and the other table-backed models can serve other processes, for example linting, that are not part of the Runner. This is a decision ticket, not a build ticket. ## Observed Eight model mixins live in `plugins/os-sdlc/lib/os_sdlc/runner/`: `agent.rb`, `handoff.rb`, `dispatch.rb`, `step_result.rb`, `correction_round.rb`, `violations.rb`, `edge_spend.rb`, `implementation.rb`. The registry `runner/models.rb` mixes them into per-db Sequel model classes. `runner/models/base.rb` holds the Sequel base class. The same directory holds the commands `StartSubagent`, `CompletionIntake`, and `NextStep`. Models and commands share one namespace. ## Reproduce n/a: architecture decision, nothing fails today. ## Expected A human decides whether the model mixins and `Models` registry move to `OsSdlc::Models` (directory `lib/os_sdlc/models/`), and if so records the decision as an ADR that amends ADR-0136 (collaborators nest under their owner namespace) and confirms ADR-0090 (Zeitwerk naming). ## Tasks - [ ] Human: decide keep in `Runner` or move to `OsSdlc::Models`. - [ ] If move: `/os-adr:create` recording the decision and the ADR-0136 amendment. - [ ] If move: file a ready-for-agent rename ticket listing every file, constant, and `require_relative` to change, with the test suite as the acceptance gate. ## Constraints - Every constant stays under `OsSdlc`. This code loads inside host projects, for example the rubocop cops; a bare top-level `Handoff` or `Agent` can collide with a host application constant. - No behavior change in the move; rename only. ## Origin - Trigger: discussion after `/os-sdlc:responsibility-audit plugins/os-sdlc/lib/os_sdlc/runner/implementation.rb` (run 18) - Improvised this session: none - Chain: models and commands share the `Runner` namespace <- `DESIGN` (ADR-0136 collaborators nest under owner; ADR-0167 model registry in `runner/models.rb`) - Root candidate: this ticket - Where: `plugins/os-sdlc/lib/os_sdlc/runner/models.rb` - Session: b8f5c70a-9904-4ac3-9cea-77ba0aa5025c - Transcript: /home/jared/.claude/projects/-home-jared-dev-cc-os/b8f5c70a-9904-4ac3-9cea-77ba0aa5025c.jsonl
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#592
No description provided.