draft-creator
Create a content draft from a topic idea or content requirements.
0. Load Project Context
Look for ./seo-memory.md (the default seo-memory location).
- File exists and readable — load it. Use this context throughout the draft to keep product references, terminology, and positioning accurate.
- File doesn't exist or inaccessible — ask the user: "I don't see a project memory file (
seo-memory.md). Would you like to run/seo-memoryfirst to capture your project context? This helps me weave accurate product references into the blog. If not, I'll skip this step."- If yes — run the
seo-memoryskill, then continue. - If no — proceed without project context.
- If yes — run the
1. Gather Requirements
Ask the user what they want to write about if not provided.
If the input is a vague idea (not full requirements), research reader intent:
- Try a Google search query likely to find this idea in SERP
- If SERP is highly related → run
serp-gap-analysisskill - If not related → try another query
- After 3 failed attempts → stop and report that this may not be a good content idea (no matching searches)
Skip SERP analysis if the input already contains these requirements:
- SERP intent summary
- Word count
- Content format
- Must-have topics
- Competitor gaps
Required Fields (resolved from input or research)
From SERP analysis:
- SERP intent summary
- Word count
- Content format
- Must-have topics
- Competitor gaps
Important: SERP analysis may return multiple options for some fields (e.g., word count ranges like 1. 1500-2500, 2. 2500-3500). Make sure user confirms them before proceeding to the next step.
Propose these based on the above:
- Target reader
- Primary outcome (what the reader can do/understand after reading)
Setup
Create ./blogs/<topic>/ folder for all writing-related files.
2. Find Information Gain (subagent)
Run the content-researcher skill. This produces:
./blogs/<topic>/knowledge-base.md— collected knowledge from SERP pages./blogs/<topic>/under-discussed.md— questions competitors don't answer well
Information gain = what the reader still cannot do, decide, understand, or trust after reading the top results. The under-discussed questions are your information gain.
3. Create Outline (subagent)
Use this structure, adapting to content format and word count:
- Hook — grab attention, establish relevance
- Problem — what's at stake, why it matters
- Why existing advice is incomplete — set up your unique angle
- Your framework/method — the core value
- Examples/applications — make it concrete
- Mistakes/caveats — build trust, add depth
- Conclusion/next step — actionable takeaway
Adapt Based On
- Word count — expand or compress sections accordingly
- Must-have topics — verify knowledge base has content to cover each
- Under-discussed questions — integrate 2-3 as your information gain
Output Format
## {H2 Title}
{1-2 sentence description of what this section covers}
({word count} words)
Repeat for each section. Total word counts should match the target.
More from rankearly/rankearly-skills
blog-creator
Umbrella skill for ANY blog-related task — research, outline, write, audit, humanize, illustrate. Use when the user mentions blog posts, outlines, drafts, blog images, or wants to audit/humanize/rewrite blog content.
14blog-title-generator
Generate SEO blog titles, title tags, and H1 variations for an SEO blog. Use when the user wants blog title ideas, headline options, title tag suggestions, H1 variants, or SEO/CTR title optimization for a planned or drafted blog post.
12blog-image
Generate a Nanobanana Pro prompt for blog images - either a scroll-stopping cover or an explanatory in-post illustration. Use when the user asks for a "blog cover", "blog image", "post thumbnail", "illustration for my blog", "header image", or wants to create a visual for a blog post or article section.
11seo-memory
Maintain a project knowledge file for SEO content creation. Use when the user shares critical context about their project — product renames, new/removed features, service changes, subproduct launches, pricing updates, audience shifts, or any factual change that SEO content should reflect. Also triggers on "update seo memory", "remember this for content", "initialize seo memory from domain", or when the user corrects a factual detail about their product/service. Even small updates matter — stale project facts in published content erode trust.
10topic-research
Expand topics into keywords or cluster a keyword library into topics and keyword clusters using RankEarly. Use when the user asks for keyword expansion, topic clustering, content clusters, topic maps, keyword research, or content planning tied to a keyword library.
10serp-gap-analysis
Analyze a live Google SERP for keyword winnability and competitor gaps. Use when the user asks for SERP analysis, real-result keyword difficulty, SEO competitor analysis, content gap analysis, or a brief or content plan for a specific keyword or query.
10