agentleFS
PMDevSolutionsPMDevSolutions/Flavian/.claude/skills/create-blog-article/SKILL.md

create-blog-article

Skill19 starsChanged 11 days agoMITView on GitHub

Create an SEO-optimized blog article for a Claude Code component with AI-generated cover image

  • Reads credentials

The file

Show its rules and text

We split this skill into the rules it gives an agent

23 rules. About 0 are common, 13 are distinctive, and 10 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈13

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 10

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    If path has /, could be an agent, MCP, command, skill, or hook in a folder

    line 27
  2. Distinctive:

    Read the component file:

    line 30
  3. Very specific:

    CRITICAL: Use find or grep to locate the actual file path first, then extract folder/name structure.

    line 37
  4. Distinctive:

    Use the Python script to generate the image:

    line 64
  5. Distinctive:

    After image generation, update the entry with correct information.

    line 93
  6. Very specific:

    Create docs/blog/[blog-id]/index.html using this process:

    line 123
  7. Very specific:

    CRITICAL: Use docs/blog/code-reviewer-agent/index.html as the EXACT base template.

    line 127
  8. Distinctive:

    All three scripts at the end (CodeCopy, MarkdownCopier, Mermaid)

    line 155
  9. Distinctive:

    Add a simple Mermaid flow diagram (3-4 nodes max):

    line 217
  10. Very specific:

    Avoid using special characters like / or \ inside Mermaid node labels as they cause syntax errors

    line 241
  11. Very specific:

    ALWAYS use the FULL path with folder/: - Use find command to verify the correct path first!

    line 274
  12. Very specific:

    CRITICAL: All URLs to claude.com documentation MUST include UTM parameters: ?utm_source=aitmpl&utm_medium=referral&utm_campaign=blog

    line 305
  13. Very specific:

    Update the temporary entry in docs/blog/blog-articles.json with complete information:

    line 315
  14. Distinctive:

    If you copy the template correctly, these scripts will already be present and working.

    line 360
  15. Distinctive:

    Every blog article MUST:

    line 396
  16. Distinctive:

    Meta Description: Start with action verb, mention Claude Code, include key benefit

    line 399
  17. Distinctive:

    Tags: Always start with "Claude Code" tag

    line 403
  18. Distinctive:

    If component file not found:

    line 408
  19. Distinctive:

    Check component type variations

    line 410
  20. Distinctive:

    Ask user to verify component path

    line 411
  21. Distinctive:

    If image generation fails:

    line 413
  22. Very specific:

    Check if GOOGLE_API_KEY is set

    line 414
  23. Very specific:

    Check scripts/generate_blog_images.py exists

    line 416

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Create Blog Article for Claude Code Component

Provenance (2026-11-02): this skill was imported from the claude-code-templates project's command set. The paths it names (cli-tool/components/..., docs/blog/..., scripts/generate_blog_images.py, the code-reviewer-agent template) do not exist in Flavian, so it does not run here as written. Adapt it first: Flavian's agents live in .claude/agents/<name>.md and its skills in .claude/skills/<name>/SKILL.md. It is user-invoked only (disable-model-invocation: true).

You will create a complete, SEO-optimized blog article for a Claude Code component.

Component Path Argument

Component path provided: $ARGUMENTS

Expected format examples:

  • development-team/frontend-developer (for agents)
  • supabase (for MCPs)
  • productivity/nowait (for skills)

Step 1: Identify Component Type and Read Component File

Based on the path structure, determine the component type:

  • If path has /, could be an agent, MCP, command, skill, or hook in a folder
  • Single word could be MCP, command, or skill

Read the component file:

  • Agents: cli-tool/components/agents/$ARGUMENTS.md (e.g., development-team/frontend-developer.md)
  • MCPs: cli-tool/components/mcps/$ARGUMENTS.json (e.g., devtools/context7.json)
  • Skills: cli-tool/components/skills/$ARGUMENTS/SKILL.md
  • Commands: cli-tool/components/commands/$ARGUMENTS.md (e.g., setup/ci-cd-pipeline.md)
  • Hooks: cli-tool/components/hooks/$ARGUMENTS.md

CRITICAL: Use find or grep to locate the actual file path first, then extract folder/name structure.

Extract from the component file:

  • name: Component name
  • description: Component description
  • tools: Available tools (for agents)
  • Key capabilities and focus areas from the content

Step 2: Generate Component-Specific Blog ID and Names

