Merge ChangedProjectFixture and GateCommandsProjectFixture into one WorkingTreeChangesFixture #1269

Closed
opened 2026-10-23 18:30:48 +00:00 by jared · 2 comments
Owner

Problem

tests/support/changed_project_fixture.rb and tests/support/gate_commands_project_fixture.rb each build a throwaway git project whose changed files a test writes. GateCommandsProjectFixture is a near subset of ChangedProjectFixture: the same seed, and writers with the same bodies under other names (write_diffed_file, write_changed_file). Two copies drift apart.

Reproduce

n/a: design duplication, nothing fails.

Approach

One fixture, WorkingTreeChangesFixture (the name R13 and S14 give the concept). The tests of both fixtures include it. The CRC run 4 final judgment round predicted this merge at 85%. The run did not apply it, because a merge is never a CRC verdict.

Origin

  • Trigger: CRC run 4 final judgment round (ledger question cells, commit 123ac007)
  • Improvised this session: none
  • Chain: duplicate test fixture ← two tickets each added a git-project fixture ← DESIGN (plugins/os-sdlc/tests/support/gate_commands_project_fixture.rb)
  • Root candidate: none found; searched fixture, WorkingTree, ChangedProjectFixture, GateCommandsProjectFixture, merge
  • Where: plugins/os-sdlc/tests/support/changed_project_fixture.rb, plugins/os-sdlc/tests/support/gate_commands_project_fixture.rb
  • Session: c1bedec6-7e01-45ab-b9db-22d63652c19f
  • Transcript: /home/jared/.claude/projects/-home-jared-dev-cc-os--claude-worktrees-crc-os-sdlc-run-4/c1bedec6-7e01-45ab-b9db-22d63652c19f.jsonl

VERDICT: CREATE

## Problem tests/support/changed_project_fixture.rb and tests/support/gate_commands_project_fixture.rb each build a throwaway git project whose changed files a test writes. GateCommandsProjectFixture is a near subset of ChangedProjectFixture: the same seed, and writers with the same bodies under other names (write_diffed_file, write_changed_file). Two copies drift apart. ## Reproduce n/a: design duplication, nothing fails. ## Approach One fixture, `WorkingTreeChangesFixture` (the name R13 and S14 give the concept). The tests of both fixtures include it. The CRC run 4 final judgment round predicted this merge at 85%. The run did not apply it, because a merge is never a CRC verdict. ## Origin - Trigger: CRC run 4 final judgment round (ledger question cells, commit 123ac007) - Improvised this session: none - Chain: duplicate test fixture ← two tickets each added a git-project fixture ← DESIGN (plugins/os-sdlc/tests/support/gate_commands_project_fixture.rb) - Root candidate: none found; searched fixture, WorkingTree, ChangedProjectFixture, GateCommandsProjectFixture, merge - Where: plugins/os-sdlc/tests/support/changed_project_fixture.rb, plugins/os-sdlc/tests/support/gate_commands_project_fixture.rb - Session: c1bedec6-7e01-45ab-b9db-22d63652c19f - Transcript: /home/jared/.claude/projects/-home-jared-dev-cc-os--claude-worktrees-crc-os-sdlc-run-4/c1bedec6-7e01-45ab-b9db-22d63652c19f.jsonl VERDICT: CREATE
Author
Owner

Work started on branch fast-batch-22: merged with the #1463 rename into WorkingTreeChangesScenario (a Scenario, because it writes disk and git).

Work started on branch fast-batch-22: merged with the #1463 rename into WorkingTreeChangesScenario (a Scenario, because it writes disk and git).
Author
Owner

Resolution

Done: ChangedProjectFixture and GateCommandsProjectFixture merged into one WorkingTreeChangesScenario (Scenario, because it writes disk and git; the predicted merge plus the #1463 rename).

Evidence: fast-batch-22 merged to main 5f32ca8f; commits af7f61df, 4ae19f04 (commit now fails loudly), d065d473 (locals renamed). Seeds were byte-identical; write_diffed_file folded into write_changed_file. Full suite 2904 runs, 0 failures.

Follow-ups: none

## Resolution **Done:** ChangedProjectFixture and GateCommandsProjectFixture merged into one WorkingTreeChangesScenario (Scenario, because it writes disk and git; the predicted merge plus the #1463 rename). **Evidence:** fast-batch-22 merged to main 5f32ca8f; commits af7f61df, 4ae19f04 (commit now fails loudly), d065d473 (locals renamed). Seeds were byte-identical; write_diffed_file folded into write_changed_file. Full suite 2904 runs, 0 failures. **Follow-ups:** none
jared closed this issue 2026-10-28 19:00:11 +00:00
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#1269
No description provided.