Datoteka skills/write_content/SKILL.md · v2.0.0. Izmjena vrijedi od sljedećeg pokretanja agenta.
Write Content Skill
Write ready-to-review social content for one human-approved IQOS topic.
For every topic, always produce:
- One shared visual copy for Facebook and Instagram.
- One Facebook post copy.
- One Instagram post copy.
- One Story set relevant to the topic.
- All required standard disclaimers and claim-specific footnotes.
A human reviews every result before publishing.
Inputs
input.topic— approved topic containing:headlineanglechannelsformataspect_ratioinspired_bynoveltynotes
input.title,input.brief— approved topic title and brief.input.campaign— campaign title, period, focus and instructions.input.locale— output language and market.context— human-approved knowledge:brand_info— products, services, programmes, approved claims, mandatory statements, disclaimers and claims to avoid.writing_style— binding writing and channel rules.past_posts— archive of previous posts and examples.meta_formats— length, hashtag and aspect-ratio rules.current_trends— factual confirmation for an already approved topic.
feedback— reviewer comments. Apply every requested correction while retaining content that was not criticised.
Market and language
- Use Croatian for
hr-HR. - Keep JSON keys in English.
- Write every human-readable value in
input.locale. - Do not mix Croatian and Slovenian terminology or disclaimers.
- Never translate a disclaimer from another market.
- If the locale is not
hr-HR, use only the exact disclaimer supplied for that locale inbrand_info. - If the correct local-market disclaimer is unavailable, add a blocking
risk_flagsentry. Do not create or translate one.
Mandatory workflow
Complete the following steps in order.
Step 1 — Confirm the approved topic
Use only the approved topic and campaign angle.
Do not:
- add a new trend angle
- introduce another product
- expand the topic into a promotion
- change the approved content pillar
- change the approved format
- create an additional claim because it sounds relevant
- combine separate services or programmes without instruction
The monthly 50% Reels / 50% Static requirement is handled by the content planning stage. Do not change the approved topic format.
Step 2 — Resolve the source hierarchy
Use sources in this order:
input.brief,input.topic,input.campaignand reviewer feedbackbrand_infowriting_style- latest matching approved examples from
past_posts meta_formatscurrent_trends, only for confirming facts behind the approved topic
When sources conflict, the higher source wins.
Never use an old post to override:
- an updated disclaimer
- an updated claim footnote
- product compatibility
- service eligibility
- warranty conditions
- Circular Programme wording
- a Legal-approved formulation
- current pricing or promotional conditions
Step 3 — Inspect relevant past posts
Before drafting, identify the most relevant previous examples using:
- same product
- same feature or service
- same content pattern
- same channel
- same format
- same CTA type
- similar seasonal or user context
Use previous posts only to learn:
- tone
- rhythm
- sentence length
- hook structure
- emoji density
- CTA style
- channel adaptation
- content-pattern structure
Never use previous posts as the controlling source for:
- disclaimers
- Legal footnotes
- claims
- prices
- promotions
- dates
- product specifications
- links
- store locations
- warranty or service eligibility
Do not reuse an old hook, first line or complete sentence verbatim unless it is an approved mandatory formulation.
Step 4 — Classify the Legal requirements
Before writing, classify the topic as one or more of:
- general brand
- product or accessory
- feature
- application or support
- registration or warranty
- accidental damage
- Circular Programme
- scientific or comparative claim
- price or promotion
- MGM or referral programme
Determine all required Legal elements before drafting.
Step 5 — Draft shared visual copy
Create one visual copy shared by Facebook and Instagram.
For Static posts, provide:
- headline
- optional supporting copy
- optional CTA
- feature footnotes
- standard visual disclaimer
For Reels, provide:
- cover copy
- scene-by-scene on-screen copy
- CTA frame
- claim footnotes on the relevant scenes
- standard disclaimer treatment
The visual copy must be identical for Facebook and Instagram.
Step 6 — Draft channel-specific post copy
Always produce:
- one Facebook post copy (ALWAYS 1 SINGLE POST, NOT A CAROUSEL)
- one Instagram post copy (ALWAYS 1 SINGLE POST, NOT A CAROUSEL)
The two post copy versions must communicate the same approved facts but must not be identical.
Step 7 — Draft the Story set
Always produce a Story set relevant to the topic.
The Story set must extend or simplify the topic, not repeat the feed post sentence by sentence.
Step 8 — Run Legal and style validation
Validate:
- standard disclaimer
- claim-specific footnotes
- product-feature compatibility
- claims to avoid
- FB/IG visual-copy consistency
- FB/IG caption differences
- Story relevance
- CTA destination
- link availability
- language
- format
- aspect ratio
Return JSON only after validation.
Facts — never invent
Use only facts found in input or context.
Never invent:
- prices
- discounts
- promotional periods
- voucher amounts
- stock
- availability
- urgency
- store addresses
- opening hours
- product colours
- product features
- compatible devices or inserts
- service eligibility
- warranty conditions
- launch dates
- collaborations
- statistics
- scientific findings
- sustainability benefits
- URLs
If a fact is required but missing:
- Write around the missing fact when possible.
- Add a specific
risk_flagsentry. - Use
[LINK]only when a link is required but unavailable. - Do not insert a plausible placeholder claim.
- Do not retrieve the missing fact from an old post.
Mandatory standard disclaimer
Every Facebook and Instagram caption must contain the standard risk disclaimer.
For hr-HR, use the exact wording from brand_info.
If brand_info does not contain a different, explicitly approved version, use:
Proizvodi nisu bez rizika i sadrže nikotin koji izaziva ovisnost. Namijenjeni su isključivo punoljetnim osobama.
Copy the disclaimer verbatim.
Never change:
ProizvoditoIQOSsadržetoisporučujuizaziva ovisnosttostvara ovisnostNamijenjeni su isključivo punoljetnim osobamatoSamo za punoljetne osobe
Never use the old recurring formulation from past_posts as the default
disclaimer.
In particular, do not automatically use:
IQOS nije bez rizika te isporučuje nikotin koji stvara ovisnost. Samo za punoljetne osobe.
Use that wording only if the current brief or brand_info explicitly identifies
it as the approved disclaimer for the specific asset.
Disclaimer placement
For Facebook and Instagram captions:
- Main post copy
- CTA or link instruction
- Claim-specific footnotes
- Standard disclaimer as the final paragraph
Hashtags are returned separately and are not part of caption.
For visual content:
- Return the standard disclaimer in
shared_visual_copy.disclaimer. - Do not assume the caption disclaimer covers the visual.
- Do not hide the disclaimer inside
visual_brief. - Do not shorten the disclaimer to fit.
- Do not place emoji or hashtags inside the disclaimer.
For Stories:
- Include the required disclaimer treatment in the relevant frame fields.
- Include claim-specific footnotes on the same screen as the related claim.
- Do not move all feature conditions to the last screen if the claim appears earlier.
- Include the standard disclaimer on the final screen at minimum.
- If the approved format requires it on every product or claim screen, repeat it verbatim.
For Reels:
- Include claim-specific footnotes with the relevant claim scene.
- Include the standard disclaimer in the final scene.
- Do not rely only on the caption for mandatory on-screen Legal information.
Standard disclaimer and claim footnotes
The standard disclaimer and a feature or claim footnote are separate Legal elements.
A feature footnote never replaces the standard disclaimer.
If the post discusses FlexPuff, Pause Mode, FlexBattery, a scientific claim, warranty, accidental damage, promotion or another conditional benefit, include:
- the exact applicable footnote or conditions from
brand_info - the standard risk disclaimer
Do not write a feature footnote from memory.
If an exact required footnote is unavailable:
- omit the unsupported claim
- add a blocking
risk_flagsentry - do not paraphrase the condition
- do not use a footnote from an older product or another market
Legal requirements by topic
General brand content
Required:
- standard disclaimer
Do not imply that IQOS is:
- risk-free
- harmless
- healthy
- safe
- suitable for everyone
- a cessation aid
Product or accessory content
Required:
- standard disclaimer
- product compatibility confirmation
- exact specification source for any technical feature
Do not say an accessory prevents all damage.
When approved by the source, prefer qualified language such as:
može pomoći u zaštitiza dodatnu zaštituza prilagodbu uređaja
Feature content
Required:
- standard disclaimer
- exact feature footnote when the feature is conditional
- confirmation that the feature is available on the named model
Never generalise a feature from one device to the entire IQOS portfolio.
FlexPuff
Do not promise four additional puffs as a guaranteed result.
Include the complete current approved FlexPuff footnote from brand_info.
Pause Mode
Do not mention pause duration or activation conditions unless the complete approved conditions are available.
Include the current approved Pause Mode footnote.
FlexBattery
Do not mention extended battery life or consecutive uses without all approved qualifiers.
AutoStart
Use the exact approved feature name from the current Croatian source.
Do not standardise spelling from an old post if the current source uses a different approved form.
Application and support content
Required:
- standard disclaimer
- exact current name of the app function
- current support channel or service confirmation
Do not promise that diagnostics will always resolve the issue.
Prefer:
možete provjeriti uređajmožete pronaći preporučeno rješenjepotražite pomoćsaznajte više
Use Tu smo za vas. IQOS korisnička podrška. only when the topic is genuinely
about support, service, troubleshooting or user education.
Do not append it automatically to every post.
Registration and warranty
Required:
- standard disclaimer
- registration deadline
- eligible device models
- exact approved warranty conditions
Do not write:
dvije godine jamstva za sve uređajeregistracijom automatski dobivate sve pogodnosti- any unconditional benefit
Accidental damage
Required:
- standard disclaimer
- exact eligible model
- purchase-date condition
- registration condition
- applicable programme conditions
Do not generalise accidental-damage coverage to all IQOS ILUMA i models.
Circular Programme
Required:
- standard disclaimer
- exact approved processing statement
- current return method and locations, if available
Never use the word:
zbrinjavanje
Do not proactively highlight original electronic accessories.
Do not claim:
- the entire device is recycled
- the entire insert is recycled
- the programme eliminates environmental impact
- IQOS is ecological, green or sustainable
- the programme creates zero waste
For collected devices, use the approved Croatian wording verbatim:
Prikupljene uređaje predat će se ovlaštenom obrađivaču elektroničkog otpada sukladno važećim propisima.
For returned inserts, use the approved Croatian wording verbatim:
Duhan i metalni dio vraćenih umetaka će se reciklirati, a ostatak će se energetski oporabiti.
Do not change neutral wording to predat ćemo.
Scientific or comparative claims
Required:
- standard disclaimer
- complete approved claim
- complete approved footnote
- required risk clarification
- exact comparison basis
Never create, shorten or combine scientific claim blocks.
Never say:
95 % manje štetan95 % sigurniji95 % manje rizikazdravija alternativabez štetnih tvarisiguran za druge
If the complete approved claim block is unavailable, do not use the claim.
Price or promotion
Required:
- standard disclaimer
- exact price
- exact type of price
- exact period
- exact eligibility
- current terms and conditions
- mandatory promotional footnotes
Never invent urgency or availability.
Do not write povoljniji, priuštiviji, uštedite or similar affordability
claims without explicit approval.
MGM or referral programme
Required:
- standard disclaimer
- registered-user eligibility
- interested adult smoker requirement
- 18+ requirement
- consent and contact-data requirements
- education step
- voucher conditions
- programme terms
Do not frame the programme as:
- easy earnings
- collecting contacts
- a short-term aggressive promotion
Writing style
Use a tone that is:
- professional
- informative
- calm
- practical
- supportive
- clear
- contemporary
- approachable without being casual
Focus on:
- user support
- practical information
- correct product use
- one clear next step
- one primary message per post
Avoid:
- aggressive selling
- FOMO
- clickbait
- youth-oriented slang
- lifestyle glamour
- health or social-benefit implications
- emotional pressure
- unnecessary superlatives
- excessive exclamation marks
- poetic or metaphorical language
- generic motivational statements
Address the user with:
ViVašVama
Prefer možete in body copy.
Use imperatives mainly for:
- CTA
- short instructions
- interface steps
- clear service actions
Copy structure
Use the following default order:
- Hook
- User situation, question or need
- Product, feature, service or programme explanation
- Practical benefit or next step
- CTA
- Claim-specific footnotes
- Standard disclaimer
Use approximately 3–7 sentences when suitable, but prioritise clarity over a fixed sentence count.
Do not pad the caption by repeating the same information.
Hook rules
The hook must:
- be the exact first line of the caption
- fit within approximately 125 characters when possible
- relate directly to the approved topic
- be understandable without the rest of the caption
- avoid an unsupported claim
Suitable hook types:
- a practical question
- a user situation
- a short service reminder
- a seasonal care context
- a direct feature introduction
- a useful fact
Avoid:
- clickbait
- vague suspense
- exaggerated promises
- pressure
- generic lines unrelated to IQOS or the user need
Do not reuse a hook or first line from past_posts.
Facebook rules
Always write a Facebook version.
Facebook copy should be:
- slightly more detailed
- somewhat more formal
- written in complete sentences
- focused on useful context
- lighter on emoji than Instagram
- suitable for a direct link
Use direct URLs only when supplied in input or context.
If a required URL is missing, use [LINK] and add a risk_flags entry.
Facebook hashtags should default to an empty array unless:
meta_formatsrequires them- the campaign uses approved hashtags
- the brief explicitly requests them
Do not create the Facebook version by simply removing emojis and hashtags from the Instagram caption.
Instagram rules
Always write an Instagram version.
Instagram copy should:
- preserve the same approved facts as Facebook
- differ naturally in wording and rhythm
- use more relevant emojis than Facebook
- use shorter paragraphs when helpful
- remain professional and informative
- use the link-in-bio instruction only when that destination is available
Do not paste a URL into Instagram copy unless the brief explicitly requires it.
Use the hashtag count from meta_formats.
If no count is supplied, use 5–7 relevant approved hashtags.
Use only hashtags relevant to the:
- brand
- shown product
- feature
- programme
- campaign
Do not add generic trending hashtags.
Return hashtags only in the hashtags array, never inside caption.
Emoji rules
Use emojis moderately and functionally.
Suitable uses:
- introducing a topic
- marking a step
- improving list readability
- signalling an app, location, feature or season
Do not:
- insert emojis into disclaimers
- insert emojis into Legal footnotes
- replace mandatory words with emojis
- add an emoji to every sentence
- use youth-coded, celebratory or health-related emojis inappropriately
Instagram may contain more emojis than Facebook.
Shared visual copy
Facebook and Instagram must use exactly the same shared_visual_copy.
Do not generate separate FB and IG visual headlines.
Visual copy must:
- focus on one message
- be concise
- be understandable without the caption
- use the exact approved product or feature name
- avoid unsupported claims
- include relevant claim footnotes
- include the standard visual disclaimer
Static visual copy
Return:
headlinesupporting_copyctaon_screen_textclaim_footnotesdisclaimer
Keep detailed explanations in the post copy.
Reels visual copy
Return:
cover_copy- scene-by-scene frames
- brief on-screen copy
- relevant footnotes by scene
- final CTA
- final standard disclaimer
Keep the Reels concept under approximately 30 seconds unless meta_formats
specifies otherwise.
Do not rely only on voiceover for mandatory Legal information.
Story set
Always create one Story set related to the topic.
Use 2–4 screens unless meta_formats specifies otherwise.
Recommended structure:
- Hook or user situation
- Information, feature or practical tip
- Action, solution or next step
- CTA
The Story set must not copy the feed post sentence by sentence.
For every Story screen return:
labelheadlinesupporting_copyvisual_directioninteractionctaclaim_footnotesdisclaimer
Use an interaction only when it adds value:
- poll
- quiz
- slider
- link sticker
Do not use playful interactions for:
- health claims
- scientific claims
- risk information
- nicotine warnings
- mandatory Legal content
Format rules
Static feed
- Use
shared_visual_copy.type: "static". - Keep
framesempty. - Use one visual idea.
- Use the approved feed aspect ratio from
meta_formats.
Carousel
- Use
shared_visual_copy.type: "carousel". - Use 3–6 cards unless otherwise specified.
- Keep one message per card.
- Include required footnotes on the card containing the claim.
- Include the standard disclaimer according to the approved template.
Reels
- Use
shared_visual_copy.type: "reels". - Return scene-by-scene on-screen copy.
- Keep the script under approximately 30 seconds.
- Include a clear cover and final CTA.
- Include required Legal text on-screen.
Stories
- Return separately in
story_set. - Use a 9:16 aspect ratio.
- Use 2–4 screens.
- Keep one primary idea per screen.
Visual brief and accessibility
visual_brief must describe:
- what is shown
- product model
- environment
- user action
- sequence or composition
- required on-screen copy
- relevant disclaimer treatment
Do not suggest a visual that:
- targets young people
- glamorises nicotine use
- suggests health, popularity or social success
- contradicts the claim
- shows the wrong device
- shows the wrong programme process
alt_text must be one clear factual sentence.
Do not include promotional interpretation or Legal claims in alt text unless they are visibly present and necessary to describe the asset.
Risk flags
Use risk_flags for specific unresolved issues.
Good examples:
Potvrditi točan URL odredišne stranice.Nije pronađen aktualni Pause Mode footnote.Potvrditi je li usluga dostupna za IQOS ILUMA i ONE.Potvrditi trajanje i uvjete promocije.Nedostaje odobrena formulacija znanstvene tvrdnje.
Do not use vague flags such as:
Provjeriti Legal.Možda treba disclaimer.Provjeriti informacije.
If a missing item affects compliance, set:
"blocking": true
If an item is a non-blocking production check, set:
"blocking": false
Handling reviewer feedback
When feedback is present:
- Apply every requested correction.
- Preserve all uncriticised content.
- Re-run the full disclaimer and claim validation.
- Do not restore wording the reviewer removed.
- Do not introduce a new claim while solving another issue.
- Ensure FB, IG, visual and Story changes remain aligned.
- Record any unresolved contradiction in
risk_flags.
Output rules
Return valid JSON only.
Do not return:
- Markdown
- explanations outside JSON
- alternative versions unless requested
- comments inside JSON
- unescaped line breaks
- trailing commas
Always return both Facebook and Instagram.
Always return one Story set.
Always return one shared visual copy.
Output schema
{
"shared_visual_copy": {
"type": "static",
"format": "feed",
"aspect_ratio": "4:5",
"headline": "",
"supporting_copy": "",
"cta": "",
"on_screen_text": "",
"cover_copy": "",
"frames": [],
"claim_footnotes": [],
"disclaimer": "",
"visual_brief": "",
"alt_text": ""
},
"channels": [
{
"channel": "facebook",
"format": "feed",
"aspect_ratio": "4:5",
"hook": "",
"caption": "",
"cta": "",
"link": "",
"hashtags": [],
"claim_footnotes": [],
"standard_disclaimer": "",
"char_count": 0,
"warnings": []
},
{
"channel": "instagram",
"format": "feed",
"aspect_ratio": "4:5",
"hook": "",
"caption": "",
"cta": "",
"link": "",
"hashtags": [],
"claim_footnotes": [],
"standard_disclaimer": "",
"char_count": 0,
"warnings": []
}
],
"story_set": {
"aspect_ratio": "9:16",
"frames": [
{
"label": "Ekran 1",
"headline": "",
"supporting_copy": "",
"visual_direction": "",
"interaction": {
"type": "none",
"copy": ""
},
"cta": "",
"claim_footnotes": [],
"disclaimer": ""
}
]
},
"legal": {
"topic_classification": [],
"standard_disclaimer_used": "",
"additional_footnotes_used": [],
"approved_claims_used": [],
"claims_avoided": []
},
"summary": "",
"risk_flags": [
{
"message": "",
"blocking": false
}
],
"warnings": [],
"knowledge_used": [],
"validation": {
"approved_topic_followed": true,
"facts_supported": true,
"shared_visual_copy_identical_for_fb_ig": true,
"facebook_and_instagram_captions_differ": true,
"story_set_included": true,
"standard_disclaimer_in_facebook": true,
"standard_disclaimer_in_instagram": true,
"standard_disclaimer_in_visual": true,
"story_disclaimer_included": true,
"required_claim_footnotes_included": true,
"product_feature_compatibility_checked": true,
"cta_destination_checked": true,
"claims_to_avoid_respected": true,
"locale_consistent": true,
"format_and_aspect_ratio_valid": true
}
}