Turns a finished set of ads into a clean review website. The client opens one link on their
phone, taps Approve or Reject on each ad, and adds a short reason for any rejection. You get an email when they finish.
Type $client-package in Codex~15 min per clientMac or Windows
Runs inCodex
You give itFinished ads + the Creative Package
You getA review site + ZIP
Goes liveOnly when you say so
For you
No more screenshot decks or long email threads for creative approval.
Every decision comes back in one email: each ad marked Approved or Rejected, with the client's reason.
Check that this computer has Python 3 with Pillow installed and that Pillow can save WebP images. If anything is missing, install it in a sensible user-level or project environment and confirm WebP works. Don't change system Python settings without asking me.
NetlifyNeeded to go live
Hosts the review site, collects the client's responses (Netlify Forms), and emails you when they finalize. Uses your own Netlify account. The free tier is usually enough.
Help me connect Netlify to Codex so skills can deploy static sites to my Netlify account. Add Netlify's official MCP server (npx -y @netlify/mcp) to my Codex MCP configuration, sign me in (Netlify CLI login or a personal access token stored outside any project folder), then confirm by listing my Netlify team and sites. Don't create or deploy anything yet.
A web browserAlready have it
To preview the site on your computer before anything is uploaded. Your default browser is fine.
Attached is client-package-skill.zip, which contains a Codex skill called client-package. Please:
1. Back up my current client-package skill if I have one.
2. Install the attached version into my Codex skills folder (client-package/ with its SKILL.md, agents/, assets/, references/ and scripts/ exactly as in the zip).
3. Confirm it's installed and show me the name and description from its SKILL.md.
4. Check that Python 3 with Pillow (WebP support) is available and tell me if anything is missing.
Do not rewrite or summarize the skill files. Install them as-is.
Then type $ in a new chat and client-package should be listed.
▶ How to run it
First time only: your contact card. It asks for your name, work email, phone, and the email that
should get review notifications, then asks whether to save them on this computer. Say yes and it won't ask again.
These details go in the site header so the client knows who to call.
Open a Codex chat for the client (the one where the ads were made is ideal). Type $client-package
and point it at the finished ads and the <Client>-Creative-Package.md.
It builds a local preview: a folder with index.html. Open it and check it on desktop
and at phone width. Nothing is uploaded at this step. Ask for changes and it rebuilds locally.
Make every change here, before you publish. Each push to Netlify uses deploy
credits and API calls, so needless re-publishes add up. Once the preview is final, tell Codex to publish it via Netlify.
Go live, when you say so. Tell it "publish this to Netlify." It creates or updates the
client's site, turns on the response form, and sets up the email you get when the client finalizes. It gives you back
a public link for the client and a private responses link for you.
Send the public link to the client. They review on their phone and press Finalize.
You get an email titled "[Client] has finalized their creative package!" It lists each ad as Approved or
Rejected, with the reasons. Next step: Marketing Milk Package.
i Good to know
Publishing the review site doesn't publish any ads. Nothing goes to Meta from this skill.
Review copies vs. originals. The site uses compressed previews so it stays fast on phones. Your original JPG/PNG files stay untouched for upload. Ask for a production ZIP if you need the originals bundled.
Changing the ads later? A materially changed set gets a new package, so the old responses and the new ones stay separate.
Who can see the site. Anyone with the link can open it, but it isn't listed in search engines. Every
build includes a noindex tag and a robots.txt file. When client or Drive assets call for more privacy, ask Codex to
password-protect the site in Netlify (depends on your Netlify plan) and send the password separately from the link.
This applies to any page you host on Netlify, including Client Dashboards.
Where the responses live: in your Netlify account (Forms). They're private even though the gallery link is public.
Want a certain look, logo size or wording? Just ask in the chat. The skill keeps the dark gallery style by default.