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
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
with the approved copy.
Steps
1. Parse arguments
- — description of the product, offer, or campaign (required).
- — design category for context (default: )
- — format variant (default: )
- — (only when type is ; default:
{"width": 800, "height": 800}
)
- — language for text (default: )
If
is missing, ask: "What product or offer would you like copy for? Describe it briefly."
2. Resolve brand (if brands/ exists)
Follow the standard brand resolution:
- Scan for directory.
- Match brand name from prompt, or use single brand, or ask user.
- Read for brandId and brand persona (emotions, industry, audience, designTags).
- Use the brand persona to inform copy tone and style — the agent incorporates this directly into the generated copy.
3. Generate copy variations (agent — no API call)
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.
Allowed Semantics
Use ONLY these semantics in each copy variation. Never invent new semantics — map any other concept to the closest allowed one.
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
Rules:
- All values must be non-empty strings.
- and must be arrays of 2+ non-empty strings.
- The same semantic may appear multiple times within a copy (e.g., multiple entries for date, time, location).
- is the headline — as a standalone semantic, it appears at most once per copy. 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:
- : array of objects
- : array of objects
- : array of objects
- : array of objects
- The value is a placeholder: for person photos, for all other icons.
- with can be used instead of when list items benefit from icons (features, benefits, contact details).
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.
Content Rules
- Use only semantics appropriate for the design format. Do not add or interactive semantics for static formats (thumbnails, covers, posters, banners).
- No empty values — every semantic must have meaningful, non-placeholder text.
- Include phone, email, website, address, , , , or social profiles only if the user asked. Use handles exactly as provided (no URLs, no @handle). For , include only the number. Never invent contact details.
- 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.
Present the variations
Present the copy variations in a readable format — not JSON. Example (2 variations shown; extend for more):
## Copy Variation 1
**Title:** Summer Collection Launch
**Offer:** 30% Off All New Arrivals
**Text:** Refresh your wardrobe with vibrant summer styles
**Button:** Shop Now
## 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
4. User reviews and edits
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.
5. Output the approved copy
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:
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."
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).
- 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 (, , , , , , , , etc.) → string values
- , → array of strings
- , , , → array of objects
- Social semantics (, , , , , , etc.) → string values
- The design size determines text volume — always respect the small/medium/large guidelines when writing copy.