PR #TBD - #1436: Operator Runbook for qa App Actions Write Re-approval
The Broader Goal at the End of the Previous PR
PR #1458 updated the GitHub App manifest builder (synlynk/team.py) so new installations for merge-authority roles (qa) request actions: write alongside administration: write. However, GitHub's permission security boundary prevents newly requested permissions from being applied automatically to an already-installed GitHub App (synlynk-synlynk-qa).
Strategic Shifts in This PR
None. The architectural boundary remains strictly intact: autonomous agents cannot self-escalate privileges. Adding actions: write for workflow rerun recovery requires the human installer (Nikhil) to re-approve the elevated permissions in the GitHub UI.
What This PR Shipped
A dedicated operational runbook and spec cross-reference:
docs/qa/1436-qa-actions-write-reapproval.md: A concise operator runbook detailing:- Why
gh run rerun --failedfailed withResource not accessible by integrationunderactions: read. - The exact UI navigation steps for Nikhil (GitHub → Settings → GitHub Apps → synlynk-synlynk-qa → Permissions & events → Repository permissions → Actions → Read and write → Save → accept installation confirmation prompt).
- How to verify the updated permission (
synlynk gh --role qa -- api repos/nikhilsoman/synlynk/actions/runs --jq '.[0].id'or a drygh run list, avoiding the/userendpoint which 403s for App tokens). - Explicit omission of PEMs, tokens, or installation IDs.
- Why
docs/superpowers/specs/2026-09-06-workspace-agent-identity-routing-design.md: Cross-referenced the runbook under §7 Optional.
Brainstorm Visuals Used
None. Spec: docs/superpowers/specs/2026-09-06-workspace-agent-identity-routing-design.md.
What This Achieved on the Path to Autonomy
Documents the exact operator intervention required to unblock the qa role's flaky workflow rerun capability without compromising security or leaking credentials.
Strategic Note: The Goal at the End of This PR
Once Nikhil completes the manual re-approval in the GitHub UI and validates it with synlynk gh --role qa -- api repos/nikhilsoman/synlynk/actions/runs, the qa bot will have the necessary permissions to retrigger failed workflow runs autonomously during merge-gate execution.