docs(naming): ceremony codes follow game item-id convention (snake_case DanceType)

13 ceremony slots tabled in the registry (12 DanceType + rain_dance),
provisional ids now nd_##; codes like war_dance_01 / WarDance01.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-16 14:36:03 -07:00
parent 6a1290b1d1
commit 9b190e742e
2 changed files with 41 additions and 20 deletions
+10 -9
View File
@@ -32,15 +32,16 @@ This skill is the accumulated **do-it-this-way** knowledge from real runs.
Blender here is **5.1.2**. When running from this repo the `--target` is **required** — the tool's default target path is ariki-relative and won't resolve. Blender here is **5.1.2**. When running from this repo the `--target` is **required** — the tool's default target path is ariki-relative and won't resolve.
## Naming system (registry: `docs/dances/REGISTRY.md` — read it, it is the source of truth) ## Naming system (registry: `docs/dances/REGISTRY.md` — read it, it is the source of truth)
Two-stage names. **New dances get a provisional id, never a content name**: at Two-stage names, following the **game's item-id convention (lowercase snake_case)**.
conversion, assign the next free `nd##` from the registry — pack `nd08`, clip `ND08`, **New dances get a provisional id, never a content name**: at conversion, assign the
JSON `nd08.json`, variants `nd08_pp`/`ND08PP` — regardless of what the PC export was next free `nd_##` from the registry — pack `nd_08`, clip `ND08`, JSON `nd_08.json`,
called (a take named "firedance1" turned out to be dance1's choreography). Only when variants `nd_08_pp`/`ND08PP` — regardless of what the PC export was called (a take
Jeremy **adopts** a take for a specific in-game dance is it renamed to its dance code — named "firedance1" turned out to be dance1's choreography). Only when Jeremy **adopts**
codes are named after the **dance ceremony** the take corresponds to: `<ceremony><NN>` a take for a specific in-game dance ceremony is it renamed to its dance code —
lowercase-ascii pack (`powhiri01`, `hulakahiko01`, `sivaafi01`), PascalCase clip snake_case of the sim's `DanceType` enum + index: pack `war_dance_01`, clip
(`Powhiri01`) — via `tools/rename_clip.py` + JSON rename + registry update. Never `WarDance01`, variants `war_dance_01_pp`/`WarDance01PP`. The 13 ceremony slots are
guess the ceremony; Jeremy assigns it. Rejected takes are archived tabled in the registry. Rename via `tools/rename_clip.py` + JSON rename + registry
update. Never guess the ceremony; Jeremy assigns it. Rejected takes are archived
(`archive/` here; `archive/dances/` in ariki-game, which is `.gdignore`d), never deleted. (`archive/` here; `archive/dances/` in ariki-game, which is `.gdignore`d), never deleted.
Numbers are never reused. Always update the registry row when converting/adopting/archiving. Numbers are never reused. Always update the registry row when converting/adopting/archiving.
+31 -11
View File
@@ -4,20 +4,22 @@ Every dance clip in the pipeline is tracked here. **Numbers are never reused.**
## Naming system ## Naming system
**Stage 1 — provisional (new dances).** Every new take gets the next free `nd##` Names follow the **game's item-id convention: lowercase snake_case** (like
`ceremonial_garb`, `dance_platform`, `war_challenge`).
**Stage 1 — provisional (new dances).** Every new take gets the next free `nd_##`
number at conversion time, regardless of what the PC-side export was called: number at conversion time, regardless of what the PC-side export was called:
pack/file `nd08`, clip `ND08`, dance JSON `nd08.json`. Variants keep the base id + pack/file `nd_08`, clip `ND08`, dance JSON `nd_08.json`. Variants keep the base id +
suffix: `nd08_pp` / `ND08PP`. The `nd` prefix means "not yet adopted — subject to suffix: `nd_08_pp` / `ND08PP`. The `nd` prefix means "not yet adopted — subject to
rename or archive". Never name a new dance after its content (a take called rename or archive". Never name a new dance after its content (a take called
"firedance1" turned out to be dance1's choreography — content-guessed names lie). "firedance1" turned out to be dance1's choreography — content-guessed names lie).
**Stage 2 — adopted (chosen for a specific dance ceremony).** Dance codes are named **Stage 2 — adopted (chosen for a specific dance ceremony).** Dance codes are the
after the **ceremony the dance belongs to in the game**: `<ceremony><NN>` — the **game ceremony** the dance belongs to — snake_case of the sim's `DanceType` enum
ceremony slug in lowercase ascii (no spaces/diacritics: `powhiri`, `kapahaka`, `wero`, (`sim/arena/src/GameSystems.cs`) + a two-digit index for multiple takes per ceremony:
`hulakahiko`, `hulaauana`, `sivaafi`, …), a two-digit index for multiple dances within pack `war_dance_01`, clip `WarDance01` (PascalCase, matching the enum), dance JSON
the same ceremony, PascalCase clip. Examples: pack `powhiri01` / clip `Powhiri01`, `war_dance_01.json`, variants `war_dance_01_pp` / `WarDance01PP`. A take is only
variants `powhiri01_pp` / `Powhiri01PP`. A take is only renamed once Jeremy says which renamed once Jeremy says which ceremony it corresponds to. Rename with:
ceremony it corresponds to. Rename with:
```bash ```bash
/Applications/Blender.app/Contents/MacOS/Blender --background --python tools/rename_clip.py -- \ /Applications/Blender.app/Contents/MacOS/Blender --background --python tools/rename_clip.py -- \
@@ -29,6 +31,24 @@ ceremony it corresponds to. Rename with:
**Archive.** Rejected/superseded takes move to `archive/` (this repo) and **Archive.** Rejected/superseded takes move to `archive/` (this repo) and
`archive/dances/` (ariki-game, `.gdignore`d) — never deleted, never renamed. `archive/dances/` (ariki-game, `.gdignore`d) — never deleted, never renamed.
## Ceremony slots (from the sim's `DanceType` enum + tech tree)
| ceremony code | Age | status | take |
|---|---|---|---|
| `water_dance_01` | 1 | awaiting take | — |
| `fire_dance_01` | 1 | awaiting take | — (the old "firedance1" was mislabeled dance1 choreography) |
| `tide_dance_01` | 1 | awaiting take | — |
| `fertility_dance_01` | 1 | awaiting take | candidate: aloha1 (hula) |
| `food_dance_01` | 1 | awaiting take | candidate: aloha1 / dance1 |
| `taming_dance_01` | 1 | awaiting take | — |
| `sailing_dance_01` | 2 | awaiting take | — |
| `war_dance_01` | 2 | awaiting take | candidate: hakadance1 (haka) |
| `building_dance_01` | 2 | awaiting take | — |
| `colony_shield_dance_01` | 2 | awaiting take | — |
| `age_progression_dance_01` | 3 | awaiting take | — (gates Age advancement) |
| `star_watching_dance_01` | 3 | awaiting take | — |
| `rain_dance_01` | tech | awaiting take | — (tech-tree "Rain Maker"; not in DanceType enum yet) |
## Register ## Register
| id | status | pack(s) | clip | origin take | notes | | id | status | pack(s) | clip | origin take | notes |
@@ -42,5 +62,5 @@ ceremony it corresponds to. Rename with:
| — | archived | `hakaOG` | `HakaOG` | hakaOG | near-identical to hakadance1 | | — | archived | `hakaOG` | `HakaOG` | hakaOG | near-identical to hakadance1 |
| — | archived | `haka_mocap` | `HakaFull` | MediaPipe video mocap (2026-07-13) | pre-iClone experiment | | — | archived | `haka_mocap` | `HakaFull` | MediaPipe video mocap (2026-07-13) | pre-iClone experiment |
Next free provisional number: **nd01** (none issued yet — the five keepers predate Next free provisional number: **nd_01** (none issued yet — the five keepers predate
the system and keep legacy names until adopted). the system and keep legacy names until adopted).