wcygan/wcygan.net · Archived

new-post

Scaffold a new MDX blog post for wcygan.net. Creates `src/posts/<slug>.mdx` with correct frontmatter and prepends a matching `<item>` to `public/rss.xml` so the two stay in sync. Use when the user asks to "add a blog post", "new post", "write a post", or similar.

First seen Jun 24, 2026

Installation

$ npx skills add wcygan/wcygan.net --skill new-post

Stronger alternatives

This repository is archived — consider an actively maintained alternative.

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from wcygan/wcygan.net.

npx skills add wcygan/wcygan.net

Browse all from wcygan/wcygan.net

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Also listed on

Alternate registries and mirrors of this skill.

Repository health

Default branch main
Open issues 0
Status Archived

Skill metadata

Parsed from SKILL.md frontmatter.

Declared agents claude-code

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 3,711 B
  • docs SUMMARY.md 279 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 1 installs

SKILL.md

new-post

Create a new blog post on wcygan.net by writing both the MDX file and the RSS entry in a single pass. The RSS feed is manually maintained (see project CLAUDE.md gotcha), so every post needs matching edits in two places.

Inputs to gather

Before writing anything, confirm with the user:

  1. Title — e.g. Really Good Software
  2. Description — one-line summary, shown in lists and RSS
  3. Tags — comma-separated, e.g. Programming, CLI, Productivity
  4. Slug (optional) — derived from the title if not given: lowercase, spaces → -, drop punctuation. Confirm the slug before writing.

The date is always today's date in the user's local timezone. Do not ask for the date.

Step 1 — Write src/posts/<slug>.mdx

Frontmatter shape (must match remark-mdx-frontmatter expectations — project CLAUDE.md gotcha #5):

---
title: <Title>
date: <Month D, YYYY>
description: <Description>
tags: [<Tag1>, <Tag2>, ...]
---

<body — start with a short intro paragraph, then H2 sections>

Notes:

  • date is a human-readable string like November 1, 2025 — not ISO. Match src/posts/really-good-software.mdx for the canonical shape.
  • tags is a YAML array of bare words (no quotes unless the tag has special chars).
  • Never use # (H1) inside the body. The post title is already rendered as H1 from frontmatter; body sections start at ##. ### for subsections.
  • Leave the body as a one-line TODO placeholder if the user hasn't provided content yet; they'll fill it in.
  • For prose, voice, markdown-usage, and essay-structure conventions, see [.claude/skills/wcygan-net-design/references/blog-prose.md](../wcygan-net-design/references/blog-prose.md). A fully-worked reference template lives at [templates/post.mdx](templates/post.mdx).

Step 2 — Prepend <item> to public/rss.xml

Insert the new item immediately after the <language>en-us/> line (i.e. as the first <item> in the feed, so the newest post is on top). Match the exact indentation and CDATA style of existing items:

    <item>
      <title><![CDATA[<Title>]]></title>
      <description><![CDATA[<Description>]]></description>
      <link>https://wcygan.net/<slug></link>
      <guid>https://wcygan.net/<slug></guid>
      <pubDate><RFC 822 date, e.g. Sat, 01 Nov 2025 00:00:00 GMT></pubDate>
      <category><Tag1></category>
      <category><Tag2></category>
    </item>

Notes:

  • pubDate format: Day, DD Mon YYYY 00:00:00 GMT (RFC 822). Example: Sat, 01 Nov 2025 00:00:00 GMT. Always use 00:00:00 GMT.
  • One <category> per tag, in the same order as the MDX tags array.
  • Blank line after the new </item> to match existing spacing.

Step 3 — Tell the user what to run

After both files are written, output exactly:

Created src/posts/<slug>.mdx and updated public/rss.xml. Run deno task dev to preview at /<slug>, then deno task pre-commit before committing.

Do not

  • Do not touch src/routes/ — the $slug catch-all route picks up new posts automatically.
  • Do not edit src/lib/services/blog.ts — it uses import.meta.glob and discovers new MDX files on build.
  • Do not run deno task build or deno task dev yourself unless the user asks; the skill's job is the file writes.
  • Do not invent content for the body — leave a placeholder if the user didn't supply one.