ScopePolicy.load always falls back to test_path nil because Project.load requires target: #560
Labels
No labels
P0
P1
P2
P3
bug
category/code-change
category/cross-repo
category/eval-run
category/investigation
category/no-test-target
category/owner-ruling
category/prose-artifact
category/recurring-chore
category/structure
category/umbrella
crc-refactor
create
delete
enhancement
filed-by/agent
filed-by/user
frozen
lint-rule
needs-info
needs-triage
next
plugin/cc-architect
plugin/os
plugin/os-adr
plugin/os-aidd-lint
plugin/os-backlog
plugin/os-context
plugin/os-doc-hygiene
plugin/os-sdlc
plugin/os-vault
project/cc-os
ready-for-agent
ready-for-human
recurring
review
rule-proposal
update
waiting
wayfinder:grilling
wayfinder:map
wayfinder:map
wayfinder:research
wayfinder:task
wayfinder:task
wontfix
worklist/deviations
worklist/lint-rule
worklist/new-implement-build
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
jared/cc-os#560
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
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
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
Resolution
Done: The entire PreToolUse write-guard stack this ticket targets (WriteGuard, BashGuard, ScopePolicy, hooks/pre_tool_use.rb) was deleted before the bug could recur
Evidence: commit
4a5e0c30'refactor(os-sdlc): delete the PreToolUse write guard (#575, ADR-0182)' 2026-09-14 removed plugins/os-sdlc/lib/os_sdlc/scope_policy.rb, write_guard.rb, bash_guard.rb, hooks/pre_tool_use.rb, and hooks.json's PreToolUse entry; zero live denials found across all transcripts since 2026-08-18; find confirms scope_policy.rb no longer exists in the repoFollow-ups: none