← ClaudeAtlas

new-postlisted

Add a blog post to content/blog/ as a draft, from a brief, a draft file or the workshop's drafts, with its images, frontmatter and the load-bearing body conventions, then prove it with the content lint and the build. Use when asked to add, create or import a post, bring a draft into the site, or publish a draft; to write one from scratch, write-post runs first and hands off here.
HKamkar/agentic-cms · ★ 2 · Web & Frontend · score 71
Install: claude install-skill HKamkar/agentic-cms
# New post The repo is the current directory. The post is `content/blog/<slug>.md`; the filename is the URL `<postPrefix>/<slug>` (`src/config/site.ts`), permanent once pushed. It ships as `draft: true`; the user flips it. ## Read first `content/README.md` (the door), `content/VOICE.md` (the voice and claims: how the brand is spelled, what is never said, the calls to action), `content/blog/_template.md` (every field annotated, the image names and sizes, the closing paragraph), `src/lib/blog/README.md` § Body pipeline (the conventions the renderer keys off), the keys of `content/categories.json` and `content/authors.json`, the draft or brief the user named, and `content/editorial/workshop.yaml` if it exists (its `drafts` role is where a draft written outside the repo would be). ## Steps 1. **The slug.** Lowercase words and hyphens, the topic first. Stop and confirm it with the user if it was not given; check that `content/blog/<slug>.md` and `public/images/blog/<slug>/` do not exist. 2. **The file.** Copy `content/blog/_template.md` to `content/blog/<slug>.md` and drop the template's comments. Frontmatter: `title`; `excerpt` of 30–40 words that does not repeat the title; `date` quoted; `category` and `author` as keys of the two registries; `seoTitle` of 60 characters or fewer, the topic first and ` | ` + the site's name last (the layout's title template, `site.name`); `seoDescription` of 70–160; 3–8 `keywords`; 2–3 `related` slugs that exist; `draf