From b9363df389159ffc320d172613e54207f57c8b15 Mon Sep 17 00:00:00 2001 From: Luong NGUYEN Date: Fri, 30 Jan 2026 12:08:53 +0100 Subject: [PATCH] docs: Add blog-draft skill for guided blog post creation Includes step-by-step workflow for: - Resource research and collection - Brainstorming and clarification - Outline creation with user approval - Iterative drafting with version control - Git commits at key checkpoints --- 03-skills/blog-draft/SKILL.md | 258 ++++++++++++++++++ .../blog-draft/templates/draft-template.md | 67 +++++ .../blog-draft/templates/outline-template.md | 97 +++++++ 3 files changed, 422 insertions(+) create mode 100644 03-skills/blog-draft/SKILL.md create mode 100644 03-skills/blog-draft/templates/draft-template.md create mode 100644 03-skills/blog-draft/templates/outline-template.md diff --git a/03-skills/blog-draft/SKILL.md b/03-skills/blog-draft/SKILL.md new file mode 100644 index 0000000..56010c7 --- /dev/null +++ b/03-skills/blog-draft/SKILL.md @@ -0,0 +1,258 @@ +--- +name: blog-draft +description: 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. +--- + +## User Input + +```text +$ARGUMENTS +``` + +You **MUST** consider the user input before proceeding. User should provide: +- **Idea/Topic**: The main concept or theme for the blog post +- **Resources**: URLs, files, or references to research (optional but recommended) +- **Target audience**: Who the blog post is for (optional) +- **Tone/Style**: Formal, casual, technical, etc. (optional) + +## Execution Flow + +Follow these steps sequentially. **Do not skip steps or proceed without user approval where indicated.** + +### Step 0: Create Project Folder + +1. Generate a folder name using format: `YYYY-MM-DD-short-topic-name` + - Use today's date + - Create a short, URL-friendly slug from the topic (lowercase, hyphens, max 5 words) + +2. Create the folder structure: + ``` + blog-posts/ + └── YYYY-MM-DD-short-topic-name/ + └── resources/ + ``` + +3. Confirm folder creation with user before proceeding. + +### Step 1: Research & Resource Collection + +1. Create `resources/` subfolder in the blog post directory + +2. For each provided resource: + - **URLs**: Fetch and save key information to `resources/` as markdown files + - **Files**: Read and summarize in `resources/` + - **Topics**: Use web search to gather up-to-date information + +3. For each resource, create a summary file in `resources/`: + - `resources/source-1-[short-name].md` + - `resources/source-2-[short-name].md` + - etc. + +4. Each summary should include: + ```markdown + # 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 + ``` + +5. Present research summary to user. + +### Step 2: Brainstorm & Clarify + +1. Based on the idea and researched resources, present: + - **Main themes** identified from research + - **Potential angles** for the blog post + - **Key points** that should be covered + - **Gaps** in information that need clarification + +2. Ask clarifying questions: + - What is the main takeaway you want readers to have? + - Are there specific points from the research you want to emphasize? + - What's the target length? (short: 500-800 words, medium: 1000-1500, long: 2000+) + - Any points you want to exclude? + +3. **Wait for user responses before proceeding.** + +### Step 3: Propose Outline + +1. Create a structured outline including: + + ```markdown + # 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 + ``` + +2. Present outline to user and **ask for approval or modifications**. + +### Step 4: Save Approved Outline + +1. Once user approves the outline, save it to `OUTLINE.md` in the blog post folder. + +2. Confirm the outline has been saved. + +### Step 5: Commit Outline (if in git repo) + +1. Check if current directory is a git repository. + +2. If yes: + - Stage the new files: blog post folder, resources, and OUTLINE.md + - Create commit with message: `docs: Add outline for blog post - [topic-name]` + - Push to remote + +3. If not a git repo, skip this step and inform user. + +### Step 6: Write Draft + +1. Based on the approved outline, write the full blog post draft. + +2. Follow the structure from OUTLINE.md exactly. + +3. Include: + - Engaging introduction with hook + - Clear section headers + - Supporting evidence and examples from research + - Smooth transitions between sections + - Strong conclusion with takeaway + +4. Save the draft as `draft-v0.1.md` in the blog post folder. + +5. Format: + ```markdown + # [Blog Post Title] + + *[Optional: subtitle or tagline]* + + [Full content...] + + --- + + ## References + - [Source 1] + - [Source 2] + ``` + +### Step 7: Commit Draft (if in git repo) + +1. Check if in git repository. + +2. If yes: + - Stage the draft file + - Create commit with message: `docs: Add draft v0.1 for blog post - [topic-name]` + - Push to remote + +3. If not a git repo, skip and inform user. + +### Step 8: Present Draft for Review + +1. Present the draft content to user. + +2. Ask for feedback: + - Overall impression? + - Sections that need expansion or reduction? + - Tone adjustments needed? + - Missing information? + - Specific edits or rewrites? + +3. **Wait for user response.** + +### Step 9: Iterate or Finalize + +**If user requests changes:** +1. Note all requested modifications +2. Return to Step 6 with the following adjustments: + - Increment version number (v0.2, v0.3, etc.) + - Incorporate all feedback + - Save as `draft-v[X.Y].md` + - Repeat Steps 7-8 + +**If user approves:** +1. Confirm the final draft version +2. Optionally rename to `final.md` if user requests +3. Summarize the blog post creation process: + - Total versions created + - Key changes between versions + - Final word count + - Files created + +## Version Tracking + +All drafts are preserved with incremental versioning: +- `draft-v0.1.md` - Initial draft +- `draft-v0.2.md` - After first round of feedback +- `draft-v0.3.md` - After second round of feedback +- etc. + +This allows tracking the evolution of the blog post and reverting if needed. + +## Output Files Structure + +``` +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) +``` + +## Tips for Quality + +- **Hook**: Start with a question, surprising fact, or relatable scenario +- **Flow**: Each paragraph should connect to the next +- **Evidence**: Support claims with data from research +- **Voice**: Maintain consistent tone throughout +- **Length**: Respect the target word count +- **Readability**: Use short paragraphs, bullet points where appropriate +- **CTA**: End with a clear call-to-action or thought-provoking question + +## Notes + +- Always wait for user approval at outlined checkpoints +- Preserve all draft versions for history +- Use web search for up-to-date information when URLs are provided +- If resources are insufficient, ask user for more or suggest additional research +- Adapt tone based on target audience (technical, general, business, etc.) diff --git a/03-skills/blog-draft/templates/draft-template.md b/03-skills/blog-draft/templates/draft-template.md new file mode 100644 index 0000000..4c5f9f4 --- /dev/null +++ b/03-skills/blog-draft/templates/draft-template.md @@ -0,0 +1,67 @@ +# [Blog Post Title] + +*[Subtitle or tagline - optional]* + +**[Author Name]** | [Date] + +--- + +[Opening hook - grab attention immediately] + +[Context and background - why this matters] + +[Thesis statement - what this post will cover] + +--- + +## [Section 1 Title] + +[Section content with clear, engaging prose] + +[Include evidence, examples, or data to support points] + +> "Relevant quote from research" - Source + +[Transition to next section] + +--- + +## [Section 2 Title] + +[Continue with main content] + +**Key takeaway:** [Highlight important points in bold or callout boxes] + +[More supporting content] + +--- + +## [Section 3 Title] + +[Additional sections as needed] + +### Subsection (if needed) + +[Subsection content] + +--- + +## Conclusion + +[Summarize the key points covered] + +[Reinforce the main takeaway] + +[Call to action or thought-provoking final statement] + +--- + +## References + +1. [Source Title](URL) +2. [Source Title](URL) +3. [Source Title](URL) + +--- + +*[Optional: Author bio or related posts suggestion]* diff --git a/03-skills/blog-draft/templates/outline-template.md b/03-skills/blog-draft/templates/outline-template.md new file mode 100644 index 0000000..9fbd15f --- /dev/null +++ b/03-skills/blog-draft/templates/outline-template.md @@ -0,0 +1,97 @@ +# Blog Post Outline: [Title] + +## Meta Information + +| Attribute | Value | +|-----------|-------| +| **Target Audience** | [Who is this for?] | +| **Tone** | [Formal/Casual/Technical/Conversational] | +| **Target Length** | [Word count range] | +| **Main Takeaway** | [One sentence: what should readers remember?] | +| **Keywords** | [SEO keywords if relevant] | + +--- + +## Proposed Structure + +### 1. Introduction / Hook + +**Opening Hook Options:** +- [ ] Question that resonates with reader +- [ ] Surprising statistic or fact +- [ ] Brief story or scenario +- [ ] Bold statement + +**Context Setting:** +- Background information needed +- Why this topic matters now + +**Thesis Statement:** +- Clear statement of what the post will cover + +--- + +### 2. [Section Title] + +**Key Points:** +- Point A: [description] +- Point B: [description] + +**Supporting Evidence:** +- From [source]: [relevant data/quote] + +**Transition to next section:** +- [How this connects to what's next] + +--- + +### 3. [Section Title] + +**Key Points:** +- Point A: [description] +- Point B: [description] + +**Supporting Evidence:** +- From [source]: [relevant data/quote] + +**Transition to next section:** +- [How this connects to what's next] + +--- + +### 4. [Section Title] (add more sections as needed) + +**Key Points:** +- Point A: [description] +- Point B: [description] + +**Supporting Evidence:** +- From [source]: [relevant data/quote] + +--- + +### 5. Conclusion + +**Summary of Key Points:** +- Recap point 1 +- Recap point 2 +- Recap point 3 + +**Final Thought / Call to Action:** +- [What should readers do or think about next?] + +--- + +## Sources to Cite + +1. [Source Name](URL) - Used for: [what information] +2. [Source Name](URL) - Used for: [what information] +3. [Source Name](URL) - Used for: [what information] + +--- + +## Notes for Drafting + +- [Any specific requirements or constraints] +- [Things to emphasize] +- [Things to avoid]