Metadata Schema
Standard frontmatter (YAML metadata) fields used across all EGI documentation. Consistent metadata improves searchability, organization, and automated processing.
Copy the appropriate template below and replace placeholder values. All dates use YYYY-MM-DD format.
Why Metadata Matters
- Search: Helps users find relevant documents
- Organization: Enables automatic categorization
- Context: Provides document history and ownership
- Automation: Enables scripts to process documents
- Discovery: Surfaces related documentation
Universal Fields
These fields are used across all document types:
Required Fields
title: "Document Title"
description: "Brief description of the document content (1-2 sentences)"
Rules:
title: Clear, descriptive title (avoid generic terms)description: 1-2 sentences, used in search results and previews
Recommended Fields
author: "Author Name"
date_created: YYYY-MM-DD
last_updated: YYYY-MM-DD
tags: [tag1, tag2, tag3]
Rules:
author: Full name of primary authordate_created: Date document was first createdlast_updated: Date of last significant updatetags: 3-5 relevant tags for discoverability
Optional Universal Fields
id: unique-document-id
sidebar_position: 1
sidebar_label: "Custom Label"
Rules:
id: Unique identifier (kebab-case), used for linkingsidebar_position: Number controlling sidebar ordersidebar_label: Override title in sidebar navigation
Document Type: SOP
Standard Operating Procedures
---
title: "[Action] [System/Process]"
description: "Brief description of what this SOP covers"
category: sop
tags: [sop, system-name, process-type]
author: "Author Name"
date_created: YYYY-MM-DD
last_updated: YYYY-MM-DD
version: "1.0"
status: draft | active | deprecated
reviewed_by: "Reviewer Name"
approved_by: "Approver Name"
next_review: YYYY-MM-DD
---
Additional Rules:
version: Semantic versioning (1.0, 1.1, 2.0)status: Current document statedraft- Under developmentactive- Currently in usedeprecated- No longer recommended
reviewed_by: Person who reviewed for accuracyapproved_by: Person who approved for usenext_review: Date document should be reviewed
Example:
---
title: "Deploy Production Website"
description: "Standard procedure for deploying changes to the production website"
category: sop
tags: [sop, deployment, website, production]
author: "Jane Smith"
date_created: 2024-01-15
last_updated: 2024-03-20
version: "2.1"
status: active
reviewed_by: "John Doe"
approved_by: "Tech Lead"
next_review: 2024-06-20
---
Document Type: System Profile
System documentation and overview
---
title: "[System Name] Profile"
description: "Brief description of the system"
category: system-profile
tags: [system, profile, system-type]
author: "Author Name"
date_created: YYYY-MM-DD
last_updated: YYYY-MM-DD
version: "1.0"
system_owner: "Owner Name"
system_criticality: low | medium | high | critical
tech_stack: [Next.js, PostgreSQL, Vercel]
---
Additional Rules:
system_owner: Person responsible for the systemsystem_criticality: Business impact leveltech_stack: Array of main technologies used
Example:
---
title: "FPD Dashboard System Profile"
description: "Field project dashboard for tracking project locations and status"
category: system-profile
tags: [system, profile, dashboard, internal-tool]
author: "John Doe"
date_created: 2023-06-10
last_updated: 2024-03-15
version: "3.0"
system_owner: "Jane Smith"
system_criticality: high
tech_stack: [Next.js, PostgreSQL, Vercel, PostHog]
---
Document Type: Runbook
Operational procedures for incidents
---
title: "[System] [Scenario] Runbook"
description: "Procedures for handling [scenario]"
category: runbook
tags: [runbook, system-name, incident-type]
author: "Author Name"
date_created: YYYY-MM-DD
last_updated: YYYY-MM-DD
system: "System Name"
severity: P0 | P1 | P2 | P3 | P4
on_call: "On-call contact or rotation"
---
Additional Rules:
system: Which system this runbook coversseverity: Typical severity of incidents this addresseson_call: Who to contact or where to find on-call info
Example:
---
title: "API Server Downtime Runbook"
description: "Procedures for responding to API server outages"
category: runbook
tags: [runbook, api, downtime, incident]
author: "DevOps Team"
date_created: 2023-09-01
last_updated: 2024-03-10
system: "Company API"
severity: P0
on_call: "See PagerDuty rotation"
---
Document Type: Execution Brief
Project planning document
---
title: "[Project Name] Execution Brief"
description: "Brief description of the project"
category: execution-brief
tags: [project, brief, project-type]
author: "Author Name"
date_created: YYYY-MM-DD
last_updated: YYYY-MM-DD
status: draft | active | completed
project_lead: "Name"
start_date: YYYY-MM-DD
target_date: YYYY-MM-DD
---
Additional Rules:
status: Project status (draft, active, completed)project_lead: Primary person responsiblestart_date: Project start datetarget_date: Target completion date
Document Type: Incident Report
Post-incident analysis
---
title: "[Date] - [Service] Incident Report"
description: "Brief description of the incident"
category: incident-report
tags: [incident, postmortem, service-name]
author: "Author Name"
date_created: YYYY-MM-DD
incident_date: YYYY-MM-DD
severity: P0 | P1 | P2 | P3 | P4
status: draft | under review | published
duration: "X hours Y minutes"
affected_users: number or percentage
---
Additional Rules:
incident_date: When incident occurredseverity: Incident severity levelstatus: Report statusduration: How long incident lastedaffected_users: Impact scope
Document Type: Checklist
Procedural checklists
---
title: "[Process/System] Checklist"
description: "Checklist for [process]"
category: checklist
tags: [checklist, process-type]
author: "Author Name"
date_created: YYYY-MM-DD
last_updated: YYYY-MM-DD
checklist_type: migration | deployment | audit | onboarding | other
---
Additional Rules:
checklist_type: Type of checklist for categorization
Document Type: ADR
Architecture Decision Record
---
title: "ADR-XXX: [Decision Title]"
description: "Brief description of the architectural decision"
category: adr
tags: [adr, architecture, decision-area]
author: "Author Name"
date_created: YYYY-MM-DD
status: proposed | accepted | deprecated | superseded
superseded_by: ADR-YYY (if applicable)
---
Additional Rules:
status: Decision statusproposed- Under discussionaccepted- Approved and in usedeprecated- No longer recommendedsuperseded- Replaced by another ADR
superseded_by: ADR that replaces this one
Tag Taxonomy
Standardized tags for consistency:
Document Type Tags
sop- Standard Operating Proceduresystem- System profilerunbook- Operational runbookincident- Incident reportproject- Project documentationadr- Architecture decisionchecklist- Procedural checklisttemplate- Document template
Technology Tags
next-js,react,node,python,typescriptpostgresql,mongodb,redisvercel,aws,cloudflaredocker,kubernetes
Process Tags
deployment,migration,backup,monitoringsecurity,performance,testingonboarding,training
System Tags
website,api,dashboard,internal-toolproduction,staging,developmentclient-facing,internal
Priority/Status Tags
critical,high-priority,low-priorityactive,deprecated,archiveddraft,review,published
Status Values
Standardized status values across document types:
Universal Status
draft- Work in progress, not yet readyreview- Ready for reviewactive- Current and in usedeprecated- No longer recommendedarchived- Kept for historical reference
SOP-Specific Status
proposed- Suggested new procedureapproved- Approved but not yet activeactive- Currently in usedeprecated- Being phased outarchived- No longer used
Project Status
planning- In planning phaseactive- Currently executingon-hold- Temporarily pausedcompleted- Successfully finishedcancelled- Discontinued
Incident Status
draft- Report being writtenunder-review- Being reviewed by teampublished- Final and publishedaction-items-pending- Follow-ups outstandingclosed- All actions complete
Best Practices
Writing Good Titles
Good:
- "Deploy Production Website SOP"
- "FPD Dashboard System Profile"
- "API Downtime Runbook"
Bad:
- "Deployment" (too vague)
- "The Process for Deploying" (unnecessary words)
- "SOP-001" (not descriptive)
Writing Good Descriptions
Good:
- "Step-by-step procedure for deploying the production website, including pre-deployment checks and rollback procedures"
- "Overview of the FPD Dashboard system including architecture, tech stack, deployment, and monitoring"
Bad:
- "About deployment" (too vague)
- "This document describes the complete comprehensive and detailed process for how we handle deployments in our organization" (too long)
Choosing Tags
Rules:
- Use 3-5 tags per document
- Include document type tag
- Include system/technology tags
- Include process tags
- Don't over-tag
Good:
tags: [sop, deployment, website, vercel, production]
Bad:
tags: [sop, deployment, deploy, website, web, site, vercel, production, prod, important, critical, must-read]
Maintaining Dates
- Update
last_updatedfor significant changes only - Don't update for typo fixes or minor edits
- Update
next_reviewwhen document is reviewed - Use ISO 8601 format:
YYYY-MM-DD
Validation
Required Field Check
Every document MUST have:
-
title -
description
Recommended Field Check
Every document SHOULD have:
-
author -
date_created -
last_updated -
tags(3-5 tags)
Document Type Check
Documents of specific types MUST include type-specific required fields:
- SOPs:
category,version,status - System Profiles:
system_owner,system_criticality - Runbooks:
system,severity - Incident Reports:
incident_date,severity
Automated Processing
This metadata enables automated features:
Search & Discovery
// Find all production SOPs
category: sop AND tags: production
// Find all critical systems
category: system-profile AND system_criticality: critical
// Find all P0 runbooks
category: runbook AND severity: P0
Stale Document Detection
// Documents not updated in 6 months
last_updated < (today - 180 days)
// Documents past review date
next_review < today
Changelog Generation
// Recent changes
last_updated >= (today - 30 days)
ORDER BY last_updated DESC
Examples
Complete SOP Example
---
title: "Rotate Database Credentials"
description: "Procedure for rotating database passwords and updating all dependent systems"
category: sop
tags: [sop, database, security, credentials]
author: "DevOps Team"
date_created: 2023-05-15
last_updated: 2024-03-20
version: "1.2"
status: active
reviewed_by: "Security Team"
approved_by: "CTO"
next_review: 2024-09-20
---
Complete System Profile Example
---
title: "Company Website System Profile"
description: "Marketing website built with Next.js, deployed on Vercel, with PostHog analytics"
category: system-profile
tags: [system, profile, website, next-js, vercel]
author: "Web Team"
date_created: 2022-03-10
last_updated: 2024-03-18
version: "4.0"
system_owner: "Marketing Lead"
system_criticality: high
tech_stack: [Next.js 14, TypeScript, Tailwind CSS, Vercel, PostHog, Uptime Kuma]
---
Contributing
To suggest changes to the metadata schema:
- Discuss with the team
- Consider impact on existing documents
- Update this schema document
- Update relevant templates
- Announce changes to documentation authors