--- name: moreminimore-orchestrator argument-hint: " [goal] [budget]" description: > Full marketing campaign orchestration skill for moreminimore-service. Chains Research → Strategy → Content phases, passing context between each step. Designed for Hermes agents serving individual clients. Handles client onboarding, keyword research, brand DNA extraction, strategic planning, content writing, and GEO optimization in one coordinated workflow. Use when: starting a new client campaign, running a full marketing workflow, needing end-to-end orchestration, or resuming a partially-completed campaign. --- # moreminimore Orchestrator You are the master orchestrator for moreminimore-service — a coordinated marketing campaign workflow that chains existing Hermes skills together with proper context passing, state tracking, and client folder management. ## When This Skill Must Trigger Trigger on ANY of these signals: - "ลูกค้าใหม่", "client new", "start campaign", "เริ่มแคมเปญ" - "moreminimore orchestrate", "run workflow", "ทำการตลาดให้" - Any request to run a full marketing campaign from scratch - "resume campaign", "continue workflow", "ดูสถานะ" - "รัน workflow", "เริ่มงานให้ [client name]" ## Architecture ``` ┌─────────────────────────────────────────────────────────┐ │ orchestrator │ │ Reads brief → Reads state.json → Determines next step │ │ → Calls skill → Saves output → Updates state │ │ → Reports progress │ └─────────────────────────────────────────────────────────┘ State machine phases (defined in state.json): PHASE_INIT → just started, haven't collected brief PHASE_RESEARCH → running keyword-research + niche-research + ads-dna PHASE_STRATEGY → running ads-plan + ads-create PHASE_CONTENT → running content-writer + geo-optimizer PHASE_COMPLETE → all phases done ``` ## Input ### Required (must be provided or asked): - **Client name** — used as folder name in clients/ - **Website URL** — client's website for brand DNA + keyword research ### Optional (ask if not provided): - **Goal** — sales / leads / brand awareness / traffic - **Budget** — monthly budget range - **Target audience** — who they want to reach - **Primary keyword / topic** — for content focus (if known) ## Workflow Process ### Step 0: Check Client Context ```bash CLIENT_DIR="/Users/kunthawat/Gitea/moreminimore-service-system/clients" ``` If the user provided a client name, check if a folder already exists: ```bash ls "$CLIENT_DIR//brief.md" 2>/dev/null && echo "EXISTS" || echo "NEW" ``` **If EXISTS**: read the existing brief and state.json. Show the user what's already done and what's pending. Offer to resume or start fresh. **If NEW**: proceed to Step 1. ### Step 1: Collect Client Brief Create the client brief template. Ask for (in one message, don't make the user answer one-by-one): 1. **Client name** (for folder name — use English/lowercase/kebab-case) 2. **Website URL** 3. **Goal** (default: lead generation) 4. **Monthly budget** (default: not specified) 5. **Target audience** (default: infer from website) 6. **Primary keyword or topic** to focus on (optional) 7. **Industry** (e-commerce / SaaS / local service / B2B / content / other) Wait for the user's response. Then write the brief: ```bash mkdir -p "$CLIENT_DIR/" ``` Write `clients//brief.md` with the collected info. Write `clients//state.json`: ```json { "client_name": "", "website_url": "", "goal": "", "budget": "", "target_audience": "", "primary_keyword": "", "industry": "", "phase": "PHASE_RESEARCH", "phase_progress": {}, "outputs": {} } ``` ### Step 2: Research Phase (PHASE_RESEARCH) Run these three research skills. They can run in parallel since they're independent: #### 2a. Brand DNA (ads-dna) Use the ads-dna skill to extract brand DNA from the client's website. Call flow: 1. Fetch the website homepage + about + services pages 2. Extract colors, typography, voice, imagery, target audience 3. Save as `clients//brand-profile.json` **How to invoke ads-dna logic**: The ads-dna skill describes extracting brand elements from a URL. Follow its process: - Fetch homepage URL - Extract colors (CSS, og:image analysis) - Extract typography (Google Fonts, CSS font-family) - Analyze voice (headline, subheadline, CTA text) - Save to brand-profile.json Do NOT try to call ads-dna as a sub-skill — follow its documented process directly since you have the skill content loaded. #### 2b. Keyword Research (keyword-research) Run keyword research for the client's industry/topic. Call flow: 1. Use the client's primary keyword (or website niche) as seed 2. Generate keyword list with intent classification 3. Identify topic clusters 4. Identify GEO opportunities 5. Recommend content priorities Save to `clients//keyword-research.md` #### 2c. Niche Research (niche-research) If the user has browser access (Claude for Chrome or similar), run niche research to find current trending stories. This is optional — skip if no browser is available and note it. Save to `clients//niche-research.md` (if ran) #### Update state after Research Phase ```json { ...existing state, "phase": "PHASE_STRATEGY", "phase_progress": { "research_completed": true, "brand_profile": "clients//brand-profile.json", "keyword_research": "clients//keyword-research.md", "niche_research": "clients//niche-research.md (or skipped)" } } ``` ### Step 3: Strategy Phase (PHASE_STRATEGY) #### 3a. Campaign Strategy (ads-plan) Use ads-plan logic to create a strategic plan: 1. **Discovery**: Use the client brief + brand DNA 2. **Competitive Analysis**: Search for competitors (if web access available) 3. **Platform Selection**: Recommend platforms based on industry + goal + budget 4. **Campaign Architecture**: Structure with naming conventions 5. **Budget Planning**: Budget allocation with 70/20/10 framework 6. **Creative Strategy**: Content pillars and creative production plan 7. **Implementation Roadmap**: Phased rollout Save to `clients//strategy/ADS-STRATEGY.md` Also produce: - `clients//strategy/CAMPAIGN-ARCHITECTURE.md` - `clients//strategy/BUDGET-PLAN.md` - `clients//strategy/CREATIVE-BRIEF.md` - `clients//strategy/IMPLEMENTATION-ROADMAP.md` #### 3b. Campaign Concepts (ads-create) If brand-profile.json exists from Phase 2, generate campaign concepts: 1. Read brand-profile.json 2. Generate 3 campaign concepts with distinct angles 3. For each concept: hypothesis, primary message, tone, visual direction, CTA 4. Write platform-specific ad copy Save to `clients//strategy/campaign-brief.md` #### Update state after Strategy Phase ```json { ...existing state, "phase": "PHASE_CONTENT", "phase_progress": { ...previous, "strategy_completed": true, "ads_strategy": "clients//strategy/ADS-STRATEGY.md", "campaign_brief": "clients//strategy/campaign-brief.md" } } ``` ### Step 4: Content Phase (PHASE_CONTENT) #### 4a. Content Writing (content-writer) Using the keyword research (topic clusters + high-priority keywords) and strategy (content pillars), write content: 1. **Identify priority content**: From keyword-research, pick the top 3-5 keywords with best opportunity scores 2. **Write blog posts**: For each priority keyword, write an SEO-optimized blog post following content-writer guidelines: - Hook-driven title - ≥1000 words - Featured image + ≥3 inline images (provide image prompts) - FAQ section with FAQPage schema - Internal linking plan 3. **Write landing pages**: If the strategy calls for conversion pages, write landing pages optimized for the target keyword and intent Save each piece to `clients//content/`: - `clients//content/post-.md` - `clients//content/landing-.md` #### 4b. GEO Optimization (geo-optimizer) After writing each piece of content, optimize it for AI search engines: 1. **Audit** the content for GEO readiness (evidence density, structure, authority) 2. **Optimize**: Front-load answers, add real statistics and citations, add FAQPage schema, strip anti-patterns Save as an optimization overlay to each content file, or create: - `clients//content/post--geo.md` #### 4c. Image Generation Prompts For each piece of content, generate detailed image generation prompts: - Featured/thumbnail image prompt - ≥3 inline image prompts with specific dimensions, style, and subject These can be used later with image generation tools. #### Update state after Content Phase ```json { ...existing state, "phase": "PHASE_COMPLETE", "phase_progress": { ...previous, "content_completed": true, "content_pieces": ["clients//content/post-.md", "..."], "geo_optimized": true } } ``` ### Step 5: Present Summary After all phases are complete, present a summary to the user: ``` ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Campaign Complete: [Client Name] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 📂 clients// ✅ RESEARCH PHASE ├── brand-profile.json ← Brand DNA extracted ├── keyword-research.md ← [N] keywords in [M] clusters └── niche-research.md ← Current trends ✅ STRATEGY PHASE ├── strategy/ADS-STRATEGY.md ← Full strategy ├── strategy/CAMPAIGN-ARCHITECTURE.md ← Campaign structure ├── strategy/BUDGET-PLAN.md ← Budget allocation ├── strategy/CREATIVE-BRIEF.md ← Creative production ├── strategy/IMPLEMENTATION-ROADMAP.md ← Timeline └── strategy/campaign-brief.md ← Campaign concepts ✅ CONTENT PHASE ├── content/post-.md ← Blog post + GEO ├── content/post-.md ← Blog post + GEO └── content/landing-.md ← Landing page + GEO 📋 NEXT STEPS (available when scripts are ready) 1. Deploy content to website 2. Set up Google Ads campaigns 3. Set up Meta Ads campaigns 4. Schedule analytics monitoring ``` ## Resuming Workflow If the user says "resume", "continue", or "ดูสถานะ": 1. Read `clients//state.json` 2. Check which phase it's in 3. Present what's done and what's pending 4. Ask if they want to continue from where it left off ```bash STATE_FILE="/Users/kunthawat/Gitea/moreminimore-service-system/clients//state.json" cat "$STATE_FILE" 2>/dev/null || echo "NOT_FOUND" ``` ## Output Convention ALL outputs go under: ``` /Users/kunthawat/Gitea/moreminimore-service-system/clients// ``` Use write_file to save outputs. Always create subdirectories as needed. ## Important Notes 1. **Skill availability**: This orchestrator calls skills that exist in the Hermes skill library. If a skill is not loaded or available, note it to the user and skip or approximate the step. 2. **Parallel execution**: Research skills (keyword-research, niche-research, ads-dna) are independent and CAN run in parallel. Strategy and Content phases are sequential (strategy depends on research, content depends on strategy). 3. **No real API calls yet**: Google Ads and Meta Ads campaign execution requires API scripts that don't exist yet. The orchestrator produces the campaign structure and copy, but actual ad serving requires the platform API scripts (see scripts/ directory). 4. **State persistence**: state.json is the source of truth. Always update it after completing each phase. This makes the workflow resumable even if the conversation is interrupted. 5. **Language**: Use Thai for client-facing summary, English for technical output (unless client brief specifies otherwise).