返回 Skill 列表
extension
分类: 营销与增长无需 API Key

create-blog

创建带有适当Hugo前导信息和SEO优化的对话式博客文章。当用户想要撰写博客文章、起草博客内容或添加文章时使用。支持四种内容类型(原创、精选、嵌入、项目),并通过语音学习保持一致的语气。

person作者: jakexiaohubgithub

Blog Post Creation Skill

Creates blog posts with conversational, personal tone using proper Hugo page bundles and SEO/AEO optimization.

When to Use

Activate when users:

  • Want to write or create a blog post
  • Ask to draft blog content
  • Need to add an article or entry to the blog
  • Request help with blog writing

Required Information

Gather through conversation before generating:

| Field | Description | Notes | |-------|-------------|-------| | Title | Blog post title | Clear, descriptive | | Content Type | One of: original, curated, embed, project | See types below | | Summary | 150-200 character description | For SEO/social |

Content Types

  • original - Original thoughts and analysis written by the author
  • curated - Collected resources with personal commentary (requires attribution, source_url)
  • embed - Embedded external content with commentary (requires attribution, source_url)
  • project - Project-based posts sharing work and learnings

Optional Information

  • Key Points - Main ideas to cover in the post
  • Tags - Categorization tags (array)
  • Categories - Blog categories (array)
  • Attribution - Required for curated/embed: original content creator
  • Source URL - Required for curated/embed: link to original source

Generation Process

Step 1: Gather Information

Ask the user conversationally:

  1. "What's the title of your blog post?"
  2. "What type of content is this?" (explain options if needed)
  3. "Can you give me a 1-2 sentence summary?"
  4. "What are the key points you want to cover?"

For curated/embed types, also ask: 5. "Who created the original content? (attribution)" 6. "What's the source URL?"

Step 2: Invoke Blog Agent

Run the TypeScript agent to generate the content bundle:

bun run src/agents/cli/agent-cli.ts blog \
  --title "{{title}}" \
  --type {{content_type}} \
  --summary "{{summary}}" \
  --tags "{{tags}}" \
  --key-points "{{key_points}}"

The agent will:

  1. Load voice learning patterns from style docs at .agents/style-docs/blog-style.json
  2. Generate Hugo content bundle at content/blog/posts/YYYY-MM-DD-slug/index.md
  3. Create image prompts (saved in bundle metadata)
  4. Create a draft review file at .agents/drafts/blog-{slug}.review.json
  5. Output the bundle path and preview

Example output:

--- Blog Agent ---

Generating blog post...

[SUCCESS] Blog post generated

Bundle path: content/blog/posts/2026-01-26-my-post/index.md

Frontmatter: { title: "My Post", draft: true, ... }

Image prompts: ["A professional photo of..."]

--- Content Preview ---

## Introduction
...

Step 3: User Review

After generation, the user should:

  1. Open the generated file at the bundle path
  2. Edit the content as needed (the draft is fully editable)
  3. Review the structure and tone

Show the user:

  • The bundle path for editing
  • A preview of the generated content
  • Remind them the draft is saved with draft: true

Step 4: Approval Workflow

Never auto-publish. When the user is satisfied with the draft:

Option A: Use the approve skill

/approve-blog {{slug}}

Option B: Use the CLI directly

bun run src/agents/cli/agent-cli.ts approve --type blog --slug {{slug}}

This will:

  1. Remove draft: true from the content file
  2. Update the review file status to approved
  3. The content is now ready for publishing

Step 5: Validate (Optional)

Run validation script to check for issues:

./scripts/validate-blog-post.sh content/blog/posts/YYYY-MM-DD-slug

Validation checks:

  • Required frontmatter fields present
  • No H1 headings in content body
  • Summary length 150-200 characters
  • Content type-specific requirements (attribution for curated/embed)
  • Image paths valid (if images included)

Voice Learning

Record feedback to improve future content. The style system learns from:

  • Positive feedback: "I love the personal stories"
  • Negative feedback: "This is too formal"

Style docs location: .agents/style-docs/blog-style.json

Draft Management

List all pending drafts:

bun run src/agents/cli/agent-cli.ts drafts --type blog

Example Interaction

User: I want to write a blog post about my experience with Claude Code

Assistant: Great! Let me gather some details for your blog post.

  1. Title: What would you like to call it? Something like "My Experience with Claude Code" or something more specific?

  2. Content Type: This sounds like original content - your own thoughts and analysis. Does that sound right?

  3. Summary: Can you give me a 1-2 sentence summary? (This will appear in search results and social shares)

  4. Key Points: What main points do you want to cover?


User: Title: "Why Claude Code Changed My Workflow" Original content Summary: "Claude Code fundamentally changed how I approach coding. Here's what I learned after 3 months of daily use." Key points: faster iteration, better code quality, learning new patterns

Assistant: I'll generate your blog post now.

bun run src/agents/cli/agent-cli.ts blog \
  --title "Why Claude Code Changed My Workflow" \
  --type original \
  --summary "Claude Code fundamentally changed how I approach coding. Here's what I learned after 3 months of daily use." \
  --key-points "faster iteration,better code quality,learning new patterns"

Your draft is ready at: content/blog/posts/2026-01-26-why-claude-code-changed-my-workflow/index.md

Please review the generated content and make any edits. When you're satisfied, run /approve-blog why-claude-code-changed-my-workflow to publish.

File Locations

| Resource | Path | |----------|------| | Blog posts | content/blog/posts/ | | Draft review files | .agents/drafts/ | | Style documentation | .agents/style-docs/blog-style.json | | Blog Agent | src/agents/blog/blog-agent.ts | | Validation script | scripts/validate-blog-post.sh | | Content types | data/content_types.yaml |