Make the REPO role see network stores and stop counting input reads as storage #1584

Open
opened 2026-11-06 14:31:05 +00:00 by jared · 0 comments
Owner

Problem

The Repository role in the catalog cannot see a store that uses the network, and it counts every file read as storage. ClassFacts#storage? is true only for File, Dir, and FileUtils calls. ForgejoBackend does the real ticket storage, but it fits Client. 13 os-backlog classes fit Repository, including CliOptions and JsonFile. The single R2 offense in os-backlog issue-edit is an input read: File.read(options[:body_file]) at plugins/os-backlog/lib/backlog/cli/issue_commands.rb:23. That one line changes 11 grid cells. A reader cannot judge the REPO column of the grid.

Observed

The gauge gives os-backlog issue-edit a REPO distance of 1 / 19 = 0.053, band candidate. No class in its Repository role touches ticket data, and no Ticket class exists. Evidence: docs/system-design-format/proof/2026-11-06-repository-pattern-page.html.

Reproduce

plugins/os-sdlc/bin/system-model gauge --json

Origin

  • Trigger: the pilot Repository page for #1581 on 2026-11-06.
  • Improvised this session: none
  • Chain: the REPO column misleads ← ForgejoBackend fits Client and input reads count as R2 ← storage? means file calls only (plugins/os-sdlc/lib/os_sdlc/system_model/class_facts.rb:42). End: DESIGN (plugins/os-sdlc/lib/os_sdlc/system_model/catalog/repository.rb).
  • Root candidate: none found; searched storage?, ForgejoBackend, catalog/repository, Repository role, REPO column, R2
  • Where: plugins/os-sdlc/lib/os_sdlc/system_model/catalog/repository.rb
  • Session: 9cb985cb-b739-445b-8657-5a81821536a3
  • Transcript: /home/jared/.claude/projects/-home-jared-dev-cc-os/9cb985cb-b739-445b-8657-5a81821536a3.jsonl

VERDICT: CREATE

## Problem The Repository role in the catalog cannot see a store that uses the network, and it counts every file read as storage. `ClassFacts#storage?` is true only for `File`, `Dir`, and `FileUtils` calls. `ForgejoBackend` does the real ticket storage, but it fits Client. 13 os-backlog classes fit Repository, including `CliOptions` and `JsonFile`. The single R2 offense in `os-backlog issue-edit` is an input read: `File.read(options[:body_file])` at `plugins/os-backlog/lib/backlog/cli/issue_commands.rb:23`. That one line changes 11 grid cells. A reader cannot judge the REPO column of the grid. ## Observed The gauge gives `os-backlog issue-edit` a REPO distance of 1 / 19 = 0.053, band candidate. No class in its Repository role touches ticket data, and no `Ticket` class exists. Evidence: `docs/system-design-format/proof/2026-11-06-repository-pattern-page.html`. ## Reproduce ``` plugins/os-sdlc/bin/system-model gauge --json ``` ## Origin - Trigger: the pilot Repository page for #1581 on 2026-11-06. - Improvised this session: none - Chain: the REPO column misleads ← `ForgejoBackend` fits Client and input reads count as R2 ← `storage?` means file calls only (`plugins/os-sdlc/lib/os_sdlc/system_model/class_facts.rb:42`). End: `DESIGN` (`plugins/os-sdlc/lib/os_sdlc/system_model/catalog/repository.rb`). - Root candidate: none found; searched storage?, ForgejoBackend, catalog/repository, Repository role, REPO column, R2 - Where: `plugins/os-sdlc/lib/os_sdlc/system_model/catalog/repository.rb` - Session: 9cb985cb-b739-445b-8657-5a81821536a3 - Transcript: /home/jared/.claude/projects/-home-jared-dev-cc-os/9cb985cb-b739-445b-8657-5a81821536a3.jsonl VERDICT: CREATE
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#1584
No description provided.