From the component path, create:

  • Blog ID: Convert path to blog-friendly ID
    • Example: development-team/frontend-developer → frontend-developer-agent
    • Example: supabase → supabase-mcp
    • Example: productivity/nowait → nowait-skill
  • Component Name: Human-readable name
    • Example: frontend-developer → Frontend Developer
    • Example: supabase → Supabase
  • Component Type: Uppercase type
    • AGENT, MCP, SKILL, COMMAND, HOOK

Step 3: Generate Cover Image FIRST

CRITICAL: Generate the cover image BEFORE creating the HTML file.

Use the Python script to generate the image:

python3 scripts/generate_blog_images.py

But first, temporarily add a new entry to docs/blog/blog-articles.json with:

{
  "id": "[blog-id]",
  "title": "Temporary",
  "description": "Temporary",
  "url": "[blog-id]/",
  "image": "https://www.aitmpl.com/blog/assets/[blog-id]-cover.png",
  "category": "[Component Type]",
  "publishDate": "2025-01-15",
  "readTime": "4 min read",
  "tags": ["Claude Code"],
  "difficulty": "basic",
  "featured": true,
  "order": 999
}

Then run the script, which will:

  1. Detect the new entry
  2. Find the component path
  3. Generate the image at docs/blog/assets/[blog-id]-cover.png

After image generation, update the entry with correct information.

Step 4: Create Blog Article HTML

Create directory:

mkdir -p docs/blog/[blog-id]

CRITICAL PROCESS:

  1. First, READ the template file completely:
    Read docs/blog/code-reviewer-agent/index.html
  2. Copy the ENTIRE content to the new file location:
    Write docs/blog/[blog-id]/index.html
  3. Then, ONLY replace the specific content sections (listed below)

DO NOT:

  • ❌ Create HTML from scratch
  • ❌ Use a different template
  • ❌ Simplify or remove any scripts
  • ❌ Change the header/footer structure
  • ❌ Modify CSS paths or class names

Create docs/blog/[blog-id]/index.html using this process:

HTML Template Structure

CRITICAL: Use docs/blog/code-reviewer-agent/index.html as the EXACT base template.

This template includes ALL required components:

  • ✅ Header with class="header" (NOT "blog-header")
  • ✅ ASCII art logo in terminal-header
  • ✅ Copy as Markdown button (id="copy-markdown-btn")
  • ✅ Proper article structure: article-header → article-body → article-content-full
  • ✅ "Explore Components" banner at the end of content
  • ✅ Footer with ASCII art and links
  • ✅ CodeCopy script (adds copy buttons to code blocks)
  • ✅ MarkdownCopier script (copy entire article as markdown)
  • ✅ Mermaid diagram support script

DO NOT create custom HTML structure - copy the template EXACTLY and only replace the content-specific parts.

How to Use the Template:

  1. Copy the entire file from code-reviewer-agent/index.html
  2. Only replace these specific content areas:
    • SEO meta tags (title, description, keywords, Open Graph)
    • Article title and subtitle in <h1> and <p class="article-subtitle">
    • Tags in <div class="article-tags">
    • Main content inside <div class="article-content-full"> (everything between the opening and closing div)
    • Cover image src and alt text
  3. Keep EVERYTHING else unchanged:
    • Header structure and navigation
    • Copy Markdown button
    • Footer with ASCII art
    • All three scripts at the end (CodeCopy, MarkdownCopier, Mermaid)
    • CSS links and paths

Key SEO Elements to Customize:

Title Tag (Line 6):

<title>[Component Name] for Claude Code: [Key Technologies] Expert AI Assistant</title>

Meta Description (Line 26):

<meta name="description" content="Install the [Component Name] for Claude Code to [main benefit]. AI-powered [component type] for [key features].">

Open Graph Tags (Lines 28-32):

<meta property="og:title" content="[Component Name] for Claude Code: [Key Technologies]">
<meta property="og:description" content="Install the [Component Name] for Claude Code...">

Keywords (Line 58): Focus on: Claude Code, Component Type, Main Technologies

<meta name="keywords" content="Claude Code [type], [Component Name], Claude Code [tech1], [tech2], AI [domain] development, ...">

Structured Data (Lines 81-136):

{
  "@type": "BlogPosting",
  "headline": "[Component Name] for Claude Code: [Technologies]",
  "keywords": "Claude Code [type], [Component Name], ...",
  "articleSection": "Claude Code [Type]s",
  "about": [
    {"@type": "Thing", "name": "Claude Code"},
    {"@type": "Thing", "name": "[Component Type]"},
    ...
  ]
}

