> ## Documentation Index
> Fetch the complete documentation index at: https://docs.snowdoughnut.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Article pre-publish checklist

> The pass to run on every article before it goes live: does it deliver what the brief promised, is the structure sound, is the metadata complete, and is it recorded so it will be maintained.

Run this on every article, both tiers, before publishing. It checks the article against its [brief](/article-brief) and the [article standards](/article-standards). The [GEO checklist](/geo-checklist) is a separate pass for citability.

## Against the brief

* The article answers the primary question from the brief, not a nearby one.
* The new information named in the brief is actually in the piece, stated plainly rather than implied.
* The key message is the one a reader would name if asked what the article said.
* Nothing from the "what this article is not about" list crept in.
* Every objection the brief listed is addressed somewhere.
* Where the article diverged from the brief, the brief has been updated to match.

## Structure

* Exactly one H1, and it is the article title.
* No skipped heading levels.
* Each section answers its own heading in the first sentence underneath it.
* The opening answers the primary question before any setup.
* Sections are roughly 150 to 300 words, or have a reason to be longer.
* Lists and tables are used where the content is genuinely parallel, and prose where it is an argument.
* Length is in the range the [standards](/article-standards) set for this article type, or the deviation is deliberate.

## Facts and proof

* Every statistic has a source, and the source says what the sentence claims.
* Every quote is accurate and has permission where it needs it.
* Original data is attributed to us, with the sample size and date stated.
* Product names, prices, and specs are current.
* Any claim that could be challenged is either sourced or softened to what we can defend.

## Metadata

* Meta title under 60 characters, written after the article.
* Meta description 140 to 160 characters, written after the article, and an honest summary.
* Slug is lowercase, hyphenated, contains no year, and is final.
* Canonical URL set.
* Author is a real named person with a working bio link.
* Published date and last-updated date both set and visible on the page.
* Schema applied: `Article`, plus `FAQPage` if there is an FAQ, plus `HowTo` if the article is procedural.
* Featured image set, with alt text written.

## Links and media

* Three to six internal links out, with descriptive anchor text.
* At least two inbound internal links added from existing pages.
* Every supporting article links to its hero article.
* All external links work and point where they say they do.
* Every meaningful image has alt text. Decorative images have an empty alt attribute.
* Any chart's key numbers also appear in the body text.
* Image files named per the [file naming conventions](/file-naming-conventions).

## Voice and accessibility

* Reads as us, per [brand voice and tone](/brand-voice-and-tone).
* No claim we cannot support.
* Headings would still make sense read on their own, in order, with nothing else.
* Tables have header rows.

## Record it

* Row added to the [hero](/hero-article-register) or [supporting](/supporting-article-register) register.
* Owner named on the row.
* Next review date set per the cadence for its tier.
* Live URL pasted back into the brief.
* Brief filed in the [article brief library](/article-brief-library).

<Warning>
  The register row is the step most often skipped on launch day, and it is the one that decides whether the article is maintained or forgotten. An article with no row will not appear in any review cycle.
</Warning>

## Related resources

* [**GEO checklist**](/geo-checklist) The citability pass.
* [**Article standards**](/article-standards) The defaults this checklist tests against.
* [**Article process**](/article-process) Where this checklist sits in the workflow.
* [**Article update checklist**](/article-update-checklist) For an article being refreshed rather than launched.
