blog
npx skills add https://github.com/anomredux/skills --skill blog
Agent 安装分布
Skill 文档
Blog Post Writer
Overview
Transform technical content into a polished blog post for senior engineers. Accept input as a file or plain text, ask the user to confirm category, then write the post following the category template.
Invocation
Three ways to provide source content:
/blog @path/to/source.md # markdown file
/blog @path/to/notes.txt # text file
/blog <paste plain text here> # plain text directly
$ARGUMENTS may contain a file path or plain text. Determine which:
- If it looks like a file path (contains
/or.mdor.txt), read the file. - Otherwise, treat
$ARGUMENTSitself as the source content.
Workflow
digraph blog_post {
"Read source file" [shape=box];
"Analyze content" [shape=box];
"Ask category" [shape=box];
"Gap analysis" [shape=box];
"Gaps found?" [shape=diamond];
"Ask user to fill gaps" [shape=box];
"Sufficient?" [shape=diamond];
"Write draft" [shape=box];
"Self-review" [shape=box];
"All rules pass?" [shape=diamond];
"Fix violations" [shape=box];
"Save .md file" [shape=box];
"Read source file" -> "Analyze content";
"Analyze content" -> "Ask category";
"Ask category" -> "Gap analysis";
"Gap analysis" -> "Gaps found?";
"Gaps found?" -> "Write draft" [label="no"];
"Gaps found?" -> "Ask user to fill gaps" [label="yes"];
"Ask user to fill gaps" -> "Sufficient?";
"Sufficient?" -> "Ask user to fill gaps" [label="no, ask again"];
"Sufficient?" -> "Write draft" [label="yes"];
"Write draft" -> "Self-review";
"Self-review" -> "All rules pass?" ;
"All rules pass?" -> "Fix violations" [label="no"];
"Fix violations" -> "Self-review";
"All rules pass?" -> "Save .md file" [label="yes"];
}
- Read the source content from
$ARGUMENTS(file path â read file; plain text â use directly) - Analyze content: identify language, key topics, available data
- Ask user to confirm category (case / study / guide) via AskUserQuestion â suggest your best guess as the first option
- Gap analysis â compare source content against the chosen category template. Identify which sections lack sufficient information to write a useful post.
- Fill gaps â if gaps exist, ask the user one question at a time via AskUserQuestion until every template section has enough material. Use multiple choice when possible. Do NOT proceed to writing until the content is sufficient.
- Write draft â write the post following all rules in the Iron Rules section, incorporating both the source file and the user’s answers
- Self-review â review the draft against the Self-Review Checklist below. Do NOT show the draft to the user yet.
- Fix & repeat â if any checklist item fails, fix the violation and re-review. Repeat until every item passes.
- Save the final post to user-specified path, or default:
blog/posts/YYYY-MM-DD-<slug>.md
Self-Review Checklist
After writing the draft, check every item below. If any item fails, fix it and re-check the full list.
Content Integrity:
- No fabricated content â every claim traces back to the source or user’s answers
- Code blocks are identical to the source
- Post length is proportional to source length (no padding)
Writing Style (Strunk):
- Active voice throughout â no “was implemented”, “was observed”
- Positive form â no “don’t forget to”, “it is not uncommon”
- Specific and concrete â no “significantly improved”, “much faster”
- No needless words â every sentence earns its place
- Emphatic word at end of each key sentence
- One paragraph, one topic â no paragraph covers two subjects
- Topic sentence leads each paragraph
- Parallel structure in all lists â items share the same grammatical form
- Related words kept together â modifiers next to what they modify
- No loose sentence chains â no run-on compound sentences
- Consistent tense within each section
Banned Patterns:
- Zero AI puffery (groundbreaking, seamless, pivotal, vital, testament)
- Zero overused AI words (delve, leverage, multifaceted, foster, realm, tapestry)
- Zero empty -ing phrases (ensuring reliability, showcasing features)
- No filler intros (“In recent years…”, “As we all know…”)
- No restating conclusion
- No puffery-as-emphasis (non-negotiable, crucial, indispensable)
- No promotional adjectives (robust, powerful, state-of-the-art)
- No formatting overuse (excessive bullets, bold on every line, emoji)
Structure:
- Frontmatter matches the spec exactly (no extra fields)
- Template sections are all present (or intentionally skipped by user)
- Hook is specific and pulls the reader in
- TL;DR is 3 bullets max
- Section lengths vary (not all the same)
Gap Analysis Guide
After choosing the category, map the source content to each template section. Flag sections where:
- No data at all â template section has zero corresponding content in source
- Too vague â source mentions something but lacks specifics (e.g., “performance improved” without numbers)
- Missing context â reader would ask “why?” or “compared to what?” and the source doesn’t answer
Ask the user to fill these gaps. One question at a time. Prefer multiple choice. Example:
“The Results section needs numbers. Do you have benchmark data?”
- Yes (I’ll provide it)
- Not yet measured (skip Results section)
- Only rough estimates
If the user says to skip a section, omit it from the final post rather than writing filler.
Iron Rules
These are non-negotiable. Violating any one of these means the post needs to be rewritten.
Content Integrity
- Never fabricate. Use only what exists in the source. If the source says “benchmark: p50 3ms”, write about that result. Do not invent context, backstory, or details.
- Preserve code blocks exactly. No renaming variables, no adding lines, no removing lines. Format/comment cleanup only.
- Do not over-expand. A 30-line source does not become a 120-line post. Add structure and connective tissue, not padding.
Writing Style
Follow Strunk’s principles:
- Active voice. “We reduced latency” not “Latency was reduced.”
- Omit needless words. Cut every sentence that repeats what was already said.
- Specific over vague. “p99 dropped from 45ms to 8ms” not “performance improved significantly.”
- Positive form. “Use sync.Pool” not “Don’t forget to consider sync.Pool.”
- Place emphasis at end of sentence. The important word goes last.
- One paragraph, one topic. A paragraph that covers both “why we chose Go” and “how batching works” must be split.
- Topic sentence first. Start each paragraph with its main point. Supporting details follow.
- Parallel structure. List items must share the same grammatical form. All nouns, all verbs, or all imperative â pick one and hold it.
- Keep related words together. Place modifiers next to what they modify. “A server written in Go that handles 4200 req/s” not “A server that handles 4200 req/s written in Go.”
- No loose sentence chains. Avoid run-on compound sentences. Break into shorter sentences with varied structure.
- One tense per section. Pick past or present and stick with it within a section. Do not mix.
Banned Patterns
| Pattern | Example | Why |
|---|---|---|
| AI puffery | groundbreaking, seamless, cutting-edge, pivotal, vital, testament | Empty hype |
| Overused AI words | delve, leverage, multifaceted, foster, realm, tapestry | Statistically generic |
| Empty -ing phrases | ensuring reliability, showcasing features, highlighting capabilities | Says nothing concrete |
| Filler intros | “In recent years, AI has…”, “As we all know…” | Wastes reader’s time |
| Conclusion that repeats | “In conclusion, we showed that…” | Reader already read it |
| Puffery disguised as emphasis | non-negotiable, vital, crucial, indispensable | Use specifics instead |
| Promotional adjectives | robust, powerful, state-of-the-art | Not your job to sell |
| Formatting overuse | Excessive bullets, bold on every line, emoji | Let the content carry weight |
Tone
Write as a senior engineer sharing with peers. Not a blog marketer, not a professor, not a salesperson. Assume the reader is smart and busy.
Frontmatter
Always generate this exact structure:
---
title: "<concise, descriptive title>"
date: YYYY-MM-DD
description: "<one sentence summary â what this post delivers to the reader>"
category: case | study | guide
tags:
- tag1
- tag2
- tag3
draft: true
featured: false
---
- If the source has frontmatter, preserve and fill gaps
- If not, generate from content
- Do not add fields not listed above (no
author, noslug, noimage) - Match the language of the source content
Category Templates
case â Experience / Case Study
“We did X, and here’s what happened.” Implementation stories, migrations, incident response, performance improvements.
# [Title]
[Hook â 1-2 sentences. An unexpected result, a hard constraint, or a specific problem that pulls the reader in.]
## TL;DR
- 3 bullets max. Busy reader stops here if not relevant.
## Problem & Constraints
- The specific problem being solved
- Real constraints (latency budget, team size, existing system, etc.)
## Approach & Trade-offs
- What approach was chosen and what alternatives were considered
- Why this one won (concrete trade-off reasoning)
## Implementation
- Key code with brief explanation
- Design decisions that matter
## Results
- Benchmarks, metrics, before/after (use tables when comparing)
## Lessons Learned
- What actually surprised you
- What you would do differently
## Takeaways
- Actionable insights the reader can apply to their own work
study â Learning / Deep Dive
“I dug into X, and here’s the core idea.” Paper reviews, new technology analysis, concept deep dives.
# [Title]
[Hook â What triggered this study, in 1-2 sentences.]
## TL;DR
- 3 bullets max.
## Core Idea
- The central concept, explained clearly
## Deep Dive
- Technical details, code/math/diagrams
## Practical Implications
- Why this matters for working engineers
## Critical Analysis
- Strengths, weaknesses, open questions
## Takeaways
- Key points + recommended resources (if any)
guide â How-to / Tutorial
“Here’s how to do X.” Environment setup, library usage, best practices â content the reader can follow along with.
# [Title]
[Hook â 1-2 sentences. What problem this guide solves and who it's for.]
## TL;DR
- 3 bullets max. What you'll be able to do after reading this.
## Prerequisites
- What the reader needs before starting (tools, versions, knowledge)
## Steps
- Step-by-step with code blocks
- Each step: what to do, why, and expected result
- Group related steps under subheadings if needed
## Troubleshooting
- Common errors and how to fix them
- Edge cases worth knowing
## Takeaways
- Summary of what was covered
- Next steps or further reading
Output Language
Match the source file’s language. Korean source â Korean post. English source â English post. Mixed â follow the dominant language.
Red Flags â Rewrite If You Catch Yourself Doing This
- Adding a “Conclusion” section that restates what was already said
- Writing 3 paragraphs where 3 sentences would do
- Inventing quotes, scenarios, or backstory not in the source
- Starting with “In the rapidly evolving world of…”
- Using more than 2 adjectives in a single sentence
- Every section having the same length (vary rhythm)