Skip to content

Evolve experimental bootstrap config into add/add-wizard #45678

Description

@mnkiefer

Recent bootstrap and manifest-profile work is pushing gh aw beyond file installation and into repository-level configuration. The direction is reasonable, but the current shape risks overlapping responsibilities across bootstrap, add, add-wizard, and related manifest behavior. Our goal is to come up with a clear command model and manifest model before expanding the current bootstrap/configuration path further.

Context

The recent additions introduce or imply support for repository-level setup such as:

  1. Repository variables
  2. Repository secrets
  3. GitHub App configuration
  4. Interactive prompts for missing configuration
  5. Idempotent repo-level setup during package installation

That makes the overall workflow more powerful, but it also raises design questions about where these capabilities should live and how they should relate to existing commands.

Discussion Points

  1. Extend add with the ability to configure repository secrets, variables, and GitHub App credentials.
  2. Keep the behavior idempotent so re-running the command does not duplicate, overwrite unexpectedly, or drift configuration.
  3. Enforce a naming scheme or namespace for managed variables and secrets so package-managed configuration is predictable and auditable.
  4. Decide whether this repository-configuration UX belongs in add directly or primarily in add-wizard.
  5. Move the package YAML format toward something more declarative for repository configuration rather than continuing to accumulate imperative bootstrap-style pieces.
  6. Reconcile how bootstrap, add, add-wizard, and doctor should fit together without overlapping responsibilities.

Open Questions

  1. Should add become the canonical entry point for installing both files and repo-level configuration?
  2. If yes, what is the non-interactive contract for secrets, variables, and GitHub App setup?
  3. What remains bootstrap-specific versus what should become reusable package-install behavior?
  4. How should the YAML manifest express repo variables, repo secrets, GitHub App setup, prompts, defaults, optional fields, and idempotency rules?
  5. Should add-wizard just be the interactive front-end for the same underlying model?
  6. What naming convention should be enforced for managed variables and secrets?

Metadata

Metadata

Assignees

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions