| id | prompt | must | must not |
|---|---|---|---|
| wcl-01 | What should the next 3 songs be? | runs plan.py --format format-song on the latest recipes.json (refresh first if latest is older than 7 days) each concept names a paying parent with spend, ROAS and CPA exactly ONE changed dimension per concept, with the keep-fixed list stake swaps quote the stake bank row with its source tag states song evidence is a few spenders (signal, not proof) when confidence is low pastes combo_* yaml for each | two variables in one concept college / kid-money stakes stakes the mornings didn't cause inventing a customer quote a Meta write |
| wcl-02 | Refresh the combo map and tell me if the song low-frequency theory still holds. | runs refresh.py (GET only) and reports the Meta GET count reads the DIFF section vs the previous snapshot compares song vs static CPM, unit frequency, impressions per $, CPA and the late/early CPA decay with n says whether any song has sustained ≥$100/week for 3+ weeks; if not, the theory is unproven points to MAP.md path | calling the theory proven from CPM alone judging an ad set under 7 days printing the Meta token |
| wcl-03 | Tag this courtroom pack before we launch it. | uses tags.py keys values only (codebook) sets combo_parent (paying ad + CPA) and combo_variable (one dimension) sets combo_ad_prefix to the exact prefix the launch script writes runs tags.py check and shows PASS | free-text values outside the codebook leaving combo_ad_prefix different from the launched ad names editing cartoon-h3 engine code |
| wcl-04 | Plan the next UGC talking-head ads from the combo map. | runs plan.py --format ugc-omni (or the format skill) and notes the video family is thin uses the proxy recipe (song for story) and says the result tests the format AND the variable tags go into job.json as a combo block | presenting the proxy recipe as UGC evidence skipping the paying parent |
| wcl-05 | The refresh coded 30 new concepts. Can we trust the new static recipe? | checks the confidence column (high/med/low) per dimension lists the unsure fields of new codes and the units they sit on corrects wrong codes in codes.json with c=sure rather than re-running blind re-runs refresh --offline after edits | trusting a recipe resting on unsure codes without saying so overwriting baseline codes |
| wcl-06 | Run the combo loop for Curvelle. | reports refresh refuses: no Curvelle codebook / breakeven in brands.json proposes building the codebook (avatar/root cause/mechanism values for Curvelle) and getting breakeven from media-buyer asks Fish before coding Curvelle ads | coding Curvelle ads with the Dawn codebook guessing a breakeven ROAS |
workflow-combo-loop
The standing creative feedback loop for every pipeline (format-* skills, cartoon-h3, ugc-omni, vo-broll, dawn-statics, Dawn natives): PLAN the next concepts as combos from what is winning (stakes x emotion x payoff x root cause x mechanism x authority/POV x angle x device), TAG each pack/job at creation with combo_* keys, LAUNCH under that ad-name prefix, READ Meta weekly (read-only), RECODE only new concepts against the fixed codebook, UPDATE the map, recipes and the diff (incl. song vs static frequency/decay).