write-blog

A guided writing tool for adding a blog post to MemMachine's website, which is built with Hugo, a static-site generator.

In plain words
What is it for?
Use it to collect post metadata, create the expected folder and frontmatter, add an image placeholder, and verify the site build.
Why use it?
It prevents common publishing mistakes such as using the wrong folder, missing required post details, or setting a future date that hides the post during a normal build.

Skill for Claude CodeCodex

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add skills/memmachine/memmachine.github.io/write-blog
Any agent
npx skills add MemMachine/memmachine.github.io --skill write-blog
Clone the repo
git clone --depth 1 https://github.com/MemMachine/memmachine.github.io

Made for: Claude Code, Codex.

Per session 40 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,444 The whole file, excluding the scripts and references it only reads on demand.
Security scan C 1 finding. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00040 $0.01444
Opus 5 $0.00020 $0.00722
Sonnet 5 $0.00008 $0.00289
Haiku 4.5 $0.00004 $0.00144

Measured yesterday against content hash a103a7ab22da, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade C, and why

write-blog scanned grade C with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Hidden instructionshighPrompt injection

Directives inside HTML comments, invisible characters or bidirectional overrides are read by the model and not by the person reviewing the file.

<!-- Replace this comment with your blog post content. BEFORE PUBLISHING: 1. Confirm the date above is today or in the past — Hugo silently hides future-dated posts 2. Add featured_image.png to this directory (same folde
.claude/skills/write-blog/SKILL.md · 155 lines

How it starts

The opening of the file, as written. The whole thing — 155 lines — stays where its author put it; the contents beside it link to each section on GitHub.

/write-blog

Create a new blog post for the MemMachine website (memmachine.github.io) with the correct directory structure, complete YAML frontmatter, and build verification.

Usage

/write-blog                      # interactive — prompts for all fields
/write-blog "Post Title"         # pre-fill the title, prompt for remaining fields

What You Must Do When Invoked

Follow these steps in order. Do not skip steps.

Step 1 — Collect post metadata

If any of the following are not provided in the invocation arguments, ask for them now (you may ask for all missing fields in a single message):

Field Required Notes
title Yes Full post title (e.g., "MemMachine Now Supports LangGraph")
author Yes Author's full name as it should appear on the post
description Yes One sentence for SEO and social preview cards
tags Yes Comma-separated list (e.g., "AI Agent, Integration, LLM"). Always include at least one.
date Yes Publish date in YYYY-MM-DD format. Defaults to today if not provided. Must not be in the future — Hugo silently suppresses future-dated posts at build time unless --buildFuture is passed. If the post won't appear, check the date first.
featured No Should this post appear in the homepage carousel? (add tag "featured")

Step 2 — Derive the slug and path

From the title:

  1. Lowercase the entire title.
  2. Replace spaces and any non-alphanumeric characters with hyphens.
  3. Collapse multiple consecutive hyphens into one.
  4. Strip leading and trailing hyphens.

From the date, extract YYYY and MM (zero-padded).

Construct the directory path:

content/en/blog/{YYYY}/{MM}/{slug}/

Example: title "MemMachine Joins NVIDIA NeMo Toolkit", date 2026-04-27:

  • slug: memmachine-joins-nvidia-nemo-toolkit
  • path: content/en/blog/2026/04/memmachine-joins-nvidia-nemo-toolkit/

Step 3 — Format the date field

Convert the date to RFC 3339 format with a timezone offset. Use Pacific Time as default if not specified:

YYYY-MM-DDTHH:MM:SS-08:00   # Pacific Standard Time
YYYY-MM-DDTHH:MM:SS-07:00   # Pacific Daylight Time (summer)

Default time: 09:00:00 (9 AM).

Read the full file on GitHub · 155 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. yesterday First seen · 155 lines · 40 tokens per session scan C a103a7ab22da

Subscribe to this mod's changes

write-blog is a skill published in the GitHub repository MemMachine/memmachine.github.io (2 stars, last pushed 1mo ago), licensed Apache-2.0. It adds 40 tokens to every session and 1,444 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it C with 1 finding (hidden instructions). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

Other skills, from other repositories

systematic-debugging

Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes.

obra/superpowers · 21 tokens

next-cache-components-adoption

Turn on Cache Components in a Next.js app and resolve the blocking routes it surfaces. Use when the user wants to enable, adopt, or migrate to Cache Components, flip the cacheComponents flag, work through a flood of blocking-prerender / instant validation errors, run the cache-components-instant-false codemod, or…

vercel/next.js · 95 tokens

babysit-pr

Babysit a GitHub pull request after creation by continuously polling review comments, CI checks/workflow runs, and mergeability state until the PR is merged/closed or user help is required. Diagnose failures, retry likely flaky failures up to 3 times, auto-fix/push branch-related issues when appropriate, and keep…

openai/codex · 114 tokens

imagegen

Generate or edit raster images when the task benefits from AI-created bitmap visuals such as photos, illustrations, textures, sprites, mockups, or transparent-background cutouts. Use when Codex should create a brand-new image, transform an existing image, or derive visual variants from references, and the output…

openai/codex · 113 tokens

cpu-profile-analysis

Analyze V8/Chrome CPU profiles (.cpuprofile) and DevTools trace files (Trace-.json). Use when: profiling performance, investigating slow functions, comparing code paths, finding bottlenecks, analyzing timeToRequest, understanding call trees from sampling profiler data, analyzing layout/paint/rendering, investigating…

microsoft/vscode · 71 tokens

next-cache-components-optimizer

Drive a Next.js route to instant navigation by setting up an agentic loop, under Cache Components / PPR, on initial load (hard navigation) and client-side navigation (soft navigation). Encode the goal as a failing @next/playwright instant() e2e and work it to green, one verified route at a time; the shipped test then…

vercel/next.js · 170 tokens