You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
replace preferred repo-write PAT behavior with GitHub App installation token
preserve fallback modes
prove app token can mint / checkout / write or PR
report auth mode in workflow summary
This issue is the separate follow-up PR for naming and governance documentation around the app/control-plane surface.
Do not delay PAT replacement on this issue. Do not turn the PAT replacement PR into a doctrine cathedral. We already have enough architecture sludge trying to cosplay as progress.
Direct Evidence
Installed GitHub App name: primeinc-github-stars.
App description: repo-scoped automation app for primeinc/github-stars, mints short-lived installation tokens, writes generated star catalog artifacts, supports auth diagnostics, and replaces long-lived PATs where possible.
App is installed only on selected repo: primeinc/github-stars.
GitHub docs say GitHub App names should be clear/short, must be unique, max 34 characters, and are normalized for UI display when the app acts.
GitHub docs say API requests made by an app installation are attributed to the app.
Add repo documentation for bot/app/subsystem names.
Recommended file path:
docs/automation/bot-naming.md
or, if docs are not yet structured:
.github-stars/docs/bot-naming.md
Required naming rules:
GitHub App identity:
primeinc-github-stars
Subsystem/check prefix:
primeinc-stars-*
Pattern:
<scope>-<surface>-<role>
Rules:
lowercase kebab-case
clear audit-log meaning
provider-neutral unless truly provider-specific
no cute name at the cost of traceability
GitHub App names stay <= 34 chars
Required Bot / Subsystem Names
Document these names:
Name
Type
Role
primeinc-github-stars
GitHub App identity
Installed repo-scoped app identity. Used for attribution and installation-token auth.
primeinc-stars-yoshi-doctor
setup doctor subsystem/check
Super Mario World helper/companion reference. Performs auth/config/permission diagnostics.
primeinc-stars-auth
subsystem
Auth-mode resolver and token-source reporting.
primeinc-stars-classifier
subsystem
AI classification parsing, validation, evidence checks.
primeinc-stars-router
subsystem
Failure -> issue/PR/agent-task routing.
primeinc-stars-provenance
subsystem
Generated artifact proof, checks, summaries, attestations if used.
primeinc-stars-guard
subsystem
Security/dependency watch surface if implemented later.
Yoshi Doctor intent
primeinc-stars-yoshi-doctor should be the name for the setup doctor/check/report, not the installed GitHub App identity.
Reason:
installed app identity must be boring and auditable
setup doctor can carry the Super Mario World helper reference
Yoshi = helper/companion that carries the run through hostile terrain
This gives the repo a memorable diagnostic surface without making the GitHub App actor name look like a toy in audit logs. Apparently this is what maturity looks like now: controlled whimsy with a changelog.
Required Permission Capability Ledger
Add a machine-readable or Markdown permission ledger.
Preferred file:
.github-stars/control-plane/permissions.yml
Acceptable doc-first fallback:
docs/automation/app-permissions.md
Minimum schema:
permissions:
contents:
access: writephase: runtimecapability: commit generated catalog artifacts and update control-plane sourceproof_required:
- app-token checkout succeeds
- commit or PR created with app installation tokenprune_rule: keep unless direct-write is replaced by PR-only flowworkflows:
access: writephase: bootstrapcapability: repair and migrate GitHub Actions workflow files during #69 workproof_required:
- PR modifies .github/workflows through app-backed flowprune_rule: downgrade after workflow migration stabilizesvariables:
access: writephase: bootstrap/runtimecapability: configure auth mode, app client id, source user, feature flagsproof_required:
- setup doctor reports required variables present without leaking valuesprune_rule: keep if used by auth resolver; otherwise removesecrets:
access: readphase: bootstrapcapability: setup doctor verifies required secrets exist without printing valuesproof_required:
- redacted secret-presence reportprune_rule: reduce/remove if setup doctor can operate without secrets permission
The exact final schema can differ. The invariant cannot: every permission gets a purpose, phase, proof, and prune rule.
permission
current access
capability enabled
phase
first workflow/subsystem expected to use it
proof artifact
keep/reduce/remove decision
reduce-after milestone
#69 owns the TypeScript control-plane implementation.
This issue owns naming doctrine and permission capability ledger.
The first PAT replacement PR should not wait for this issue.
Acceptance Criteria
Bot/app/subsystem naming doctrine exists in repo docs.
primeinc-stars-yoshi-doctor is documented as the setup doctor/check/report name.
Installed app identity remains documented as primeinc-github-stars.
Permission capability ledger exists with purpose/proof/prune fields.
Broad app permissions are classified by phase, not treated as a flat scary blob.
Docs clearly state this issue does not block the first PAT replacement PR.
Weak inference: why a permission supports a future subsystem before the subsystem uses it.
Unsupported: claiming a permission is permanently required without workflow or setup-doctor proof.
Contradicted: docs say permission is used but no workflow/subsystem can exercise it.
Non-Goals
Do not implement the full TypeScript control plane here.
Do not implement the PAT replacement here unless this issue is explicitly merged into that PR scope later.
Do not remove existing fallback modes.
Do not change app permissions yet based only on this documentation pass.
Definition of Done
The repo has a documented bot/subsystem naming scheme and a permission capability ledger that explains why the broad one-repo app authority exists, how each permission will be proven, and when unused permissions should be reduced.
Goal
Add the extra control-plane documentation and conventions discussed after #69 without expanding the first PAT-replacement PR.
This issue covers only the pieces not already forced into #69:
Parent: #69
Related: #42, #54, #71
Scope Boundary
This is not the first implementation PR.
First implementation PR should stay boring:
This issue is the separate follow-up PR for naming and governance documentation around the app/control-plane surface.
Do not delay PAT replacement on this issue. Do not turn the PAT replacement PR into a doctrine cathedral. We already have enough architecture sludge trying to cosplay as progress.
Direct Evidence
primeinc-github-stars.primeinc/github-stars, mints short-lived installation tokens, writes generated star catalog artifacts, supports auth diagnostics, and replaces long-lived PATs where possible.primeinc/github-stars.Required Naming Doctrine
Add repo documentation for bot/app/subsystem names.
Recommended file path:
or, if docs are not yet structured:
Required naming rules:
Required Bot / Subsystem Names
Document these names:
primeinc-github-starsprimeinc-stars-yoshi-doctorprimeinc-stars-authprimeinc-stars-classifierprimeinc-stars-routerprimeinc-stars-provenanceprimeinc-stars-guardYoshi Doctor intent
primeinc-stars-yoshi-doctorshould be the name for the setup doctor/check/report, not the installed GitHub App identity.Reason:
This gives the repo a memorable diagnostic surface without making the GitHub App actor name look like a toy in audit logs. Apparently this is what maturity looks like now: controlled whimsy with a changelog.
Required Permission Capability Ledger
Add a machine-readable or Markdown permission ledger.
Preferred file:
Acceptable doc-first fallback:
Minimum schema:
The exact final schema can differ. The invariant cannot: every permission gets a purpose, phase, proof, and prune rule.
Required Permission Classification
Classify granted permissions into these buckets:
Required table columns:
Required Relationship to #69
Add a short note to #69 or
AGENTS.mdthat says:Acceptance Criteria
primeinc-stars-yoshi-doctoris documented as the setup doctor/check/report name.primeinc-github-stars.Proof Required
Completion comment must include:
primeinc-stars-yoshi-doctor.Evidence Labels for Implementer
Use these labels in the completion report:
Non-Goals
Definition of Done
The repo has a documented bot/subsystem naming scheme and a permission capability ledger that explains why the broad one-repo app authority exists, how each permission will be proven, and when unused permissions should be reduced.