Bind the review to one revision

Record the full commit SHA under review, workflow path, named human review record, and reviewer. If the workflow changes after review, the receipt no longer describes the proposal. Review the exact diff again rather than carrying a previous approval forward.

GitHub's secure-use reference recommends reviewing workflow privilege and pinning third-party actions to a full-length commit SHA. Those are GitHub-specific safeguards, not a claim that one local receipt can establish a secure workflow.

Make the high-consequence boundaries explicit

For the proposed revision, inspect and record:

  • the effective permissions the jobs request and why they are needed;
  • triggers that can run in untrusted pull-request context;
  • every third-party uses: reference and the reviewed full-length SHA; and
  • the human who owns the merge decision, plus the owner, procedure, and verification step for a revert or disable path.

Do not infer that an agent chose an appropriate permission or trigger just because a workflow executes successfully. A passing run can still be the wrong scope for the repository.

Keep a small, inspectable receipt

The included Node fixture requires the current full commit SHA, a declared human-review record, reviewed permission and trigger boundaries, workflow path, full-length action SHAs, and an owned rollback record:

npm test --prefix sites/odexing.com/evidence/P121

It does not parse YAML, inspect GitHub settings, execute a job, check SHA provenance, prove a named reviewer is independent or human, access a secret, prove permissions are minimal, or execute the rollback. Use it as a missing-information gate, then perform the repository-specific review.

For a separate dependency review, see Gate an Agent-Generated Dependency Update Before Merge. For an authorization diff, see Gate an Agent-Generated Authorization Change Before Merge. For a provider-plan boundary, see Gate an AI-Generated Terraform Change Before Production.

Does pinning an action SHA make the workflow safe?

No. Pinning is one documented control for reference immutability. It does not explain what the action does, whether its privileges are appropriate, or whether the surrounding trigger and code are safe.