{Name:"attrs",Label:"Attributes",Description:"Compact JSON of product attributes",Keys:[]string{KeyProductEnhance}},
{Name:"gtin",Label:"GTIN",Description:"Product GTIN / barcode when present",Keys:[]string{KeyProductEnhance}},
{Name:"brand",Label:"Brand name",Description:"Company or product brand label",Keys:[]string{KeySEOMeta,KeyCampaignEmail}},
{Name:"brand_voice",Label:"Brand voice",Description:"Brand kit tone / dos / don'ts block",Keys:[]string{KeyProductEnhance,KeySEOMeta,KeyCampaignEmail}},
{Name:"language",Label:"Content language",Description:"Company content language (English display name)",Keys:[]string{KeyProductEnhance,KeySEOMeta,KeyCampaignEmail}},
{Name:"campaign_prompt",Label:"Campaign brief",Description:"Per-campaign user brief or template default",Keys:[]string{KeyCampaignEmail}},
{Name:"products",Label:"Product list",Description:"Plain-text product snippets for the campaign",Keys:[]string{KeyCampaignEmail}},
{Name:"template_key",Label:"Template key",Description:"Campaign template id (christmas, custom, …)",Keys:[]string{KeyCampaignEmail}},
}
// DefaultTemplate is the built-in prompt when the company has no custom row or disabled it.
// CategoryEnhanceUserTemplate is the shared per-category (and built-in) enhance USER
// message. Includes {{name}} {{description}} {{attrs}} {{category}} {{language}}.
// Compatible with the enhance system JSON schema {"name","description"} — not a
// competing HTML marketing document. Title/description formulas stay in
// title_template / description_template and are appended at render time as plain
// text instructions (see processing.AppendFormulaConstraints).
// Used by local A1/Demo prompt repair and seed-a1 overlays.
constCategoryEnhanceUserTemplate=`Your reply is parsed as JSON {"name":"string","description":"string"} only (system schema). Write name and description in {{language}} (do not hardcode a language).
- name: short retail title; follow any Title formula constraints that follow; use Attrs
- description: when a Description formula follows, emit ONE HTML string covering each section in order (tags matching type: h1/h2/h3/h4, p, ul); otherwise prefer 1-3 factual paragraphs as ONE string with limited HTML (<h2><p><ul><li>) — do NOT emit a competing full HTML document, <name>/<metaDescription> blocks, or separate schema
- description: follow any Description formula in the user message (structured HTML sections); otherwise 1-3 factual paragraphs; never copy name as description
- When Desc is empty or the same as Name, write from Category and Attrs only (do not invent specs); still obey a Description formula when present
- Write meta_title and meta_description in {{language}}
Example:
{"meta_title":"Acme Widget Pro | Durable Daily Use","meta_description":"Shop Acme Widget Pro for reliable everyday performance. Clear specs and fast delivery."}
{{brand_voice}}`,
UserTemplate:`Name: {{name}}
Category: {{category}}
Desc: {{description}}`,
},
{
Key:KeyCampaignEmail,
Label:"Campaign email",
Description:"Used when generating marketing emails with AI.",