Pass PATH into Inspector::ExecutablePath from the wiring instead of reading ENV in a default argument #1041

Open
opened 2026-10-16 19:24:36 +00:00 by jared · 0 comments
Owner

Problem

Backlog::Inspector::ExecutablePath#initialize(path = ENV.fetch("PATH", "")) reads the environment inside a library object (lens A6: the entry layer reads ENV, the library receives values).

Observed

Evidence: lib/backlog/inspector/executable_path.rb:5; lib/backlog/inspector/command.rb:7 builds ExecutablePath.new as a default; tests already inject a path (tests/support/inspect_command_sandbox.rb:11, tests/inspector/command_executable_path_test.rb:37). Ruling R29, follow-up 6.

Reproduce

n/a: ENV read found in a crc-refactor tuning run; the defect is structural, not a runtime failure.

Acceptance criteria

  1. ExecutablePath#initialize takes path as required with no ENV reference; Inspector::Command takes executables: with no default; cli_command_wiring.rb builds ExecutablePath.new(ENV.fetch("PATH", "")); inspect tests pass; grep finds no ENV under lib/backlog/inspector/.

Skeptic: VERDICT: CREATE — the ENV default is real; ruling R29 recorded it as a lens A6 gap.

Origin

  • Trigger: crc-refactor tuning run on plugins/os-backlog, branch crc-os-backlog-2026-10-16 (ledger docs/crc/os-backlog/ledger.tsv, rulings docs/crc/os-backlog/rulings.md).
  • Improvised this session: none
  • Chain: ENV read inside a library object in plugins/os-backlog ← ruling R29 recorded it as a lens A6 gap (docs/crc/os-backlog/rulings.md) ← DESIGN
  • Root candidate: none beyond this ticket
  • Where: plugins/os-backlog/lib/backlog/inspector/executable_path.rb
  • Session: a5e278ab-89aa-4ed6-adb4-b70820788f0c
  • Transcript: /home/jared/.claude/projects/-home-jared-dev-cc-os--claude-worktrees-crc-os-backlog-2026-10-16/a5e278ab-89aa-4ed6-adb4-b70820788f0c.jsonl
## Problem `Backlog::Inspector::ExecutablePath#initialize(path = ENV.fetch("PATH", ""))` reads the environment inside a library object (lens A6: the entry layer reads ENV, the library receives values). ## Observed Evidence: lib/backlog/inspector/executable_path.rb:5; lib/backlog/inspector/command.rb:7 builds `ExecutablePath.new` as a default; tests already inject a path (tests/support/inspect_command_sandbox.rb:11, tests/inspector/command_executable_path_test.rb:37). Ruling R29, follow-up 6. ## Reproduce n/a: ENV read found in a crc-refactor tuning run; the defect is structural, not a runtime failure. ## Acceptance criteria 1. `ExecutablePath#initialize` takes `path` as required with no ENV reference; `Inspector::Command` takes `executables:` with no default; cli_command_wiring.rb builds `ExecutablePath.new(ENV.fetch("PATH", ""))`; inspect tests pass; grep finds no `ENV` under lib/backlog/inspector/. Skeptic: VERDICT: CREATE — the ENV default is real; ruling R29 recorded it as a lens A6 gap. ## Origin - Trigger: crc-refactor tuning run on plugins/os-backlog, branch crc-os-backlog-2026-10-16 (ledger docs/crc/os-backlog/ledger.tsv, rulings docs/crc/os-backlog/rulings.md). - Improvised this session: none - Chain: ENV read inside a library object in plugins/os-backlog ← ruling R29 recorded it as a lens A6 gap (docs/crc/os-backlog/rulings.md) ← DESIGN - Root candidate: none beyond this ticket - Where: plugins/os-backlog/lib/backlog/inspector/executable_path.rb - Session: a5e278ab-89aa-4ed6-adb4-b70820788f0c - Transcript: /home/jared/.claude/projects/-home-jared-dev-cc-os--claude-worktrees-crc-os-backlog-2026-10-16/a5e278ab-89aa-4ed6-adb4-b70820788f0c.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#1041
No description provided.