Creates conversational blog posts with proper Hugo frontmatter and SEO optimization. Use when the user wants to write a blog post, draft blog content, or add an article...
Creates blog posts with conversational, personal tone using proper Hugo page bundles and SEO/AEO optimization.
Activate when users:
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 |
Ask the user conversationally:
For curated/embed types, also ask: 5. "Who created the original content? (attribution)" 6. "What's the source URL?"
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:
.agents/style-docs/blog-style.jsoncontent/blog/posts/YYYY-MM-DD-slug/index.md.agents/drafts/blog-{slug}.review.jsonExample 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
...
After generation, the user should:
Show the user:
draft: trueNever 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:
draft: true from the content fileapprovedRun validation script to check for issues:
./scripts/validate-blog-post.sh content/blog/posts/YYYY-MM-DD-slug
Validation checks:
Record feedback to improve future content. The style system learns from:
Style docs location: .agents/style-docs/blog-style.json
List all pending drafts:
bun run src/agents/cli/agent-cli.ts drafts --type blog
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.
Title: What would you like to call it? Something like "My Experience with Claude Code" or something more specific?
Content Type: This sounds like original content - your own thoughts and analysis. Does that sound right?
Summary: Can you give me a 1-2 sentence summary? (This will appear in search results and social shares)
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.
| 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 |