Skip to main content

Frontmatter Schema

This document defines the canonical frontmatter schema for all content in the Engineering Journal.

This schema is deterministic and enforced via repository governance.


Core Schema (Required for ALL content)​

title: string
description: string
content_type: doc | journal | lab | case-study
type: doc | journal | lab | case-study
status: draft | review | active | deprecated | archived
lifecycle: draft | review | active | deprecated | archived
tags: [string]
owners: ["@github-username"]
created_at: YYYY-MM-DD
last_reviewed: YYYY-MM-DD
primary_domain: string
category: string

Content Type and Path Enforcement​

All content MUST:

  1. Declare content_type in frontmatter
  2. Reside in the correct directory
content_typerequired path
docwebsite/docs/**
labwebsite/docs/labs/**
case-studywebsite/docs/case-studies/**
journalwebsite/docs/journal/**

Mismatch between content_type and path is a CI failure.


Field Definitions​

title​

Human-readable title of the document.

description​

Short summary used for SEO and previews.

content_type​

Determines schema validation and taxonomy alignment.

status​

Lifecycle state of the content. Allowed values: draft, review, active, deprecated, archived.

tags​

Must match controlled vocabulary defined in .github/taxonomy.yml.

owners​

GitHub usernames responsible for maintaining the content. Must include @ prefix.

created_at​

ISO 8601 date the content was created (YYYY-MM-DD).

last_reviewed​

ISO 8601 date the content was last reviewed for accuracy (YYYY-MM-DD).

primary_domain​

Must match a domain defined in .github/taxonomy.yml.

category​

Must match an allowed category for the given content_type.


Validation Rules​

  • All required fields MUST be present
  • status and lifecycle MUST match allowed enum
  • tags MUST match approved taxonomy
  • owners MUST be valid GitHub usernames with @ prefix
  • Dates MUST be ISO 8601 (YYYY-MM-DD)
  • content_type MUST match directory path
  • primary_domain MUST exist in taxonomy