blog-outline
npx skills add https://github.com/megastep/codex-skills --skill blog-outline
Agent 安装分布
Skill 文档
Blog Outline Generator — SERP-Informed Structure Planning
Generates skeletal blog post outlines informed by SERP analysis. A lighter alternative to a full content brief â produces heading hierarchy, section targets, and content gap notes without deep statistics research or full competitive analysis.
Workflow
Step 1: Topic & Intent
Gather from the user:
- Topic or target keyword (required)
- Target keyword â the exact phrase to rank for (if different from topic)
- Search intent â Informational, commercial, or transactional
If only a topic is given, infer the keyword and intent from context.
Step 2: SERP Analysis
Use WebSearch to analyze the top 5 results for the target keyword:
-
Search for the target keyword
-
For each of the top 5 results, note:
- Heading structure â H2/H3 topics covered
- Content length â Approximate word count
- Visual elements â Charts, images, videos, infographics
- FAQs â Any FAQ sections or People Also Ask coverage
- Unique angles â What makes each result distinct
- Gaps â What’s missing or weak
-
Use WebFetch on the top 2-3 results to extract detailed heading structures if the search snippets are insufficient.
-
Compile a summary of common patterns and missed opportunities.
Step 3: Generate Outline
Create a structured outline with the following format:
# Outline: [Topic]
## Title Suggestions
1. [Primary title â 40-60 chars, front-loaded keyword, power word]
2. [Alternative title â different angle]
3. [Alternative title â question format]
## Target Parameters
- **Primary keyword**: [keyword]
- **Search intent**: [Informational/Commercial/Transactional]
- **Target word count**: [X,XXX] words
- **H2 sections**: [6-8]
- **Target reading level**: Flesch 60-70
---
## Outline
### H2: [Section Title â Question Format] (~300-400 words)
- **Answer-first opener**: [What stat or fact should open this section?]
- **Key points to cover**:
- [Point 1]
- [Point 2]
- [Point 3]
- **H3: [Subsection]** (if appropriate)
- [What this subsection covers]
- **Key statistic to find**: [What data point would strengthen this section?]
- **Chart suggestion**: [Bar/Line/Donut/None] â [What data to visualize]
- **Image placement**: [Yes/No] â [Description of recommended image]
### H2: [Section Title] (~300-400 words)
[... repeat for 6-8 sections ...]
### FAQ Section (3-5 items)
1. [Question from People Also Ask] â [Brief answer direction]
2. [Question from People Also Ask] â [Brief answer direction]
3. [Question from People Also Ask] â [Brief answer direction]
4. [Question from SERP analysis] â [Brief answer direction]
### Conclusion (~100-150 words)
- Key takeaways to summarize
- Call to action direction
---
## Internal Linking Zones
- **Link TO from this post**: [Existing content that should be referenced]
- **Link FROM to this post**: [Existing content that should link here]
## Content Gaps to Exploit
1. [What competitors miss that this post should cover]
2. [Unique angle or original perspective to include]
3. [Format advantage â visuals, depth, or structure competitors lack]
Guidelines for heading generation:
- 60-70% of H2 headings should be in question format
- Each H2 should have a clear answer-first paragraph prompt
- Include H3 subsections only where the topic genuinely warrants subdivision
- Target word counts should sum to the overall post target
- Chart type suggestions should be diverse (no two identical types)
- Image placement markers should be distributed evenly across the post
Step 4: Content Gaps
After generating the outline, add a dedicated content gaps analysis:
- List 3-5 topics or angles that all top-ranking competitors miss
- Identify opportunities for original data, case studies, or perspectives
- Note format advantages this post can have (more visuals, better structure, deeper coverage on a specific subtopic)
Step 5: Save
Save the outline to outlines/[slug]-outline.md or to a user-specified path.
Confirm the outline is ready for $blog write to consume.
If the outlines/ directory does not exist, create it.