diff --git a/.claude/skills/openstack-cloud-ops/SKILL.md b/.claude/skills/openstack-cloud-ops/SKILL.md index c9cef78..778828d 100644 --- a/.claude/skills/openstack-cloud-ops/SKILL.md +++ b/.claude/skills/openstack-cloud-ops/SKILL.md @@ -1,6 +1,6 @@ --- name: openstack-cloud-ops -description: "Operate, install, extend, and troubleshoot the Omega Cloud - a commercial multi-tenant Charmed OpenStack (Caracal 2024.1) deployment managed with Juju and MAAS, with Vault TLS, OVN, Ceph, Octavia, and Magnum/CAPI tenant Kubernetes. Use this skill for ANY work touching OpenStack, Juju, MAAS, Magnum, CAPI, Ceph, OVN, Octavia, Keystone, Vault-for-OpenStack, tenant onboarding, or the openstack-caracal-ipv4 repository - including writing or reviewing bash/python operational scripts, debugging failed deploys or cluster creates, runbook work, design-decision (D-NNN) discussion, and incident triage. Use it even for seemingly simple OpenStack questions: this deployment has strict operating discipline and known charm traps that make generic answers wrong." +description: "Operate, install, extend, and troubleshoot the Omega Cloud - a commercial multi-tenant Charmed OpenStack (Caracal 2024.1) deployment managed with Juju and MAAS, with Vault TLS, OVN, Ceph, Octavia, and Magnum/CAPI tenant Kubernetes. Use this skill for ANY work touching OpenStack, Juju, MAAS, Magnum, CAPI, Ceph, OVN, Octavia, Keystone, Vault-for-OpenStack, tenant onboarding, or the repository this skill operates against - including writing or reviewing bash/python operational scripts, debugging failed deploys or cluster creates, runbook work, design-decision (D-NNN) discussion, and incident triage. Use it even for seemingly simple OpenStack questions: this deployment has strict operating discipline and known charm traps that make generic answers wrong." --- # openstack-cloud-ops @@ -14,18 +14,19 @@ ## Step 0 - locate the source of truth -The repository `openstack-caracal-ipv4` (GitBucket, git.baldurkeep.com) is -authoritative for everything: bundle, runbooks, scripts, design decisions, -as-built values. This skill is a discipline-and-routing layer OVER that repo, -not a substitute for it. +This repository (GitBucket, git.baldurkeep.com) is authoritative for +everything: bundle, runbooks, scripts, design decisions, as-built values. This +skill is a discipline-and-routing layer OVER that repo, not a substitute for +it. Never hardcode the repo's own name/path in a command -- it has already been +renamed/forked once (see D-110) and will again; discover it fresh each session. -1. Look for a local clone (common paths: `~/openstack-caracal-ipv4`, a repo - dir in the working tree, `/home/claude/repo`). If found, `git log -1` to - note HEAD and work from it. -2. No clone and you have shell + network: ask before cloning - (`https://git.baldurkeep.com/git/OpenStack/openstack-caracal-ipv4.git`). - The repo may be private; if the clone fails, ask the operator to provide - access or the relevant files. +1. Look for a local clone: a repo dir in the working tree, or a `$HOME` entry + containing `bundle.yaml` + `docs/design-decisions.md`. If found, confirm + identity with `git remote -v`, then `git log -1` to note HEAD and work from it. +2. No clone and you have shell + network: ask the operator for the exact clone + URL (org/group and repo name -- do not guess or reuse one from memory; it + may have moved, per this same repo's own history). The repo may be private; + if the clone fails, ask the operator to provide access or the relevant files. 3. No clone obtainable (e.g. chat without sandbox network): say so, ask the operator to paste the relevant runbook/script, and proceed only on what is actually in front of you. @@ -96,7 +97,8 @@ ## Standard loops (repeatable session shapes) -**Session bootstrap (jumphost):** `git -C ~/openstack-caracal-ipv4 pull` -> +**Session bootstrap (jumphost):** `git -C "$REPO" pull` (set `$REPO` once per +session -- see `runbooks/README.md` Conventions / `references/environment.md`) -> `bash scripts/repo-lint.sh` (0 fail expected) -> if touching the live cloud, `bash scripts/run-logged.sh