Repository navigation
Test the Architect run's and Pickup run's skip rules in-process behind a Pass seam - #375
Merged
Merged
Conversation
…d a Pass seam (#374) A new Pass module holds the one seam both runs' gates read and change GitHub through: the open and closed listings by label, one label Edit, the Ready issue search's answer and a progress line. Each run's gates become one function returning its decision, tested against a shared in-memory adapter that records every call. The Sweep and the Claim-limit count leave the Claim module for the Pickup run's gates. Both entry points record each skip, the lock's included, through one step. The end-to-end tests that only checked gate order or a skip line go, and CONTEXT.md defines the Pass. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Both Passes now run their gates through one Pass seam. Each run's gates are a single function that returns a decision. The unit tests drive that function against an in-memory adapter.
claim.rsno longer hassweeporopen_count. It keepsin-progressand the Claim's own making and ending.CONTEXT.mdgains the term Pass.Evidence
Before: gate order and skip lines were checked only by end-to-end tests that run the binary against a fake
gh.After: 20 new in-process gate tests in
architect::testsandpickup::tests, for example:15 end-to-end tests were deleted because they only checked gate order or a skip line's wording: 8 in
architect_run, 7 inpickup_run. Every lock, notification and preflight test is kept. So is each end-to-end test the issue lists.cargo testpasses all 32 suites with 0 failures, andcargo clippy --all-targetsandcargo fmt --checkare clean.Merge Danger
Door: two-way
It is an internal refactor: no skip line, exit code or GitHub read or write changes.
Blast Radius: Passes
A mistake would show up as an Architect run or a Pickup run skipping, or not skipping, wrongly. The kept end-to-end tests still cover each skip reason through the real binary.
Unaddressed findings
Standards
cfg(test)accessors onEdit(issue,changes,labels_after): kept. The issue asks the in-memory adapter to record which issue an Edit is for and what it takes off and puts on, andEditdoesn't expose that otherwise. They are test-only.claim.rs(Feature Envy onclaim::IN_PROGRESS): kept. The issue explicitly decides that the Sweep moves into the Pickup run's gates.Decisionenum, adapter construction and thedecidehelper duplicated across the two runs: kept. The variants differ (GoAheadvsTake(ReadyIssue)), and a genericDecision<T>would add abstraction for very little gain.boolfor "is a Spec" and tuple returns in the test helpers: kept. This is test-only, and it mirrorsReadyIssue::is_specand the existing helpers inready.rs.acme/widgetshardcoded in several test fixtures: kept. This follows the existing tests inready.rs.Spec
InMemoryhas a closed-listing failure and afiled(...)builder beyond the listed holdings: kept. The issue's own required tests need them: both kinds of Sweep warning, and an Edit that would take nothing off.Clonederived onListedIssueandRepo, andEditgains test-only accessors: kept. These are internal, so no public interface of either run changes.Clonelets the in-memory adapter return listings, and lets the lock skip use the one skip step.Closes #374
🤖 Generated with Claude Code