agency-multi-brand-pack

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Agency multi-brand pack

代理机构多品牌套件

Run generations for N retainer clients in one coordinated pass — each client's output strictly namespaced, each job gated by that client's brand rules, every run audit-ready for legal and billing.
N clients × M templates per client → one batch, zero cross-contamination. For agencies running weekly/monthly creative cycles across a client portfolio.
一次性为N个固定合作客户生成内容——每个客户的输出严格按命名空间隔离,每个任务受该客户的品牌规则约束,每次运行都可用于法律审计和账单核算。
N个客户 × 每个客户M个模板 → 一次批量处理,零交叉污染。 适用于在客户组合中每周/每月开展创意周期的代理机构。

When to Use

使用场景

  • Weekly/monthly retainer refresh across multiple retainer clients
  • Portfolio-wide seasonal re-skin (e.g. holiday refresh for all 8 retainer brands in one batch)
  • Multi-client pitch week where each pitch needs its own branded mockup set
  • Audit-ready production runs where finance/legal need a per-client spend breakdown
  • Any agency workflow where "run the same pipeline for every client, with their rules" is the task
Do not use for single-client deep-production work — drop to
agency-pitch-mockups
or a client-specific workflow. Multi-brand is for portfolio parallelism.
  • 为多个固定合作客户进行每周/每月的内容更新
  • 全组合季节性重新设计(例如,一次性为8个固定合作品牌完成节日主题更新)
  • 多客户提案周,每个提案需要专属的品牌化样机套装
  • 可审计的生产运行,财务/法务部门需要按客户细分的支出明细
  • 任何需要“为每个客户运行相同流程,并遵循其规则”的代理机构工作流
不适用于 单一客户深度生产工作——改用
agency-pitch-mockups
或客户专属工作流。多品牌套件适用于组合级并行处理。

Prerequisites

前置条件

Ask the user (one message):
  1. Client list — slugs of clients in scope (e.g.
    acme-fintech
    ,
    zest-retail
    ,
    nova-travel
    ). Each must have a locked
    brand-system.json
    .
  2. Template set per client — same across all clients (hero + 3 social + OG) or does each client have a different deliverable?
  3. This week's theme / brief — one brief that gets re-expressed per client (e.g. "Q2 product refresh") or fully independent briefs per client?
  4. Output destination — Drive folder per client? Dropbox / S3? Internal repo path?
  5. Billing scope — tag each job with
    client:<slug>
    so per-client spend can be pulled from
    gen-ai history
  6. Concurrency ceiling — default 4, raise to 8 if clients all have premium rate limits
If any client in the list lacks
brand-system.json
or
brand.md
, stop and run
agency-brand-scoping
for that client first — do not batch-generate without locked brand files.
向用户询问(一次消息):
  1. 客户列表 — 目标客户的标识别名(例如
    acme-fintech
    zest-retail
    nova-travel
    )。每个客户必须有已锁定的
    brand-system.json
    文件。
  2. 每个客户的模板集 — 所有客户使用相同模板(首页横幅 + 3个社交模板 + OG模板),还是每个客户有不同交付物?
  3. 本周主题/简报 — 一个适用于所有客户的通用简报(例如“Q2产品更新”),还是每个客户使用独立简报?
  4. 输出目标 — 每个客户对应一个Drive文件夹?Dropbox/S3?内部代码库路径?
  5. 计费范围 — 为每个任务添加
    client:<slug>
    标签,以便从
    gen-ai history
    中提取按客户细分的支出
  6. 并发上限 — 默认4,若所有客户都有高级速率限制可提升至8
如果列表中的任何客户缺少
brand-system.json
brand.md
,请停止操作并先为该客户运行
agency-brand-scoping
——没有锁定的品牌文件不得进行批量生成。

How to Run

运行步骤

1. VERIFY BRANDS  → every client in scope has clients/<slug>/brand.md + brand-system.json
2. SCAFFOLD       → build per-client manifest fragments, merge into one master manifest
3. ESTIMATE       → gen-ai batch run <manifest.json> --dry-run + estimate; break into smaller batches if > $20
4. RUN            → `gen-ai batch run <manifest.json>` with client names in job IDs and a resume-ready output dir
5. VERIFY         → per-client output folders populated; cross-check any NULLs in results.json
6. AUDIT          → export per-client spend + asset list for billing
7. DELIVER        → folder per client, approved files uploaded or linked in the retainer channel
Rules:
  • One folder per client.
    out/<slug>/...
    — never a shared output folder where filenames can collide.
  • One brand context per job, not per batch — each job prompt should include the relevant client
    brand.md
    constraints. Batch-level generic prompts are the biggest source of cross-contamination.
  • Use stable job IDs. Put client or campaign names in each
    id
    so downloaded files and
    results.json
    remain easy to group.
  • Resume with
    gen-ai batch resume <output-dir>
    by default.
    gen-ai batch resume <output-dir>
    so mid-run failures don't cost the completed half.
