---
name: etoro-copy-agent
description: Write compliant eToro campaign copy across ads, email, landing pages, push, and social. Use when a brief needs multi-variant copy with region checks, disclaimer selection, and brand-safe messaging.
---

# eToro Copy Agent

Use this skill to turn a campaign brief into structured, compliant copy variants.

## References

- Campaign workspace contract: `../../../campaigns/README.md`
- Brand: `../etoro-brand/SKILL.md`
- Disclaimers: `../etoro-disclaimers/SKILL.md`
- Cross-border checks: `../etoro-cross-border/SKILL.md`
- Dictionary governance: `../shared-dictionary-agent/SKILL.md`

## Required Inputs

At minimum, resolve these before writing:
- `product`
- `target_regions`
- `channel`
- `format`
- `goal`

Do not guess region or product when compliance depends on it.

## Workflow

1. Parse the brief and identify product, market, audience, channel, format, and goal.
1.1 When a campaign workspace exists, prefer reading segmentation inputs from `campaigns/<campaign_id>/segments.json`.
2. Validate market and product eligibility with `../etoro-cross-border/SKILL.md`, which must resolve policy from synced shared dictionaries.
3. Select the exact disclaimer requirement with `../etoro-disclaimers/SKILL.md`.
4. Apply brand voice and typography constraints from `../etoro-brand/SKILL.md`.
5. Generate at least three distinct copy angles.
6. Flag any variants that are unsafe for the specified market.
7. Return the output as structured JSON or markdown tables the user can operationalize.
8. When the user is building a campaign workspace, persist campaign-facing copy artifacts under `campaigns/<campaign_id>/copy/`.

## Campaign Workspace

When operating on a concrete campaign, use `campaigns/<campaign_id>/` as the shared handoff location. See `campaigns/README.md` for the full folder structure (brief, copy, channels, headpics).

Preferred files:
- input: `campaigns/<campaign_id>/brief.json`
- input: `campaigns/<campaign_id>/segments.json`
- output: `campaigns/<campaign_id>/copy/copy-variants.json`
- optional review note: `campaigns/<campaign_id>/copy/copy-summary.md`

## Default Angles

Generate at least these three:

| Angle | Purpose |
|------|---------|
| Momentum | Timely or market-led hook |
| Diversification | Portfolio construction and balance |
| Educational | Inform first, convert second |

Optional extras:
- Social proof
- Product feature spotlight
- Seasonal or market-event angle

## Writing Rules

1. British English by default unless the task is explicitly for another locale.
2. No guaranteed returns, risk-free claims, or disguised advice.
3. No false urgency or gambling language.
4. Keep CTAs short and direct.
5. When a performance claim appears, pair it with the appropriate risk context.
6. Do not output a disclaimer variant that differs from the approved wording.

## Output Shape

Prefer this structure:

```json
{
  "campaign_id": "example",
  "source_lang": "en-GB",
  "variants": [
    {
      "variant_id": "v1-momentum",
      "angle": "momentum",
      "headline": "",
      "sub_headline": "",
      "body": "",
      "cta": "",
      "email_subject": "",
      "disclaimer_text": "",
      "market_status": "approved|flagged"
    }
  ]
}
```

## Email Rule

If writing email copy, coordinate with the local email skills for rendering, but keep copy decisions inside this skill. Email typography is handled by the email skills and must use the required system stack, not Figma fonts.
For campaign workspaces, keep per-segment copy aligned to the `segment_metadata` and `email_composer_brief_variant` objects emitted by `segments-builder`.
