Session changelog (GA-R2/D1: ONE per session; distinct session from the 2026-08-05 vault-init close, whose body is docs/changelog-20260805-vault-init-ovn-resolved.md). Branch dc-dc-stage5-preconditions. Session open reconciled at HEAD e252b31: repo-lint 0 fail / 1 legacy warn, ledger-scan 4 open decisions / 29 open SEC / next-free D-143, DOCFIX-209, BUNDLEFIX-053. Status claims live in docs/CURRENT-STATE.md ONLY; nothing here is a status claim.
Scope: a single skill/repo divergence in the session-CLOSE bookend text, surfaced 2026-08-05. No live-cloud mutation; no state-bearing surface touched (a skill routing line is not a status claim, so no GA-R1 L10 coupling). Stage 5 dc0 remains OPEN and untouched by this session.
WHAT WAS WRONG. .claude/skills/openstack-cloud-ops/SKILL.md (the always-loaded routing layer -- F12: a wrong line here misleads every fresh session before any runbook loads) described session CLOSE as: "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." That last clause is a paraphrase of ratified GA-R4 rule 2's literal words -- but it CONFLATES two distinct ratified mechanisms and describes neither correctly:
docs/audit/ga-rulings.md:328-338) is the LEDGER ROTATION mechanism: bounded summaries rotate out to a dated docs/archive/session-ledger-rotated-*.md file when the 300-line live-ledger cap binds at a close -- NOT a "full body" and NOT "in the same close commit" of every session. Practice follows this: docs/archive/ holds 11 such rotated ledgers (latest session-ledger-rotated-20260804.md).docs/audit/ga-rulings.md:228-234) makes the CHANGELOG the session body-of-record ("one changelog per session"). The session's full body is docs/changelog-<date>-<label>.md, cited by a Body: line in the ## SESSION CLOSE <date> block appended to docs/session-ledger.md. That changelog is consolidated per-stage into docs/archive/changelogs/ at STAGE close (GA-R2 rule 2), not moved at session close.So the skill line was wrong on both counts: the per-session body is the changelog (it stays in docs/changelog-* until stage-close consolidation), and what reaches docs/archive/ at a session close is a ledger rotation, and only at cap.
EVIDENCE (measured, not asserted).
docs/audit/ga-rulings.md:328-332 (GA-R4 rules 1-2), :333-338 (F1 cap-at-close), :209-234 (GA-R2 rules 2/5 + D1).ls docs/archive/ -> session-ledger-rotated-*.md (x11) PLUS changelogs/ (consolidated per-stage bodies) PLUS stage-records/ PLUS one-off historical docs. Archive is NOT "rotated ledgers only".docs/session-ledger.md carry Body: changelog citations: 08-05 -> docs/changelog-20260805-vault-init-ovn-resolved.md; 08-04 -> docs/changelog-20260804-ovn-central-cert-fix.md; 08-02 -> docs/changelog-20260802-queued-items.md.references/operating-discipline.md "Session continuity" (:100-112) is already correct (ledger = what is open; changelog = what changed) and needs NO edit.DISPOSITION. Operator-ruled 2026-08-05: "Proceed as DOCFIX-209". Because both same-day rulings, read correctly, BACK the practice and CONTRADICT the skill line's conflation, no ratified text changes -- this is a skill-text correction, not a GA-R5 amendment. (The alternative -- amend GA-R4 rule 2 first -- was offered and declined.)
THE FIX. In .claude/skills/openstack-cloud-ops/SKILL.md, the CLOSE sentence now reads: bounded <=15-line summary (GA-R4 rule 1) appended to docs/session-ledger.md as a ## SESSION CLOSE <date> block; the session's full body is its changelog (docs/changelog-<date>-<label>.md, GA-R2 one-per-session) cited by that block's Body: line; and docs/archive/ is explicitly NOT the per-session body store -- it holds periodically-rotated full ledgers (session-ledger-rotated-*.md, GA-R4 rule 3) and per-stage consolidated records (archive/changelogs/, archive/stage-records/, GA-R2 rule 2 at STAGE close). ASCII-only (<= not the glyph; -- dashes).
SECOND COPY FIXED. The derived Chat-upload snapshot .claude/skills/openstack-cloud-ops-consolidated-20260727.md:54-57 carried the byte-identical sentence and was patched identically, so the Chat mount does not stay stale in the interim (a stale mount is the known failure mode that caused a bad clone 2026-07-25, docs/audit/skill-divergence-20260725.md). The snapshot is a DERIVED artifact; it is properly regenerated from SKILL.md + references at stage close -- this hand-patch is an interim-consistency measure, not a substitute for that regeneration. (A third copy exists in the git-ignored worktree .claude/worktrees/skill-repackage-20260727/; left untouched -- it is a separate working tree, not part of the tracked surface.)
REVERT. git revert this commit (skill edits ship uncommitted for operator diff review, so pre-commit this is git checkout -- <the two skill files>). Restores a routing line that conflates GA-R4 ledger rotation with the GA-R2 changelog body and mis-describes docs/archive/. Do not revert without re-opening the finding -- the line misleads every fresh session's close bookend.