Skip to content

Share the Ready issue search between the Pickup run and the Architect run - #329

Merged
JacobStephens2 merged 2 commits into
issue-311from
issue-324
Oct 3, 2026
Merged

JacobStephens2 merged 2 commits into
issue-311from
issue-324

Conversation

@JacobStephens2

Copy link
Copy Markdown
Owner

Summary

The Pickup run's search for the lowest-numbered Ready issue moves into its own module, so that an Architect run can later ask "does this repository have a Ready issue?" against the very same definition. No behaviour changes.

 src/
 ├── pickup.rs   # lock, Sweep, Claim limit, then the Ready issue it takes
-│                 + SETTLE, Standing, Reason, Search, standing_of
+├── ready.rs    # pub fn first(launch, repo) -> Option<ReadyIssue { listed, is_spec }>
+│                 + SETTLE, Standing, Reason, Search, standing_of (moved verbatim)
 pickup::run
   launch::start          # lock
   claim::sweep
   claim::open_count      # Claim limit
-  github::open_issues_labelled(ready-for-agent)
-  Search::new(..).first_ready()
+  ready::first(&git, &repo)
+    github::open_issues_labelled(ready-for-agent)
+    Search::new(..).first_ready()
   "taking Ready issue #N ..."

The Sweep and the Claim limit stay in the Pickup run.

Evidence

  • Before: cargo test --test pickup_run: 72 passed.
    After: cargo test --test pickup_run: 72 passed, with no test changed. The full cargo test passes, as do cargo clippy --all-targets -- -D warnings and cargo fmt --check.

Merge Danger

Door: two-way

A code move with no behaviour change, so reverting it is trivial.

Blast Radius: none

The Pickup run's gh calls and stderr lines are the same and come in the same order. ready::first has only the one caller until the Architect run picks it up in #311.

Unaddressed findings

Standards

  • Speculative Generality: ready::first has one caller. Skipped: issue Share the Ready issue search between the Pickup run and the Architect run #324 asks for this prefactor, and Weeding: Architect runs that follow each other as soon as the last plan is merged #311's Architect run is its second caller.
  • Mysterious Name: launch: &Git on a public function. Skipped: the name is the glossary's Launch directory and was carried over from Search.launch. The doc now names it as the Launch directory.
  • Duplicated is_spec doc on ReadyIssue and Standing::Ready. Skipped: merging the two would mix the public result with the search's private standing, and the overlap is one field.
  • Pickup-specific wording on line's doc ("which a Pickup run takes"). Skipped: this is still accurate, since a Pickup run is what reaches a Ticket through its Spec. The SETTLE doc was reworded.

Spec

Closes #324

🤖 Generated with Claude Code

JacobStephens2 and others added 2 commits October 3, 2026 03:11
Move the Pickup run's search for the lowest-numbered Ready issue into
its own module, ready::first, so that an Architect run can later ask the
same question. The Sweep and the Claim limit stay in the Pickup run.
No behaviour changes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…any run (#324)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@JacobStephens2
JacobStephens2 merged commit ff53a35 into issue-311 Oct 3, 2026
13 checks passed
@JacobStephens2
JacobStephens2 deleted the issue-324 branch October 3, 2026 07:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant