← Files JuicyLucy AdsARCHIVED FILE

skills/juicylucy/references/naming.md

2.93 KB · Oct 5, 2026 · 18:34 UTC

↓ Download file

# The export filename grammar — method

Values live in [`../naming.json`](../naming.json). This file is the method and
the mistakes.

## Why the filename matters

Exported files leave the production tree and enter a flat delivery namespace —
an upload folder, an ads manager, a report. There the filename is the only
thing distinguishing one creative, market, or version from another, and after
launch it is the attribution key connecting performance back to the creative.
A wrong filename is a lost measurement, not a cosmetic defect.

## Authoring rules

- Naming the file correctly **is part of finishing the ad**, the same as
  writing the copy. Never save or hand off a tool-default name
  (`image1.png`, `output.png`, `untitled.mp4`) intending to rename later.
- If a field's correct value is genuinely unknown at creation time, ask —
  do not guess, and do not skip the convention.
- Reserve the collision-free final name **before** moving the output into the
  campaign folder; list the destination folder and validate every delivered
  filename before reporting completion.
- The `ad-naming` skill's tool (`naming.mjs`) authors every filename for both
  mediums; never hand-write a filename beside it.

## The common mistake — no third name segment

The angle a variation tests is not recorded in the filename. Exactly two name
segments exist: Market, then Creative Name (with its version number).

```
ES - Sign Post - AUTHOR STORY - AUTO_F-IMG_..._2026.07.21.png   ✗ wrong
ES - Sign Post - AUTO_F-IMG_..._2026.07.21.png                  ✓ correct
```

## Localization inheritance

When recreating a campaign in another language, exact source-to-target mapping
takes precedence over inventing better names:

1. Replace only the leading market token (`RU - ` → `MN - `).
2. Preserve the complete remaining basename byte-for-byte — version number,
   metadata block, date, extension.
3. Build the expected basename set per **ad set**, not only per language, and
   require every target ad set to match its source set exactly; a correct
   language-wide total can still conceal misplaced files.
4. Do not rename a localized creative to sound more natural, bump its version,
   or re-date it when the campaign contract requires the inherited date.

## Naming checklist

- [ ] Market code matches the actual target language (`languages.json`)
- [ ] Creative Name is unique — checked against existing files
- [ ] Version number appended for second and later versions of a concept
- [ ] No third name segment
- [ ] Author constant matches the medium (`naming.json` → `mediums`)
- [ ] `F-` matches the actual asset type; extension matches the actual file
- [ ] `R-` is the artifact's actual ratio
- [ ] `AL-` reflects the funnel stage; `TB-` records the source; `TH-na` as-is
- [ ] `FB-` is a value from the medium's style vocabulary
- [ ] Date is `YYYY.MM.DD` (inherited for a contract-bound localization)
- [ ] For a localization, only the leading token differs from the source

SHA-256: 0837188e6ccc00c14a2d539afae1a264ce1dc68fa28a98585fb9afd66a5e5770