Skip to content

The architect-plan label, and skipping an Architect run while an Architect plan is open #248

Closed

Description

@JacobStephens2

Parent

#237

What to build

thirdshift marks every Architect plan with the label architect-plan, and an Architect run is skipped while one is open.

The label is added by thirdshift, not the agent, in the same step that swaps the plan's needs-triage for ready-for-agent: after the Architecture review ends cleanly and the plan passes its checks, including under --plan-only. It goes on the Architect plan itself, the Spec or the standalone Ticket, never on a Spec's Tickets. If the repository has no such label, thirdshift creates it first.

Before the Architecture review starts, thirdshift lists the repository's open issues labelled architect-plan. If there are any, the run is skipped: it names each plan, prints its URL on stdout, gives the command that picks it up (thirdshift <plan URL>), and exits 0, using the skipped outcome and Run notification from #247. No agent session starts. There is no override: finishing or closing the plan, or removing its label, releases the rule. An Architect run never retries or dispatches an existing Architect plan.

Acceptance criteria

  • A published plan gets architect-plan together with ready-for-agent, for a Spec and for a standalone Ticket; a Spec's Tickets don't get it.
  • --plan-only adds the label too.
  • The label is created when the repository doesn't have it.
  • A plan from a review that failed or was interrupted is left without the label.
  • With an open issue labelled architect-plan, an Architect run exits 0, prints each open plan's URL on stdout and a progress line with the reason, and never starts claude.
  • The check applies with --plan-only, and no flag overrides it.
  • With that issue closed, or its label removed, the Architect run goes ahead.
  • An open needs-triage idea issue, or a half-published plan without the label, doesn't skip the run.
  • The check comes after the one-at-a-time lock, so a running Architect run's own plan is never reported as an unfinished one.
  • A run skipped this way that asked for a Run notification sends exactly one, with skipped in the subject and, in the body, the open plans and the command to pick each up.
  • thirdshift help and the README describe the label and the rule.
  • End-to-end cases in the Architect run tests cover the above, with the fake gh gaining what they need, such as listing issues by label and creating a label.

Blocked by

Metadata

Metadata

Assignees

No one assigned

    Labels

    ready-for-agentFully specified, ready for an AFK agent

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions