Claude-skill-registry create-note
Use when user wants to capture learnings, document insights, or create a draft blog post from their current project
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/create-note" ~/.claude/skills/majiayu000-claude-skill-registry-create-note && rm -rf "$T"
manifest:
skills/data/create-note/SKILL.mdsource content
Create Note - Draft Blog Post
Create a draft blog post from learnings in any project, saved to your blog.
When to Use
- User says
or wants to document something/note - User discovered something interesting while coding
- User solved a tricky problem worth sharing
- User wants to capture context for a future blog post
Configuration
This 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.
Workflow
Step 0: Check Configuration
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.
Step 1: Gather Information
Ask the user:
- What did you learn or want to document? (becomes the title)
- Can you give a brief description? (1-2 sentences for the description field)
- Any code snippets or examples to include? (optional)
- What tags apply? (suggest based on project context)
Step 2: Determine Project Context
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$//'
Step 3: Generate Slug
Convert the title to a URL-friendly slug:
- Lowercase
- Replace spaces with hyphens
- Remove special characters
- Keep it concise (3-5 words ideal)
Example: "How to use Astro Content Collections" ->
astro-content-collections
Step 4: Create Blog Post
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}
Step 5: Confirm and Optionally Commit
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}"
Frontmatter Schema
Required fields:
(string) - Post titletitle
(date) - YYYY-MM-DD formatdate
(boolean) - Alwaysdraft
for new notestrue
Optional fields:
(string) - Brief summarydescription
(string[]) - Array of tagstags
Example
User 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...]
Notes
- Always set
- usedraft: true
from portfolio to publish/blog - Include the source project as a tag for easy filtering
- Keep the initial draft concise - can flesh out later with
/blog