Create agents/research.md with one job: drop a weekly teardown pack, not a chat. Input = niche + 3 competitor accounts. Output = research/YYYY-WW/ with: 5 hooks that worked, 3 angles to steal the structure of (not the copy), and a 7-day content calendar (one post idea per day). Put it on a clock — Monday AM scheduled task in Claude Code — so the pack exists before you open the laptop. Fill the research stub in the code block below and run it once this week. That is the 30-minute start.
02
02Script
Script agent writes hook → body → CTA only
Make agents/script.md. Job: turn one calendar row into a locked script — hook (first 3 seconds), body (one teaching beat), CTA (comment keyword + what they get). Never invent the niche; read the research folder first. Output path: scripts/YYYY-MM-DD-slug.md. Ban income claims and price in the hook. Paste one research angle into Claude with the script brief from the checklist and save the file before you generate a single frame.
03
03Package
Package keyword-first: thumb + caption before pixels
Create agents/package.md. Before build, it writes: a 4:5 thumbnail line (one idea, face-safe quiet zone), a caption pack (gap hook → value → save prompt), and the keyword arm (exact comment word → DM guide URL → 20h follow-up). Keyword-first means the CTA keyword is chosen here, not after the post is live. Output: package/YYYY-MM-DD/ with thumb.txt, caption.md, keyword.json. Do this for the script you just wrote — three files, no pixels yet.
04
04Build/QC
Build + QC through a face-safe brand gate
Split the job: agents/build.md generates the carousel/reel from brand.md + ugc-brief; agents/qc.md rejects before anything public. QC fails on: text on faces, plastic skin, off-palette, missing keyword in caption, no quiet edge for type. Wire a one-line gate: if qc.md says FAIL, build does not hand off to publish. Run the QC checklist in the code block on your last draft image — fix one FAIL before you move on.
05
05Publish/Ops
Publish + ops, then loop the week back to research
Make agents/publish.md (post via Zernio, arm the keyword, schedule the 20h follow-up) and agents/ops.md (Friday: what shipped, what keyword converted, what to feed research next Monday). You read the ops log; you do not babysit each post. After one publish, file a 5-line ops note and put next week's research topic at the top of the calendar. The loop closes when ops → research is a file handoff, not a Slack ping to yourself.
CLAUDE.md pipeline checklist + 5 agent stubs · paste into the project root
# CLAUDE.md — Creative OS 5-agent pipeline. Fill brackets. One job per agent. # Who I am: [name]. Buyer: [who]. Voice: [3 rules]. Never: income claims, price in hooks, type on faces. # LOOP research → script → package → build → qc → publish → ops → (weekly) research
# --- agents/script.md --- # Job: one calendar row → hook / body / CTA. Output: scripts/YYYY-MM-DD-slug.md # Must never: write without reading research/, put price or income claims in the hook. # CTA format: Comment [KEYWORD] + what they get (guide URL comes from package).
# --- agents/package.md --- # Job: keyword-first pack BEFORE pixels. Output: package/YYYY-MM-DD/{thumb.txt,caption.md,keyword.json} # thumb.txt = one idea, 4:5, quiet zone for type. caption.md = gap hook → value → save. # keyword.json = {"keyword":"PIPELINE","dm":"https://guides.aicreativeos.com/guides/creative-os-pipeline/","followup_hours":20}
# --- agents/build.md + agents/qc.md --- # build: generate from brand.md + ugc-brief + package/. qc: FAIL if text-on-face, plastic, off-palette, # missing keyword in caption, or no quiet edge. No publish handoff on FAIL.
# --- agents/publish.md + agents/ops.md --- # publish: Zernio post + arm keyword + schedule +20h follow-up. ops: Friday 5-line log → next research topic. # INSTALL CHECK: 5 agent stubs exist · brand.md exists · one package/ folder shipped · one Zernio post armed this week
Want this running for you?
Build it step by step inside AI Creative OS, with me in the thread.