Runner diff facts omit staged deletions, so verifier roles cannot see removed files #726

Open
opened 2026-09-25 16:58:30 +00:00 by jared · 1 comment
Owner

Problem

Implementation 47 of #712 deleted lib/os_sdlc/pipeline/lsp_daemon_lifecycle.rb and eight test files. The code_changes and test_changes facts given to behavior-verifier and test-reviewer carried no deletion entries. behavior-verifier marked acceptance criterion 3 (no lib reference to LspDaemonLifecycle) outstanding although grep -rl LspDaemonLifecycle plugins/os-sdlc/lib returned nothing and the file was gone. Its charter forbids running commands, so it had no other evidence. The orchestrator hand-verified and hand-finished.

Reproduce

  1. Open an implementation whose ticket deletes a lib file.
  2. Stage the deletion.
  3. Inspect the code_changes fact in the behavior-verifier brief; the deleted path is absent.

Approach

Required work:

  1. Include staged and unstaged deletions in the diff-fact builder with a deleted marker.
  2. Give retired_tests the same visibility for test deletions.

Acceptance criteria

  1. A fixture implementation with one staged file deletion shows it in code_changes and test_changes.
  2. behavior-verifier can pass a deletion-based acceptance criterion from the fact alone.

Origin

  • Session: ecfe6e11-0810-4431-88e5-8e24d34a239e
  • Transcript: /home/jared/.claude/projects/-home-jared-dev-cc-os/ecfe6e11-0810-4431-88e5-8e24d34a239e.jsonl
  • Where: plugins/os-sdlc/lib/os_sdlc (diff fact builder)
  • Parent: #712
  • VERDICT: CREATE — diff-fact builder drops staged/unstaged deletions, causing behavior-verifier/test-reviewer to hand-verify; no existing ticket covers this gap.
## Problem Implementation 47 of #712 deleted lib/os_sdlc/pipeline/lsp_daemon_lifecycle.rb and eight test files. The `code_changes` and `test_changes` facts given to behavior-verifier and test-reviewer carried no deletion entries. behavior-verifier marked acceptance criterion 3 (no lib reference to LspDaemonLifecycle) outstanding although `grep -rl LspDaemonLifecycle plugins/os-sdlc/lib` returned nothing and the file was gone. Its charter forbids running commands, so it had no other evidence. The orchestrator hand-verified and hand-finished. ## Reproduce 1. Open an implementation whose ticket deletes a lib file. 2. Stage the deletion. 3. Inspect the code_changes fact in the behavior-verifier brief; the deleted path is absent. ## Approach Required work: 1. Include staged and unstaged deletions in the diff-fact builder with a `deleted` marker. 2. Give `retired_tests` the same visibility for test deletions. ## Acceptance criteria 1. A fixture implementation with one staged file deletion shows it in code_changes and test_changes. 2. behavior-verifier can pass a deletion-based acceptance criterion from the fact alone. ## Origin - Session: ecfe6e11-0810-4431-88e5-8e24d34a239e - Transcript: /home/jared/.claude/projects/-home-jared-dev-cc-os/ecfe6e11-0810-4431-88e5-8e24d34a239e.jsonl - Where: plugins/os-sdlc/lib/os_sdlc (diff fact builder) - Parent: #712 - VERDICT: CREATE — diff-fact builder drops staged/unstaged deletions, causing behavior-verifier/test-reviewer to hand-verify; no existing ticket covers this gap.
Author
Owner

Resolution

Done: Mechanism: Brief::Facts code_changes/test_changes do not show the real increment. Occurrence: #887 "Show staged changes in the code_changes brief fact".

Evidence: #887 adds a second case: in #883 implementation 2, git rm staged deletions of maps/coding.yaml and maps/poodr-implementation.yaml were absent from code_changes, so behavior-verifier failed AC1/AC2 and test-writer hit unexpected_pass.

Follow-ups: none

## Resolution **Done:** Mechanism: Brief::Facts code_changes/test_changes do not show the real increment. Occurrence: #887 "Show staged changes in the code_changes brief fact". **Evidence:** #887 adds a second case: in #883 implementation 2, git rm staged deletions of maps/coding.yaml and maps/poodr-implementation.yaml were absent from code_changes, so behavior-verifier failed AC1/AC2 and test-writer hit unexpected_pass. **Follow-ups:** none
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#726
No description provided.