← Skills

analyze_old_posts

research · v1.0.0 · Knowledge: old_posts

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 has channel, created_at, text and url; inventory files add format, topic, visual_copy and source_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 text is an internal brief (English planning notes, instructions such as "FOCUS IN REELS FORMAT", typically channel: story without 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 topic and format to 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 ids P1…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 for hr-HR, Slovenian for sl-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": []
}