Help us improve
Share bugs, ideas, or general feedback.
From note
Use when user wants to capture learnings, document insights, or create a draft blog post from their current project
npx claudepluginhub builtby-win/skills --plugin noteHow this skill is triggered — by the user, by Claude, or both
Slash command
/note:create-noteThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Create a draft blog post from learnings in any project, saved to your blog.
Generates Markdown blog posts about recent work using git history, project detection, and type-specific templates (quick-update, project-update, retrospective, tutorial, deep-dive) with guided prompts.
Generates Markdown blog post drafts from recent git commits, ctx status, learnings, decisions, and journals. Use for documenting project progress and sharing development experiences.
Accepts PRs, git refs, marketing briefs, or freeform text as input and generates a structured, SEO-optimized blog post with discovery, research, and outline phases.
Share bugs, ideas, or general feedback.
Create a draft blog post from learnings in any project, saved to your blog.
/note or wants to document somethingThis skill requires BLOG_CONTENT_DIR to be set in your CLAUDE.md:
## Blog Configuration
BLOG_CONTENT_DIR=/path/to/your/blog/content/directory
Example: BLOG_CONTENT_DIR=/Users/you/portfolio/src/content/blog
If not configured: Ask the user where their blog markdown files should be saved before proceeding.
First, check if BLOG_CONTENT_DIR is set in the project's or user's CLAUDE.md.
If NOT set, ask the user:
Where should blog posts be saved?
Please provide the absolute path to your blog content directory
(e.g., /Users/you/site/content/blog)
You can also add this to your CLAUDE.md to skip this prompt:
BLOG_CONTENT_DIR=/your/path/here
Store their answer and use it for the rest of the session.
Ask the user:
Identify the current project to tag the post:
# Get project name from current directory
basename $(pwd)
# Or from git remote
git remote get-url origin 2>/dev/null | sed 's/.*\///' | sed 's/\.git$//'
Convert the title to a URL-friendly slug:
Example: "How to use Astro Content Collections" -> astro-content-collections
Create the file at:
{BLOG_CONTENT_DIR}/{slug}.md
Template:
---
title: "{title}"
date: {YYYY-MM-DD}
description: "{description}"
tags: ["{project-name}", ...other-tags]
draft: true
---
{User's content here}
{Any code snippets with proper language fencing}
{Context about why this is interesting/useful}
Show the user:
Created draft: {slug}.md
Title: {title}
Tags: {tags}
Location: {BLOG_CONTENT_DIR}/{slug}.md
Would you like to commit this draft? (y/n)
If yes, commit to the blog repo:
cd {BLOG_CONTENT_DIR}
git add {slug}.md
git commit -m "draft: {title}"
Required fields:
title (string) - Post titledate (date) - YYYY-MM-DD formatdraft (boolean) - Always true for new notesOptional fields:
description (string) - Brief summarytags (string[]) - Array of tagsUser is working on import-magic and says /note:
> What did you learn?
"How to handle ESM vs CommonJS imports dynamically"
> Brief description?
"A technique for detecting and handling both module systems"
> Any code to include?
[user pastes code]
> Tags? (suggesting: import-magic, javascript)
"javascript, esm, commonjs"
Creates {BLOG_CONTENT_DIR}/esm-commonjs-dynamic-imports.md:
---
title: "How to handle ESM vs CommonJS imports dynamically"
date: 2025-12-31
description: "A technique for detecting and handling both module systems"
tags: ["import-magic", "javascript", "esm", "commonjs"]
draft: true
---
[Content here...]
draft: true - use /blog from portfolio to publish/blog