Context
Genesis-bootstrapped dev systems currently rely on PATs for cross-org access. This works but has problems:
- PATs are tied to a person, not a system
- PATs can't be cleanly scoped per-project
- No clean audit trail (all actions appear as the PAT owner)
- If the human revokes the PAT, all projects break simultaneously
Proposed: Three-layer permission model
See BRAINSTORMING.md > Permission Architecture for the full design.
Layer 1: Genesis GitHub App — shared, minimal permissions (read code, write issues). Already exists as genesis-dev-bot.
Layer 2: Per-project GitHub Apps — each dev system gets its own App scoped to its specific needs. repo-guardian would get an App with contents:write, pull_requests:write, security_events:read. Other projects get only what they need.
Layer 3: Bootstrap PAT — human-held, used only for operations Apps can't do (creating other Apps, managing installations). Never used for day-to-day.
Tasks
Notes
- GitHub Apps and PATs cannot be created programmatically — initial setup always needs a human
- Installation tokens (short-lived, scoped) can be generated programmatically once the App is installed
- This is infrastructure work that benefits all current and future genesis projects
Context
Genesis-bootstrapped dev systems currently rely on PATs for cross-org access. This works but has problems:
Proposed: Three-layer permission model
See
BRAINSTORMING.md> Permission Architecture for the full design.Layer 1: Genesis GitHub App — shared, minimal permissions (read code, write issues). Already exists as
genesis-dev-bot.Layer 2: Per-project GitHub Apps — each dev system gets its own App scoped to its specific needs. repo-guardian would get an App with
contents:write,pull_requests:write,security_events:read. Other projects get only what they need.Layer 3: Bootstrap PAT — human-held, used only for operations Apps can't do (creating other Apps, managing installations). Never used for day-to-day.
Tasks
Notes