ScopePolicy.load always falls back to test_path nil because Project.load requires target: #560

Open
opened 2026-09-11 20:04:04 +00:00 by jared · 0 comments
Owner

Context

OsSdlc::ScopePolicy.load calls OsSdlc::Project.load.test_path with no target: keyword.
Project.load declares target: as a required keyword.
The call raises ArgumentError on every invocation.
A bare rescue StandardError swallows it and returns new(test_path: nil).
Found by the first run of the audit-only os-sdlc:responsibility-auditor agent on 2026-09-11 and verified by reading both files.

Observed

WriteGuard always runs with test_path: nil.
Any scope policy that depends on the project's test path is inert.

Reproduce

ruby -e 'require "./plugins/os-sdlc/lib/os_sdlc"; p OsSdlc::ScopePolicy.load'

Inspect test_path in the output.

Expected

ScopePolicy.load passes a target, or Project.load accepts a default.
The rescue narrows to the missing-project case or fails loudly.

Origin

Trigger: os-sdlc:responsibility-auditor audit run session 61ec076e on 2026-09-11
Improvised this session: none
Chain: ArgumentError on Project.load call ← missing target: keyword ← DESIGN
Root candidate: none
Where: plugins/os-sdlc/lib/os_sdlc/scope_policy.rb
Session: 3615bdb2-1809-42fc-9997-dc8734583302
Transcript: /home/jared/.claude/projects/-home-jared-dev-cc-os/3615bdb2-1809-42fc-9997-dc8734583302.jsonl

## Context OsSdlc::ScopePolicy.load calls OsSdlc::Project.load.test_path with no target: keyword. Project.load declares target: as a required keyword. The call raises ArgumentError on every invocation. A bare rescue StandardError swallows it and returns new(test_path: nil). Found by the first run of the audit-only os-sdlc:responsibility-auditor agent on 2026-09-11 and verified by reading both files. ## Observed WriteGuard always runs with test_path: nil. Any scope policy that depends on the project's test path is inert. ## Reproduce ``` ruby -e 'require "./plugins/os-sdlc/lib/os_sdlc"; p OsSdlc::ScopePolicy.load' ``` Inspect test_path in the output. ## Expected ScopePolicy.load passes a target, or Project.load accepts a default. The rescue narrows to the missing-project case or fails loudly. ## Origin Trigger: os-sdlc:responsibility-auditor audit run session 61ec076e on 2026-09-11 Improvised this session: none Chain: ArgumentError on Project.load call ← missing target: keyword ← DESIGN Root candidate: none Where: plugins/os-sdlc/lib/os_sdlc/scope_policy.rb Session: 3615bdb2-1809-42fc-9997-dc8734583302 Transcript: /home/jared/.claude/projects/-home-jared-dev-cc-os/3615bdb2-1809-42fc-9997-dc8734583302.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#560
No description provided.