research-orchestrator
Research Orchestrator
Diagnose your research needs, build the optimal skill chain, and guide execution step by step. No external tools — pure routing. Reads
research-memory/status to recommend what to run and when.
Purpose
Research Orchestrator is the traffic controller for all 8 research skills. It answers:
- What research do I need right now?
- What's already done, and what's missing?
- In what order should I run the skills?
- What's stale and needs refreshing?
This skill never conducts research itself. It reads research-memory/ to diagnose the current state, analyzes the user's request, and produces a step-by-step execution plan pointing to the right skills.
"Doing research without a plan is like shopping without a list — you'll miss what matters and waste time on what doesn't."
Modes
| Mode | When to Use | Behavior |
|---|---|---|
| A: Full Research | New brand/product, empty research-memory/ | Chain all 8 skills in dependency order |
| B: Focused Research | Specific question or area needed | Select 1-3 skills based on request |
| C: Refresh | Existing research is outdated | Re-run stale skills in Refresh mode |
| D: Validate | Strategy brief exists, need expert check | Run expert-validator only |
Auto-Load Protocol
On every invocation, BEFORE any routing:
- Check
research-memory/directory - If files exist → Read ALL
.mdfiles (except README.md) - For each file, assess:
- Exists? — File present with substantive content (not just scaffold headers)
- Last updated — Extract date from
> Last updated:header orresearch-log.md - Richness — Rich (detailed data) / Adequate / Thin (scaffold only)
- Enrichment status — For
competitive-intel.md: which skills have contributed? ([competitor-finder]/[competitor-analyzer]/[competitor-visual]) - Expert validation — For
strategy-brief.md: are[expert-validator]sections populated?
- Read
research-log.md→ Extract last execution date per skill - Check
brand-memory/(read-only) → If exists, use business context to pre-fill recommendations - Build Status Dashboard (see Step 1 below)
Process
Step 1: Build Status Dashboard
Goal: Show the user exactly where their research stands.
Generate this dashboard from the Auto-Load data:
Research Status Dashboard
══════════════════════════
📊 Market Landscape : [STATUS] [DATE_INFO]
🏢 Competitive Intel : [STATUS] [DATE_INFO] [ENRICHMENT_INFO]
👥 Customer Insight : [STATUS] [DATE_INFO]
💬 Customer Language : [STATUS] [DATE_INFO]
📋 Strategy Brief : [STATUS] [DATE_INFO] [VALIDATION_INFO]
📝 Research Log : [LAST_ENTRY_DATE]
Status values:
✅ Complete— File exists with substantive content⚠️ Stale (Xd ago)— Complete but outdated (30+ days)⚠️ Partial— File exists but missing sections (e.g., competitive-intel with finder only)❌ Missing— File doesn't exist or is empty scaffold
Staleness thresholds:
- 30+ days → "Update recommended"
- 90+ days → "Update strongly recommended"
- 180+ days → "Re-research needed"
Always show the dashboard first — it grounds the conversation in facts, not assumptions.
Step 2: Analyze Request + Select Mode
Goal: Match the user's request to the right mode.
| Condition | Auto-Suggest |
|---|---|
| research-memory/ empty or missing + broad request | Mode A: Full Research |
| research-memory/ empty + specific area mentioned | Mode B: Focused (but recommend Full) |
| research-memory/ has data + specific area mentioned | Mode B: Focused |
| research-memory/ has data + "update"/"refresh"/"renew" | Mode C: Refresh |
| strategy-brief.md exists + "validate"/"review"/"check" | Mode D: Validate |
| Ambiguous request | Show dashboard → ask user to choose |
Present the suggested mode with a one-line rationale. Let the user confirm or override.
Step 3: Build Execution Path
Goal: Generate the ordered list of skills to run, respecting dependencies.
Skill Dependency Map
market-scanner ─────────────────────────────────────┐
→ market-landscape.md │
│
competitor-finder ──┬── competitor-analyzer │
→ competitive- │ → enriches messaging/CTA ├─→ research-synthesizer
intel.md │ │ → strategy-brief.md
(skeleton) └── competitor-visual │ │
→ enriches design/visual │ ▼
│ expert-validator
audience-profiler ──── voice-of-customer │ → enriches strategy
→ customer- → customer-language.md │ -brief.md
insight.md │
│
────────────────────────────────────┘
Group independence (for Mode A):
- Group 1 (Market):
market-scanner— no prerequisites - Group 2 (Competition):
competitor-finder→competitor-analyzer→competitor-visual— sequential chain - Group 3 (Customer):
audience-profiler→voice-of-customer— sequential chain - Group 4 (Synthesis):
research-synthesizer→expert-validator— requires Groups 1+2+3
Groups 1, 2, 3 are independent of each other — user can choose the starting group.
Mode A: Full Research Path
Present the complete chain:
📋 Full Research Plan
═════════════════════
Group 1 — Market
Step 1: market-scanner → market-landscape.md
Group 2 — Competition
Step 2: competitor-finder → competitive-intel.md (skeleton)
Step 3: competitor-analyzer → competitive-intel.md (+messaging)
Step 4: competitor-visual → competitive-intel.md (+design)
Group 3 — Customer
Step 5: audience-profiler → customer-insight.md
Step 6: voice-of-customer → customer-language.md
Group 4 — Synthesis (after Groups 1-3)
Step 7: research-synthesizer → strategy-brief.md
Step 8: expert-validator → strategy-brief.md (+expert review)
💡 Groups 1-3 are independent. Which group would you like to start with?
Mode B: Focused Research Path
- Map user request to target skill(s) using this table:
| User Request Pattern | Target Skill | Prerequisite |
|---|---|---|
| Market size, trends, structure | market-scanner | None |
| Find competitors, competitive set | competitor-finder | None |
| Competitor website, messaging, pricing | competitor-analyzer | competitor-finder ✅ |
| Competitor design, visual, screenshots | competitor-visual | competitor-finder ✅ |
| Target audience, segments, journey | audience-profiler | None |
| Customer language, reviews, community | voice-of-customer | audience-profiler recommended |
| Strategy brief, cross-analysis, synthesis | research-synthesizer | market-scanner + competitor-finder + audience-profiler ✅ |
| Expert review, validate strategy | expert-validator | research-synthesizer ✅ |
- Check prerequisites against dashboard status
- If prerequisite missing → include it in the path
- Present the focused path
Mode C: Refresh Path
- Read
research-log.md→ calculate days since last run per skill - Identify stale skills (30/90/180-day thresholds)
- Build refresh path — stale skills only, in dependency order
- Cascade rule: If a data-producing skill refreshes, downstream synthesis may need refresh too:
- market-landscape refreshed → flag research-synthesizer for refresh
- competitive-intel refreshed → flag research-synthesizer for refresh
- customer-insight refreshed → flag voice-of-customer + research-synthesizer for refresh
Mode D: Validate Path
- Check
strategy-brief.mdexists with content - If YES → direct to
expert-validator - If NO → explain prerequisite chain:
research-synthesizerfirst (and its prerequisites if missing)
Step 4: Guide Execution
Goal: Hand off to the first skill and provide ongoing navigation.
Language: 사용자가 언어를 지정하면 대시보드 및 안내 텍스트를 해당 언어로 출력합니다. 개별 스킬 호출 시 동일한 언어 설정을 전달합니다.
Initial handoff:
▶ Next skill: [SKILL_NAME]
Purpose: [one-line description]
Input needed: [what the user should prepare]
Say "[SKILL_NAME] 실행해줘" to start.
After each skill completes:
Provide a transition prompt:
✅ [COMPLETED_SKILL] done → [output_file] saved
▶ Next: [NEXT_SKILL_NAME]
Purpose: [one-line description]
Continue? Say "[NEXT_SKILL_NAME] 실행해줘"
After all research skills complete:
If strategy-brief.md exists with Next Steps → bridge to marketing execution:
🎯 Research complete! Your strategy brief recommends:
1. [Next Step 1] → [marketing skill name]
2. [Next Step 2] → [marketing skill name]
3. [Next Step 3] → [marketing skill name]
Ready to execute? Pick a next step to start.
Skill Quick-Reference
| Skill | MCP Tool | Output | Time Est. |
|---|---|---|---|
| market-scanner | Perplexity | market-landscape.md | 5-10 min |
| competitor-finder | Perplexity | competitive-intel.md (skeleton) | 5-10 min |
| competitor-analyzer | Firecrawl | competitive-intel.md (+messaging) | 10-15 min |
| competitor-visual | Playwright | competitive-intel.md (+design) | 10-15 min |
| audience-profiler | Perplexity | customer-insight.md | 5-10 min |
| voice-of-customer | Perplexity | customer-language.md | 5-10 min |
| research-synthesizer | None | strategy-brief.md | 5-10 min |
| expert-validator | Task Agents | strategy-brief.md (+expert) | 10-15 min |
Quality Checklist
Before presenting a research plan, verify:
- Status Dashboard shown with accurate file states and dates
- Mode selection has clear rationale tied to dashboard state + user request
- Execution path respects all skill dependencies (no skill runs before its prerequisite)
- Each step in the path names the skill, its output, and what the user needs to provide
- Focused mode includes missing prerequisites in the path
- Refresh mode uses staleness thresholds consistently (30/90/180 days)
- Refresh cascade logic applied (upstream refresh → downstream re-synthesis flagged)
- Post-completion bridge to marketing execution skills (when strategy-brief.md has Next Steps)
Example: Full Research (Abbreviated)
User: "우리 브랜드 리서치를 처음부터 해야 하는데"
Dashboard: 📊 Market Landscape: ❌ Missing · 🏢 Competitive Intel: ❌ Missing · 👥 Customer Insight: ❌ Missing · 💬 Customer Language: ❌ Missing · 📋 Strategy Brief: ❌ Missing
Mode: A — Full Research (research-memory/ is empty)
Plan: market-scanner → competitor-finder → competitor-analyzer → competitor-visual → audience-profiler → voice-of-customer → research-synthesizer → expert-validator
Next: market-scanner — "비즈니스/제품 설명을 알려주시면 시작합니다."
Example: Focused Research (Abbreviated)
User: "경쟁사 웹사이트 메시징을 좀 더 깊게 분석해줘"
Dashboard: 📊 Market Landscape: ✅ Complete (2025-01-15) · 🏢 Competitive Intel: ✅ Complete (2025-01-12) · ...
Mode: B — Focused (competitor-analyzer targets website messaging) Prerequisite: competitor-finder ✅ already complete
Plan: competitor-analyzer only Post-completion: "competitive-intel.md가 업데이트되었습니다. research-synthesizer로 전략 브리프도 갱신할까요?"
Example: Refresh (Abbreviated)
User: "3개월 전 리서치인데 업데이트 필요해"
Dashboard: 📊 Market Landscape: ⚠️ Stale (95d) · 🏢 Competitive Intel: ⚠️ Stale (92d) · 👥 Customer Insight: ⚠️ Stale (90d) · 💬 Customer Language: ✅ 45d · 📋 Strategy Brief: ⚠️ Stale (88d)
Mode: C — Refresh (3 files exceed 90-day threshold) Plan: market-scanner (Refresh) → competitor-finder (Refresh) → audience-profiler (Refresh) → research-synthesizer (Refresh) Cascade: Strategy brief refresh needed because 3 upstream sources refreshed.
What This Skill Does NOT Do
- Conduct research → Use the individual research skills (market-scanner, competitor-finder, etc.)
- Write to research-memory/ → Each skill writes its own output; this skill only reads
- Execute marketing → Use execution skills (brand-voice, copy, SEO, email, etc.)
- Replace skill selection judgment → It recommends; the user decides
Research Orchestrator stays focused on routing — diagnosing what's needed, building the path, and guiding execution.
More from tendtoyj/tendtoyj-claude-skills
image-creator
Generate brand-consistent AI visuals for social posts using nanobanana MCP (Gemini image generation). Transforms post copy or visual direction notes into platform-optimized images with brand color, style, and composition constraints. Use when user mentions: 이미지 만들어줘, 소셜 이미지, AI image, generate image, visual for post, 비주얼 생성, 썸네일, 카드뉴스 이미지, brand visual, social media image, nanobanana, 포스트 이미지, create visual, make an image, image for my post, generate a thumbnail, 배너 이미지, cover image
22card-news-image-generator
Generate content images for card-news using nanobanana MCP (Gemini image generation). Produces 16:9 editorial images for content-image cards — no text, clean style. Use when user mentions: 카드뉴스 이미지, card news image, 콘텐츠 이미지, content image, 카드뉴스 사진, generate card image, 이미지 생성, AI 이미지
5post-writer
Write a single platform-optimized social post with storytelling framework, brand voice, and visual direction notes. Produces ready-to-post copy for one platform. No MCP tools — pure creative writing powered by creative-memory context. Use when user mentions: social post, write a post, LinkedIn post, Twitter post, tweet, Instagram caption, Instagram carousel, reel script, YouTube script, YouTube shorts, email nurture, platform content, social copy, draft a post, create a post, write for LinkedIn, write for Instagram, write for Twitter, 소셜 포스트, 포스트 작성, 인스타 포스트, 링크드인 포스트, content writing, platform-native, social media copy, post for [platform], one post
5voice-of-customer
Mine real customer language from communities, reviews, and forums — build a Customer Language Bank of pain expressions, desire phrases, comparison language, and purchase triggers. Use when user mentions: voice of customer, customer language, customer words, what customers say, customer feedback, review mining, community research, pain expressions, desire expressions, trigger phrases, customer quotes, language bank, VOC, customer voice, real language, how customers talk, customer sentiment, review analysis, community mining, Reddit research, forum mining
5audience-profiler
Profile your target audience — segments, buying journey, pain points, and media habits. Use when user mentions: audience research, customer segments, buyer persona, buyer journey, customer journey, pain points, target audience, customer profiling, audience profiling, who is my customer, media consumption, attention map, customer insight, audience analysis, ideal customer, ICP, customer needs, unmet needs, buying behavior
4keyword-research
Find what to write and target using the 6 Circles Method for keyword discovery and content prioritization. Use when user mentions: keyword research, SEO keywords, content strategy, content planning, keyword analysis, search terms, ranking opportunities, content pillars, SEO opportunities, programmatic SEO, keyword gaps, content calendar, what to write, traffic strategy, organic traffic, long-tail keywords
4