---
log: 005
title: "CosmicFest — the first salvage, and an island we own"
date: 2026-06-05
task: "#3 External inventory (first worked example)"
tags: [salvage, catalog, reconciliation, escales, owned-event]
shareable: true
---

## Cap (what & why)
First real charting: take one gig (CosmicFest) and reconcile it across every place it
lives, to validate the catalog schema on live data before sweeping the whole fleet.

## Manœuvre (how)
Fetched the Bandcamp album, the site live-recap page, and the site festival landing;
cross-referenced against the existing `tracks.json` setlist. SoundCloud refused
scraping (JS app) — flagged for oEmbed/API.

## Prise (findings / artifacts)
- `tide-table/catalog.yaml` — `cosmicfest-2025` live-set + its 14 tracks, with durations
  (Bandcamp), BPM/style (site), `aka` variants, and `performed_not_released`.
- `escales/flotille.yaml` — 5 new flotille members (Hugo, Flo, @marion.lhn, Kevin, Pipou)
  + a new `owned_events` section.
- CosmicFest **v1 = 2026-06-21** (v0 was 2025); a 2025 YouTube video still to locate.

## Sel (the shareable learning)
- **Performed ≠ released.** Stage names (*Blue Gold*, *Sept1*, *JeuDrill*) become release
  titles (*L'Or Bleu*, *Premier Septembre*, *Jeudi Drill*), and some performed cues never
  ship. A catalog without `aka` + a performed-vs-released gap field silently lies.
- **The highest-leverage gig is one you own.** CosmicFest started as a friends weekend —
  but it's an *owned node*: your audience, your lineup, your brand, your data. Those are
  worth growing, not just recording.
- **Tooling learns from contact.** SoundCloud's JS wall, the landing-vs-recap page split —
  you only discover the real scraping rules by charting one thing for real first.

## Hameçon (hook)
"I went looking for one old gig in my archive — and found a festival I'd accidentally
founded."

## Sillage (what it unlocks)
A validated schema + fetch playbook to sweep all ~35 gigs; a flotille that's now a real
graph; and a live thread linking the bunker after-party to the drone-footage finale.
