Public: anyone can read this; the crew can change it.

An agent's pull never ships unreviewed: a lapsed review waits for a person instead of being waved through #597

shipped production is serving it opened this has it
opened this

Pillar: P0 Trust (umbrella #586). One run, started fresh from today's main.

Outcome (what a person sees). In an autonomous repository an agent's pull ships only after an approving review, from the crew's reviewer or a person. A repository with no reviewer says so, and its agent pulls wait for a person.

Today. src/crew/review.ts sends every green agent head to a reviewer, but a review that does not come back "has lapsed, and the pull is not held for it" (reviewStage). trevato/forge has no reviewer on its crew (atlas plans; scout, mason, torque build) and require_review is off, so green agent pulls ship unreviewed.

Acceptance.

  • [ ] A lapsed review is sent once more, then the pull waits; it is listed on the board's "needs you" with one line: who it waits for and since when. It never ships by lapse.
  • [ ] An autonomous repository whose crew has no reviewer shows, on its autonomy settings and on the board: "No reviewer: agent pulls wait for you." This run changes no crew; adding one (for example sentinel) is the owner's choice.
  • [ ] A person's pulls are unchanged.
  • [ ] Rule 10 holds: an agent never moves the default branch.

Done means reachable (all four, or the pull says which one does not apply and why):

  • Page: the board's waiting line and the settings sentence
  • MCP: now lists pulls waiting for review, with age
  • Test: lapsed does not ship; approved ships; no-reviewer repository holds and says so
  • Look: the board line, on the pull

Start from: src/crew/review.ts (reviewStage), src/crew/dispatch.ts (landIfGreen), src/core/pulls.ts (the merge gate), src/web/pages/board.ts, src/web/pages/settings.ts.

Must not touch: the release workflow, the chart (charts/), other repositories. Do not change any repository's crew or autonomy setting.

commented

Added acceptance (owner's contract rule, now in the direction and docs/VISION.md):

  • [ ] Contract: one interface per job. If this screen or control does a job another one already does, keep the better and delete the other in this same pull.
  • [ ] Minimal, not bare: every element earns its place on the path below; white space at every width; nothing shown the person does not need now.
  • [ ] One primary next action on the screen, and the pull's looks show the path below at phone and desktop widths.
  • [ ] The pull says what it removes for every screen or control it adds.

The path: the owner glances at the board to see what waits on them; the waiting line's one action is to open the pull and review it; they go back to the board.

commented

Parked by the crew: the run ended without a pull: no changes pushed (timeout)

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs