Skip to content

A Ready issue goes ahead of an Architect run - #333

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

JacobStephens2 merged 3 commits into
issue-311from
issue-327

Conversation

@JacobStephens2

Copy link
Copy Markdown
Owner

Summary

While the repository has a Ready issue, an Architect run is now skipped before any review, so work a human shaped goes ahead of Weeding. It uses the same search the Pickup run uses, ready::first, but makes no Sweep and holds no Claim limit. This check comes last:

 architect::run
   launch::start                      # lock: another run still going
   open Architect plans               → Skipped::OpenPlans
   Architect ideas waiting for triage → Skipped::IdeasWaiting
+  ready::first(&launch, &repo)       → Skipped::ReadyIssue(issue, title)
   launch pull, worktree, Architecture review …

A skip exits 0 and prints the issue's URL on stdout. On stderr it prints the Pickup run's lines on each ready-for-agent issue passed over, followed by:

thirdshift: Ready issue #7 "Fix the login page" goes first: https://github.com/acme/widgets/issues/7

A ready-for-agent issue that is not a Ready issue (claimed, unsettled, blocked, a Ticket in a Spec that isn't ready, a Base fix's issue) gets its passed-over line, and the Architect run goes ahead. The README has a new "A Ready issue goes first" section. It warns that a ready-for-agent issue with no Pickup line to take it keeps Architect runs from starting. help says the same.

Evidence

  • Before: the new tests in tests/architect_run.rs fail. For example, a_ready_issue_skips_the_architect_run_before_any_review starts the review and prints the plan's URL (left: ".../issues/8", right: ".../issues/7").
    After: cargo test passes in full, and cargo clippy --all-targets -- -D warnings and cargo fmt --check are clean. New tests:
    • a Ready issue skips the run before any review, for all three forms of the command; gh state is unchanged and nothing is left behind
    • the skip names the lowest-numbered Ready issue, after a line for each issue passed over
    • claimed, unsettled, blocked or a Base fix's issue: no skip
    • a ready-for-agent Ticket inside a Spec that isn't ready: no skip
    • an idea waiting for triage plus a Ready issue: the skip reports the idea; an open plan plus a Ready issue: it reports the plan
    • an Architect idea triaged ready-for-agent goes first as a Ready issue
  • Two existing Architect tests used a settled ready-for-agent issue as their "lets the run go ahead" case, and that issue is now a Ready issue. One now carries a Claim. The other's ready-for-agent case moved into its own test. In two Pickup tests that start an Architect run to hold the lock, the issue is now labelled ready-for-agent only after the Architect run has started. The Pickup run's behaviour and its assertions are unchanged.

Merge Danger

Door: two-way

Blast Radius: Architect runs

Every Architect run now runs the Ready issue search: one gh list, plus per-candidate reads when there are ready-for-agent issues. A repository with Ready issues and no Pickup line stops getting Architect runs until those issues are taken, which is the intended behaviour.

Unaddressed findings

Standards

  • Data Clumps: Skipped::ReadyIssue(IssueUrl, String) adds a third (issue, title) pair beside OpenPlans and IdeasWaiting. Skipped: it follows the existing idiom, and the three should change together in a refactor of their own.
  • The ready_issue test helper duplicates the one in tests/pickup_run.rs. Skipped: the two have different signatures (this one takes a title), and each suite keeps its helpers local.
  • Shotgun Surgery: the list of skip reasons is written out in the README, help, and the module and function docs. Skipped: that is the repo's documentation style, and help is pinned by command_surface.rs.
  • The same comment ("Labelled only now…") appears in two Pickup tests. Skipped: it is two lines, and a shared helper would hide the ordering the comment is there to explain.

Spec

Closes #327

🤖 Generated with Claude Code

JacobStephens2 and others added 3 commits October 3, 2026 03:47
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… too (#327)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A skipped Architect run now sends no Run notification (#325), so the
Ready issue skip (#327) sends none either: the README and the
architect() doc comment keep the Ready issue among the skip reasons and
take #325's no-email wording.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@JacobStephens2
JacobStephens2 merged commit cacaec9 into issue-311 Oct 3, 2026
13 checks passed
@JacobStephens2
JacobStephens2 deleted the issue-327 branch October 3, 2026 08:07
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