Article Header (Lines 189-201):

<h1 class="article-title">[Component Name] for Claude Code: [Technologies]</h1>
<p class="article-subtitle">Learn how to install and use the [Component Name] for Claude Code to [benefits].</p>
<div class="article-tags">
  <span class="tag">Claude Code</span>
  <span class="tag">[Type]</span>
  <span class="tag">[Tech1]</span>
  <span class="tag">[Tech2]</span>
</div>

Content Sections:

What is the [Component Name]? (Lines 210-212):

  • Brief 2-3 sentence overview
  • Focus on what it does and key benefits
  • Mention Claude Code and component type

Mermaid Diagram (After "What is..." section): Add a simple Mermaid flow diagram (3-4 nodes max):

<!-- Mermaid Diagram -->
<div class="mermaid-diagram" style="background: #1a1a1a; border: 1px solid #333; border-radius: 8px; padding: 2rem; margin: 2rem 0; text-align: center;">
    <pre class="mermaid">
graph LR
    A[Input/Trigger] --> B[Component Name]
    B --> C[Process/Output]
    C --> D[Result]

    style B fill:#F97316,stroke:#fff,color:#000
    </pre>
</div>

Diagram examples by type:

  • Agents: [👤 User Prompt] --> [🤖 Agent Name] --> [⚛️ Code Output] --> [📦 Your Project]
  • MCPs: [💻 Claude Code] --> [🔌 MCP Name] --> [📚 Data/Docs] --> [✨ Result]
  • Skills: [👤 User Request] --> [🔍 Skill Auto-Triggered] --> [📚 Progressive Loading] --> [✅ Task Complete]
  • Commands: [⚙️ Command Call] --> [🔧 Command Logic] --> [📝 Action] --> [✓ Complete]
  • Hooks: [📝 Event] --> [🪝 Hook Name] --> [⚡ Automation] --> [✅ Done]

IMPORTANT:

  • Avoid using special characters like / or \ inside Mermaid node labels as they cause syntax errors
  • Skills are NOT slash commands - they activate automatically when relevant to the user's request

Key Capabilities (Lines 214-223):

  • Bullet list of 5-7 main capabilities
  • Each capability with brief explanation in parentheses

Installation (Lines 225-241):

<h2>Installation</h2>
<p>Install the [Component Name] using the Claude Code Templates CLI:</p>
<pre><code class="language-bash">npx claude-code-templates@latest --[type] [folder/name]</code></pre>

<p><strong>Where is the [type] installed?</strong></p>
<p>The [type] is saved in <code>.claude/[type]s/[name].[extension]</code> in your project directory:</p>

<pre><code class="language-bash">your-project/
├── .claude/
│   └── [type]s/
│       └── [name].[md|json]    # ← [Type] installed here
├── src/
│   └── components/
├── package.json
└── README.md</code></pre>

CRITICAL INSTALLATION COMMAND FORMAT:

  • Agents: --agent folder/name (e.g., --agent development-team/frontend-developer)
  • MCPs: --mcp folder/name (e.g., --mcp devtools/context7)
  • Commands: --command folder/name (e.g., --command setup/ci-cd)
  • Skills: --skill name (e.g., --skill pdf-processing)
  • Hooks: --hook folder/name (e.g., --hook git/auto-commit)

ALWAYS use the FULL path with folder/ - Use find command to verify the correct path first!

How to Use (Lines 243-251):

<h2>How to Use the [Type]</h2>
<p>Start Claude Code and explicitly request the [type] in your prompt:</p>

<pre><code class="language-bash"># Start Claude Code
claude

# Then write your prompt requesting the [type]
> Use the [name] [type] to [example task]</code></pre>

Usage Examples (Lines 253-277): Create 3 practical examples:

<h3>Example 1: [Specific Use Case]</h3>
<pre><code class="language-bash">claude

> Use the [name] [type] to [specific task with details]</code></pre>

<p><strong>Result:</strong> [Expected outcome]</p>

Official Documentation (Lines 276-277):

<h2>Official Documentation</h2>
<p>For more information about [type]s in Claude Code, see the <a href="https://code.claude.com/docs/en/[appropriate-doc-page]?utm_source=aitmpl&utm_medium=referral&utm_campaign=blog" target="_blank">official documentation</a>.</p>

CRITICAL: All URLs to claude.com documentation MUST include UTM parameters: ?utm_source=aitmpl&utm_medium=referral&utm_campaign=blog

Critical Path Requirements:

  1. Image path (Line 207): ../assets/[blog-id]-cover.png
  2. CSS paths (Lines 62-63): ../../css/styles.css, ../../css/blog.css
  3. Navigation links: ../index.html for blog home, ../../index.html for main site

Step 5: Update blog-articles.json

Update the temporary entry in docs/blog/blog-articles.json with complete information:

{
  "id": "[blog-id]",
  "title": "[Component Name] for Claude Code: [Subtitle with Technologies]",
  "description": "Complete guide to the [Component Name] - [what it does]. [Key benefits]. [Installation count if available]+ installations.",
  "url": "[blog-id]/",
  "image": "assets/[blog-id]-cover.png",
  "category": "[Component Type Category]",
  "publishDate": "[Current Date YYYY-MM-DD]",
  "readTime": "4 min read",
  "tags": ["Claude Code", "[Type]", "[Tech1]", "[Tech2]", "[Tech3]"],
  "difficulty": "basic|intermediate|advanced",
  "featured": true,
  "order": [next available order number]
}

Category Guidelines:

  • Agents → "Agents"
  • MCPs → "MCP"
  • Skills → "Skills"
  • Commands → "Development" or specific category
  • Hooks → "Automation"

Difficulty Guidelines:

  • basic: Simple to use, no configuration needed
  • intermediate: Requires some setup or understanding
  • advanced: Complex workflows or configuration

Scripts at End of HTML:

The template already includes ALL required scripts before </body>:

  1. CodeCopy script (~180 lines) - Adds copy buttons to code blocks
  2. MarkdownCopier script (~160 lines) - Copy article as Markdown functionality
  3. Mermaid script (~15 lines) - Diagram rendering support

CRITICAL: These scripts are ALREADY in the template. DO NOT:

  • ❌ Remove them
  • ❌ Modify them
  • ❌ Duplicate them
  • ❌ Create simplified versions

If you copy the template correctly, these scripts will already be present and working.

Step 6: Final Checklist

Verify before completion:

Files & Structure:

  • Cover image exists at docs/blog/assets/[blog-id]-cover.png
  • Blog article exists at docs/blog/[blog-id]/index.html
  • HTML file copied from code-reviewer-agent/index.html template
  • Header has class="header" (NOT "blog-header")
  • Copy Markdown button present with id="copy-markdown-btn"
  • Article structure: article-header → article-body → article-content-full
  • "Explore Components" banner present at end of content
  • Footer with ASCII art and links present

Scripts (verify all 3 are present):

  • CodeCopy script present (~180 lines before Mermaid)
  • MarkdownCopier script present (~160 lines before Mermaid)
  • Mermaid script present (last script before </body>)

Content:

  • Mermaid diagram added after "What is..." section
  • All paths are relative (images, CSS, links)
  • Installation command shows correct folder/name structure
  • File tree shows correct installation path
  • SEO meta tags include "Claude Code" prominently
  • Keywords focus on: Claude Code > Component Type > Technologies
  • Structured data includes all required fields
  • blog-articles.json updated with new entry
  • All tags include "Claude Code" as first tag
  • Examples are specific to the component's capabilities
  • All claude.com URLs include UTM parameters

SEO Optimization Requirements

Every blog article MUST:

  1. Title Tag: Include "Claude Code", component name, and 1-2 key technologies
  2. Meta Description: Start with action verb, mention Claude Code, include key benefit
  3. Keywords: First 3 keywords should be "Claude Code [type]", "[Component Name]", "Claude Code [main-tech]"
  4. H1: Match title tag structure
  5. First Paragraph: Mention "Claude Code" in first sentence
  6. Tags: Always start with "Claude Code" tag
  7. Structured Data: Include Claude Code as both Thing and SoftwareApplication

Error Handling

If component file not found:

  • Try alternative paths (with/without folders)
  • Check component type variations
  • Ask user to verify component path

If image generation fails:

  • Check if GOOGLE_API_KEY is set
  • Verify blog-articles.json entry
  • Check scripts/generate_blog_images.py exists

Success Message

When complete, show:

✅ Blog article created successfully!

📁 Files created:
   - docs/blog/[blog-id]/index.html
   - docs/blog/assets/[blog-id]-cover.png

📝 Updated:
   - docs/blog/blog-articles.json

🔗 View locally:
   http://localhost:8000/blog/[blog-id]/

🚀 Ready to commit and deploy!

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.