agency-client-handoff

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Agency client handoff

代理机构客户交接

Package a completed engagement for transfer to the client's in-house team, DAM, or next agency — with the asset set, prompt library, model pins, rights documentation, and everything else the receiving team needs to regenerate consistent work without you in the loop.
Engagement done → reproducible handoff bundle. Knowledge transfer over lock-in: the receiving team should be able to keep the brand on-model without calling the agency back.
将已完成的项目成果打包,交付给客户内部团队、DAM、下一合作代理机构,其中包含资产集、提示词库、固定模型、权限文档,以及接收团队无需依赖你即可重新生成一致成果所需的全部内容。
项目完成 → 可复现的交接包。 注重知识传递而非锁定:接收团队应能在无需再次联系代理机构的情况下,保持品牌输出的一致性。

When to Use

使用场景

  • End of an engagement, client taking work in-house
  • Transition to a new agency of record — outgoing handoff
  • Completed pitch / campaign — asset package with provenance for the client's DAM
  • Contract-mandated "source file" delivery with regeneration rights
  • Year-end portfolio snapshot for a long-term retainer client
Do not use for work-in-progress reviews (use Drive links), approvals (use proof PDFs), or internal archival (use your agency's backup). Handoff is the formal, client-owned, reproducible bundle.
  • 项目结束,客户将工作收回内部处理
  • 更换合作代理机构时的转出交接
  • 完成提案/营销活动后,为客户DAM提供带来源证明的资产包
  • 合同要求交付带有再生权限的“源文件”
  • 为长期续约客户提供年终项目成果快照
请勿用于 进行中工作评审(请使用Drive链接)、审批(请使用样稿PDF)或内部存档(请使用代理机构的备份系统)。交接包是正式的、归客户所有的可复现成果包。

Prerequisites

前置条件

Ask the user (one message):
  1. Client slug + engagement scope — which client, which project or retainer period is being handed off
  2. Receiving team — in-house creative? Another agency? Which format and tools do they use (Figma, Adobe, CapCut, Notion)?
  3. Rights status — are all inputs licensed? Any stock, fonts, or reference faces that need redacting or citing?
  4. Regeneration expectation — does the client need to re-generate assets on their own, or is this a static archive?
  5. Confidentiality — any internal prompts, competitor references, or tagged metadata that must be stripped before delivery?
  6. Delivery format — zip + Drive link? Direct to client S3 / DAM? Physical drive?
If the client needs regeneration capability, they'll need the gen-ai CLI themselves — add an install guide to the bundle.
向用户询问以下信息(一次发送):
  1. 客户标识(slug)+ 项目范围 — 涉及哪个客户,交接的是哪个项目或续约周期的成果
  2. 接收团队 — 是客户内部创意团队?还是其他代理机构?他们使用哪些格式和工具(Figma、Adobe、CapCut、Notion)?
  3. 权限状态 — 所有输入素材是否已获得授权?是否有需要编辑或标注来源的素材、字体或参考人脸?
  4. 再生需求 — 客户是否需要自行重新生成资产,还是仅需静态存档?
  5. 保密要求 — 是否有必须在交付前移除的内部提示词、竞品参考或标记元数据?
  6. 交付格式 — ZIP文件+Drive链接?直接上传至客户S3/DAM?还是物理存储介质?
如果客户需要再生能力,他们需自行安装gen-ai CLI — 请在交接包中添加安装指南。

How to Run

操作步骤

1. INVENTORY   → pull every asset + results.json from clients/<slug>/ across the engagement
2. FILTER      → exclude drafts, rejected variants, internal-only WIP
3. STRIP       → white-label: remove agency tags, internal prompt notes, competitor refs
4. PIN MODELS  → lock every prompt's model to an exact ID + version (not "latest")
5. DOCUMENT    → generate README, RIGHTS.md, CHANGELOG, prompt library
6. PACKAGE     → zip with consistent folder structure + naming
7. VERIFY      → extract and cold-test: can a fresh machine regenerate one asset?
8. DELIVER     → upload to client destination, share link, brief the receiving team
Rules:
  • Pin every model ID.
    recraftv4
    recraftv4@2026-03-15
    (or the exact ID returned by
    gen-ai models info
    ). "Latest" will drift and break reproducibility.
  • Strip internal metadata. Tags like
    retainer-week-2026-04-22
    or
    pitch-concept-b
    are internal — not for client eyes.
  • Include prompts, not just outputs. A prompt library lets the client's in-house team iterate without re-inventing the system.
  • Never ship a handoff you haven't cold-tested. Unzip, pick one prompt, regenerate — if the output drifts, something isn't pinned.
1. INVENTORY   → pull every asset + results.json from clients/<slug>/ across the engagement
2. FILTER      → exclude drafts, rejected variants, internal-only WIP
3. STRIP       → white-label: remove agency tags, internal prompt notes, competitor refs
4. PIN MODELS  → lock every prompt's model to an exact ID + version (not "latest")
5. DOCUMENT    → generate README, RIGHTS.md, CHANGELOG, prompt library
6. PACKAGE     → zip with consistent folder structure + naming
7. VERIFY      → extract and cold-test: can a fresh machine regenerate one asset?
8. DELIVER     → upload to client destination, share link, brief the receiving team
规则:
  • 固定每个模型ID。
    recraftv4
    recraftv4@2026-03-15
    (或
    gen-ai models info
    返回的精确ID)。使用“latest”会导致输出偏差,破坏可复现性。
  • 移除内部元数据。 诸如
    retainer-week-2026-04-22
    pitch-concept-b
    这类标签属于内部内容,不得提供给客户。
  • 包含提示词,而非仅输出成果。 提示词库可让客户内部团队无需重新搭建系统即可进行迭代。
  • 切勿交付未经过冷测试的交接包。 解压后选取一个提示词进行再生测试,如果输出出现偏差,说明有内容未被固定。

Quick Reference

快速参考

json
{
  "handoff_kind": "client-final",
  "client_slug": "acme-fintech",
  "engagement": "2025-Q3 to 2026-Q2 retainer",
  "delivered_at": "2026-04-22",
  "brand_system": "docs/brand-system.json",
  "brand_rules": "docs/brand.md",
  "pinned_models": "docs/model-pins.json",
  "assets_count": 247,
  "prompts_count": 54,
  "rights_status": "all generated, no licensed stock",
  "regeneration_supported": true,
  "support_window_days": 30
}
Include this as
docs/handoff-manifest.json
— a single file that tells the receiving team what they got and what they can do with it.
json
{
  "handoff_kind": "client-final",
  "client_slug": "acme-fintech",
  "engagement": "2025-Q3 to 2026-Q2 retainer",
  "delivered_at": "2026-04-22",
  "brand_system": "docs/brand-system.json",
  "brand_rules": "docs/brand.md",
  "pinned_models": "docs/model-pins.json",
  "assets_count": 247,
  "prompts_count": 54,
  "rights_status": "all generated, no licensed stock",
  "regeneration_supported": true,
  "support_window_days": 30
}
将此文件保存为
docs/handoff-manifest.json
— 该文件可向接收团队说明交接包内容及使用权限。

Quick Reference

快速参考

Handoffs don't generate new assets — they package existing ones. But for reproducibility checks:
TaskModelNotes
Dry-run regeneration test (cheapest)
gemini-3.1-flash-image
Use to verify payload validity, not output quality
Full regeneration proof (one asset)Same as original, pinnedMatches the original bundle; compare outputs visually
Re-export at higher resolution
topaz-upscale-image
If the client DAM wants 4K versions
Never substitute a newer model for the pinned one during handoff — the whole point is that the client can reproduce the agency's output exactly.
交接包不会生成新资产,仅对现有资产进行打包。但为了验证可复现性,可执行以下操作:
任务模型说明
再生测试空跑(成本最低)
gemini-3.1-flash-image
用于验证请求有效性,而非输出质量
完整再生验证(单个资产)与原始固定模型一致需与原始包输出匹配,进行视觉对比
高分辨率重新导出
topaz-upscale-image
当客户DAM需要4K版本时使用
交接过程中切勿用新版本模型替代固定模型 — 核心目标是让客户能精确复现代理机构的输出成果。

Procedure

流程规范

  • Reproducibility is the deliverable. If the client can't regenerate without you, the handoff failed — even if the asset folder is beautiful.
  • Strip, don't redact. Remove internal tags entirely; the bundle should look native to the client.
  • Version the handoff
    handoff-v1/
    ,
    handoff-v2/
    . Don't overwrite if an updated bundle is requested later.
  • Include a sunset date for agency support — clarifies when the client self-serves or re-engages.
  • Pin exact model IDs with
    gen-ai models info <id> --json
    — preserves capabilities at handoff time.
  • Test on a clean machine. Your laptop has tokens, fonts, caches. The bundle has to work without those.
  • No lock-in flags. Everything in the bundle runs on a stock
    gen-ai
    install.
  • Ship prompts, brand, and rationale. Context beats artifacts for knowledge transfer.
  • 可复现性是核心交付标准。 如果客户无法在不依赖你的情况下再生资产,即便资产文件夹整理得再规范,交接也视为失败。
  • 彻底移除,而非编辑。 完全删除内部标签,交接包应看起来完全适配客户的使用习惯。
  • 为交接包版本化 — 如
    handoff-v1/
    handoff-v2/
    。若后续客户要求更新交接包,请勿覆盖原有版本。
  • 注明代理机构支持的终止日期 — 明确客户何时需自行服务或重新合作。
  • 使用
    gen-ai models info <id> --json
    固定精确模型ID — 保留交接时的模型功能。
  • 在干净环境的机器上测试。 你的笔记本电脑可能存有令牌、字体、缓存,交接包需在无这些内容的环境下正常运行。
  • 无锁定限制。交接包内所有内容均可在标准
    gen-ai
    安装环境下运行。
  • 交付提示词、品牌规范及设计思路。 知识传递中,背景信息比成果本身更重要。

Pitfalls

常见陷阱

  • Unpinned models — client regenerates 6 months later, output drifts, blames the agency.
  • Internal metadata leakage — competitor refs, pitch-concept tags, reviewer names surviving in prompt files.
  • Missing rights documentation — client legal can't sign off on re-use, bundle is DOA.
  • Proprietary tools in the regen path — strip to stock
    gen-ai
    CLI only.
  • No cold test — bundle ships, step 1 of the README fails, urgent Slack follows.
  • One-and-done mentality — promise 30 days of Q&A post-handoff, price it in.
  • 未固定模型 — 客户6个月后再生资产时输出偏差,归咎于代理机构。
  • 内部元数据泄露 — 提示词文件中残留竞品参考、提案概念标签或审核人员姓名。
  • 缺失权限文档 — 客户法务无法批准资产复用,交接包直接失效。
  • 再生流程中使用专有工具 — 需仅保留标准
    gen-ai
    CLI。
  • 未进行冷测试 — 交接包交付后,README中的第一步操作失败,引发紧急沟通。
  • 一劳永逸的心态 — 应承诺交接后30天的答疑服务,并将其纳入定价。

Verification

验证方法

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

Step 1: Inventory and filter

步骤1:盘点与筛选

bash
CLIENT="acme-fintech"
HANDOFF="handoff/$CLIENT-$(date +%Y-%m-%d)"
mkdir -p "$HANDOFF"/{assets,prompts,source,docs}

find "clients/$CLIENT" -name "results.json" -exec cp {} "$HANDOFF/source/" \;
cp -r "clients/$CLIENT/deliverables/"* "$HANDOFF/assets/"
node scripts/extract-prompts.js "$HANDOFF/source/" > "$HANDOFF/prompts/prompt-library.json"
bash
CLIENT="acme-fintech"
HANDOFF="handoff/$CLIENT-$(date +%Y-%m-%d)"
mkdir -p "$HANDOFF"/{assets,prompts,source,docs}

find "clients/$CLIENT" -name "results.json" -exec cp {} "$HANDOFF/source/" \;
cp -r "clients/$CLIENT/deliverables/"* "$HANDOFF/assets/"
node scripts/extract-prompts.js "$HANDOFF/source/" > "$HANDOFF/prompts/prompt-library.json"

Step 2: Pin models, strip internal data

步骤2:固定模型,移除内部数据

bash
undefined
bash
undefined

Get pinned model IDs for every model the engagement used

Get pinned model IDs for every model the engagement used

for model in $(jq -r '.jobs[].model' "$HANDOFF/source/"*.json | sort -u); do gen-ai models info "$model" --json >> "$HANDOFF/docs/model-pins.json" done
for model in $(jq -r '.jobs[].model' "$HANDOFF/source/"*.json | sort -u); do gen-ai models info "$model" --json >> "$HANDOFF/docs/model-pins.json" done

Strip internal tags from the prompt library

Strip internal tags from the prompt library

jq 'del(.jobs[].tags[] | select(startswith("internal-") or startswith("retainer-")))'
"$HANDOFF/prompts/prompt-library.json" > "$HANDOFF/prompts/prompt-library.clean.json" mv "$HANDOFF/prompts/prompt-library.clean.json" "$HANDOFF/prompts/prompt-library.json"
undefined
jq 'del(.jobs[].tags[] | select(startswith("internal-") or startswith("retainer-")))'
"$HANDOFF/prompts/prompt-library.json" > "$HANDOFF/prompts/prompt-library.clean.json" mv "$HANDOFF/prompts/prompt-library.clean.json" "$HANDOFF/prompts/prompt-library.json"
undefined

Step 3: Documentation

步骤3:文档生成

Generate a
README.md
covering: folder walkthrough, regeneration steps (CLI install + one worked example), pinned model note, rights status, support contact + sunset date. Include
docs/brand-system.json
,
docs/brand.md
,
docs/model-pins.json
,
docs/RIGHTS.md
,
docs/CHANGELOG.md
.
Minimum regeneration steps to include in the README:
1. Install CLI: curl -fsSL https://picsart.com/gen-ai-cli/install.sh | bash
2. gen-ai login
3. Pick a prompt from prompts/prompt-library.json
4. gen-ai generate -m <pinned-model-id> -p "<prompt>"
生成
README.md
文件,内容包括:文件夹说明、再生步骤(CLI安装+示例)、固定模型说明、权限状态、支持联系人及终止日期。同时包含
docs/brand-system.json
docs/brand.md
docs/model-pins.json
docs/RIGHTS.md
docs/CHANGELOG.md
文件。
README中需包含的最低限度再生步骤:
1. Install CLI: curl -fsSL https://picsart.com/gen-ai-cli/install.sh | bash
2. gen-ai login
3. Pick a prompt from prompts/prompt-library.json
4. gen-ai generate -m <pinned-model-id> -p "<prompt>"

Step 4: Package + verify

步骤4:打包与验证

bash
cd handoff
zip -r "$CLIENT-handoff-$(date +%Y-%m-%d).zip" "$CLIENT-$(date +%Y-%m-%d)/" \
  -x "*.DS_Store" "*/.git/*"
bash
cd handoff
zip -r "$CLIENT-handoff-$(date +%Y-%m-%d).zip" "$CLIENT-$(date +%Y-%m-%d)/" \
  -x "*.DS_Store" "*/.git/*"

Cold test — extract to a clean dir, regenerate one asset

Cold test — extract to a clean dir, regenerate one asset

tmpdir=$(mktemp -d) && unzip -q "$CLIENT-handoff-$(date +%Y-%m-%d).zip" -d "$tmpdir" cd "$tmpdir/$CLIENT-$(date +%Y-%m-%d)" SAMPLE_PROMPT=$(jq -r '.jobs[0].prompt' prompts/prompt-library.json) SAMPLE_MODEL=$(jq -r '.jobs[0].model' prompts/prompt-library.json) gen-ai generate -m "$SAMPLE_MODEL" -p "$SAMPLE_PROMPT" --dry-run --debug
tmpdir=$(mktemp -d) && unzip -q "$CLIENT-handoff-$(date +%Y-%m-%d).zip" -d "$tmpdir" cd "$tmpdir/$CLIENT-$(date +%Y-%m-%d)" SAMPLE_PROMPT=$(jq -r '.jobs[0].prompt' prompts/prompt-library.json) SAMPLE_MODEL=$(jq -r '.jobs[0].model' prompts/prompt-library.json) gen-ai generate -m "$SAMPLE_MODEL" -p "$SAMPLE_PROMPT" --dry-run --debug

Dry-run validates = bundle is regeneration-ready.

Dry-run validates = bundle is regeneration-ready.

undefined
undefined

Cost & time

成本与时间

PhaseSpendTime
Inventory + filter + strip$01-2 hrs
Documentation (README, RIGHTS, CHANGELOG)$01-2 hrs
Cold-test regeneration (1-2 assets)~$0.5015 min
Total handoff<$1~4 hrs
The real cost is time, not credits. Budget a half-day per handoff; cutting corners creates support calls for months after.
阶段花费时间
盘点+筛选+移除$01-2小时
文档生成(README、RIGHTS、CHANGELOG)$01-2小时
再生冷测试(1-2个资产)~$0.5015分钟
总交接成本<$1约4小时
真正的成本是时间,而非算力credits。每个交接包需预留半天时间;偷工减料会导致后续数月的支持请求。

See also

相关链接

  • workflows/agency-brand-scoping/
    brand-system.json
    +
    brand.md
    that ship in the handoff
  • workflows/agency-multi-brand-pack/
    — source of per-client results.json archive
  • workflows/agency-pitch-mockups/
    — pitch bundles that become part of the final handoff
  • gen-ai-use.md
    — regeneration reference for the client
  • workflows/agency-brand-scoping/
    — 交接包中包含的
    brand-system.json
    brand.md
    文件来源
  • workflows/agency-multi-brand-pack/
    — 各客户results.json归档文件的来源
  • workflows/agency-pitch-mockups/
    — 最终交接包中包含的提案样稿包
  • gen-ai-use.md
    — 供客户使用的再生操作参考文档