Skip to content

worklist has no row for a reject work order, so the producer prompt discovers it with raw gh search #229

Closed

Description

@thedavidmeister

What

worklist / state-load cannot express "this PR is a reject work order awaiting rework", so the producer prompt discovers that class with a raw gh search prs --author <assignee> --state open --label ai:reject --json repository,number (campaign-prompt.txt step 3).

Why it is a defect

The repo's own contract is that producer and vetter prompts route ALL GitHub I/O through pr-review-report — the prompt itself enforces this elsewhere, forbidding gh search prs+jq for the covered/uncovered split ("that hand-rolled dedup pathology burned the entire run and is FORBIDDEN") and forbidding raw gh label edits. Reject discovery is the exception, and it is an exception only because the typed surface has no row for it: NextAction (pr-review-report-rs/src/main.rs:30356) carries exactly GreenReady, FlagMigration, Conflict3d, Coderabbit3e, Screenshot3c, Needs3b, ParkedSkip, Wait.

A raw query can disagree with the typed fleet state it sits beside, which is the failure mode the whole state-load design exists to remove.

What raised it now

#224 (issue #219) deletes NextAction::ReworkRuling along with human:design. That variant was the one typed expression of "a human sent this PR back". After it lands, a human's answered design question becomes an ordinary ai:reject, so the ONLY discovery path for it is the untyped query — the gap stops being cosmetic and starts carrying the human-ruling flow.

Required

  • A NextAction variant for a reject carrying a trusted rework instruction (a Rework note or a 👤 human ruling comment, author-verified through the same trusted-comments machinery the prompt already names). A reject WITHOUT a trusted note is a different state — the prompt calls it parked for a human, open no new PR — so the two must not collapse into one row.
  • Wire it through worklist / state-load so the row states it, with the byAction count stated as zero rather than absent, per the existing convention.
  • Replace the raw gh search prs in campaign-prompt.txt step 3 with the typed row.
  • Pins that the two reject shapes classify differently, and that a spoofed (non-trusted-author) note does not produce a work-order row.

Refs: #224, #219

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

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