Datoteka skills/analyze_old_posts/SKILL.md · v1.0.0. Izmjena vrijedi od sljedećeg pokretanja agenta.
Analyze Old Posts Skill
Derive a writing style guide and a set of representative examples from the
brand's own historical Facebook and Instagram posts. The markdown becomes
writing_style.md, used by propose_topics (patterns, covered themes) and
write_content (tone, structure, CTA, recurring statements).
Inputs
input.brand,input.channels,input.detail_level.context— posts collected by the system. Each item haschannel,created_at,textandurl; inventory files addformat,topic,visual_copyandsource_plan(the content plan the row came from).
Evidence rules
- Examples must be the brand's own posts from
context; keep text verbatim. - Base the style guide on consumer-facing copy only. Rows whose
textis an internal brief (English planning notes, instructions such as "FOCUS IN REELS FORMAT", typicallychannel: storywithout post copy) inform topics and formats only. Never use them as examples or style evidence, and skip any row that mixes planning notes with copy. - Use
topicandformatto describe the content mix (themes, feed vs. carousel vs. reels vs. stories).
What to describe
- Tone, sentence count and length, emoji habits, CTAs and recurring structures.
- Hashtags — which tags recur, typical count per channel.
- Recurring statements — risk, age and nicotine reminders, footnotes (
*) and sign-offs (e.g. "Tu smo za vas."), quoted verbatim, with how often they appear. Content agents reuse this wording. - Channel differences between Facebook and Instagram, if visible.
- Links — how posts point to links (in the post, "link in bio", web shop).
Patterns, not templates
The generation agents must create new posts that feel like the brand without recycling old ones.
content_patterns— 4–8 recurring recipes across all posts, with idsP1…P8, a name, the recipe (hook type → body structure → CTA), typical formats and how often they appear. No product- or date-specific details.- Examples are numbered
E1,E2, … and each names its pattern id. covered_themes— the themes already used (these must not be repeated as-is).- Use the same ids in the markdown and in
data— other agents refer to them. - The system passes the full list of past posts to the generation agents separately, so do not copy all posts into the markdown.
Length
input.detail_level controls how long the markdown is: short = a compact
brief (about 300 words, only the most important points), standard (default)
= about 600–900 words, detailed = full coverage (up to about 1500 words).
The number of verbatim examples scales with it (short 3, standard 6, detailed 10).
Pick diverse examples (formats, topics, channels).
Revisions
When feedback is present, the reviewer asked for changes to
input.previous_version.markdown. Revise that document: apply every point of
the feedback, keep the parts the reviewer did not question, and keep examples
verbatim from context. Mention in warnings any feedback you could not apply.
Language
- JSON keys stay English, but every human-readable output value uses
input.locale(Croatian forhr-HR, Slovenian forsl-SI). Do not mix languages. Examples and quoted statements stay verbatim, even when their language differs from the requested output.
Output (JSON only)
{
"markdown": "# Writing style — <brand>\n\n## Tone\n- ...\n\n## Structure & length\n- ...\n\n## Emoji, hashtags, CTA\n- ...\n\n## Recurring statements\n- \"...\" (~60% objava)\n\n## Channel differences\n- ...\n\n## Content patterns\n- P1 — <name>: <recipe> (formats, ~30%)\n\n## Covered themes\n- ...\n\n## Examples\nE1 (P1, instagram, reels, 2025-10-01)\n<verbatim text>",
"data": {
"writing_style": { "tone": "...", "avg_length": "...", "emoji": "...", "hashtags": "...", "cta": "...", "links": "..." },
"recurring_statements": [{ "text": "...", "frequency": "~60%" }],
"content_patterns": [{ "id": "P1", "name": "...", "recipe": "...", "formats": ["feed"], "frequency": "~30%", "example_ids": ["E1"] }],
"covered_themes": ["..."],
"examples": [{ "id": "E1", "pattern": "P1", "channel": "instagram", "format": "reels", "created_at": "...", "text": "...", "url": "...", "why": "..." }]
},
"sources": [{ "title": "...", "url": "..." }],
"warnings": []
}