← ClaudeAtlas

write-postlisted

Write a blog post from a brief in four stages with an approval gate after each - outline, body written straight into content/blog/<slug>.md as a draft, an independent critique by the voice-reviewer and critic agents, the SEO fields - or rewrite an existing post the same way. Use when asked to write, draft, author, compose or rewrite a post from a topic, a keyword, a brief or a calendar row; to import a finished draft, new-post is enough.
HKamkar/agentic-cms · ★ 2 · Web & Frontend · score 71
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