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
In this repository16 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- block-pattern-creationSkill
- canva-to-fse-autonomous-workflowSkill
- figma-to-fse-autonomous-workflowSkill
- fse-block-theme-developmentSkill
- fse-pattern-first-architectureSkill
- indesign-conversionSkill
- lintSkill
- scaffold-blockSkill
- testSkill
- visual-qa-verificationSkill
- wordpress-hook-integrationSkill
- wordpress-internationalizationSkill
- wordpress-security-hardeningSkill
- wordpress-testing-workflowsSkill
- wp-cli-workflowsSkill
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
- Very specific: line 27
If path has /, could be an agent, MCP, command, skill, or hook in a folder
- Distinctive: line 30
Read the component file:
- Very specific: line 37
CRITICAL: Use find or grep to locate the actual file path first, then extract folder/name structure.
- Distinctive: line 64
Use the Python script to generate the image:
- Distinctive: line 93
After image generation, update the entry with correct information.
- Very specific: line 123
Create docs/blog/[blog-id]/index.html using this process:
- Very specific: line 127
CRITICAL: Use docs/blog/code-reviewer-agent/index.html as the EXACT base template.
- Distinctive: line 155
All three scripts at the end (CodeCopy, MarkdownCopier, Mermaid)
- Distinctive: line 217
Add a simple Mermaid flow diagram (3-4 nodes max):
- Very specific: line 241
Avoid using special characters like / or \ inside Mermaid node labels as they cause syntax errors
- Very specific: line 274
ALWAYS use the FULL path with folder/: - Use find command to verify the correct path first!
- Very specific: line 305
CRITICAL: All URLs to claude.com documentation MUST include UTM parameters: ?utm_source=aitmpl&utm_medium=referral&utm_campaign=blog
- Very specific: line 315
Update the temporary entry in docs/blog/blog-articles.json with complete information:
- Distinctive: line 360
If you copy the template correctly, these scripts will already be present and working.
- Distinctive: line 396
Every blog article MUST:
- Distinctive: line 399
Meta Description: Start with action verb, mention Claude Code, include key benefit
- Distinctive: line 403
Tags: Always start with "Claude Code" tag
- Distinctive: line 408
If component file not found:
- Distinctive: line 410
Check component type variations
- Distinctive: line 411
Ask user to verify component path
- Distinctive: line 413
If image generation fails:
- Very specific: line 414
Check if GOOGLE_API_KEY is set
- Very specific: line 416
Check scripts/generate_blog_images.py exists
≈ “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.
Files
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, thecode-reviewer-agenttemplate) do not exist in Flavian, so it does not run here as written. Adapt it first: Flavian's agents live in.claude/agents/<name>.mdand 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 namedescription: Component descriptiontools: 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
- Example:
- Component Name: Human-readable name
- Example:
frontend-developer→Frontend Developer - Example:
supabase→Supabase
- Example:
- 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.pyBut 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:
- Detect the new entry
- Find the component path
- 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:
- First, READ the template file completely:
Read docs/blog/code-reviewer-agent/index.html - Copy the ENTIRE content to the new file location:
Write docs/blog/[blog-id]/index.html - 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:
- Copy the entire file from
code-reviewer-agent/index.html - 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
- 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:
- Image path (Line 207):
../assets/[blog-id]-cover.png - CSS paths (Lines 62-63):
../../css/styles.css,../../css/blog.css - Navigation links:
../index.htmlfor blog home,../../index.htmlfor 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>:
- CodeCopy script (~180 lines) - Adds copy buttons to code blocks
- MarkdownCopier script (~160 lines) - Copy article as Markdown functionality
- 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.htmltemplate - 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:
- Title Tag: Include "Claude Code", component name, and 1-2 key technologies
- Meta Description: Start with action verb, mention Claude Code, include key benefit
- Keywords: First 3 keywords should be "Claude Code [type]", "[Component Name]", "Claude Code [main-tech]"
- H1: Match title tag structure
- First Paragraph: Mention "Claude Code" in first sentence
- Tags: Always start with "Claude Code" tag
- 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!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
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.

