Skip to content
This repository was archived by the owner on Apr 21, 2026. It is now read-only.
This repository was archived by the owner on Apr 21, 2026. It is now read-only.

Clarify: who sets breeze:human and when (responder-elevated pattern) #12

@serenakeyitan

Description

@serenakeyitan

Context

Working on gardener-respond (fixing sync PRs based on review feedback). Ran into a question about breeze:human that isn't fully specified in DESIGN.md.

The scenario

sync opens PR → no label (= new)
reviewer reviews → breeze:wip
  ├── request changes
  │    └── respond fixes → still breeze:wip
  │          └── reviewer reviews again → request changes (round 2)
  │                └── respond fixes again → still breeze:wip
  │                      └── ... (rounds 3, 4, 5)
  │                            └── 5th round still request changes
  │                                  └── ? who labels breeze:human?
  ├── approve → still breeze:wip → respond merges → done (auto via merge)
  └── close → done (auto via close)

Question

After N unsuccessful rounds of request-changes, who labels breeze:human?

Our proposal: responder elevates.

  • Reviewer doesn't know this is round 5 — it only sees the current PR state
  • Responder tracks attempts via <!-- gardener:respond-attempts=N --> marker in PR body
  • Responder decides "I give up, needs human"
  • Responder labels breeze:human + comments "tried N times, needs human"

The rule

The signal for breeze:human comes from reviewer behavior (repeated request-changes), but the label is applied by the agent that tracks attempts (responder in gardener's case, could be the action executor in breeze-runner).

Why this matters

If we leave it unspecified, different agents will implement different thresholds or expect the other side to do it, leading to PRs that never escalate.

Proposal for DESIGN.md

Add to the "Four States" section:

### Who sets breeze:human

`breeze:human` is set by the agent attempting work, not by reviewers. An agent
that tracks attempts (via a counter in the PR body or local state) should
escalate to human after N failed attempts (suggested: 5). The reviewer's job
is to review; the agent's job is to know when to stop trying.

For gardener specifically

  • Threshold: 5 attempts
  • Counter location: <!-- gardener:respond-attempts=N --> in PR body
  • Elevation action: label breeze:human + comment explaining

🤖 Generated with Claude Code

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions