Draft a blog post from ideas and resources. Use when users want to write a blog post, create content from research, or draft articles. Guides through research, brainstorming, outlining, and iterative drafting with version control.
$ARGUMENTS
You MUST consider the user input before proceeding. User should provide:
IMPORTANT: If the user is requesting updates to an existing blog post, skip steps 0-8 and start directly at Step 9. Read the existing draft file(s) first, then proceed with the iteration process.
Follow these steps sequentially. Do not skip steps or proceed without user approval where indicated.
Generate a folder name using format: YYYY-MM-DD-short-topic-name
Create the folder structure:
blog-posts/
└── YYYY-MM-DD-short-topic-name/
└── resources/
Confirm folder creation with user before proceeding.
Create resources/ subfolder in the blog post directory
For each provided resource:
resources/ as markdown filesresources/For each resource, create a summary file in resources/:
resources/source-1-[short-name].mdresources/source-2-[short-name].mdEach summary should include:
# Source: [Title/URL]
## Key Points
- Point 1
- Point 2
## Relevant Quotes/Data
- Quote or statistic 1
- Quote or statistic 2
## How This Relates to Topic
Brief explanation of relevance
Present research summary to user.
Based on the idea and researched resources, present:
Ask clarifying questions:
Wait for user responses before proceeding.
Create a structured outline including:
# Blog Post Outline: [Title]
## Meta Information
- **Target Audience**: [who]
- **Tone**: [style]
- **Target Length**: [word count]
- **Main Takeaway**: [key message]
## Proposed Structure
### Hook/Introduction
- Opening hook idea
- Context setting
- Thesis statement
### Section 1: [Title]
- Key point A
- Key point B
- Supporting evidence from [source]
### Section 2: [Title]
- Key point A
- Key point B
[Continue for all sections...]
### Conclusion
- Summary of key points
- Call to action or final thought
## Sources to Cite
- Source 1
- Source 2
Present outline to user and ask for approval or modifications.
Once user approves the outline, save it to OUTLINE.md in the blog post folder.
Confirm the outline has been saved.
Check if current directory is a git repository.
If yes:
docs: Add outline for blog post - [topic-name]If not a git repo, skip this step and inform user.
Based on the approved outline, write the full blog post draft.
Follow the structure from OUTLINE.md exactly.
Include:
Save the draft as draft-v0.1.md in the blog post folder.
Format:
# [Blog Post Title]
*[Optional: subtitle or tagline]*
[Full content with inline citations...]
---
## References
- [1] Source 1 Title - URL or Citation
- [2] Source 2 Title - URL or Citation
- [3] Source 3 Title - URL or Citation
Citation Requirements:
Check if in git repository.
If yes:
docs: Add draft v0.1 for blog post - [topic-name]If not a git repo, skip and inform user.
Present the draft content to user.
Ask for feedback:
Wait for user response.
If user requests changes:
draft-v[X.Y].mdIf user approves:
final.md if user requestsAll drafts are preserved with incremental versioning:
draft-v0.1.md - Initial draftdraft-v0.2.md - After first round of feedbackdraft-v0.3.md - After second round of feedbackThis allows tracking the evolution of the blog post and reverting if needed.
blog-posts/
└── YYYY-MM-DD-topic-name/
├── resources/
│ ├── source-1-name.md
│ ├── source-2-name.md
│ └── ...
├── OUTLINE.md
├── draft-v0.1.md
├── draft-v0.2.md (if iterations)
└── draft-v0.3.md (if more iterations)