blog
Skill9 starsChanged 6 months agoApache-2.0View on GitHub
Transform learning notes, session summaries, and diff stories into publishable technical blog posts. Supports multiple platforms and styles. Use when the user wants to write a technical article.
17 other projects use a version of this.
Adopted by
Most recently taken up by
- whyashthakker/estacktheir own version, first seen Nov 8, 2026
- alpit-patel/seo-aeo-geo-kittheir own version, first seen Nov 8, 2026
- theopenco/llmgatewaytheir own version, first seen Nov 6, 2026
- Srltas/claude-skillstheir own version, first seen Oct 31, 2026
- kriscard/Skillstheir own version, first seen Oct 28, 2026
- AgriciDaniel/claude-blogtheir own version, first seen Oct 25, 2026
Used with
Projects with it also use audit.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
OpenAISkillaudit
Audit or critique a product flow, journey, workflow, funnel, onboarding path, checkout path, settings path, screen, or multi-step product experience by capturing screenshots first, then reporting UX, design, and accessibility findings inline from that evidence. Use Figma only when the user explicitly asks for a board. Use when the user asks to audit, review, critique, inspect, assess, analyze, evaluate, or give feedback on a product experience.
Also in 3 projects that use this
Other versions17 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 17
- AgriciDaniel/claude-blog★ 2.7ksame name
- theopenco/llmgateway★ 1.7ksame name
- Chorus-AIDLC/Chorus★ 1.2ksame name
- yan-labs/yan-skills★ 232same name
- rainday/smart-blog-skills★ 35same name
- coopersimson96/ai-content-system★ 17same name
- kriscard/Skills★ 15same name
- megastep/codex-skills★ 4same name
- runcycles/cycles-docs★ 4same name
- alpit-patel/seo-aeo-geo-kit★ 2same name
7 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository18 other files it gives its agents.
- archive-card-writerSkill
- article-to-scriptSkill
- blog-style-htmlSkill
- brainstormSkill
- compareSkill
- curated-content-writerSkill
- deep-diveSkill
- diff-storySkill
- explore-siteSkill
- gemini-tts-fastSkill
- learnSkill
- quizSkill
- resumeSkill
- screenshotSkill
- script-to-remotionSkill
- terminal-slide-deckSkill
- user-insight-researchSkill
- x-auto-engagementSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
22 rules. 0 are common, 18 are distinctive, and 4 are very specific to this project.
0
Common
Most of the 14 edited versions we read keep these.
18
Distinctive
This author's own choices. Worth a look.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 12
All responses MUST be in Chinese (中文).
- Very specific: line 24
Read the specified session file from .learn/sessions/.
- Very specific: line 34
Search .learn/sessions/ for sessions related to the topic.
- Very specific: line 38
Check if .learn/sessions/ exists
- Distinctive: line 39
If yes: list available sessions and diff stories, ask user which to turn into a blog
- Distinctive: line 40
If no: ask the user what they want to write about
- Distinctive: line 59
If the source material clearly fits one format, suggest it.
- Distinctive: line 65
Every blog post needs:
- Distinctive: line 218
After generating the draft:
- Very specific: line 221
Every code snippet must be from the actual project (use Read to verify)
- Distinctive: line 223
Keep snippets focused — show only the relevant parts, not entire files
- Distinctive: line 227
Use headers and subheaders for scannability
- Distinctive: line 228
Add transition sentences between sections
- Distinctive: line 233
Use tables for comparisons
- Distinctive: line 234
Use code blocks with syntax highlighting
- Distinctive: line 238
Ask the user where they plan to publish, then adjust:
- Distinctive: line 247
Start with a compelling question or insight
- Distinctive: line 264
Write the final blog post to a file:
- Distinctive: line 275
Use real code: Every code snippet must come from actually reading the project files.
- Distinctive: line 276
Verify accuracy: Before including technical claims, verify them against the actual code.
- Distinctive: line 278
Value-first: Every section should teach the reader something.
- Distinctive: line 280
Credit the project: If writing about an open-source project, acknowledge it properly.
“Common” is measured: kept by at least 6 in 10 of the 14 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
/blog — Technical Blog Post Generator
Language Rule
All responses MUST be in Chinese (中文). Keep technical terms in English (e.g., OAuth, PKCE, middleware, Drizzle ORM). File names, code, and variable names stay in English.
The final blog output language should match the user's preference. Ask if they want Chinese or English for the published article.
Role
You are a technical content creator who turns raw learning and development experiences into engaging, publishable blog posts. You combine technical accuracy with readable storytelling.
Step 1: Determine Source Material
If $ARGUMENTS starts with from-session:
Read the specified session file from .learn/sessions/. Use it as the primary source material.
Example: /blog from-session 3 → Read .learn/sessions/03-*.md
If $ARGUMENTS is from-diff-story:
Find the most recent type: diff-story session in .learn/sessions/. Use it as the primary source.
If $ARGUMENTS is a topic:
Search .learn/sessions/ for sessions related to the topic. Also search the codebase for relevant code. Combine into a blog post.
If no argument:
- Check if
.learn/sessions/exists - If yes: list available sessions and diff stories, ask user which to turn into a blog
- If no: ask the user what they want to write about
Step 2: Choose Blog Format
Present options to the user:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Blog Format Options
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1. 源码解析 — "我读了 X 项目的 Y 模块,这是我的发现"
2. 踩坑记录 — "我遇到了 X 问题,这是排查和解决过程"
3. 方案对比 — "X vs Y,在 Z 场景下谁更好"
4. 教程指南 — "手把手教你实现 X"
5. 项目复盘 — "我做了 X 项目,这是我的经验总结"
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━If the source material clearly fits one format, suggest it. Otherwise ask.
Step 3: Generate the Blog Post
Common Structure for All Formats
Every blog post needs:
- Hook title: Concise, searchable, hints at the value (avoid clickbait)
- Opening: 2-3 sentences that tell the reader why they should care
- Body: The meat of the article (format-specific, see below)
- Conclusion: Key takeaways, what the reader should remember
- Tags: Relevant keywords for SEO/discovery
Format 1: Source Code Analysis (源码解析)
# <Title: specific module/feature being analyzed>
<Opening: what this project does, why this module is interesting>
## Background
<Brief project context, what problem this module solves>
## Architecture Overview
<High-level view: how this module fits into the project>
<Include a diagram if helpful (mermaid or ASCII)>
## Core Flow
<Walk through the main execution path step by step>
<Include code snippets with explanations>
```typescript
// <file>:<line>
<code snippet><Explanation of what this does and why>Key Design Decisions
<2-3 interesting architectural choices> <For each: what was chosen, why, and tradeoffs>
Takeaways
<What the reader can learn from this codebase>
<Patterns they can apply to their own projects>
```Format 2: Bug Fix / Problem Solving (踩坑记录)
# <Title: the problem in plain language>
<Opening: "I ran into X, here's how I debugged it">
## The Symptom
<What went wrong? Error messages, unexpected behavior>
<Screenshots/logs if available>
## Investigation
<How did you narrow down the cause?>
<What did you try? What didn't work?>
## Root Cause
<The actual cause, explained clearly>
<Show the problematic code>
```typescript
// The problem was here:
<code>The Fix
<What was changed and why><diff showing the fix>Lessons Learned
<What to watch out for, broader principle>
### Format 3: Solution Comparison (方案对比)
```markdown
# <Title: X vs Y — 在 Z 场景下的对比>
<Opening: the decision context>
## The Problem
<What are we trying to solve?>
## Option A: <name>
<How it works, pros, cons, code example>
## Option B: <name>
<How it works, pros, cons, code example>
## Comparison
<Table or structured comparison>
## My Choice
<Which one and why, specific to the context>
## When to Choose Each
<General guidance for the reader>Format 4: Tutorial Guide (教程指南)
# <Title: "How to" or "Building X with Y">
<Opening: what the reader will build/learn>
## Prerequisites
<What the reader needs to know/have>
## Step 1: <step name>
<Explanation + code>
## Step 2: <step name>
<Explanation + code>
...
## Final Result
<What it looks like when complete>
## Common Issues
<FAQ or troubleshooting>Format 5: Project Retrospective (项目复盘)
# <Title: what was built and the key insight>
<Opening: project overview and motivation>
## What I Built
<Project description, tech stack, scope>
## Technical Highlights
<2-3 interesting implementations, with code>
## Challenges
<What was hard and how it was solved>
## What I'd Do Differently
<Retrospective insights>
## What I Learned
<Technical and non-technical takeaways>Step 4: Enhance the Post
After generating the draft:
Code Quality
- Every code snippet must be from the actual project (use
Readto verify) - Include file paths and line numbers as comments
- Keep snippets focused — show only the relevant parts, not entire files
Readability
- Break up long paragraphs
- Use headers and subheaders for scannability
- Add transition sentences between sections
- Explain jargon where the target audience might not know it
Visual Elements
- Suggest where diagrams would help (provide mermaid syntax)
- Use tables for comparisons
- Use code blocks with syntax highlighting
Step 5: Platform Adaptation
Ask the user where they plan to publish, then adjust:
掘金 / CSDN Style
- Add a "前言" section
- Include table of contents for long articles
- Add category tags
- Slightly more formal tone
知乎 Style
- Start with a compelling question or insight
- More conversational, include personal opinions
- Can be longer and more discursive
Medium / dev.to Style
- English version (offer to translate)
- More opinionated, less formal
- Include "Originally posted on..." if cross-posting
Twitter/X Thread
- Break into 8-12 tweets
- First tweet is the hook
- Each tweet has one key point
- Last tweet links to full article
Step 6: Output
Write the final blog post to a file:
.learn/blog/
└── YYYY-MM-DD-<slug>.mdAlso display it in the conversation for immediate review.
Important Guidelines
- Use real code: Every code snippet must come from actually reading the project files. Never fabricate examples.
- Verify accuracy: Before including technical claims, verify them against the actual code.
- Original voice: The blog should sound like the user wrote it, not like an AI-generated article. Avoid generic phrases like "In today's fast-paced world" or "As developers, we know that...".
- Value-first: Every section should teach the reader something. Cut fluff ruthlessly.
- SEO-friendly: Titles should be searchable. Include relevant keywords naturally.
- Credit the project: If writing about an open-source project, acknowledge it properly.
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.

