Lens proposal: A12 target-root rule copied in Boot::Commands.scan_root #1528

Open
opened 2026-11-03 15:30:39 +00:00 by jared · 0 comments
Owner

Problem

Boot::Commands.scan_root (plugins/os-sdlc/lib/os_sdlc/boot/commands.rb:150) computes File.join(root, project.target.path). Project::Target#lint_path(root) (plugins/os-sdlc/lib/os_sdlc/project/target.rb:19) already owns this target-root rule. The rule now has two copies (lens A12). The contract-auditor of implementation 225 marked the break JUSTIFIED: yes, because the #1516 Approach and its required-work check pin the literal text. The lens challenge found a code defect: a ticket plan is a process fact, not a code reason, and the five earlier A12 signals are all code verdicts for a second copy of a rule.

LENS line: LENS: A12 broken at plugins/os-sdlc/lib/os_sdlc/boot/commands.rb:150 -- BREAKS: File.join(root, project.target.path) copies Project::Target#lint_path(root) (project/target.rb:19), a second copy of the target-root rule; JUSTIFIED: yes, Approach step 3 and the required-work check pin the literal project.target.path in commands.rb; PROPOSAL: NONE for the lens; a later tidy can rename lint_path to a neutral target-root name and call it from both senders.

Challenge verdict: code defect found. Smallest fix: in Project[root:] then project.target.lint_path(root). A rename of lint_path to a neutral target-root name is a separate tidy.

Run ticket: #1516.

Reproduce

n/a: lens proposal from implementation 225.

Origin

  • Trigger: /os-sdlc:implement 1516, contract-auditor dispatch 2067 LENS line, opus lens challenge
  • Improvised this session: none
  • Chain: duplicated target-root rule ← #1516 required-work check pinned the literal ← DESIGN #1516 Approach step 3
  • Root candidate: none found; searched scan_root, lint_path, Boot::Commands, target-root, A12
  • Where: plugins/os-sdlc/lib/os_sdlc/boot/commands.rb
  • Session: cc05262b-5edf-4587-a1fc-bdc8e26b9a45
  • Transcript: /home/jared/.claude/projects/-home-jared-dev-cc-os/cc05262b-5edf-4587-a1fc-bdc8e26b9a45.jsonl

VERDICT: CREATE

## Problem `Boot::Commands.scan_root` (`plugins/os-sdlc/lib/os_sdlc/boot/commands.rb:150`) computes `File.join(root, project.target.path)`. `Project::Target#lint_path(root)` (`plugins/os-sdlc/lib/os_sdlc/project/target.rb:19`) already owns this target-root rule. The rule now has two copies (lens A12). The contract-auditor of implementation 225 marked the break `JUSTIFIED: yes`, because the #1516 Approach and its required-work check pin the literal text. The lens challenge found a code defect: a ticket plan is a process fact, not a code reason, and the five earlier A12 signals are all `code` verdicts for a second copy of a rule. LENS line: `LENS: A12 broken at plugins/os-sdlc/lib/os_sdlc/boot/commands.rb:150 -- BREAKS: File.join(root, project.target.path) copies Project::Target#lint_path(root) (project/target.rb:19), a second copy of the target-root rule; JUSTIFIED: yes, Approach step 3 and the required-work check pin the literal project.target.path in commands.rb; PROPOSAL: NONE for the lens; a later tidy can rename lint_path to a neutral target-root name and call it from both senders.` Challenge verdict: code defect found. Smallest fix: `in Project[root:] then project.target.lint_path(root)`. A rename of `lint_path` to a neutral target-root name is a separate tidy. Run ticket: #1516. ## Reproduce n/a: lens proposal from implementation 225. ## Origin - Trigger: /os-sdlc:implement 1516, contract-auditor dispatch 2067 LENS line, opus lens challenge - Improvised this session: none - Chain: duplicated target-root rule ← #1516 required-work check pinned the literal ← DESIGN #1516 Approach step 3 - Root candidate: none found; searched scan_root, lint_path, Boot::Commands, target-root, A12 - Where: plugins/os-sdlc/lib/os_sdlc/boot/commands.rb - Session: cc05262b-5edf-4587-a1fc-bdc8e26b9a45 - Transcript: /home/jared/.claude/projects/-home-jared-dev-cc-os/cc05262b-5edf-4587-a1fc-bdc8e26b9a45.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#1528
No description provided.