1. 验证品牌 → 所有目标客户都拥有clients/<slug>/brand.md + brand-system.json
2. 搭建框架 → 构建每个客户的清单片段,合并为一个主清单
3. 估算成本 → 执行gen-ai batch run <manifest.json> --dry-run进行估算;若超过20美元则拆分为更小批次
4. 运行任务 → 使用包含客户名称的任务ID和可恢复的输出目录执行`gen-ai batch run <manifest.json>`
5. 验证输出 → 每个客户的输出文件夹已填充;交叉检查results.json中的空值
6. 审计核算 → 导出按客户细分的支出和资产列表用于计费
7. 交付成果 → 每个客户对应一个文件夹,已批准的文件上传或链接至固定合作沟通渠道
规则:
  • 每个客户一个文件夹
    out/<slug>/...
    — 绝对不要使用共享输出文件夹,避免文件名冲突。
  • 每个任务对应一个品牌上下文,而非整个批次 — 每个任务提示应包含对应客户的
    brand.md
    约束。批次级通用提示是交叉污染的最大来源。
  • 使用稳定的任务ID。在每个
    id
    中加入客户或活动名称,以便下载的文件和
    results.json
    易于分组。
  • 默认使用
    gen-ai batch resume <output-dir>
    恢复任务
    。这样中途运行失败不会导致已完成的部分白费。

Quick Reference

快速参考

json
{
  "batch_kind": "multi-brand-pack",
  "week": "2026-04-22",
  "defaults": { "model": "recraftv4", "aspectRatio": "1:1" },
  "clients": [
    { "slug": "acme-fintech", "templates": ["hero", "social-1", "og"] },
    { "slug": "zest-retail",  "templates": ["hero", "social-1", "og"] }
  ]
}
A scaffolding script expands this into the flat
jobs[]
manifest the CLI expects. Keep the expanded manifest checked in under
out/retainer-<date>/manifest.json
for reproducibility.
json
{
  "batch_kind": "multi-brand-pack",
  "week": "2026-04-22",
  "defaults": { "model": "recraftv4", "aspectRatio": "1:1" },
  "clients": [
    { "slug": "acme-fintech", "templates": ["hero", "social-1", "og"] },
    { "slug": "zest-retail",  "templates": ["hero", "social-1", "og"] }
  ]
}
搭建脚本会将其扩展为CLI所需的扁平
jobs[]
清单。将扩展后的清单签入
out/retainer-<date>/manifest.json
以确保可复现性。

Quick Reference

快速参考

Sub-taskModelNotes
Per-client hero (default)
recraftv4
Design-forward, respects brand palette
Per-client hero (photo-led brands)
flux-2-pro
Override at the job level for photo-heavy clients
Social tiles (1:1, 9:16)
recraftv4
Same brand rules, cheaper
OG / readable-headline slides
ideogram-v3
Only reliable text rendering
Background replacement on product shots
recraftv3-replace-bg
For ecomm retainers
Video cuts per brand
kling-v3-standard
(draft) /
kling-v3-pro
(final)
Per-client concurrency 2
子任务模型说明
每个客户的首页横幅(默认)
recraftv4
设计导向,遵循品牌调色板
每个客户的首页横幅(以照片为主的品牌)
flux-2-pro
针对重照片客户在任务级别覆盖默认设置
社交卡片(1:1、9:16)
recraftv4
遵循相同品牌规则,成本更低
OG/可读标题幻灯片
ideogram-v3
唯一可靠的文本渲染模型
产品照片背景替换
recraftv3-replace-bg
适用于电商固定合作客户
按品牌剪辑视频
kling-v3-standard
(草稿)/
kling-v3-pro
(最终版)
每个客户并发数为2

Procedure

流程规范

  • One brand file per client, no shared "agency-style" rules. Each client pays for their own brand rigor.
  • Namespace every output by slug
    out/<slug>/
    ,
    drive:retainer-<date>/<slug>/
    ,
    results.json
    job IDs. Redundant is good.
  • Script the manifest. For > 3 clients, a Node/Python scaffold that iterates
    clients[]
    ×
    templates[]
    beats copy-paste errors.
  • Estimate before every run. Multi-brand batches cross the $20 threshold easily — pause and confirm.
  • Persist
    results.json
    to the repo.
    Audit trail for legal, billing input, and reproducibility.
  • Keep a per-client prompt library at
    clients/<slug>/prompts/
    — manifest references these, edits propagate.
  • review brand-sensitive output. `` — better a missing asset than a mis-branded one.
  • Weekly cadence deserves a cron + Slack webhook on completion; see
    gen-ai-batch.md
    §CI recipes.
  • 每个客户一个品牌文件,无共享“代理机构风格”规则。每个客户为自身的品牌严谨性付费。
  • 所有输出按别名命名空间隔离
    out/<slug>/
    drive:retainer-<date>/<slug>/
    results.json
    任务ID。冗余是好事。
  • 脚本化清单。若客户超过3个,使用Node/Python搭建脚本遍历
    clients[]
    ×
    templates[]
    比复制粘贴更不易出错。
  • 每次运行前估算成本。多品牌批次很容易超过20美元阈值——暂停并确认。
  • results.json
    持久化到代码库
    。为法务提供审计追踪,为计费提供输入,并确保可复现性。
  • 为每个客户保留提示库,路径为
    clients/<slug>/prompts/
    — 清单引用这些提示,修改会自动传播。
  • 审核品牌敏感输出。宁可不生成资产,也不要出现品牌错误。
  • 每周周期适合使用cron + Slack webhook通知完成状态;详见
    gen-ai-batch.md
    §CI 方案。

Pitfalls

常见陷阱

  • Brand cross-contamination — missing
    rules
    on a single job, entire batch suspect. Fix: per-job
    rules
    , not batch-level.
  • Filename collisions without slug prefixes — client B's
    hero.webp
    overwrites client A's.
  • Running without
    gen-ai batch resume <output-dir>
    on a 100-job batch — one provider hiccup costs the whole run.
  • Shared Drive folder — client A sees client B's folder, NDA breach.
  • Tagless jobs — can't produce per-client billing; finance asks, you can't answer.
  • Flagship models applied everywhere — $40 weekly batch instead of $15. Draft-then-upgrade selectively.
  • 品牌交叉污染 — 单个任务缺少
    rules
    ,整个批次都可能受影响。解决方法:为每个任务设置
    rules
    ,而非批次级别。
  • 无别名前缀导致文件名冲突 — 客户B的
    hero.webp
    覆盖客户A的同名文件。
  • 在100个任务的批次中未使用
    gen-ai batch resume <output-dir>
    — 一次供应商故障就会导致整个运行失败。
  • 共享Drive文件夹 — 客户A看到客户B的文件夹,违反保密协议。
  • 无标签任务 — 无法生成按客户细分的账单;财务询问时无法答复。
  • 所有任务都使用旗舰模型 — 每周批次成本40美元而非15美元。选择性地先草稿再升级。

Verification

验证方法

Run
gen-ai whoami
to confirm authentication, then re-run the failed command with
--debug
.
运行
gen-ai whoami
确认身份验证,然后添加
--debug
参数重新运行失败的命令。

Step 1: Verify brands + build manifest

步骤1:验证品牌 + 构建清单

bash
CLIENTS=("acme-fintech" "zest-retail" "nova-travel")
WEEK=$(date +%Y-%m-%d)
bash
CLIENTS=("acme-fintech" "zest-retail" "nova-travel")
WEEK=$(date +%Y-%m-%d)

Sanity check: every client has a brand file

完整性检查:每个客户都有品牌文件

for c in "${CLIENTS[@]}"; do test -f "clients/$c/brand.md" || { echo "Missing brand.md for $c"; exit 1; } done
undefined
for c in "${CLIENTS[@]}"; do test -f "clients/$c/brand.md" || { echo "$c缺少brand.md"; exit 1; } done
undefined

Step 2: Per-client manifest fragments, merged

步骤2:每个客户的清单片段,合并为完整清单

bash
cat > /tmp/multi-brand-$WEEK.json <<'EOF'
{
  "defaults": { "model": "recraftv4", "aspectRatio": "1:1" },
  "jobs": [
    { "id": "acme-fintech/hero",    "prompt": "acme-fintech Q2 hero — editorial, restrained", "aspectRatio": "16:9" },
    { "id": "acme-fintech/og",      "prompt": "acme-fintech OG — headline: Q2 launch", "aspectRatio": "1200x630", "model": "ideogram-v3" },
    { "id": "zest-retail/hero",     "prompt": "zest-retail Q2 hero — playful, bold color", "aspectRatio": "16:9" },
    { "id": "nova-travel/hero",     "prompt": "nova-travel Q2 hero — cinematic wide", "aspectRatio": "16:9", "model": "flux-2-pro" }
  ]
}
EOF

