# Content Creation Skillpack

**MyAIDev Method** — 13 skills for end-to-end content production + 1 maintenance skill

---

## Pipeline at a Glance

```
SETUP ──► PRE-PRODUCTION ──► PRODUCTION ──► PUBLISH
  2 skills     2 skills         3 skills      6 skills

                 ┌─────────────────────────────────────┐
                 │  myai-content-production-coordinator │
                 │  (orchestrates the entire pipeline)  │
                 └─────────────────────────────────────┘

CONTENT MAINTENANCE (separate skill pack)
  1 skill: content-enrichment
```

The Content Creation Skillpack turns a topic into a published, SEO-optimized, visually rich article across five platforms — orchestrated end-to-end by the **myai-content-production-coordinator**. The **Content Maintenance Skillpack** handles enrichment of existing content.

---

## Table of Contents

1. [Onboarding](#onboarding)
2. [Skills Reference](#skills-reference)
3. [Directory Structure](#directory-structure)
4. [How It Works](#how-it-works)
5. [Configuration Files](#configuration-files)
6. [Content Queue Format](#content-queue-format)
7. [Flags & Parameters](#flags--parameters)
8. [Usage Examples](#usage-examples)

---

## Onboarding

### Step 1: Run `company-config`

Collects your company profile, products, and services through an interactive questionnaire. Run once at project setup.

```
/company-config
```

The skill asks questions one at a time across three parts:

| Part | Questions | Output |
|------|-----------|--------|
| Brand Profile | Full name, company name, URL, description, contact info | `brand-config.json` |
| Products | Product list with descriptions, pricing plans | `product-config.json` |
| Services | Service list, target audience segments | `service-config.json` |

If you provide a company URL, the skill fetches your site and proposes a draft for products, services, and description — confirm or override.

### Step 2: Run `content-rules-config`

Interactive wizard that generates your brand voice, style guidelines, SEO rules, and prohibited terms.

```
/content-rules-config
```

Four modes are available:

| Mode | Flag | What it does |
|------|------|-------------|
| Full Setup | *(default)* | Complete wizard: voice, audience, style, formatting, SEO, topics, visuals, prohibited terms |
| Quick Setup | `--quick` | Essential questions only with smart defaults |
| Update | `--update` | Modify specific sections of an existing `content-rules.md` |
| Preview | `--preview` | Display current rules summary |

You can provide 1–5 reference URLs or file paths of existing content that represents your desired style. The skill analyzes them, derives a style profile, and pre-fills the wizard.

Output: `content-rules.md` — the single source of truth for all brand voice, style, and content rules.

### Step 3: Produce Content

With config files in place, run the coordinator:

```
# Single new article
/myai-content-production-coordinator "Your Topic Here"

# Enrich an existing article
/myai-content-production-coordinator --enrich content-output/old-article.md --full

# Batch mode — process all pending stubs
/myai-content-production-coordinator --batch
```

The coordinator reads all config files and dispatches every downstream skill automatically.

---

## Skills Reference

### Setup (2 skills)

#### `company-config`

One-time company onboarding. Collects brand profile, products, and services — saved as config files for all other skills to consume.

- **Tools**: Read, Write, Bash, Glob, AskUserQuestion
- **Outputs**: `brand-config.json`, `product-config.json`, `service-config.json`
- **When to run**: Once at project setup, or when company details change

If any output file already exists, the skill asks whether to update or start fresh.

#### `content-rules-config`

Generates `content-rules.md` from an interactive wizard. Covers brand identity, target audience, writing style, formatting, SEO requirements, topic boundaries, visual preferences, and prohibited terms.

- **Tools**: Read, Write, Glob, Grep, AskUserQuestion, WebFetch
- **Output**: `content-rules.md`
- **When to run**: Once at project setup, or when brand voice / style guidelines change

Can analyze existing blog posts or articles you provide to derive style rules automatically.

---

### Pre-Production (2 skills)

#### `myai-content-ideation`

Researches a topic area, discovers strategic **Themes**, and produces ideation briefs, article plans, and content stubs.

- **Tools**: Read, Write, WebSearch, WebFetch
- **Internal agent** — dispatched by `content-writer` and the production coordinator
- **Outputs**:
  - `content-themes.json` — persistent Themes file (appended across runs)
  - `.content-session/ideation.md` — per-session ideation brief
  - `.content-session/plan.md` — article structure and keyword placement plan
  - `content-queue/{jobDir}/` — content stubs (one per Theme)

**What is a Theme?** A strategic content grouping with a title, description, strategy, and 2–5 reference URLs. Themes are not article outlines — they're strategic angles that multiple articles can be written under.

Six built-in ideation strategies:

| Strategy | When to use |
|----------|-------------|
| Gap Analysis | Clear gap in existing coverage |
| Current Trends | Intersects recent developments or timely events |
| Related Subject | Bridges an adjacent domain for cross-disciplinary value |
| Hub and Spoke | Broad enough for a pillar piece with supporting articles |
| Unique Angle | Proprietary data, original research, or contrarian takes |
| Venn Diagram | Two distinct audiences or subjects overlap |

#### `myai-proprietary-content-verifier`

Pre-production gate that scores content stubs for redundancy against your existing content. Runs **before** the writing phase in batch mode.

- **Tools**: Read, Write, WebSearch, WebFetch, Glob, Grep
- **Internal agent** — dispatched by the production coordinator
- **Output**: Stamps each stub's frontmatter with a `verification` block (score, label, decision, reason)

Scoring (1–5):

| Score | Label | Criteria |
|-------|-------|----------|
| 5 | Excellent | No meaningful overlap. Strong proprietary angle. |
| 4 | Good | Minimal overlap. Distinctly different angle or audience. |
| 3 | Acceptable | Moderate overlap but fresh perspective or updated data. |
| 2 | Weak | Significant overlap. Limited incremental value. |
| 1 | Junk | Redundant. Already covered thoroughly with the same angle. |

Stubs at or above the threshold (default: 3) are `approved`. Below are `rejected`.

Redundancy signals and their weights:

| Signal | Weight |
|--------|--------|
| Title/topic match | 30% |
| Keyword overlap | 25% |
| Semantic similarity | 25% |
| Reference overlap | 10% |
| Live blog match | 10% |

---

### Content Maintenance (1 skill — separate skill pack)

#### `content-enrichment`

Enriches **existing** articles with real-time data, updated statistics, fresh references, FAQ sections, and schema recommendations. This skill belongs to the **Content Maintenance Skillpack** — use `/myai-configurator content-maintenance` to personalize it.

- **Tools**: Read, Write, Edit, WebSearch, WebFetch, Task(content-writer), Bash, Glob, Grep
- **Output**: Modified article in-place with updated frontmatter

Enrichment types (combine with flags or use `--full`):

| Flag | What it does |
|------|-------------|
| `--update-stats` | Find and replace outdated statistics with current data |
| `--add-references` | Add authoritative source links to unsupported claims |
| `--add-images` | Generate visual-plan for the visual-generator skill |
| `--add-faq` | Generate 5–8 FAQ items from article content |
| `--add-schema` | Suggest JSON-LD structured data |
| `--full` | All enrichment types |
| `--dry-run` | Show what would change without modifying |


For substantial section rewrites, the skill spawns the `content-writer` agent internally.

The production coordinator dispatches this skill for its enrichment lane — it integrates with the creation pipeline but is owned by the maintenance skill pack.

---

### Production (3 skills)


#### `content-writer`

Writes publication-ready articles using content rules and brand guidelines.

- **Tools**: Read, Write, WebSearch, WebFetch, Task(myai-content-ideation), Bash, Glob, Grep, AskUserQuestion
- **Output**: Final article saved to `content-output/{slug}.md`

When invoked directly, orchestrates the full pipeline (ideation + writing). When spawned as a sub-agent by the coordinator, uses the provided plan.

Execution phases (direct invocation):

```
1. INIT       → Parse args, read content-rules.md, create session dir
2. IDEATION   → Task(myai-content-ideation) — skip with --no-research
3. WRITE      → Write article using plan + ideation + content rules
4. ASSEMBLE   → Produce final article with frontmatter
5. OUTPUT     → Save to content-output/{slug}.md
6. CLEANUP    → Remove .content-session/
```

Structural templates by content type:

| Type | Structure |
|------|-----------|
| `blog-post` | Intro (15%) → 3–5 sections (70%) → Conclusion (15%) |
| `technical-tutorial` | Intro (10%) → Prerequisites (5%) → Steps (65%) → Troubleshooting (10%) → Next Steps (10%) |
| `how-to-guide` | Problem (15%) → Solution Steps (60%) → Best Practices (15%) → Conclusion (10%) |
| `listicle` | Intro (10%) → Items (75%) → Summary (15%) |
| `comparison-guide` | Intro (10%) → Quick Table (5%) → Deep Dives (60%) → Decision Framework (15%) → Conclusion (10%) |
| `case-study` | Challenge (20%) → Approach (25%) → Implementation (25%) → Results (20%) → Lessons (10%) |


#### `visual-generator`

Generates hero images, diagrams, infographics, and videos using AI generation APIs.

- **Tools**: Read, Write, Bash, Task, fal.ai MCP tools
- **Output**: Image/video files in `content-assets/`, markdown references inserted into articles

Supported services:

| Service | Type | Best for |
|---------|------|----------|
| Gemini 2.5 Flash | Image | Fast, diagrams, general use |
| Imagen 3 | Image | Premium quality heroes |
| DALL-E 3 | Image | Creative, artistic |
| GPT Image 1.5 | Image | Text-heavy visuals |
| FLUX 2 Pro | Image | Detailed illustrations |
| Veo 3 | Video | Product demos, tutorials |
| PaperBanana | Research | Academic diagrams, statistical plots |
| fal.ai (600+ models) | Image/Video | Specialized tasks via MCP |

Visual types: `image` (hero, illustration), `video`, `infographic` (flowchart, sequence-diagram, data, process, comparison, timeline, architecture), `research-visuals` (diagram, plot, evaluation).

Prerequisites: at least one API key — `GOOGLE_API_KEY`, `OPENAI_API_KEY`, or `FAL_KEY`.

#### `myai-content-production-coordinator`

Orchestrates the full content production pipeline from ideation through writing, visual generation, and publishing. The central skill that ties everything together.

- **Tools**: Read, Write, WebSearch, WebFetch, Task (all content skills), Bash, Glob, Grep, AskUserQuestion
- **Output**: Final article + publish report

Three operating modes:

| Mode | Invocation | What it does |
|------|-----------|-------------|
| New Content | `"<topic>" [flags]` | Ideation → Write → Visuals → Publish |
| Enrichment | `--enrich <file.md> [flags]` | Snapshot → Enrich → Visuals → Publish |
| Batch | `--batch [directory] [flags]` | Process all pending stubs in content-queue/ |

The coordinator dispatches these agents in sequence:

```
New Content:
  1. INIT         Read config files, create session
  2. IDEATE       → Task(myai-content-ideation)
  3. VERIFY       → Task(myai-proprietary-content-verifier)  [batch only]
  4. WRITE        → Task(content-writer)
  5. VISUALS      → Task(myai-visual-generator)
  6. PUBLISH      → Task("wordpress-publisher", "astro-publisher", "docusaurus-publisher", "mintlify-publisher", "payloadcms-publisher")
  7. CLEANUP      Remove session, report summary

Enrichment:
  1. INIT         Read config files, create session
  2. SNAPSHOT     Copy original article
  3. ENRICH       → Task(content-enrichment)
  4. VISUALS      → Task(myai-visual-generator)
  5. PUBLISH      → Task("wordpress-publisher", "astro-publisher", "docusaurus-publisher", "mintlify-publisher", "payloadcms-publisher")
  6. CLEANUP      Remove session, report summary

Batch:
  Discover pending stubs → Sort by priority → Group by mode
    ├─ New lane:    Ideate × N → Verify → Write approved × N → Assemble × N
    ├─ Enrich lane: Snapshot → Enrich × N
    └─ Converge:    Visuals × N → Publish × N → Batch report
```

Setup verification: if `brand-config.json`, `product-config.json`, `service-config.json`, or `content-rules.md` are missing, the coordinator prompts you to run the setup skills before proceeding.

---

### Publish (6 skills)
#### `wordpress-publisher`

Publishes to WordPress via REST API with Gutenberg block conversion.

- **Method**: REST API via MCP tools
- **Requires**: `WORDPRESS_URL`, `WORDPRESS_USERNAME`, `WORDPRESS_PASSWORD` in `.env`
- **Output**: Published URL

#### `payloadcms-publisher`

Publishes to PayloadCMS with Lexical rich text conversion.

- **Method**: REST API with Lexical conversion
- **Requires**: `PAYLOADCMS_URL`, PayloadCMS API credentials in `.env`
- **Output**: Published URL + document ID

#### `astro-publisher`

Writes to Astro content collections with schema validation.

- **Method**: File write to content collection + git commit
- **Detects**: `astro.config.*` in project root
- **Output**: File path in content collection

#### `docusaurus-publisher`

Publishes docs/blog posts to Docusaurus with automatic sidebar configuration.

- **Method**: File write + sidebar config update + git commit
- **Detects**: `docusaurus.config.*` in project root
- **Output**: File path + updated sidebar

#### `mintlify-publisher`

Publishes to Mintlify with `mint.json` navigation updates.

- **Method**: File write + `mint.json` navigation update + git commit
- **Detects**: `mint.json` in project root
- **Output**: File path + updated navigation

---

## Directory Structure

```
project-root/
│
│── brand-config.json              ← Company identity (from company-config)
├── product-config.json            ← Products & pricing (from company-config)
├── service-config.json            ← Services & audience (from company-config)
├── content-rules.md               ← Brand voice & style (from content-rules-config)
├── content-themes.json            ← Discovered Themes (grows across ideation runs)
│
├── content-queue/                 ← Pending content stubs (from ideation)
│   ├── job20260224_01/
│   │   ├── topic_one.md           ← Stub with frontmatter (status: pending)
│   │   └── topic_two.md
│   └── manual/                    ← Manually created briefs (optional)
│       └── q1_launch.md
│
├── content-output/                ← Finished articles
│   └── my-article.md
│
├── content-assets/                ← Generated visuals
│   ├── images/
│   │   └── YYYY-MM-DD/
│   │       └── hero-description-id.png
│   └── videos/
│       └── YYYY-MM-DD/
│           └── video-description-id.mp4
│
├── .content-session/              ← Ephemeral working state (cleaned up after run)
│   ├── config.json
│   ├── ideation.md
│   ├── plan.md
│   ├── draft.md
│   ├── visual-report.md
│   └── final-meta.json
│
└── skills/
    ├── company-config/SKILL.md                  ← Setup
    ├── content-rules-config/SKILL.md            ← Setup
    ├── myai-content-ideation/SKILL.md           ← Pre-Production
    ├── myai-proprietary-content-verifier/SKILL.md ← Pre-Production
    ├── content-enrichment/SKILL.md         ← Content Maintenance skill pack
    ├── myai-visual-generator/SKILL.md           ← Production
    ├── content-writer/SKILL.md             ← Production
    ├── myai-content-production-coordinator/SKILL.md ← Production
    ├── myai-wordpress-publisher.md ← Publishing
    ├── myai-payloadcms-publisher.md ← Publishing
    ├── myai-astro-publisher.md ← Publishing
    ├── myai-docusaurus-publisher.md ← Publishing
    └── myai-mintlify-publisher.md ← Publishing
    └── myai-configurator/                       ← Configurator skill pack
        ├── SKILL.md
        ├── content-creation-configurator/SKILL.md
        └── content-maintenance-configurator/SKILL.md
```

---

## Configuration Files

| File | Created by | Consumed by |
|------|-----------|-------------|
| `brand-config.json` | company-config | All content skills |
| `product-config.json` | company-config | content-writer, content-ideation, coordinator |
| `service-config.json` | company-config | content-writer, content-ideation, coordinator |
| `content-rules.md` | content-rules-config | content-writer, coordinator, content-enrichment (maintenance pack) |
| `content-themes.json` | myai-content-ideation | coordinator, content-writer (grows across runs) |

---

## Content Queue Format

The `content-queue/` directory holds stubs — lightweight briefs that the coordinator processes.

### New Content Stub (produced by ideation)

```markdown
---
title: "Article Title or Topic"
mode: new
content_type: blog-post
status: pending
priority: normal
tone: professional
word_count: 1500
audience: "developers"
strategy: "Gap Analysis"
keywords:
  - "primary keyword"
  - "secondary keyword"
references:
  - "https://source1.com"
  - "https://source2.com"
goals:
  - "Primary goal for this article"
visuals: true
publish: wordpress
publish_status: draft
---

## Theme Context

[Description of the strategic angle — from the ideation Theme]

## Reference Material

[Annotated reference URLs from the Theme]
```

### Enrichment Brief

```markdown
---
title: "Refresh Kubernetes Security Guide"
mode: enrich
status: pending
priority: normal
source_file: "content-output/kubernetes-security-guide.md"
enrich:
  - update-stats
  - add-references
  - add-faq
visuals: true
publish: wordpress
publish_status: draft
---

## Enrichment Notes

[Specific instructions for what to update or add]
```

### Manual Brief

Same format as a new content stub. Place in `content-queue/manual/` or any subdirectory. The `strategy` field is optional for manual briefs.

### Frontmatter Fields

| Field | Required | Purpose |
|-------|----------|---------|
| `title` | Yes | Topic (new) or description (enrich) |
| `status` | Yes | `pending`, `in-progress`, `complete`, `failed`, `rejected` |
| `mode` | No | `new` or `enrich` (default: `new`) |
| `content_type` | No | blog-post, technical-tutorial, how-to-guide, listicle, comparison-guide, case-study |
| `priority` | No | `high` > `normal` > `low` (default: `normal`) |
| `tone` | No | professional, casual, technical, conversational, academic |
| `word_count` | No | Target length (default: 1500) |
| `audience` | No | Target reader demographic |
| `strategy` | No | Ideation strategy from Theme |
| `keywords` | No | Primary and secondary keywords |
| `references` | No | URLs the ideation phase should consult |
| `goals` | No | Specific objectives for this article |
| `visuals` | No | `true`/`false` (default: `true`) |
| `publish` | No | wordpress, payloadcms, astro, docusaurus, mintlify |
| `publish_status` | No | `draft` or `published` (default: `draft`) |
| `source_file` | Enrich only | Path to existing article to enrich |
| `enrich` | Enrich only | List: update-stats, add-references, add-faq, add-schema, full |
| `verification` | Auto | Stamped by the verifier: score, label, decision, reason |

---

## Flags & Parameters

### Coordinator Flags

| Flag | Purpose | Default |
|------|---------|---------|
| `--word-count` | Target article length | 1500 |
| `--tone` | professional, casual, technical, conversational, academic | professional |
| `--type` | blog-post, technical-tutorial, how-to-guide, listicle, comparison-guide, case-study | blog-post |
| `--audience` | Target reader demographic | general |
| `--keywords` | Comma-separated primary,secondary keywords | auto-detected |
| `--publish` | wordpress, payloadcms, astro, docusaurus, mintlify | auto-detect |
| `--publish-status` | draft, published | draft |
| `--output-dir` | Output directory for final articles | ./content-output |
| `--no-research` | Skip ideation phase | false |
| `--no-visuals` | Skip visual generation | false |
| `--no-publish` | Produce article file only | false |
| `--threshold` | Min proprietary value score (1–5) for stub approval in batch | 3 |
| `--batch [dir]` | Process all pending stubs | content-queue/ |
| `--enrich <file>` | Enrich an existing article | — |
| `--force` | Skip confirmation prompts (batch) | false |
| `--parallel` | Max concurrent agents per phase (batch) | 3 |
| `--verbose` | Detailed progress output | false |

### Content Writer Flags

| Flag | Purpose | Default |
|------|---------|---------|
| `--word-count` | Target article length | 1500 |
| `--tone` | Voice style | professional |
| `--type` | Content template | blog-post |
| `--audience` | Target reader | general |
| `--keywords` | Primary,secondary keywords | auto-detected |
| `--publish` | Publish to platform | none |
| `--output-dir` | Output directory | ./content-output |
| `--no-research` | Skip ideation | false |

### Content Enrichment Flags

| Flag | Purpose |
|------|---------|
| `--update-stats` | Replace outdated statistics |
| `--add-references` | Add authoritative sources |
| `--add-images` | Plan visuals for the article |
| `--add-faq` | Generate FAQ section |
| `--add-schema` | Suggest structured data |
| `--full` | All enrichment types |
| `--dry-run` | Preview changes without modifying |

### Visual Generator Flags

| Flag | Purpose | Default |
|------|---------|---------|
| `--visual-type` | image, video, infographic, research-visuals | image |
| `--type` | Sub-type (hero, illustration, flowchart, etc.) | hero |
| `--service` | Generation service (gemini, imagen, dalle, flux, veo3) | auto |
| `--quality` | low, medium, high | medium |
| `--size` | 1024x1024, 1792x1024, 1024x1792 | 1024x1024 |

---

## Usage Examples

### New Content — Single Article

```bash
# Full pipeline: ideation → write → visuals → publish
/myai-content-production-coordinator "Kubernetes Best Practices for Production"

# Technical tutorial with custom settings
/myai-content-production-coordinator "Building a RAG Pipeline" \
  --word-count=2500 --type=technical-tutorial --tone=technical

# Write only — no visuals or publishing
/myai-content-production-coordinator "React Server Components" \
  --no-visuals --no-publish

# Publish to WordPress as draft
/myai-content-production-coordinator "Docker Security Guide" \
  --publish=wordpress --publish-status=draft
```

### Enrichment

```bash
# Full enrichment: stats, references, FAQ, schema → visuals → publish
/myai-content-production-coordinator --enrich content-output/old-article.md --full

# Selective: update stats and add references only
/myai-content-production-coordinator --enrich content-output/old-article.md \
  --update-stats --add-references

# Enrich without visuals or publishing
/myai-content-production-coordinator --enrich content-output/guide.md \
  --add-faq --no-visuals --no-publish
```

### Batch Mode

```bash
# Process default content-queue/ directory
/myai-content-production-coordinator --batch

# Custom queue directory
/myai-content-production-coordinator --batch ./briefs/q1-2026/

# Skip confirmation, verbose output, no visuals
/myai-content-production-coordinator --batch --force --verbose --no-visuals
```

### Using Skills Directly

```bash
# Write an article without the coordinator
/content-writer "Getting Started with Docker" --tone=conversational

# Generate visuals standalone
/myai-visual-generator "Modern developer workspace" --type=hero

# Generate infographic
/myai-visual-generator "Service request lifecycle" \
  --visual-type=infographic --type=flowchart

# Enrich an article standalone
/content-enrichment content-output/old-post.md --full
```

---

## Output Format

Final articles are saved with full frontmatter:

```markdown
---
title: [SEO-optimized title]
meta_description: [150-160 chars]
slug: [url-friendly]
tags: [relevant, tags]
keywords:
  primary: [main keyword]
  secondary: [supporting, keywords]
hero_image: [path to hero image]
word_count: [actual count]
reading_time: [X minutes]
content_type: [type used]
theme: [selected Theme title]
strategy: [ideation strategy used]
generated_at: [ISO timestamp]
published_url: [URL, if published]
---

# [Title]

[Full article content with embedded visual references]
```
