Editorial Workflow

This project has a clear split between _drafts/ and _posts/. These rules turn that into an explicit workflow so content changes are predictable and safe.

1. What a Draft Means

A draft is an article that lives in _drafts/.

Use draft status when one or more of these are true:

Important:

2. What It Means to Publish

Publishing means moving an article from draft state to reader-ready state.

In practice that means:

  1. The file moves from _drafts/ to _posts/.
  2. The filename gets a final publish date and slug: YYYY-MM-DD-title.md.
  3. The article is complete enough to stand on its own for readers.
  4. All placeholder text, TODO notes, and unfinished sections are removed.
  5. Links, images, includes, and downloads used by the article are checked.
  6. The site builds successfully.

For this repo, “published” should mean “I am comfortable with this being on the public Journal today”, not “I might finish this later”.

3. Publish Checklist

Before moving a file into _posts/, the article should meet this bar:

For new published posts, prefer these front matter fields:

---
layout: post
title: "Your Post Title"
subtitle: "Optional"
author: "Michael Voorhaen"
category: "Roadmap Mastery"   # also: Org Design, Conference Notes, Talks & Recordings
category_color: lime         # teal | lime | orange | purple — keep one color per category
reading_time: "6 min"
excerpt: "One or two sentences shown on Journal cards and previews."
featured: false               # true shows it as the big featured card on /journal/
cover: /assets/images/YYYY-MM-DD-post-title/cover.jpg   # optional; omit for a plain color placeholder
---

The filename date is the canonical publish date. Only add an explicit date: field when you need time-of-day control beyond the filename.

4. Rules for Published Posts

Once a file is in _posts/, treat it as public content under change control.

5. When Automatic Commits Are Allowed

Automatic commits are allowed for low-risk work that does not change what readers see on the public site.

Allowed without extra approval:

Automatic commits should not be used for:

Rule of thumb: if the change alters public editorial intent, publishing state, or URL structure, require explicit approval first.

6. Additional Proposals

These are good defaults for future work:

7. Images and Carousels

Images are part of the article, not decoration added at the end. Treat them with the same care as the prose.

Folder and file conventions

When to use a single image

Use a normal Markdown image when one image supports one point in the article.

![Descriptive alt text](/assets/images/YYYY-MM-DD-post-title/example.png)

Use raw <img> only when layout control is genuinely needed, for example:

If raw HTML is not buying anything, prefer normal Markdown.

Use a carousel when multiple images belong to the same moment, comparison, or subsection and should be browsed together.

Good uses in this repo:

Avoid using a carousel as a dumping ground for every image you have. If the images do not belong together, split them up.

Define carousels in front matter and place them in the article with `

`.

Example:

carousels:
  - images:
      - image: /assets/images/YYYY-MM-DD-post-title/example-1.jpg
        url: /assets/images/YYYY-MM-DD-post-title/example-1.jpg
        title: "What readers see under the image"
        alt: "What the image shows"
        position: center
      - image: /assets/images/YYYY-MM-DD-post-title/example-2.jpg
        url: /assets/images/YYYY-MM-DD-post-title/example-2.jpg
        title: "Second image caption"
        alt: "Second image description"
        position: top


<div class="image-gallery-index">
  
</div>

Rules:

Accessibility and captions

Publishing check for media

Before publishing:

8. Changelogs for Published Updates

If a published post gets a meaningful update later, add a changelog entry rather than silently rewriting it:

changelog:
  - date: "2026-04-05"
    changes:
      - "Expanded the X section with a concrete example."
      - "Added an illustration for Y."

Entries render automatically at the end of the article via `

` (already wired into the post layout).