Files
moreminimore-service-system/skills/moreminimore-orchestrator/SKILL.md
Kunthawat Greethong 7b5af16f6d Initial commit: moreminimore-service content pipeline
- 9 mm* skills (orchestrator, article, social, publish, analytics)
- 6 dependency skills (content-writer, geo-optimizer, etc.)
- 3 analytics scripts (GSC, Google Ads, Meta Ads)
- Config template + setup guide
- SOUL-MM.md persona extension
- OrbitOS integration reference
2026-07-02 10:01:53 +07:00

12 KiB

name, argument-hint, description
name argument-hint description
moreminimore-orchestrator <client name> <website URL> [goal] [budget] 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

CLIENT_DIR="/Users/kunthawat/Gitea/moreminimore-service-system/clients"

If the user provided a client name, check if a folder already exists:

ls "$CLIENT_DIR/<client-name>/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:

mkdir -p "$CLIENT_DIR/<client-name>"

Write clients/<client-name>/brief.md with the collected info.

Write clients/<client-name>/state.json:

{
  "client_name": "<name>",
  "website_url": "<url>",
  "goal": "<goal>",
  "budget": "<budget or null>",
  "target_audience": "<audience or null>",
  "primary_keyword": "<keyword or null>",
  "industry": "<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/<client-name>/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/<client-name>/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/<client-name>/niche-research.md (if ran)

Update state after Research Phase

{
  ...existing state,
  "phase": "PHASE_STRATEGY",
  "phase_progress": {
    "research_completed": true,
    "brand_profile": "clients/<name>/brand-profile.json",
    "keyword_research": "clients/<name>/keyword-research.md",
    "niche_research": "clients/<name>/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/<client-name>/strategy/ADS-STRATEGY.md

Also produce:

  • clients/<client-name>/strategy/CAMPAIGN-ARCHITECTURE.md
  • clients/<client-name>/strategy/BUDGET-PLAN.md
  • clients/<client-name>/strategy/CREATIVE-BRIEF.md
  • clients/<client-name>/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/<client-name>/strategy/campaign-brief.md

Update state after Strategy Phase

{
  ...existing state,
  "phase": "PHASE_CONTENT",
  "phase_progress": {
    ...previous,
    "strategy_completed": true,
    "ads_strategy": "clients/<name>/strategy/ADS-STRATEGY.md",
    "campaign_brief": "clients/<name>/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/<client-name>/content/:

  • clients/<client-name>/content/post-<keyword>.md
  • clients/<client-name>/content/landing-<keyword>.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/<client-name>/content/post-<keyword>-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

{
  ...existing state,
  "phase": "PHASE_COMPLETE",
  "phase_progress": {
    ...previous,
    "content_completed": true,
    "content_pieces": ["clients/<name>/content/post-<keyword1>.md", "..."],
    "geo_optimized": true
  }
}

Step 5: Present Summary

After all phases are complete, present a summary to the user:

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  Campaign Complete: [Client Name]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

📂 clients/<client-name>/

✅ 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-<keyword1>.md     ← Blog post + GEO
   ├── content/post-<keyword2>.md     ← Blog post + GEO
   └── content/landing-<keyword>.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/<client-name>/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
STATE_FILE="/Users/kunthawat/Gitea/moreminimore-service-system/clients/<client-name>/state.json"
cat "$STATE_FILE" 2>/dev/null || echo "NOT_FOUND"

Output Convention

ALL outputs go under:

/Users/kunthawat/Gitea/moreminimore-service-system/clients/<client-name>/

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).