write-copy
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseWhat This Skill Does
此技能的作用
The agent acts as a content expert and generates copy variations for a design — no API call needed. Default is 2; user can request more (e.g., for A/B testing). The copy uses Sivi's allowed semantics so it can be fed directly to when the user is ready to generate visuals.
generate-designThis is a copy-only skill. It does not call any Sivi API. To generate designs from the approved copy, the user should run with the approved copy.
generate-design该Agent充当内容专家,为设计生成文案变体——无需调用API。默认生成2个变体;用户可要求生成更多(例如用于A/B测试)。文案采用Sivi允许的语义格式,因此当用户准备生成视觉内容时,可直接导入。
generate-design这是一项仅生成文案的技能。它不会调用任何Sivi API。要根据已确认的文案生成设计,用户应使用已确认的文案运行。
generate-designSteps
操作步骤
1. Parse arguments
1. 解析参数
- — description of the product, offer, or campaign (required).
prompt - — design category for context (default:
type)custom - — format variant (default:
subtype)custom - —
dimension(only when type is{width, height}; default:custom){"width": 800, "height": 800} - — language for text (default:
language)english
If is missing, ask: "What product or offer would you like copy for? Describe it briefly."
prompt- — 产品、优惠活动或营销活动的描述(必填)。
prompt - — 设计类别上下文(默认值:
type)custom - — 格式变体(默认值:
subtype)custom - —
dimension(仅当type为{width, height}时需要;默认值:custom){"width": 800, "height": 800} - — 文本语言(默认值:
language)english
如果缺少,请询问:“您想要为哪种产品或优惠活动生成文案?请简要描述。”
prompt2. Resolve brand (if brands/ exists)
2. 解析品牌(若存在brands/目录)
Follow the standard brand resolution:
- Scan for directory.
brands/ - Match brand name from prompt, or use single brand, or ask user.
- Read for brandId and brand persona (emotions, industry, audience, designTags).
brands/<slug>/brand.md - Use the brand persona to inform copy tone and style — the agent incorporates this directly into the generated copy.
遵循标准品牌解析流程:
- 扫描目录。
brands/ - 从prompt中匹配品牌名称,或使用唯一品牌,或询问用户。
- 读取获取brandId和品牌人设(情感风格、行业、受众、designTags)。
brands/<slug>/brand.md - 利用品牌人设调整文案语气和风格——Agent会直接将这些要素融入生成的文案中。
3. Generate copy variations (agent — no API call)
3. 生成文案变体(Agent——无需调用API)
You are a content expert. For the given request, target language, and design size, create N unique copy variations (default: 2; or the count requested by the user) that will be rendered as text layers in a design.
The design combines text + primary asset (image) + logo + vector elements. The text must fit within the design's pixel dimensions alongside these other elements — leave visual breathing room.
您作为内容专家,需根据给定的请求、目标语言和设计尺寸,创建N个独特的文案变体(默认2个;或用户要求的数量),这些变体将作为设计中的文本层呈现。
设计结合了文本+主资产(图片)+标志+矢量元素。文本必须与这些元素适配设计的像素尺寸——要留出视觉呼吸空间。
Allowed Semantics
允许使用的语义
Use ONLY these semantics in each copy variation. Never invent new semantics — map any other concept to the closest allowed one.
titletextoffercouponbuttonbulletlistnumberedlistimagetitletextlistimagetextlisttitletextlisttextlistquotehashtagcaptiondate_timephoneemailwebsiteaddresswhatsappinstagramfacebooklinkedintwitterbehancedribbblepinterestslackRules:
- All values must be non-empty strings.
- and
bulletlistmust be arrays of 2+ non-empty strings.numberedlist - The same semantic may appear multiple times within a copy (e.g., multiple entries for date, time, location).
text - is the headline — as a standalone semantic, it appears at most once per copy.
titlemay also appear inside repeating list units.title - Repeating units (speaker portraits, team members, product cards) must use the matching list semantic — an array of objects:
- : array of
imagetitletextlistobjects{ image, title, text } - : array of
imagetextlistobjects{ image, text } - : array of
titletextlistobjects{ title, text } - : array of
textlistobjects{ text } - The value is a placeholder:
imagefor person photos,"image.jpg"for all other icons."icon.svg" - with
imagetextlistcan be used instead of"icon.svg"when list items benefit from icons (features, benefits, contact details).bulletlist
每个文案变体只能使用以下语义。切勿自创语义——将任何其他概念映射到最接近的允许语义。
titletextoffercouponbuttonbulletlistnumberedlistimagetitletextlistimagetextlisttitletextlisttextlistquotehashtagcaptiondate_timephoneemailwebsiteaddresswhatsappinstagramfacebooklinkedintwitterbehancedribbblepinterestslack规则:
- 所有值必须是非空字符串。
- 和
bulletlist必须是包含2个及以上非空字符串的数组。numberedlist - 同一语义可在一个文案中多次出现(例如,多个条目用于日期、时间、地点)。
text - 是标题——作为独立语义,每个文案最多出现一次。
title也可出现在重复列表单元中。title - 重复单元(演讲者肖像、团队成员、产品卡片)必须使用匹配的列表语义——对象数组:
- :
imagetitletextlist对象数组{ image, title, text } - :
imagetextlist对象数组{ image, text } - :
titletextlist对象数组{ title, text } - :
textlist对象数组{ text } - 值为占位符:人物照片用
image,所有其他图标用"image.jpg"。"icon.svg" - 当列表项需要图标时(功能、优势、联系详情),可使用带有的
"icon.svg"代替imagetextlist。bulletlist
Text Volume — Match to Design Size
文本量——匹配设计尺寸
Use the smallest dimension as your guide:
- Small (< 500px): 2–4 semantic blocks, keep each value under 40 characters
- Medium (500–1000px): 3–5 semantic blocks, keep each value under 60 characters
- Large (> 1000px): 4–7 semantic blocks, keep each value under 80 characters
Less is more — a cramped design is worse than a clean one.
以最小尺寸为指导:
- 小型(< 500px):2–4个语义块,每个值不超过40个字符
- 中型(500–1000px):3–5个语义块,每个值不超过60个字符
- 大型(> 1000px):4–7个语义块,每个值不超过80个字符
少即是多——拥挤的设计不如简洁的设计。
Content Rules
内容规则
- Use only semantics appropriate for the design format. Do not add or interactive semantics for static formats (thumbnails, covers, posters, banners).
button - No empty values — every semantic must have meaningful, non-placeholder text.
- Include phone, email, website, address, ,
date_time,offer, or social profiles only if the user asked. Use handles exactly as provided (no URLs, no @handle). Forcoupon, include only the number. Never invent contact details.whatsapp - Each semantic stands alone — no repeated values within a single copy.
- Write all text in the target language.
- Copies are design content (text layers in the visual), not social post captions or descriptions.
- If brand persona is available, match the tone (emotions), industry vocabulary, and target audience.
- 仅使用适合设计格式的语义。静态格式(缩略图、封面、海报、横幅)不要添加或交互语义。
button - 无空值——每个语义必须包含有意义的非占位符文本。
- 仅在用户要求时包含电话、邮箱、网站、地址、、
date_time、offer或社交账号。完全按照提供的账号使用(不要URL,不要@handle)。coupon仅包含号码。切勿自创联系方式。whatsapp - 每个语义独立——单个文案内无重复值。
- 所有文本使用目标语言。
- 文案是设计内容(视觉中的文本层),不是社交帖子说明或描述。
- 如果有品牌人设,匹配语气(情感)、行业词汇和目标受众。
Present the variations
呈现变体
Present the copy variations in a readable format — not JSON. Example (2 variations shown; extend for more):
undefined以易读格式呈现文案变体——不要JSON。示例(显示2个变体;可扩展为更多):
undefinedCopy Variation 1
Copy Variation 1
Title: Summer Collection Launch
Offer: 30% Off All New Arrivals
Text: Refresh your wardrobe with vibrant summer styles
Button: Shop Now
Title: Summer Collection Launch
Offer: 30% Off All New Arrivals
Text: Refresh your wardrobe with vibrant summer styles
Button: Shop Now
Copy Variation 2
Copy Variation 2
Title: Hello Summer
Offer: Buy 2 Get 1 Free
Bulletlist:
- 100% organic cotton
- Free shipping over $50
- 30-day returns Button: Explore Collection
undefinedTitle: Hello Summer
Offer: Buy 2 Get 1 Free
Bulletlist:
- 100% organic cotton
- Free shipping over $50
- 30-day returns Button: Explore Collection
undefined4. User reviews and edits
4. 用户审阅和编辑
Ask the user:
"Here are N copy variations. Which one would you like to use? You can also mix and match — pick a title from one and an offer from another, or edit any text."
If the user edits the copy, use their final approved text as the output.
询问用户:
“这里是N个文案变体。您想使用哪一个?您也可以混搭——从一个变体中选标题,从另一个中选优惠,或编辑任何文本。”
如果用户编辑文案,使用他们最终确认的文本作为输出。
5. Output the approved copy
5. 输出已确认的文案
Present the final approved copy in readable format. Also provide the copy in Sivi's JSON content format so the user can feed it directly to (content mode) when they're ready for visuals:
generate-designjson
{
"title": "Summer Collection Launch",
"offer": "30% Off All New Arrivals",
"text": "Refresh your wardrobe with vibrant summer styles",
"button": "Shop Now"
}Tell the user:
"Copy is ready. To generate designs from this copy, run generate-design with this content."
以易读格式呈现最终确认的文案。同时提供Sivi的JSON内容格式的文案,以便用户准备生成视觉内容时可直接导入(内容模式会自动检测语义格式):
generate-designjson
{
"title": "Summer Collection Launch",
"offer": "30% Off All New Arrivals",
"text": "Refresh your wardrobe with vibrant summer styles",
"button": "Shop Now"
}告知用户:
“文案已准备就绪。要根据此文案生成设计,请使用该内容运行generate-design。”
Notes
注意事项
- No API call — this skill is copy-only. The agent generates copy directly using the content expert instructions.
- To generate designs from the approved copy, the user runs with the approved copy (content mode auto-detects the semantic format).
generate-design - If brand persona is available, the agent matches tone (emotions), industry vocabulary, and target audience.
- User-edited copy always takes priority — use the user's final approved text.
- The JSON content format uses allowed semantics as keys:
- String semantics (,
title,text,offer,coupon,button,quote,caption, etc.) → string valuesdate_time - ,
bulletlist→ array of stringsnumberedlist - ,
imagetitletextlist,imagetextlist,titletextlist→ array of objectstextlist - Social semantics (,
phone,email,website,address,whatsapp, etc.) → string valuesinstagram
- String semantics (
- The design size determines text volume — always respect the small/medium/large guidelines when writing copy.
- 无需调用API——此技能仅生成文案。Agent直接使用内容专家指令生成文案。
- 要根据已确认的文案生成设计,用户需使用已确认的文案运行(内容模式会自动检测语义格式)。
generate-design - 如果有品牌人设,Agent会匹配语气(情感)、行业词汇和目标受众。
- 用户编辑的文案始终优先——使用用户最终确认的文本。
- JSON内容格式使用允许的语义作为键:
- 字符串语义(,
title,text,offer,coupon,button,quote,caption等)→ 字符串值date_time - ,
bulletlist→ 字符串数组numberedlist - ,
imagetitletextlist,imagetextlist,titletextlist→ 对象数组textlist - 社交语义(,
phone,email,website,address,whatsapp等)→ 字符串值instagram
- 字符串语义(
- 设计尺寸决定文本量——撰写文案时务必遵循小型/中型/大型指南。