agency-client-handoff
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseAgency 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):
- Client slug + engagement scope — which client, which project or retainer period is being handed off
- Receiving team — in-house creative? Another agency? Which format and tools do they use (Figma, Adobe, CapCut, Notion)?
- Rights status — are all inputs licensed? Any stock, fonts, or reference faces that need redacting or citing?
- Regeneration expectation — does the client need to re-generate assets on their own, or is this a static archive?
- Confidentiality — any internal prompts, competitor references, or tagged metadata that must be stripped before delivery?
- 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.
向用户询问以下信息(一次发送):
- 客户标识(slug)+ 项目范围 — 涉及哪个客户,交接的是哪个项目或续约周期的成果
- 接收团队 — 是客户内部创意团队?还是其他代理机构?他们使用哪些格式和工具(Figma、Adobe、CapCut、Notion)?
- 权限状态 — 所有输入素材是否已获得授权?是否有需要编辑或标注来源的素材、字体或参考人脸?
- 再生需求 — 客户是否需要自行重新生成资产,还是仅需静态存档?
- 保密要求 — 是否有必须在交付前移除的内部提示词、竞品参考或标记元数据?
- 交付格式 — 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 teamRules:
- Pin every model ID. →
recraftv4(or the exact ID returned byrecraftv4@2026-03-15). "Latest" will drift and break reproducibility.gen-ai models info - Strip internal metadata. Tags like or
retainer-week-2026-04-22are internal — not for client eyes.pitch-concept-b - 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返回的精确ID)。使用“latest”会导致输出偏差,破坏可复现性。gen-ai models info - 移除内部元数据。 诸如或
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 — a single file that tells the receiving team what they got and what they can do with it.
docs/handoff-manifest.jsonjson
{
"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.jsonQuick Reference
快速参考
Handoffs don't generate new assets — they package existing ones. But for reproducibility checks:
| Task | Model | Notes |
|---|---|---|
| Dry-run regeneration test (cheapest) | | Use to verify payload validity, not output quality |
| Full regeneration proof (one asset) | Same as original, pinned | Matches the original bundle; compare outputs visually |
| Re-export at higher resolution | | 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.
交接包不会生成新资产,仅对现有资产进行打包。但为了验证可复现性,可执行以下操作:
| 任务 | 模型 | 说明 |
|---|---|---|
| 再生测试空跑(成本最低) | | 用于验证请求有效性,而非输出质量 |
| 完整再生验证(单个资产) | 与原始固定模型一致 | 需与原始包输出匹配,进行视觉对比 |
| 高分辨率重新导出 | | 当客户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/. Don't overwrite if an updated bundle is requested later.handoff-v2/ - Include a sunset date for agency support — clarifies when the client self-serves or re-engages.
- Pin exact model IDs with — preserves capabilities at handoff time.
gen-ai models info <id> --json - 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 install.
gen-ai - Ship prompts, brand, and rationale. Context beats artifacts for knowledge transfer.
- 可复现性是核心交付标准。 如果客户无法在不依赖你的情况下再生资产,即便资产文件夹整理得再规范,交接也视为失败。
- 彻底移除,而非编辑。 完全删除内部标签,交接包应看起来完全适配客户的使用习惯。
- 为交接包版本化 — 如、
handoff-v1/。若后续客户要求更新交接包,请勿覆盖原有版本。handoff-v2/ - 注明代理机构支持的终止日期 — 明确客户何时需自行服务或重新合作。
- 使用固定精确模型ID — 保留交接时的模型功能。
gen-ai models info <id> --json - 在干净环境的机器上测试。 你的笔记本电脑可能存有令牌、字体、缓存,交接包需在无这些内容的环境下正常运行。
- 无锁定限制。交接包内所有内容均可在标准安装环境下运行。
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 CLI only.
gen-ai - 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个月后再生资产时输出偏差,归咎于代理机构。
- 内部元数据泄露 — 提示词文件中残留竞品参考、提案概念标签或审核人员姓名。
- 缺失权限文档 — 客户法务无法批准资产复用,交接包直接失效。
- 再生流程中使用专有工具 — 需仅保留标准CLI。
gen-ai - 未进行冷测试 — 交接包交付后,README中的第一步操作失败,引发紧急沟通。
- 一劳永逸的心态 — 应承诺交接后30天的答疑服务,并将其纳入定价。
Verification
验证方法
Run to confirm authentication, then re-run the failed command with .
gen-ai whoami--debug运行确认身份验证,然后添加参数重新运行失败的命令。
gen-ai whoami--debugStep 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
undefinedbash
undefinedGet 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"
"$HANDOFF/prompts/prompt-library.json" > "$HANDOFF/prompts/prompt-library.clean.json" mv "$HANDOFF/prompts/prompt-library.clean.json" "$HANDOFF/prompts/prompt-library.json"
undefinedjq '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"
"$HANDOFF/prompts/prompt-library.json" > "$HANDOFF/prompts/prompt-library.clean.json" mv "$HANDOFF/prompts/prompt-library.clean.json" "$HANDOFF/prompts/prompt-library.json"
undefinedStep 3: Documentation
步骤3:文档生成
Generate a covering: folder walkthrough, regeneration steps (CLI install + one worked example), pinned model note, rights status, support contact + sunset date. Include , , , , .
README.mddocs/brand-system.jsondocs/brand.mddocs/model-pins.jsondocs/RIGHTS.mddocs/CHANGELOG.mdMinimum 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>"生成文件,内容包括:文件夹说明、再生步骤(CLI安装+示例)、固定模型说明、权限状态、支持联系人及终止日期。同时包含、、、、文件。
README.mddocs/brand-system.jsondocs/brand.mddocs/model-pins.jsondocs/RIGHTS.mddocs/CHANGELOG.mdREADME中需包含的最低限度再生步骤:
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.
undefinedundefinedCost & time
成本与时间
| Phase | Spend | Time |
|---|---|---|
| Inventory + filter + strip | $0 | 1-2 hrs |
| Documentation (README, RIGHTS, CHANGELOG) | $0 | 1-2 hrs |
| Cold-test regeneration (1-2 assets) | ~$0.50 | 15 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.
| 阶段 | 花费 | 时间 |
|---|---|---|
| 盘点+筛选+移除 | $0 | 1-2小时 |
| 文档生成(README、RIGHTS、CHANGELOG) | $0 | 1-2小时 |
| 再生冷测试(1-2个资产) | ~$0.50 | 15分钟 |
| 总交接成本 | <$1 | 约4小时 |
真正的成本是时间,而非算力credits。每个交接包需预留半天时间;偷工减料会导致后续数月的支持请求。
See also
相关链接
- —
workflows/agency-brand-scoping/+brand-system.jsonthat ship in the handoffbrand.md - — source of per-client results.json archive
workflows/agency-multi-brand-pack/ - — pitch bundles that become part of the final handoff
workflows/agency-pitch-mockups/ - — regeneration reference for the client
gen-ai-use.md
- — 交接包中包含的
workflows/agency-brand-scoping/和brand-system.json文件来源brand.md - — 各客户results.json归档文件的来源
workflows/agency-multi-brand-pack/ - — 最终交接包中包含的提案样稿包
workflows/agency-pitch-mockups/ - — 供客户使用的再生操作参考文档
gen-ai-use.md