write-copy

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

What 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
generate-design
when the user is ready to generate visuals.
This is a copy-only skill. It does not call any Sivi API. To generate designs from the approved copy, the user should run
generate-design
with the approved copy.
该Agent充当内容专家,为设计生成文案变体——无需调用API。默认生成2个变体;用户可要求生成更多(例如用于A/B测试)。文案采用Sivi允许的语义格式,因此当用户准备生成视觉内容时,可直接导入
generate-design
这是一项仅生成文案的技能。它不会调用任何Sivi API。要根据已确认的文案生成设计,用户应使用已确认的文案运行
generate-design

Steps

操作步骤

1. Parse arguments

1. 解析参数

  • prompt
    — description of the product, offer, or campaign (required).
  • type
    — design category for context (default:
    custom
    )
  • subtype
    — format variant (default:
    custom
    )
  • dimension
    {width, height}
    (only when type is
    custom
    ; default:
    {"width": 800, "height": 800}
    )
  • language
    — language for text (default:
    english
    )
If
prompt
is missing, ask: "What product or offer would you like copy for? Describe it briefly."
  • prompt
    — 产品、优惠活动或营销活动的描述(必填)。
  • type
    — 设计类别上下文(默认值:
    custom
  • subtype
    — 格式变体(默认值:
    custom
  • dimension
    {width, height}
    (仅当type为
    custom
    时需要;默认值:
    {"width": 800, "height": 800}
  • language
    — 文本语言(默认值:
    english
如果缺少
prompt
,请询问:“您想要为哪种产品或优惠活动生成文案?请简要描述。”

2. Resolve brand (if brands/ exists)

2. 解析品牌(若存在brands/目录)

Follow the standard brand resolution:
  1. Scan for
    brands/
    directory.
  2. Match brand name from prompt, or use single brand, or ask user.
  3. Read
    brands/<slug>/brand.md
    for brandId and brand persona (emotions, industry, audience, designTags).
  4. Use the brand persona to inform copy tone and style — the agent incorporates this directly into the generated copy.
遵循标准品牌解析流程:
  1. 扫描
    brands/
    目录。
  2. 从prompt中匹配品牌名称,或使用唯一品牌,或询问用户。
  3. 读取
    brands/<slug>/brand.md
    获取brandId和品牌人设(情感风格、行业、受众、designTags)。
  4. 利用品牌人设调整文案语气和风格——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.
title
,
text
,
offer
,
coupon
,
button
,
bulletlist
,
numberedlist
,
imagetitletextlist
,
imagetextlist
,
titletextlist
,
textlist
,
quote
,
hashtag
,
caption
,
date_time
,
phone
,
email
,
website
,
address
,
whatsapp
,
instagram
,
facebook
,
linkedin
,
twitter
,
behance
,
dribbble
,
pinterest
,
slack
Rules:
  • All values must be non-empty strings.
  • bulletlist
    and
    numberedlist
    must be arrays of 2+ non-empty strings.
  • The same semantic may appear multiple times within a copy (e.g., multiple
    text
    entries for date, time, location).
  • title
    is the headline — as a standalone semantic, it appears at most once per copy.
    title
    may also appear inside repeating list units.
  • Repeating units (speaker portraits, team members, product cards) must use the matching list semantic — an array of objects:
    • imagetitletextlist
      : array of
      { image, title, text }
      objects
    • imagetextlist
      : array of
      { image, text }
      objects
    • titletextlist
      : array of
      { title, text }
      objects
    • textlist
      : array of
      { text }
      objects
    • The
      image
      value is a placeholder:
      "image.jpg"
      for person photos,
      "icon.svg"
      for all other icons.
    • imagetextlist
      with
      "icon.svg"
      can be used instead of
      bulletlist
      when list items benefit from icons (features, benefits, contact details).
每个文案变体只能使用以下语义。切勿自创语义——将任何其他概念映射到最接近的允许语义。
title
,
text
,
offer
,
coupon
,
button
,
bulletlist
,
numberedlist
,
imagetitletextlist
,
imagetextlist
,
titletextlist
,
textlist
,
quote
,
hashtag
,
caption
,
date_time
,
phone
,
email
,
website
,
address
,
whatsapp
,
instagram
,
facebook
,
linkedin
,
twitter
,
behance
,
dribbble
,
pinterest
,
slack
规则:
  • 所有值必须是非空字符串。
  • bulletlist
    numberedlist
    必须是包含2个及以上非空字符串的数组。
  • 同一语义可在一个文案中多次出现(例如,多个
    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

内容规则

  1. Use only semantics appropriate for the design format. Do not add
    button
    or interactive semantics for static formats (thumbnails, covers, posters, banners).
  2. No empty values — every semantic must have meaningful, non-placeholder text.
  3. Include phone, email, website, address,
    date_time
    ,
    offer
    ,
    coupon
    , or social profiles only if the user asked. Use handles exactly as provided (no URLs, no @handle). For
    whatsapp
    , include only the number. Never invent contact details.
  4. Each semantic stands alone — no repeated values within a single copy.
  5. Write all text in the target language.
  6. Copies are design content (text layers in the visual), not social post captions or descriptions.
  7. If brand persona is available, match the tone (emotions), industry vocabulary, and target audience.
  1. 仅使用适合设计格式的语义。静态格式(缩略图、封面、海报、横幅)不要添加
    button
    或交互语义。
  2. 无空值——每个语义必须包含有意义的非占位符文本。
  3. 仅在用户要求时包含电话、邮箱、网站、地址、
    date_time
    offer
    coupon
    或社交账号。完全按照提供的账号使用(不要URL,不要@handle)。
    whatsapp
    仅包含号码。切勿自创联系方式。
  4. 每个语义独立——单个文案内无重复值。
  5. 所有文本使用目标语言。
  6. 文案是设计内容(视觉中的文本层),不是社交帖子说明或描述。
  7. 如果有品牌人设,匹配语气(情感)、行业词汇和目标受众。

Present the variations

呈现变体

Present the copy variations in a readable format — not JSON. Example (2 variations shown; extend for more):
undefined
以易读格式呈现文案变体——不要JSON。示例(显示2个变体;可扩展为更多):
undefined

Copy 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
undefined
Title: Hello Summer Offer: Buy 2 Get 1 Free Bulletlist:
  • 100% organic cotton
  • Free shipping over $50
  • 30-day returns Button: Explore Collection
undefined

4. 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
generate-design
(content mode) when they're ready for visuals:
json
{
  "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-design
(内容模式会自动检测语义格式):
json
{
  "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
    generate-design
    with the approved copy (content mode auto-detects the semantic format).
  • 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
      ,
      date_time
      , etc.) → string values
    • bulletlist
      ,
      numberedlist
      → array of strings
    • imagetitletextlist
      ,
      imagetextlist
      ,
      titletextlist
      ,
      textlist
      → array of objects
    • Social semantics (
      phone
      ,
      email
      ,
      website
      ,
      address
      ,
      whatsapp
      ,
      instagram
      , etc.) → string values
  • 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
      等)→ 字符串值
  • 设计尺寸决定文本量——撰写文案时务必遵循小型/中型/大型指南。