# DESTINATION MAP -- read before unpacking

Session 2026-07-25, Chat design seat -> Code.
Authored against bc9a2df, revised against 4ed29aa.

The previous version of this pack was a flat folder with no destinations. This version
mirrors repo paths for the files that ARE repo artifacts, and quarantines the rest.

================================================================================
## Unpack behaviour
================================================================================

  docs/audit/...                 -> unzip over the repo root. Three NEW committed files.
  _handoff-not-committed/...     -> DO NOT COMMIT. Working instructions whose CONTENT
                                    lands inside existing surfaces. Delete after use.

If `_handoff-not-committed/` ends up in a commit, that is the bug this revision exists
to prevent. Nothing in it is a repo artifact.

================================================================================
## The three NEW committed files
================================================================================

  docs/audit/operating-model-plan-20260725.md
      The NetBox -> approve -> apply operating model: recommendations, the agenda, and
      the research scope the operator asked for. PINNED for a planning session.
      Implement nothing from it.

  docs/audit/sprygit-requirements-inputs-20260725.md
      Pinned inputs for the SpryGit dev-handover document. The document itself is the
      next Chat deliverable and is NOT in this pack.

  docs/audit/skill-divergence-20260725.md
      The stale-Chat-skill divergence list, for the skill sweep at stage close.

WHY `docs/audit/` and not `docs/`: `docs/` top level is at 21 `.md` files against
GA-R4's cap of <25 -- three slots of headroom, which dated advisory records should not
consume. `docs/audit/` is uncapped and is the established home for dated advisory and
plan documents; precedents already there include `phase5-sweep-plan.md`,
`skill-additions-proposed.md`, `grounding-audit-charter.md` and
`decision-recon-20260725.md`. `scripts/repo-lint.sh` carries no file-count or naming rule
that these would trip (checked).

================================================================================
## Everything else: content, not files
================================================================================

| Working file | Content lands in | Form |
|---|---|---|
| `10-design-decisions-append.md` | `docs/design-decisions.md` | append at register tail; replace every `D-NNN` with the `ledger-scan` number |
| `20-ruling-records.md` | distributes -- see below | three separate records |
| `30-current-state-update.md` | `docs/CURRENT-STATE.md` section 1, Stage-4 bullet | edits in place, SAME COMMIT as item 10 (GA-R1/C1) |
| `40-session-changelog-items.md` | THIS session's changelog under `docs/changelog-<date>-<label>.md` | append items; do NOT mint a per-topic changelog file (GA-R2/D1) |
| `50-ledger-bounded-summary.md` | `docs/session-ledger.md` tail | append the 15-line block; never touch the machine-derived fence |
| `60-vault-vip-values.md` | splits -- see below | values + gates |

### How `20-ruling-records.md` distributes

There is no ruling-record file convention in this repo -- rulings attach to the surface
they govern (precedent: D-134's amendment records its own question and utterance inline;
D-131 sub-1 likewise). So:

  Ruling 1, address family      -> an amendment note under `## D-101` in
                                   `docs/design-decisions.md` (it CONFIRMS D-101 and
                                   changes nothing in it, so a dated note, not a rewrite)
                                   + the CURRENT-STATE bullet (b) rewrite in item 30
  Ruling 2, keystone VERIFY-LIVE -> a gate row in `docs/CURRENT-STATE.md` (item 30)
                                   + a changelog line
  Ruling 3, per-DC artifact shape -> already recorded inline in the new D-NNN entry's
                                   "Artifact shape (RULED 2026-07-25)" paragraph; the
                                   question and utterance travel with it

Each carries its question and the operator's exact utterance (GA-R5).

### How `60-vault-vip-values.md` splits

  The four confirm-before-write gates -> the phase-4 runbook step that performs the
      repair (`runbooks/dc-dc-phase4-juju-bundle-per-dc.md`), so the gates sit where the
      hand is
  The derivation and the values       -> the changelog item for the repair, which is the
      review surface
  The `VIP_COUNT_EXPECT` 11 -> 12 change -> `scripts/lib-net.sh:59`, in the same commit
      as the vault VIP, or `scripts/pre-flight-checks.sh:99-102` fails

If you want the derivation citable rather than buried in a changelog, the consistent home
would be `docs/audit/vault-vip-derivation-20260725.md`. Operator's call -- I have not
created it, because the changelog is the ruled review surface and a fourth audit file
may not earn its place.

================================================================================
## Order of operations (unchanged from the previous pack)
================================================================================

  0. Read `docs/audit/decision-recon-20260725.md`. This pack was revised against it:
     the scope boundary was CORRECTED (apex writes are IN, not out), the gap statement
     rewritten to the sub-prefix layer, and a sequencing prerequisite added.
  1. `bash scripts/ledger-scan.sh` -- assign the D number and all THREE DOCFIX numbers.
  2. Record the rulings BEFORE dependent work (GA-R5), commit and push.
  3. Register append + CURRENT-STATE, same commit.
  4. Changelog items into the existing session changelog.
  5. Ledger block at session close only, 15-line cap.
  6. Then the gated execution path.

Placeholders are non-numeric on purpose (`D-NNN`, `DOCFIX-NNN`): `ledger-scan` keys the
high-water on `^## D-[0-9]+`, and a digit-shaped placeholder inflates the counter -- the
DOCFIX-174 hazard.

All files ASCII-only, LF-only, byte-verified by Python read before packaging.
