A quick time saver. Instead of copying the Marketing Milk upload prompt into Codex, type one command. It
packages the client-approved ads into an import ZIP that's ready for Marketing Milk.
Type $marketing-milk-package in Codex~2 minutesMac or Windows
Runs inCodex
You give itWhich ads were approved
You getOne import ZIP
Uploads?No. You upload it yourself
For you
No hunting for the Marketing Milk prompt or pasting it into every client chat.
Only approved ads go in. Rejected, draft and older versions stay out.
Your approved copy is transcribed word for word, and original files are copied byte for byte.
A built-in check confirms the ZIP's structure before you upload.
For the client
The ads that go live are exactly the ones they approved, with the copy they signed off on.
Faster launch after approval.
⚙ What it needs
No connectors. It doesn't connect to Marketing Milk or anything else. It just builds the ZIP on your computer.
Python 3Required
Runs the small ZIP checker (validate_package.py). Nothing else to install.
Check that Python 3 is installed on this computer and on my PATH (python3 on Mac, py -3 or python on Windows). If it isn't, walk me through installing it.
Attached is marketing-milk-package-skill.zip, which contains a Codex skill called marketing-milk-package. Please:
1. Back up my current marketing-milk-package skill if I have one.
2. Install the attached version into my Codex skills folder (marketing-milk-package/ with its SKILL.md, agents/, references/ and scripts/ exactly as in the zip).
3. Confirm it's installed and show me the name and description from its SKILL.md.
Do not rewrite or summarize the skill files. Install them as-is.
Then type $ in a new chat and marketing-milk-package should be listed.
▶ How to run it
Once the client has approved, open the Codex chat where the ads were made (that chat has the files and final copy)
and type $marketing-milk-package.
Tell it what was approved, in plain words. For example: "all approved except the two testimonial ads."
You can also paste the client's review summary email from Client Package.
It asks only if something truly blocks packaging. The common one is a carousel with more than five cards,
because Marketing Milk accepts 2–5.
You get a ZIP with creatives.json and a media/ folder, plus the creative and file counts.
Upload the ZIP in Marketing Milk yourself.
i Good to know
It never changes creative. No resizing, cropping, rewriting or "fixing." Copy fields that weren't approved are left blank, and that's expected.
Each ad gets a one- or two-sentence "justification" explaining the strategic intent, based on what was discussed in the chat.
Sizes stay separate. Feed, Square and Story versions become separate creatives unless you set up a carousel or dynamic format.