Skip to content

Frontmatter Schema Standard

This document defines the canonical YAML frontmatter schema for all operational docs in the Liflode Operational Knowledge Platform. Frontmatter is the machine-readable layer that enables lifecycle tracking, semantic search, agent routing, and gap detection.

Every .md file in this site (except section index files) must include a valid frontmatter block.


---
doc_id: unique-slug # required — maps to Neon operational_docs.doc_id
title: Human Readable Title # required
doc_type: sop # required: sop | onboarding | training | runbook | process
department: Operations # optional: Operations | HR | Finance | Marketing | Tech
owner: [email protected] # optional: email address of document owner
status: draft # required: draft | active | archived | review_needed
audience: # optional array
- staff
- contractors
tools: # optional array — tools referenced in this doc
- Linear
- Windmill
roles: # optional array — roles this doc applies to
- developer
- admin
difficulty: beginner # optional: beginner | intermediate | advanced
estimated_time_minutes: 15 # optional: integer (estimated read/completion time)
review_cycle_days: 90 # optional: integer, default 90
version: "1.0" # optional: semver string
last_reviewed: 2026-01-01 # optional: ISO 8601 date (YYYY-MM-DD)
---

FieldTypeAllowed ValuesDescription
doc_idstringunique slug (kebab-case)Stable unique identifier. Maps to operational_docs.doc_id in Neon. Never change after publish.
titlestringanyHuman-readable document title.
doc_typeenumsop onboarding training runbook processDocument category. Determines section and agent routing.
statusenumdraft active archived review_neededLifecycle state. review_needed is set automatically when last_reviewed + review_cycle_days < today.
FieldTypeAllowed Values / FormatDescription
departmentenumOperations HR Finance Marketing TechOwning department. Used for filtering and gap detection.
ownerstringemail addressPerson responsible for keeping this doc accurate.
audiencestring[]e.g. staff, contractors, managersWho this doc is written for. Used for search faceting.
toolsstring[]tool namesTools referenced or required in this doc. Used for cross-linking and gap analysis.
rolesstring[]role namesJob roles this doc applies to.
difficultyenumbeginner intermediate advancedComplexity level. Used in onboarding path recommendations.
estimated_time_minutesintegerpositive integerEstimated time to read or complete the procedure.
review_cycle_daysintegerpositive integerHow often this doc should be reviewed. Default: 90.
versionstringsemver (e.g. "1.0", "2.1.3")Document version. Increment on significant changes.
last_revieweddateISO 8601 (YYYY-MM-DD)Date the doc was last reviewed for accuracy.

  • Must be globally unique across all docs.
  • Use kebab-case: onboard-new-developer, deploy-production-runbook.
  • Never rename a doc_id after a document is published — it is the stable key in the database and in any external links.
  • Convention: {doc_type}-{short-descriptor}, e.g. sop-expense-reporting, runbook-db-failover.

Maps directly to the site section and the doc_type column in the Neon operational_docs table:

ValueSite SectionDescription
sopsops/Standard Operating Procedure — step-by-step routine task
onboardingonboarding/New hire or role onboarding guide
trainingtraining/Learning material, how-tos, skill development
runbookrunbooks/Incident response or operational runbook
processprocess/Process definition or workflow overview
ValueMeaning
draftWork in progress, not ready for general use
activeCurrent, reviewed, safe to follow
archivedNo longer in use, kept for reference
review_neededOverdue for review; do not rely on without verification

The platform agent (Finn) will automatically flag docs as review_needed when last_reviewed + review_cycle_days is in the past.

Use semantic versioning:

  • Increment patch (1.01.0.1) for typo fixes and minor clarifications.
  • Increment minor (1.01.1) for new sections or process additions.
  • Increment major (1.02.0) for complete rewrites or process changes that invalidate previous guidance.

Every operational doc should include an HTML comment immediately after the frontmatter block to declare agent routing instructions. This comment is machine-readable and invisible to end users in rendered output.

<!-- agent: finn can update this doc -->
DirectiveMeaning
finn can update this docFinn (the AI agent) is permitted to propose edits to keep content current
finn can do thisFinn can execute or automate the task described in this doc
finn review onlyFinn should review and flag issues but not edit
human review requiredFinn must not edit; a human must approve all changes

Multiple directives may be placed on separate comment lines.

<!-- agent: finn can update this doc -->
<!-- agent: finn review only -->

---
doc_id: sop-expense-reporting
title: Expense Reporting Process
doc_type: sop
status: active
---
---
doc_id: onboard-new-developer
title: New Developer Onboarding Guide
doc_type: onboarding
department: Tech
status: active
audience:
- staff
tools:
- Linear
- GitHub
- Windmill
roles:
- developer
difficulty: beginner
estimated_time_minutes: 45
review_cycle_days: 90
version: "1.2"
last_reviewed: 2026-01-15
---
<!-- agent: finn can update this doc -->

These frontmatter fields map directly to columns in the Neon operational_docs table (defined in CORE-2693):

Frontmatter FieldNeon ColumnNotes
doc_iddoc_idPrimary key
titletitle
doc_typedoc_type
departmentdepartment
ownerowner
statusstatus
audienceaudienceStored as array
toolstoolsStored as array
rolesrolesStored as array
difficultydifficulty
estimated_time_minutesestimated_time_minutes
review_cycle_daysreview_cycle_days
versionversion
last_reviewedlast_reviewed

The sync agent reads frontmatter from each .md file and upserts into the operational_docs table on every deployment.