/publish - Publish a Blog Post
Validate, remove draft flag, sync to S3, and index for search.
Usage
/publish [slug-or-path]
Steps
Find the post from $ARGUMENTS (path, slug, or ask user). Search posts/ for the file and confirm with the user.
Validate frontmatter - prompt for missing required fields:
title, description, date (YYYY-MM-DD) - required
section, subsection - required (see below)
series - optional (writing-for-ai-writers, learning-from-failure, retrieval-fundamentals)
image - optional (S3 URL recommended)
access - optional. Set to members for subscriber-only extras posts. Omit or set to public for regular posts.
Handle image - if missing, ask for S3 URL for the image.
Remove draft flag - set draft: false or remove the draft: true line from frontmatter.
Post Types
- Regular posts (
access: public or omitted): appear in public index, RSS, search, and /writing
- Extras posts (
access: members): subscriber-only. Excluded from public index, RSS, and search. Appear only in /extras for authenticated subscribers and via direct URL with auth. Extras posts still need draft: false to be published.
Publish: just publish <slug>
Report title, slug, section, image status, publication date
Valid Values
Use /info to look up valid sections, subsections, and series from existing posts.
1---2name: publish3description: Publish4---56# /publish - Publish a Blog Post78Validate, remove draft flag, sync to S3, and index for search.910## Usage1112```13/publish [slug-or-path]14```1516## Steps17181. **Find the post** from `$ARGUMENTS` (path, slug, or ask user). Search `posts/` for the file and confirm with the user.19202. **Validate frontmatter** - prompt for missing required fields:21 - `title`, `description`, `date` (YYYY-MM-DD) - required22 - `section`, `subsection` - required (see below)23 - `series` - optional (`writing-for-ai-writers`, `learning-from-failure`, `retrieval-fundamentals`)24 - `image` - optional (S3 URL recommended)25 - `access` - optional. Set to `members` for subscriber-only extras posts. Omit or set to `public` for regular posts.26273. **Handle image** - if missing, ask for S3 URL for the image.28294. **Remove draft flag** - set `draft: false` or remove the `draft: true` line from frontmatter.3031## Post Types3233- **Regular posts** (`access: public` or omitted): appear in public index, RSS, search, and `/writing`34- **Extras posts** (`access: members`): subscriber-only. Excluded from public index, RSS, and search. Appear only in `/extras` for authenticated subscribers and via direct URL with auth. Extras posts still need `draft: false` to be published.35365. **Publish**: `just publish <slug>`37386. **Report** title, slug, section, image status, publication date3940## Valid Values4142Use `/info` to look up valid sections, subsections, and series from existing posts.