---
name: seo-context
description: Manage per-project context files (brand voice, keywords, guidelines). Each website has its own context/ folder in the website repo.
---

# 📝 SEO Context - Per-Project Configuration

**Skill Name:** `seo-context`  
**Category:** `quick`  
**Load Skills:** `[]`

---

## 🚀 Purpose

Manage context files for each website project:

- ✅ **brand-voice.md** - Brand voice, tone, messaging (Thai + English)
- ✅ **target-keywords.md** - Keyword clusters by intent
- ✅ **seo-guidelines.md** - SEO requirements (Thai-specific)
- ✅ **internal-links-map.md** - Key pages for internal linking
- ✅ **data-services.json** - Analytics service configurations
- ✅ **style-guide.md** - Writing style, formality levels

**Location:** Each website has its own `context/` folder in the repo root.

**Use Cases:**
1. Create context files for new website project
2. Update context from existing content
3. Analyze current brand voice from published content
4. Generate keyword clusters from performance data
5. Export/import context between projects

---

## 📁 Context File Structure

```
website-name/
└── context/
    ├── brand-voice.md           # Brand voice, tone, formality
    ├── target-keywords.md       # Keyword clusters, search intent
    ├── seo-guidelines.md        # Thai SEO requirements
    ├── internal-links-map.md    # Priority pages for linking
    ├── data-services.json       # Analytics configurations
    └── style-guide.md           # Writing style, examples
```

---

## 🔧 Context File Templates

### **brand-voice.md**

```markdown
# Brand Voice & Messaging

## Voice Pillars

### 1. เป็นกันเอง (Casual/Friendly)
- **What it means**: พูดเหมือนเพื่อนช่วยเพื่อน ไม่ทางการเกินไป
- **Example**: "มาเริ่ม podcast กันเลย! ไม่ต้องรอให้พร้อม 100%"
- **Avoid**: ภาษาทางการแบบเอกสารราชการ

### 2. น่าเชื่อถือ (Trustworthy)
- **What it means**: ให้ข้อมูลที่ถูกต้อง มีหลักฐานรองรับ
- **Example**: "จากการทดสอบ 10+ แพลตฟอร์ม เราพบว่า..."
- **Avoid**: อ้างอิงไม่มีแหล่งที่มา

## Tone Guidelines

**General Tone**: เป็นกันเอง แต่ยังคงความน่าเชื่อถือ

**Content Types**:
- How-To Guides: สอนเป็นขั้นตอน ใช้ภาษาง่ายๆ
- Review Content: เปรียบเทียบตรงไปตรงมา มีข้อมูลสนับสนุน
- News/Updates: กระชับ ได้ใจความ

## Formality Level

**Default**: ปกติ (Normal) - ผสมกันเองและทางการตามเหมาะสม

**For Social Media**: กันเอง (Casual) - ใช้คำฟุ่มเฟือยได้บ้าง

**For Blog**: ปกติ (Normal) - อ่านง่ายแต่ยังคงความน่าเชื่อถือ
```

### **target-keywords.md**

```markdown
# Target Keywords

## Primary Keyword Clusters

### Cluster: Podcast Hosting

**Intent**: Commercial Investigation

**Keywords (Thai)**:
- บริการ podcast
- host podcast
- แพลตฟอร์ม podcast
- podcast hosting ที่ดีที่สุด

**Keywords (English)**:
- podcast hosting
- best podcast platform
- podcast host

**Search Volume**: 2,900/month (TH)

**Difficulty**: Medium

## Secondary Clusters

### Cluster: Podcast Equipment

[Similar structure]
```

### **seo-guidelines.md**

```markdown
# SEO Guidelines (Thai-Specific)

## Content Requirements

### Word Count
- **Thai**: 1,500-3,000 words
- **English**: 2,000-3,000 words

### Keyword Density
- **Thai**: 1.0-1.5%
- **English**: 1.5-2.0%

### Readability
- **Thai Grade Level**: ม.6-ม.12
- **Formality**:Auto-detect from brand-voice.md

## Meta Elements

### Title
- Length: 50-60 characters
- Must include primary keyword
- Thai-friendly (no truncation issues)

### Description
- Length: 150-160 characters
- Include CTA
- Thai or English matching content language

## URL Slug
- Format: lowercase-with-hyphens
- Thai: Keep Thai or use transliteration
- Max 5 words
```

### **data-services.json**

