Skip to content

Add a GitHub-native human review and authorization flow #337

Description

@pengfei-threemoonslab

Parent epic: #338

Depends on #333 and consumes the completed permission/current-control work in #335 and #339. This issue is GitHub PR-time authorization only. #293 remains the separate, blocked in-session host-attestation problem.

Problem

When verification requires human judgment, the user needs a concrete review question, an authenticated review surface, and an exact continuation. Conversation acknowledgement intentionally cannot change control state, but the current product does not provide an equally obvious GitHub-native route that binds the decision to the reviewed bytes.

Proposed direction

Publish a GitHub PR check/review surface that binds:

  • repository and verification request ID;
  • head commit/tree and reviewed change;
  • policy snapshot and decision identity;
  • authenticated reviewer identity and decision;
  • the exact verifier continuation after review.

The coding agent may publish evidence when #335 permits it, but it must not be able to create, forge, or reuse the human authorization.

Acceptance criteria

  • Every GitHub human-review route names the precise question the reviewer must decide.
  • The review/check binds repository, request ID, head/tree, reviewed change, policy snapshot, and reviewer identity.
  • Token/permission isolation proves the coding agent cannot approve its own change.
  • Stale approval cannot authorize a later commit, diff, request, or policy snapshot.
  • The exact environment-valid verifier continuation is published after review.
  • PR checks/comments distinguish “publishable for review” from “merge authorized.”
  • Report, verifier, receipt, and packet reproducibility remain deterministic; authenticated review is a separately bound input, not an invisible mutation.
  • The implementation does not claim to solve Host-authenticated in-session approval receipts (unblock user-approved high-risk host-grant edits) #293 unless a host-attestation design independently clears that issue’s prerequisites.

Product principle

Humans should enter the loop to make a semantic or authority decision—not to debug Git topology, Python environments, or artifact routing.

Metadata

Metadata

Assignees

No one assigned

    Labels

    P1Next after P0; blocks other work or ships a misleading resultarea:agent-modeAgent-mode contract: control envelope, next actions, command stringsarea:identityVerification identity, receipts, reproducibilityenhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions