diff --git a/.claude/skills/openstack-cloud-ops/SKILL.md b/.claude/skills/openstack-cloud-ops/SKILL.md index 0fe1d05..133cb13 100644 --- a/.claude/skills/openstack-cloud-ops/SKILL.md +++ b/.claude/skills/openstack-cloud-ops/SKILL.md @@ -6,9 +6,11 @@ # openstack-cloud-ops Operating skill for the Omega Cloud: a commercial, multi-tenant, tenant -self-administered OpenStack cloud. Current phase: single-DC virtual rehearsal -("testcloud", VR0 DC0) on four KVM hosts, rehearsing a future bare-metal -multi-datacenter deployment ("Roosevelt"). The governing design constraint is +self-administered OpenStack cloud, built as virtual rehearsals (VR0 single-DC +"testcloud"; VR1 two-DC + Office1 headend) for a future bare-metal +multi-datacenter deployment ("Roosevelt"). The CURRENT phase/stage lives in +repo `docs/CURRENT-STATE.md` ONLY (GA-R1) -- never trust a phase claim from +this file or memory. The governing design constraint is MINIMIZE DELTA TO ROOSEVELT: the runbooks and scripts are primary deliverables alongside the running cloud, so transferable answers beat quick fixes. @@ -36,11 +38,14 @@ The repo is a living draft; this skill's invariants (discipline, hardening) change slowly, its facts (IPs, versions, phase status) go stale fast. -**Long sessions get compacted.** At session start (and after any compaction), read -`docs/session-ledger.md` and run `bash scripts/ledger-scan.sh` to recover what is in flight and -reconcile it against repo ground truth (open decisions, open security rows, next-free numbers). -Update the ledger at every deliverable -- it is standing, like the changelog. See -`references/operating-discipline.md` (Session continuity). +**Session bookends (GA-R1/GA-R4).** OPEN: read `docs/CURRENT-STATE.md` in full +BEFORE any other doc (it is the only status authority), then `docs/session-ledger.md` ++ `bash scripts/ledger-scan.sh` to recover what is in flight and reconcile it against +repo ground truth (open decisions, open SEC count, next-free numbers). Re-do this +after any compaction. CLOSE: a bounded ledger summary (15-line hard cap, GA-R4 rule +1); the full session body goes to `docs/archive/` in the same close commit; commit +and push -- a session ending without its bookend is treated as NOT durable by the +next session. See `references/operating-discipline.md` (Session continuity). ## Step 1 - detect the environment - **Live shell to the jumphost / infra** (Claude Code on `vcloud` or @@ -79,7 +84,7 @@ |---|---| | Any command block, script, or paste block you are about to write | `references/script-authoring.md` | | Deploy / redeploy / teardown (VR0, single-DC testcloud) | repo `runbooks/README.md`, then the phase-NN runbook; conventions in `references/operating-discipline.md` | -| VR1 DC-DC buildout (two-DC + Office1 headend -- the current live mission) | repo `docs/dc-dc-deployment-workflow.md` FIRST (stage status + tooling gap register), then `runbooks/README.md`'s "VR1 DC-DC track" section for the `dc-dc-phase0..6` runbooks + `dc-dc-teardown-rollback.md`. SEPARATE track from VR0's phase-NN above -- do not conflate stage numbers between the two. | +| VR1 DC-DC buildout (two-DC + Office1 headend -- the current live mission) | repo `docs/CURRENT-STATE.md` FIRST (stage/gate STATUS lives there only), then `docs/dc-dc-deployment-workflow.md` (stage identity, links, gap register), then `runbooks/README.md`'s "VR1 DC-DC track" section for the `dc-dc-phase0..6` runbooks + `dc-dc-teardown-rollback.md`. SEPARATE track from VR0's phase-NN above -- do not conflate stage numbers between the two. | | Something is broken (triage, incidents) | `references/troubleshooting.md`, then repo `runbooks/appendix-A-troubleshooting.md` | | CAPI / Magnum / mgmt-VM recovery | repo `runbooks/ops-capi-recovery.md` | | Deliver ANY repo change (script, runbook, doc) | run `bash scripts/repo-lint.sh` + the touched script's `tests//run-tests.sh` BEFORE handing it over | @@ -89,12 +94,12 @@ | VR1 site unreachable after a vcloud reboot (`ssh voffice1` / `office1-*` time out) | `bash scripts/site-baseleg.sh check office1` -- `office1-local` is an ISOLATED libvirt net, so the host's base L3 leg (`10.10.0.10/24` + compose route `10.10.1.0/24 via 10.10.0.20`) is dropped every reboot; the `After=libvirtd` unit re-adds it (D-126 amendment / D-128). If MISS and the unit is not yet installed: `sudo bash scripts/site-baseleg.sh apply office1`. This is the vcloud path; the workstation reaches the same over the tailnet (D-107). | | Starting any consequential live session | `bash scripts/run-logged.sh