Patterns live in _patterns/<slug>.md, one file each; the filename is the URL: _patterns/stakeholder-interview.md → /patterns/stakeholder-interview/.

---
title: Introduce Layering
phase: improve            # analyze | evaluate | improve | crosscutting
intent: "One sentence: what this practice achieves."
related: [refactoring]            # optional, slugs of other patterns
categories: [architecture-and-code]   # optional, improve patterns only
status: complete          # complete | stub
---

Short summary paragraph.

## Description
...
## Experience
...
## References
...

Rules (checked by make validate, in every Jekyll build and in CI; make check runs the full local check, and CI runs the same): title, phase, intent and status are required; title and intent are strings; intent is one paragraph of inline Markdown (it is shown in lists and the page description) and must not be TODO; categories apply to improve patterns only and must be keys of _data/categories.yml; related must list existing slugs; the filename is a kebab-case slug, unique across _patterns/, and must not be index or a phase name (analyze, evaluate, improve, crosscutting), which are reserved for the index and phase pages. A status: stub pattern needs only the front matter; the site shows a “help us write it” box.

Quote front-matter values that contain : (colon followed by a space), as in the intent above; otherwise YAML reads them as a nested mapping.

Editing on GitHub. Open the pattern page’s “Edit this pattern on GitHub” link (or create a new file at https://github.com/aim42/aim42.org-site/new/master/_patterns/), commit to a branch and open a pull request. CI validates the front matter.

Glossary terms link to /glossary/#term, e.g. [system](/glossary/#system).

Not sure where to start? Every pattern marked stub on the pattern index is waiting for a description.