Skip to content
Back to skills

Blog Post

ASecurity

Create a blog post about your work with guided prompts and templates

  • 58 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added February 8, 2026
documentationrustgobashgitapi

Works with

  • api

Security analysis

A100/100

Scanned February 12, 2026

npx -y skills add laurigates/claude-plugins --skill blog-post --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Blog Post?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Blog Post
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/laurigates-blog-post/badge)](https://www.skillsdirectory.com/skills/laurigates-blog-post)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
model: haiku
description: Create a blog post about your work with guided prompts and templates
args: [type] [--project <name>] [--title <title>]
allowed-tools: Read, Write, Edit, Grep, Glob, Bash(hugo *), Bash(date *), TodoWrite, AskUserQuestion
argument-hint: quick-update | project-update | retrospective | tutorial | deep-dive
created: 2026-01-10
modified: 2026-01-10
reviewed: 2026-02-08
name: blog-post
---

# /blog:post

Create a blog post about your work with minimal friction. Gathers context automatically and provides structured templates to reduce blank-page anxiety.

## Quick Start

Just run `/blog:post` - you'll be guided through the rest.

Or specify directly:
- `/blog:post quick-update` - Fast capture of small wins
- `/blog:post project-update --project my-project` - Document progress
- `/blog:post retrospective` - Look back at work done
- `/blog:post tutorial` - Teach something you learned
- `/blog:post deep-dive` - Explain a complex topic

## Phase 1: Context Gathering

### 1.1 Detect Current Project

```bash
# Get git remote name (often matches project name)
git remote get-url origin 2>/dev/null | sed 's/.*\///' | sed 's/\.git$//'
```

```bash
# Get current directory name as fallback
basename "$(pwd)"
```

```bash
# Check for package.json project name
jq -r '.name // empty' package.json 2>/dev/null
```

### 1.2 Gather Recent Work Context

```bash
# Recent commits with full messages (last 7 days)
git log --since="7 days ago" --author="$(git config user.name)" --format="%h %s" 2>/dev/null | head -10
```

```bash
# Detailed commit messages for context
git log --since="7 days ago" --author="$(git config user.name)" --format="### %s%n%b" 2>/dev/null | head -50
```

```bash
# Files changed recently
git diff --stat HEAD~5 2>/dev/null | tail -10
```

```bash
# Current branch (often indicates feature/task)
git branch --show-current 2>/dev/null
```

```bash
# Tags or milestones reached
git tag --sort=-creatordate | head -3
```

### 1.3 Use Git Context for Post Content

When drafting, pull directly from commits:

| Git Data | Use In Post |
|----------|-------------|
| Commit subjects | Bullet points for "Changes" section |
| Commit bodies | Detail for "What I Did" section |
| Branch name | Context for what feature/task |
| Files changed | Scope of work |
| Diff stats | Metrics (lines added/removed) |

**Example extraction:**
```bash
# Get commit subjects as bullet points
git log --since="7 days ago" --format="- %s" | head -5
```

Output becomes:
```markdown
## Changes

- Fixed auth token refresh logic
- Added retry mechanism for API calls
- Updated error handling in login flow
```

### 1.4 Check for Existing Blog Directory

```bash
# Look for common blog locations
ls -d blog/ posts/ content/blog/ content/posts/ _posts/ 2>/dev/null | head -1
```

If none found, suggest creating `blog/` in project root or a central location.

## Phase 2: Post Type Selection

If type not provided as argument, ask:

```
question: "What kind of post do you want to write?"
options:
  - label: "Quick Update (5-15 min)"
    description: "Captured something small, daily log entry"
  - label: "Project Update (20-45 min)"
    description: "Milestone reached, feature complete, notable progress"
  - label: "Retrospective (45-90 min)"
    description: "Looking back at a project or time period"
  - label: "Tutorial (1-3 hours)"
    description: "Teaching how to do something"
  - label: "Deep Dive (2-5 hours)"
    description: "Explaining complex concepts or decisions"
```

## Phase 3: Quick Prompts

Based on post type, ask minimal questions to get started.

### For Quick Update

```
question: "What did you just do? (one sentence)"
```

### For Project Update

```
question: "What's the main thing you accomplished?"
```

```
question: "What was tricky or interesting about it?"
```

### For Retrospective

```
question: "What project or time period are you reflecting on?"
```

```
question: "What's the one thing you want to remember from this?"
```

### For Tutorial

```
question: "What are you teaching someone to do?"
```

```
question: "What made you want to document this?"
```

### For Deep Dive

```
question: "What topic or question are you exploring?"
```

```
question: "What's the key insight you want to share?"
```

## Phase 3.5: Human Factor Prompts (Optional)

After gathering the core content, optionally ask about the experience. Use AskUserQuestion with multiple choice for speed.

### Energy & Focus

```
question: "How was your energy during this work?"
options:
  - "In the zone / flow state"
  - "Steady and focused"
  - "Scattered but productive"
  - "Grinding through it"
  - "Skip"
```

### Emotional Experience

```
question: "How did this feel?"
options:
  - "Satisfying - solved a real problem"
  - "Frustrating - harder than expected"
  - "Tedious - just had to be done"
  - "Exciting - learned something new"
  - "Anxious - wasn't sure it would work"
  - "Relieved - finally done"
  - "Skip"
```

### Surprises

```
question: "Anything unexpected?"
options:
  - "Took longer than expected"
  - "Easier than I thought"
  - "Found a better approach midway"
  - "Discovered a related issue"
  - "Nothing surprising"
  - "Skip"
```

### Hindsight

```
question: "Would you approach it the same way again?"
options:
  - "Yes, worked well"
  - "Mostly, with minor tweaks"
  - "No, I'd do it differently"
  - "Too early to tell"
  - "Skip"
```

### When to Ask

| Post Type | Ask Human Factor? |
|-----------|-------------------|
| Quick Update | Skip unless user opts in |
| Project Update | Ask 1-2 relevant questions |
| Retrospective | Ask all - this is about reflection |
| Tutorial | Ask about "what surprised you" |
| Deep Dive | Ask about confidence/energy |

### Adding to Post

If user provides human factor responses, add a `## Reflection` section:

```markdown
## Reflection

- **Energy**: In the zone
- **Felt**: Satisfying - solved a real problem
- **Surprise**: Easier than expected
```

Keep it brief. One line per response. Skip if all answers were "Skip".

## Phase 4: Generate Post

### 4.1 Determine File Location

If blog directory exists, use it. Otherwise:

```
question: "Where should I save blog posts?"
options:
  - label: "Create blog/ in this project"
    description: "Keep posts with the project"
  - label: "Use ~/blog/"
    description: "Central blog location"
  - label: "Specify custom path"
    description: "You tell me where"
```

### 4.2 Generate Filename

Format: `YYYY-MM-DD-<slugified-title>.md`

```bash
date +%Y-%m-%d
```

### 4.3 Create Post File

Use the appropriate template from the blog-post-writing skill.

**Pre-fill metadata:**
- `date`: Today's date
- `project`: Detected or specified project name
- `status`: draft
- `type`: Selected post type
- `title`: From user input

**Pre-fill content sections:**
- Include recent git context as comments/prompts
- Add placeholder text with guiding questions
- Mark optional sections clearly

### 4.4 Example Generated Quick Update

```markdown
---
title: "<user's one-sentence answer>"
date: 2026-01-10
type: quick-update
project: <detected-project>
tags: []
status: draft
name: blog-post
---

# <title>

<Expand on what you did here - or leave the one-liner if that's enough>

## What Changed

<!-- Based on recent commits, you might want to mention: -->
<!-- - commit message 1 -->
<!-- - commit message 2 -->

-

## Why It Matters

<!-- Optional - skip if this is purely a log entry -->

---
*Time spent: ~Xh | Difficulty: low/medium/high*
```

## Phase 5: Writing Assistance

After creating the file, offer:

```
question: "Post created! What would you like to do?"
options:
  - label: "Help me write it"
    description: "Walk through each section together"
  - label: "I'll write it myself"
    description: "Just show me the file path"
  - label: "Add more context"
    description: "Pull in more git history, related files, etc."
```

### If "Help me write it":

Walk through each section of the template:
1. Read the current section
2. Ask a focused question about what to write
3. Draft content based on their answer
4. Move to next section
5. Repeat until complete

### If "Add more context":

```bash
# More detailed git history
git log --since="30 days ago" --oneline --author="$(git config user.name)" 2>/dev/null
```

```bash
# Related files by pattern
fd -e md -e txt . | head -20
```

Offer to include relevant snippets as reference.

## Phase 6: Finalize

### 6.1 Review Checklist

Present to user:
```
Post Review:
- [ ] Title is clear and descriptive
- [ ] Content captures what you want to remember
- [ ] Tags added (if using tags)
- [ ] Next steps or follow-up noted (if applicable)
```

### 6.2 Status Update

```
question: "Is this post ready to publish?"
options:
  - label: "Keep as draft"
    description: "I'll come back to polish it"
  - label: "Mark as published"
    description: "It's ready to share"
```

### 6.3 Summary

```
Blog post created!

File: <full-path-to-file>
Type: <post-type>
Project: <project-name>
Status: <draft|published>

Quick actions:
- Edit: open <filepath>
- View recent posts: ls blog/posts/
- Create another: /blog:post
```

## Shortcuts

For power users who want to skip prompts:

```bash
# Quick update with everything specified
/blog:post quick-update --project my-app --title "Fixed auth bug"

# Create and open in editor
/blog:post project-update --edit
```

## Tips

- **Don't overthink it**: Quick updates can be 2-3 sentences
- **Imperfect is fine**: Draft status exists for a reason
- **Context helps future you**: Include project name and date always
- **Screenshots welcome**: Add to blog/assets/ and reference
- **Link to commits**: `git log --oneline -1` gives you a reference

## Error Handling

- **No git repo**: Use directory name as project, skip commit context
- **No blog directory**: Offer to create one
- **Existing file**: Append timestamp or ask to overwrite

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…