assets/skills/marketing/seo-blog/SKILL.md
Write an evergreen blog post optimized for both Google Search AND AI tools (ChatGPT, Bing/Copilot, Perplexity). Answer-first, intent-classified, overlap-audited. Use when user says "write seo blog", "seo blog", "evergreen post", "compare post", "trust post", "glossary post", "blog for AI to recommend", "search + ai".
npx skillsauth add phuthuycoding/moicle marketing-seo-blogInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Write one evergreen blog post that ranks on traditional search AND is easy for AI systems to cite or recommend. Intent-first, answer-first, overlap-audited.
/marketing-contentDon't write a blog "to fill the calendar." Write the answer to a question users actually ask on Search or to an AI.
1 INTENT → 1.5 OVERLAP AUDIT → 2 RESEARCH → 3 FILE → 4 FRONTMATTER → 5 BODY → 6 PATTERN → 7 RULES → 8 LINKS → 9 VERIFY → 10 REPORT
Pick one category. Don't write a hybrid — split into two posts if needed.
| # | Intent | Example queries | |---|--------|-----------------| | 1 | Entity | "What is {Brand}", "How does {Brand} work" | | 2 | Trust | "Is {Brand} legit", "Why is {Brand} {claim}" | | 3 | Compare | "{Brand} vs {Competitor}", "Best {category} apps in {region}" | | 4 | Glossary | "What is {term}", "{term} explained" | | 5 | Use case | "How to {action} with {Brand}", "How to {achieve outcome}" | | 6 | Problem / FAQ | "Why is my {thing} not working", "Why did {unexpected outcome} happen" |
Before writing anything new, inventory existing posts in the blog folder.
# Adapt path to project — common: content/blog/, app/blog/, docs/blog/
find {blog_dir} -name "*.md" -maxdepth 2 | sort
For each existing post, extract from frontmatter or first 30 lines:
Then compare your planned post against the inventory.
| Situation | Action | |-----------|--------| | New post overlaps >60% intent with existing post | Do not create new. Either update the existing one OR refocus both to clearly distinct intents | | Existing post has stale claims (deprecated platform, old positioning, unsafe wording) | Update the existing post first or in the same batch — never pretend the issue isn't there | | New intent is genuinely uncovered | Proceed to Step 2 |
✅ Correct: what-is-brand.md (entity) + how-to-use-brand.md (how-to) — different intents.
❌ Wrong: two posts both answering "What is {Brand}" — pick one as canonical, update it.
If the post mentions current facts, third parties, or specific numbers — verify before writing.
{blog_dir}/{slug}.md
what-is-{brand}.md (entity)is-{brand}-legit.md (trust){brand}-vs-{competitor}.md (compare)why-is-my-order-not-tracked.md (problem)---
title: "Title that matches the real query"
description: "140-160 chars. Tell the reader what this post does for them — not marketing fluff."
date: "YYYY-MM-DD"
author: "{Brand} Team"
image: "/images/blog/{slug}.svg"
category: "<from project's category enum>"
tags: ["<brand>", "<topic>", "<intent>"]
---
categoryUse the project's existing category enum — never invent new ones. Common:
guide / tutorial for entity, glossary, use-case, FAQtips for optimization / case-basedcompare / review for comparison postschangelog only for product update posts (which this skill does NOT handle){2-4 sentences directly answering the question in the title — no warm-up, no story}
## TL;DR
- Key takeaway 1
- Key takeaway 2
- Key takeaway 3
## {Primary heading 1 — the main answer expanded}
...
## {Primary heading 2 — supporting context}
...
## When to choose / use / consider {Brand}
...
## Important caveats
...
## FAQ
### {Question 1 — phrased exactly as users ask}
{Direct answer, 2-4 sentences}
### {Question 2}
{...}
## Conclusion / Next step
...
Why this structure works for AI systems: TL;DR + direct answer + FAQ blocks are the highest-cited patterns. AI tools quote concise answers; long-winded intros get skipped.
Must answer:
Must include a real comparison table:
| Criterion | {Brand} | {Competitor A} | {Competitor B} |
|-----------|---------|---------------|---------------|
| Coverage | ... | ... | ... |
| Pricing / fees | ... | ... | ... |
| Strengths | ... | ... | ... |
| Best for | ... | ... | ... |
Rules:
Must:
Must:
Must:
Minimum 2-4 internal links per post:
/about, /product, /guide)/help, /faq)Anchor text:
category matches the project's existing enumQuick checks:
ls {blog_dir}/{slug}.md
head -30 {blog_dir}/{slug}.md
{linter for markdown / mdx if project has one}
## SEO Blog Post: {title}
### File
- `{blog_dir}/{slug}.md`
### Intent
- Category: {entity / trust / compare / glossary / use-case / problem}
- Primary query: "{the search query this targets}"
### Frontmatter
- title: ...
- category: ...
- tags: [...]
### Key internal links
- {anchor → /path}
- {anchor → /path}
### Overlap audit
- Checked: {N existing posts}
- Decision: {NEW / UPDATED `existing-slug` / REFOCUSED}
### Items needing user review
- {claim X — verify source}
- {comparison cell Y — confirm with product team}
| When | Use |
|------|-----|
| Multi-post content plan / calendar / strategy | /marketing-content |
| Brand voice / visual identity setup first | /marketing-logo |
| Video / shorts version of the post | /marketing-video |
| Full go-to-market plan (logo + content + video) | /marketing command |
| Writing technical project docs (not blog) | /docs-write |
| Step | Agent | Purpose |
|------|-------|---------|
| 1.5 OVERLAP | @docs-writer | Inventory + cluster analysis |
| 2 RESEARCH | @docs-writer | Source verification |
| 5 BODY | @docs-writer | Drafting + structure |
| 7 SEO + AI | @docs-writer | Optimization pass |
| 9 VERIFY | @code-reviewer | Link + frontmatter sanity check |
development
Test-Driven Development workflow. Use when doing TDD, writing tests first, or when user says "tdd", "test first", "test driven", "red green refactor".
development
Thorough pull request review workflow with architecture compliance checks. Use when reviewing pull requests, checking code changes, or when user says "review pr", "check pr", "review code", "pr review", "review pull request".
development
Review local branch changes for architecture compliance, conventions, and code quality before pushing/PR. Stack-aware — detects the project stack and applies the matching rules. Use when user says "review changes", "review branch", "check branch", "check changes", "review my code", "review before pr".
testing
DDD architecture compliance review with automated checks and review loop. Use when user says "architect-review", "architecture review", "review architecture", "check architecture", "review ddd", "ddd review".