write-postlisted
Install: claude install-skill HKamkar/agentic-cms
# Write post
The repo is the current directory. The deliverable is
`content/blog/<slug>.md` as `draft: true`, lint-clean, written under the
site's rules and handed to `new-post` for images, the verify block and
the commit. One stage per turn; a gate is a stop, not a summary.
## Read first
`content/VOICE.md` in full (who reads the site is the reader every stage
writes for; the non-negotiables and claims are the rules), `content/blog/_template.md`
(the frontmatter, the body conventions, the closing call to action),
`src/lib/blog/README.md` § Body pipeline, the keys of
`content/categories.json` and `content/authors.json`, the titles and
slugs in `content/blog/` (the internal-link candidates), the row for
this slug in `content/editorial/calendar.md` or `backlog.md` if there is
one, and `content/editorial/workshop.yaml` if it exists.
## Mode
**New** when `content/blog/<slug>.md` does not exist. **Revise** when it
does: Stage 1 is then a plan marking every section KEEP / TIGHTEN /
REWRITE / CUT / ADD with a one-line reason, Stage 2 rewrites the file with
unchanged sections verbatim, and the dates follow `update-post` step 2.
A title that matches an existing post while the user says "new" is a
question, not a guess.
## Stage 0 — the inputs
With a workshop: read `briefs/<slug>.md` (the `briefs` role) as the
brief; the keyword row from `keywords`; the newest `research` file whose
name carries the keyword (a SERP read); the piece and pillar from
`strategy`. Without one, or for w