# Songbook cache manifest audit card

Last refreshed: 2026-07-01 10:05 AWST

Purpose: a public-safe checklist for the exact local/live files that should be cached for gig mode. This card is only about browser shell reliability and public seed data; it must not include private localStorage backups, credentials, payment details, router data, Wi-Fi secrets, or private gig notes.

## Cache inventory

| File / URL | Why cache it | Gig-mode status | If missing |
|---|---|---|---|
| `./` / `https://chords.system8.com.au/` | App shell entrypoint and fallback target for navigation. | Must not be missing | Hold: the songbook shell may not open offline. |
| `./index.html` | Search/import/export controls, audience route, support links, and app boot markup. | Must not be missing | Hold: cached JS/data cannot recover a missing shell. |
| `./app.js` | Local-first songbook logic: localStorage library, import/export, seed JSON fallback, Ultimate Guitar helpers, audience view. | Must not be missing | Hold: shell may render but controls and song loading break. |
| `./manifest.webmanifest` | Install metadata for app-like launch on phone/laptop. | Safe if missing | Browser install prompt may be weaker, but the web shell can still run. |
| `./chords.system8.json` / `https://chords.system8.com.au/chords.system8.json` | Canonical public seed song route used first by `app.js`. | Safe if missing when fallback/local songs work | Warn: app should try `songs.json` and must not wipe localStorage. |
| `./songs.json` / `https://chords.system8.com.au/songs.json` | Public seed-song fallback while canonical route is unavailable. | Safe if missing when local songs/import controls work | Warn: show friendly failure copy and keep browser-local songs/import/export available. |
| `./songbook-live-json-consumer-checklist.md` | Operator contract for canonical-first seed loading and no-localStorage-wipe behaviour. | Safe if missing during performance | Follow-up: docs link is broken, but app shell can still run. |
| `./songbook-live-json-failure-copy-card.md` | Public-safe fallback text for canonical/fallback/offline/no-public-lyrics states. | Safe if missing during performance | Follow-up: docs link is broken; app copy should still remain friendly/public-safe. |
| `./songbook-offline-rehearsal-check.md` | 60-second pre-gig offline rehearsal steps. | Safe if missing during performance | Follow-up: docs link is broken; use cached shell/import/export evidence instead. |
| `./songbook-cache-manifest-audit-card.md` | This cache checklist and current expected service-worker asset list. | Safe if missing during performance | Follow-up: docs link is broken; re-run local tests and inspect `sw.js`. |
| `./songbook-gig-mode-json-load-check.md` | Tiny operator check for canonical JSON -> fallback JSON -> offline cache behaviour. | Safe if missing during performance | Follow-up: docs link is broken; use the JSON consumer checklist and local tests instead. |

## Current service-worker expectation

`sw.js` should declare cache `enkayz-chords-v14` and precache:

```text
./
./index.html
./app.js
./chords.system8.json
./songs.json
./manifest.webmanifest
./songbook-live-json-consumer-checklist.md
./songbook-live-json-failure-copy-card.md
./songbook-offline-rehearsal-check.md
./songbook-cache-manifest-audit-card.md
./songbook-gig-mode-json-load-check.md
```

## Human-present gates

- Real no-internet rehearsal on the actual van laptop/phone after the browser has installed or visited the site online once.
- Real projector/audience readability and comfort check.
- Real backup file location and restore practice.
- Live phone scan/payment/Wi-Fi/public-link choices.

## Verification

Run from `/home/nk/chords-system8-live-site`:

```sh
npm test
python3 -m json.tool chords.system8.json >/tmp/chords-system8-json-route-local.json
python3 -m json.tool songs.json >/tmp/chords-system8-songs-route-local.json
cmp -s chords.system8.json songs.json
```

Browser check: open the local homepage, confirm the `Cache manifest audit` link appears beside the live health/JSON/offline cards, open this card, and confirm the cache inventory table renders with no console errors.
