synlynk gh --role so interactive writes are not the human

The Broader Goal at the End of the Previous PR

#1452 closed Hole A: parent auto-PR uses the job App token. Interactive Grok/Claude shells still ran raw gh as nikhilsoman.

Strategic Shifts in This PR

None. Spec #1436 Hole B: synlynk gh --role <role> -- ….

What This PR Shipped

synlynk gh --role qa -- pr view 1452 (and pr create, pr merge, …) injects the role App token and an isolated GH_CONFIG_DIR. Unknown roles and missing tokens fail closed unless SYNLYNK_GH_WRITE_ALLOW_HOST_AUTH=1. This does not wrap every accidental raw gh in the shell; sessions must call synlynk gh instead of gh.

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

Interactive GitHub writes have a role-token path. Remaining: make it the default (deny raw host gh in agent sessions), optional qa actions: write, live qa --approve of a bot-authored PR.

Strategic Note: The Goal at the End of This PR

Use synlynk gh --role for all agent GitHub writes. #1436 stays open until that discipline is default, not optional.