Repository navigation
The architect-plan label, and skipping an Architect run while an Architect plan is open - #264
Merged
Merged
Conversation
…tect plan is open thirdshift labels the plan it marks ready architect-plan, in the request that swaps needs-triage for ready-for-agent, creating the label if the repository lacks it. Once the one-at-a-time lock is its own, an Architect run lists the repository's open issues with that label and is skipped if there are any: each plan's URL on stdout, one progress line naming each with the command that picks it up, exit 0, and the skipped Run notification. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… carries, the label's name and description apart, each open plan in the skipped notification Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This was referenced Oct 1, 2026
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
thirdshift labels every Architect plan
architect-plan, and an Architect run is skipped while one is open.What a run skipped this way says, on stderr and in the
Skipped:line of its Run notification, several joined by;:Seams under test: the
thirdshiftbinary, through thearchitect_runandcommand_surfaceend-to-end tests with the fakeclaudeandgh. The fakeghalready listed issues by label and listed and created labels, so it is unchanged.Evidence
Before:
cargo test --test architect_run an_open_architect_plan_skipsand, for the label,
left: ["ready-for-agent"] right: ["ready-for-agent", "architect-plan"].After:
cargo test: every suite passes,architect_runwith 73 (9 new, the rest updated for the label),command_surfacewith 22.cargo clippy --all-targetsandcargo fmt --checkare clean.New cases: the label is created when the repository lacks it and left alone when it has it, whatever its case; an open Architect plan skips the run with
architect,--plan-onlyandmerge base main, with no session, no launch pull and GitHub unchanged; each of several open plans is named; a closed plan or a removed label lets the run go ahead; an idea issue, or a plan a failed review leftneeds-triage, doesn't skip it; a plan whose dispatched run failed is never retried; the skipped notification names each plan and its command. The lock-first order is asserted in the existing dispatched-run test, where the first run's plan is labelled and the second run still reportsalready running.Merge Danger
Door: two-way
Reverting restores the old behaviour. Plans labelled meanwhile keep an
architect-planlabel nothing reads.Blast Radius: Architect runs
Every
thirdshift architectnow makes onegh issue listbefore its review, and fails if that call fails. A repository where an earlier plan is still open gets no new Architect run until it is finished, closed or unlabelled, by design. The progress line for the label swap changed its wording, for anything that reads stderr.Unaddressed findings
Standards
open_issues_labelledandensure_labelstake the repository as anowner/repostring, though aRepotype exists. Their callers hold different types, anIssueUrlin the Base fix and aRepoin the Architect run, and the slug is whatgh --repotakes; uniting the two is a wider change togithub.rsthan this Ticket.Skipped::OpenPlansholds an unnamed issue-and-title pair. It is the shapeopen_issues_labelledalready returned, and it now has one reader for each half; a named type would be for one variant.still_openin the tests restates the production format. The repository's tests assert literal output, and the notification test now reuses the helper instead of a second copy.Spec
Skipped:line, which gets long. Nightly Architect runs: a cron recipe, and an Architect run that is safe to schedule #237 asks for one progress line with the reason, and more than one open Architect plan takes a label added by hand or two machines racing.gh issue listends the run with the notification outcomereview failed, though no review started. Every failure before the review, the preflight checks included, already reports that way; renaming it belongs with the notification, not this check.merge base maincase and the help text. There is no override flag to test against.Closes #248
🤖 Generated with Claude Code