Skill #11+ · Intelligence layer · Auto-concept generation

trend-picker

Auto-concept generator для рекламного pipeline. Берёт нишу / handle конкурента / URL вирусного ролика → discovery через instagram-research → download + analyze через video-analyzer → генерирует N ready-to-go concept briefs (hook + structure + CTA + recommended MCSLA model) адаптированных под наш бренд. Не зависит от Higgsfield — использует HikerAPI (instagram-cli MCP) + LLM in-session.

Путь
~/.claude/skills/trend-picker/
Зависимости
instagram-cli MCP, video-analyzer, LLM (in-session). Без Higgsfield.
Cost
~$0.05 (1 URL) до ~$0.25 (10-reel DNA анализ)
Output
concepts.json (machine-readable schema) + trend-report.md (human)

3 режима

Режим Вход Pipeline Output Cost · Время
trend_discovery niche / список конкурентов search top-15 → analyze top-10 → extract patterns (hook/structure/CTA) → 8 концептов под наш бренд top_reels.json + patterns.md + concepts.json (8 briefs) + trend-report.md ~$0.20 · 5-8 мин
viral_analysis один URL (Instagram / TikTok / YouTube) download → frame-by-frame analyze → comment themes → patterns of "why it works" → 1 clone-ready brief viral-breakdown.md + concepts.json (1 brief) — готовый input для video-clone-competitor ~$0.05 · 2-3 мин
creator_dna @handle top 20 reels → per-reel analysis → 9-секционный DNA-профиль (visual / hook / voice / structural / topic signatures) → N концептов в стиле автора dna-<handle>.md (full profile) + concepts-dna.json (N briefs) ~$0.25 · 6-10 мин

Где это в pipeline

Trend-picker — это bridge между competitive intel и production. До этого было 2 разрыва: instagram-research находит рилсы, instagram-analyze разбирает один, но никто не превращал intel в готовые брифы.

instagram-research (find)
     ↓
trend-picker (analyze + adapt + generate concepts)   ← новое
     ↓
video-copywriter / video-clipgen / video-clone-competitor (execute)

Concept Schema (выходной формат)

Каждый сгенерированный концепт — JSON-объект по строгой схеме. Downstream-скиллы знают этот формат.

{
  "id": "td_001",
  "title": "Болевой триггер: страх потери зуба",
  "service_direction": "implantation",
  "format_type": "mixed",     // ugc | cinematic | motion_graphics | talking_head | mixed
  "duration_target_s": 15,
  "aspect": "9:16",
  "hook": {
    "type": "stat_shock",     // problem_statement | stat_shock | before_after | question | creator_intro | curiosity_gap
    "text": "84% теряют зубы из-за неправильных имплантов",
    "visual": "Bold red text + hands holding broken crown"
  },
  "structure": [
    { "scene": 1, "duration_s": 3, "purpose": "hook", "description": "...", "camera": "Static medium close-up", "voiceover": "...", "text_overlay": "..." },
    { "scene": 2, "duration_s": 5, "purpose": "problem", "description": "...", "camera": "Slow Dolly In", "voiceover": "...", "text_overlay": "" },
    { "scene": 3, "duration_s": 4, "purpose": "demo", "description": "Straumann implant box close-up", "camera": "Robo Arm arcing", "voiceover": "...", "text_overlay": "STRAUMANN" },
    { "scene": 4, "duration_s": 3, "purpose": "cta", "description": "...", "camera": "Hard cut to exterior", "voiceover": "...", "text_overlay": "ДИРЕКТ → ЗАПИСЬ" }
  ],
  "cta": { "type": "dm_keyword", "text": "...", "placement_s": 12, "visual": "..." },
  "recommended_models": {
    "video": "cinematic_studio_video_v2",
    "image_ref_needed": true,
    "soul_id_needed": true
  },
  "estimated_cost_usd": 1.88,
  "inspiration_source": {
    "url": "https://www.instagram.com/reel/CzXk1234abc/",
    "views": 280000,
    "engagement_rate": 9.2,
    "why_works": "Stat в первые 1.5 сек, проблема-демо-решение классика"
  },
  "brand_adaptation_notes": "Source: Nobel implants в турецкой клинике → адаптировано под Straumann + Almaty + наш Dr. Бахетов (Soul-ID)"
}

Валидация (перед сохранением concepts.json)

  1. service_direction совпадает с одним из service_directions[].slug в project.yaml
  2. hook.type из enumerated списка (не свободная строка)
  3. structure[] durations sum within ±1s от duration_target_s
  4. recommended_models.video — валидный model_id (из cheatsheet в video-clipgen-higgsfield)
  5. inspiration_source.url — настоящий URL (не placeholder)

Файлы

~/.claude/skills/trend-picker/
├── SKILL.md                          ← orchestration logic
└── references/
    ├── concept-schema.md             ← JSON schema concept brief (выше)
    ├── dna-template.md               ← 9-секционный template для creator_dna mode
    └── pattern-library.md            ← растущая библиотека hook/structure/CTA паттернов

Output structure (на диске)

~/video-projects/<project>/trends/<date>/
├── top_reels.json            ← найдено instagram-research
├── reels/                    ← скачанные видео
├── analyzed/                 ← video-analyzer JSON per reel
├── patterns.md               (mode 1) / viral-breakdown.md (mode 2) / dna-<handle>.md (mode 3)
├── concepts.json             ← N briefs (machine-readable)
└── trend-report.md           ← human-readable summary

Триггеры

Скилл активируется когда юзер хочет автогенерируемые брифы (а не просто поиск рилсов или анализ одного):

Smart routing после trend-picker

video-orchestrator читает concepts.json и маршрутизирует каждый concept по format_type:

format_typeКуда идётBackend
ugccopywriter → clipgenSeedance 2.0 (natural motion)
cinematiccopywriter → clipgen-higgsfieldCinematic Studio V2 (camera control)
talking_headcopywriter → clipgen-higgsfieldSoul Cast + Soul-ID
motion_graphicscopywriter (textover) → motionfxRemotion (programmatic)
viral_analysis 1:1 clonevideo-clone-competitorAuto-routing higgsfield/veo

Когда НЕ использовать

Hard rules

  1. Всегда грузи project.yaml + brief.md + creatives/*.md перед генерацией. Brand-blind концепты = мусор.
  2. Не повторяй концепты которые уже есть в creatives/<direction>.md — diversify.
  3. Перед mass-discovery проверь HikerAPI balance через get_system_balance. Сообщи юзеру cost.
  4. Каждый concept должен иметь inspiration_source.url для traceability.
  5. Default count = 8 для Mode 1 (один концепт на главный паттерн × service direction). Не перегенеривай.

Pairs with