```json
{
  "ga4": {
    "enabled": true,
    "property_id": "G-XXXXXXXXXX",
    "credentials_path": "./credentials/ga4.json"
  },
  "gsc": {
    "enabled": true,
    "site_url": "https://yoursite.com",
    "credentials_path": "./credentials/gsc.json"
  },
  "dataforseo": {
    "enabled": false,
    "login": "your_login",
    "password": "your_password"
  },
  "umami": {
    "enabled": true,
    "api_url": "https://analytics.yoursite.com",
    "api_key": "your_api_key"
  }
}
```

---

## 🔄 Workflows

### **Workflow 1: Create Context for New Project**

```python
Input: Website name, industry, target audience
Process:
  1. Create context/ folder
  2. Generate brand-voice.md from industry standards
  3. Create target-keywords.md with initial research
  4. Set up seo-guidelines.md with Thai-specific rules
  5. Create empty data-services.json
Output:
  - Complete context/ folder structure
  - Ready for customization
```

### **Workflow 2: Analyze Existing Content**

```python
Input: Website URL or content files
Process:
  1. Scrape published content
  2. Analyze brand voice (formality, tone)
  3. Extract keyword usage
  4. Identify top-performing topics
  5. Update context files
Output:
  - Updated brand-voice.md (data-driven)
  - target-keywords.md with actual usage
  - Recommendations
```

---

## 📁 Commands

### **Create Context for New Project:**

```bash
python3 skills/seo-context/scripts/context_manager.py \
  --create \
  --project "./my-website" \
  --industry "podcast" \
  --audience "Thai podcasters" \
  --formality "normal"
```

### **Analyze Existing Content:**

```bash
python3 skills/seo-context/scripts/context_manager.py \
  --analyze \
  --project "./my-website" \
  --content-path "./published-articles/" \
  --language th
```

### **Update from Performance Data:**

```bash
python3 skills/seo-context/scripts/context_manager.py \
  --update-keywords \
  --project "./my-website" \
  --gsc-data "./gsc-export.csv"
```

---

## ⚙️ Environment Variables

**None required** - all configuration is per-project in context files.

---

## 📊 Output Examples

### **Create Context Output:**

```
✅ Context created for: my-website
📁 Location: ./my-website/context/

Created files:
  ✓ brand-voice.md (industry: podcast, formality: normal)
  ✓ target-keywords.md (3 initial clusters)
  ✓ seo-guidelines.md (Thai-specific)
  ✓ internal-links-map.md (empty, ready to populate)
  ✓ data-services.json (all services disabled)
  ✓ style-guide.md (templates)

Next steps:
  1. Customize brand-voice.md with your actual voice
  2. Add target keywords based on your research
  3. Configure analytics services in data-services.json
```

### **Analyze Content Output:**

```
📊 Analyzing existing content...

Found 25 articles (Thai: 18, English: 7)

Brand Voice Analysis:
  - Formality: 65% Normal, 30% Casual, 5% Formal
  - Recommended: ปกติ (Normal)
  - Tone: เป็นกันเอง, น่าเชื่อถือ

Top Keywords:
  1. บริการ podcast (42 occurrences)
  2. podcast hosting (38 occurrences)
  3. แพลตฟอร์ม podcast (25 occurrences)

Recommendations:
  • เพิ่มคำหลัก "podcast hosting" ใน H2 มากขึ้น
  • รักษาระดับความเป็นกันแบบนี้ไว้
  • เพิ่ม internal links ระหว่างบทความ podcast

✅ Context files updated
```

---

## ✅ Context File Checklist

For each project, ensure:

- [ ] **brand-voice.md** - Voice pillars, tone guidelines, formality level
- [ ] **target-keywords.md** - At least 3 keyword clusters with search intent
- [ ] **seo-guidelines.md** - Thai word count, density, readability targets
- [ ] **internal-links-map.md** - Top 10 pages to link to
- [ ] **data-services.json** - At least one analytics service configured
- [ ] **style-guide.md** - Writing examples (good and bad)

---

## 🔄 Integration with Other Skills

- **seo-multi-channel:** Loads brand voice for content generation
- **seo-analyzers:** Uses seo-guidelines for quality scoring
- **seo-data:** Reads data-services.json for analytics connections
- **website-creator:** Context in website repo root

---

**Use this skill when you need to set up or update context files for a website project.**

**Each website should have its own context/ folder with all configuration files.**