gen-ai batch run /tmp/multi-brand-$WEEK.json --dry-run
gen-ai batch run /tmp/multi-brand-$WEEK.json -c 4 -o "out/retainer-$WEEK"
The
/
in each job
id
creates the per-client subfolder automatically — outputs land at
out/retainer-<date>/<client-slug>/<asset>.webp
plus
results.json
.
bash
cat > /tmp/multi-brand-$WEEK.json <<'EOF'
{
  "defaults": { "model": "recraftv4", "aspectRatio": "1:1" },
  "jobs": [
    { "id": "acme-fintech/hero",    "prompt": "acme-fintech Q2首页横幅 — 编辑风格,简约克制", "aspectRatio": "16:9" },
    { "id": "acme-fintech/og",      "prompt": "acme-fintech OG模板 — 标题:Q2发布", "aspectRatio": "1200x630", "model": "ideogram-v3" },
    { "id": "zest-retail/hero",     "prompt": "zest-retail Q2首页横幅 — 活泼风格,大胆配色", "aspectRatio": "16:9" },
    { "id": "nova-travel/hero",     "prompt": "nova-travel Q2首页横幅 — 电影感宽屏", "aspectRatio": "16:9", "model": "flux-2-pro" }
  ]
}
EOF

gen-ai batch run /tmp/multi-brand-$WEEK.json --dry-run
gen-ai batch run /tmp/multi-brand-$WEEK.json -c 4 -o "out/retainer-$WEEK"
每个任务
id
中的
/
会自动创建客户专属子文件夹——输出将保存到
out/retainer-<date>/<client-slug>/<asset>.webp
,同时生成
results.json

Step 3: Per-client audit + delivery

步骤3:按客户审计 + 交付

bash
undefined
bash
undefined

Per-client completion breakdown from results.json

从results.json获取按客户细分的完成情况

node -e ' const r = require("./out/retainer-2026-04-22/results.json"); const by = {}; for (const j of r.jobs) { const c = j.id.split("/")[0]; by[c] ||= { completed: 0, failed: 0 }; by[c][j.status] = (by[c][j.status] || 0) + 1; } console.table(by); '

Create an archive sub-folder `retainer-$WEEK/<client-slug>/` per client, drop a summary with asset list + estimated spend from `gen-ai pricing`. Share only the per-client folder link — never the master folder.
node -e ' const r = require("./out/retainer-2026-04-22/results.json"); const by = {}; for (const j of r.jobs) { const c = j.id.split("/")[0]; by[c] ||= { completed: 0, failed: 0 }; by[c][j.status] = (by[c][j.status] || 0) + 1; } console.table(by); '

为每个客户创建归档子文件夹`retainer-$WEEK/<client-slug>/`,放入包含资产列表和从`gen-ai pricing`获取的估算支出的摘要。仅分享客户专属文件夹链接——绝对不要分享主文件夹。

Cost & time

成本与时间

PhaseTypical spendTypical time
Scoping (per new client, one-time)~$130 min
Production (weekly retainer, 8 clients × 4 assets)$15-3020-40 min batch + review
Flagship-model upgrade pass (2-3 hero upgrades)$5-1010-15 min
Per-client weekly spend should be trackable from
results.json
— if it isn't, the tagging is broken.
阶段典型支出典型时间
品牌界定(每个新客户,一次性)~1美元30分钟
生产(每周固定合作,8个客户 × 4个资产)15-30美元20-40分钟批量处理 + 审核
旗舰模型升级(2-3个首页横幅升级)5-10美元10-15分钟
每周按客户细分的支出应可从
results.json
追踪——若无法追踪,则标签设置存在问题。

See also

相关文档

  • workflows/agency-brand-scoping/
    — required prerequisite per client
  • workflows/agency-pitch-mockups/
    — per-client pitch variant
  • workflows/agency-client-handoff/
    — package retainer history at engagement end
  • gen-ai-batch.md
    — concurrency,
    gen-ai batch resume <output-dir>
    , audit recipes
  • workflows/agency-brand-scoping/
    — 每个客户必需的前置流程
  • workflows/agency-pitch-mockups/
    — 按客户细分的提案变体
  • workflows/agency-client-handoff/
    — 合作结束时打包固定合作历史记录
  • gen-ai-batch.md
    — 并发设置、
    gen-ai batch resume <output-dir>
    、审计方案