"Set up a bare Central Agentic Ops (CAO) control plane. Use when a user asks to create, bootstrap, initialize, install, or get started with CAO. Create or reuse one control repository, install the runtime, establish exact repository scope, configure authentication, and stop before campaign installation or execution."
Recursos
1Instal·la
npx skillscat add githubnext/gh-aw-cao/setup-cao Instal·la des del registre de SkillsCat.
Set Up Central Agentic Ops
Create or reuse one bare CAO control plane. Successful setup leaves:
- the CAO runtime installed or already present, including repository-local
./cao.sh; - exact repository scope in
.github/workflows/cao.jsonand authentication
compatible with that scope; control-plane.campaignspresent as an empty object;- no user-facing campaign installed or enabled, no live rollout, and no workflow
dispatch.
Campaign discovery and installation are a separate task for add-cao-campaign.
Invariants
- Establish exact repository scope before selecting authentication. Capability
is not consent, and credential reach never widens policy. - Ask before repository creation or reuse, runtime installation, credential
configuration, commit, or push. - Keep rollout authority only in
.github/workflows/cao.json. Keep credentials
out of files, chat, command arguments, workflow inputs, and commits. - Fail closed when scope, authority, access, credentials, installation, or
validation is incomplete. - Never edit generated
.lock.ymlfiles directly. Preserve rootAGENTS.md
(consumer-owned); do not modify campaign-owned files during setup. - Install, enable, and execute no campaign during setup.
Choose the repository role
- Prefer a separate control repository.
- Use a source-managed control repository only when the user explicitly chooses
to run workflows maintained in-tree and the CAO runtime and policy are present
or will be committed. - A repository that is both a catalog and an explicitly selected source-managed
control plane is a supported dogfood topology; apply both roles without
combining campaign source, rollout policy, credentials, or target authority.
Read topology when the repository is source-managed,
is also a catalog, or its role is ambiguous. Read
public control repositories before
using a public control repository or when any selected target is non-public.
Preferred human flow
For a separate control repository, prefer the repository-local interactive
setup:
If creating a new repository, follow the approved creation steps in the
setup quickstart, then run setup from its
root.
curl --fail --silent --show-error --location \
https://raw.githubusercontent.com/githubnext/gh-aw-cao/main/install.sh |
bash
./cao.sh setupThe interactive setup discovers the control repository, obtains exact scope,
verifies repository ownership and visibility, offers authentication choices
based on that scope, and shows its plan before mutation. Verify profile
prerequisites in the authentication reference before approving; in particular,
the prompt does not establish whether selected organizations share an
enterprise. Do not replace setup with an independent questionnaire or ad hoc
runtime copying.
Agent procedure
Verify
gh --versionandgh auth status.Identify the intended control repository and topology. Obtain approval to
create or reuse it before mutation.Obtain the exact
OWNER/REPOSITORYentries CAO may read and verify each
repository's canonical name, owner, and visibility.With approval, install the runtime in a separate control repository when it
is absent. Do not run the installer over workflows maintained directly by a
source-managed control repository.Prefer
./cao.sh setup. Read
authentication only when selecting or
troubleshooting an authentication profile.If interaction is unavailable, read
non-interactive setup and reproduce only the
required scope and authentication decisions.Validate policy and repository state:
./cao.sh validate gh aw doctor --repo OWNER/CONTROL_REPOSITORY --dir . git diff --checkAlso confirm
.github/workflows/cao.jsonparses, has no unresolved
placeholders, and contains an empty object atcontrol-plane.campaigns../cao.sh validateis the canonical control-plane validator; do not replace
it with duplicated inline validation.Show the exact diff. Reject campaign, live-mode, credential, generated-lock,
campaign-owned, or unrelated changes. Ask before commit or push.Report the control repository, visibility, exact read scope, authentication
profile, validation, and commit status. State explicitly that no campaign was
installed, enabled, or run.
Read implementation details only when
the installer, runtime layout, generated/source distinction, or steering files
must be inspected.
Stop conditions
Stop without weakening boundaries for:
- missing or malformed scope, or a repository that cannot be inspected;
- a non-empty pre-existing campaign map;
- a public control repository that could expose non-public evidence;
- no compatible authentication, or declined/incomplete credentials;
- setup fails after approved mutations, until you inspect policy, Pages, and
credential configuration metadata; never expose secret values; - installation or validation failure;
- conflicting pre-existing files without approval; or
- unexpected campaign, live, credential, generated-lock, campaign-owned, or
unrelated changes.