Skip to content
ODS
Home/Docs/features

ODS Features & Architecture Overview

Complete reference for frontmatter keys, ods.toml configuration, profiles vs packs, AI context, and CLI commands.

ODS Features & Architecture Overview

Open Document Specs (ODS) is a lightweight, graph-native Markdown convention layer. This document provides a complete guide to all frontmatter keys, workspace mechanics, profiles, tags, code references, AI context rules, and ODS Packs.


1. Core Frontmatter Features

Frontmatter is split into universal top-level keys (any tool can read them) and engine keys under ods: (ODS-only). See the key dictionary ods/keys.md.

Field Type Placement Level Purpose & Usage
description string Top-level 1+ Summary: One-line summary used for indexes and SSG meta.
tags list of strings Top-level only 1+ Search Facets: Free-form lowercase facets (- customer-care). Never under ods:.
owner string | list Top-level 1+ Maintainer: Responsible individual or team (support-team).
profile string Under ods: 1+ Document Classification: Document kind (guide, decision, feature, sop, etc.). Defaults to note.
status string Under ods: 1+ Document Lifecycle: Maturity (draft, stable, deprecated, archived). Defaults to draft.
share string Under ods: 1+ Visibility Control: public (default), org, or private.
id string Under ods: 2+ Explicit Identity: Override the path-derived default ID.
depends list of refs Under ods: 2+ Prerequisite Edges: Graph prerequisite links to other documents.
related list of refs Under ods: 2+ Association Edges: Non-binding reference links.
resources list Under ods: 2+ Native Asset Links: Non-Markdown files attached to the document.
code list Under ods: 2+ Implementation Map: Fixed-role source code mappings (path, symbol, role).
context map Under ods: 2+ Bounded AI Reading Scope: load, ignore, max-depth.

Misplaced nested tags under ods:: ods lint warns; repair with ods fmt --migrate.


2. Root ods.toml Configuration Keys

The root ods.toml file serves as the single workspace marker and policy home for an ODS workspace. Below is the complete reference of all supported configuration sections, keys, default values, and their exact operational effects.

Top-Level Workspace Settings

Key Type Default Operational Effect & Behavior
spec string "0.1" Workspace Spec Marker & Version: Declares the ODS workspace root boundary and specification version (spec = "0.1"). Essential for ods commands (ods lint, ods find, ods context, ods overview) to identify the workspace root. (Serde alias: ods)
ignore array of strings [] Workspace Scan Excludes: Paths or glob pattern prefixes excluded from scanner operations (["src/", "dist/", "target/"]). Skips these paths during ods lint, ods overview, ods find, and graph context indexing.
custom_profiles array of strings [] Custom Profile Schemas: Workspace-relative Markdown file paths registering custom profile schemas ([".ods/profiles/rfc.md"]). Loaded automatically during ods profile list, ods profile show, and document structure validation in ods lint. (Serde alias: custom-profiles)
packs array of strings [] Imported ODS Packs: Relative folder paths to imported ODS Pack bundles (["vendor/engineering-pack"]). Automatically merges packed profiles, skills, and assets into workspace discovery.

Section Heading Aliases ([aliases])

Key Type Purpose & Effect
[aliases] table (heading → string[]) Workspace H2 Section Heading Mapping: Maps canonical H2 profile section titles to acceptable synonym headings (e.g. Goal = ["Objective", "Purpose"]). When validating document profile sections in ods lint, any section matching an alias is accepted as satisfying the required section.

Extra Spec Engines ([specs.okf] & [specs.skills])

Declaratively enables multi-spec validation during bare ods lint without requiring explicit CLI flags (--okf, --skills).

Section & Key Type Default Operational Effect & Behavior
[specs.okf].enabled boolean false When true, bare ods lint automatically runs OKF specification validation alongside standard ODS linting.
[specs.okf].check_keys boolean true Validates frontmatter keys against the OKF schema registry.
[specs.okf].ignore_keys array of strings [] List of frontmatter key names to ignore during OKF key linting.
[specs.skills].enabled boolean false When true, bare ods lint automatically validates Agent Skill definitions alongside standard ODS linting.
[specs.skills].check_keys boolean true Validates skill frontmatter keys against the Agent Skills schema registry.
[specs.skills].ignore_keys array of strings [] List of skill frontmatter key names to ignore during skills key linting.

Service & Memory Ceiling ([service])

Controls background daemon behavior for ods serve and ods start.

Key Type Default Operational Effect & Behavior
[service].mode string "poll" Watcher Mode: Daemon change monitoring strategy. Options: "poll" (low memory polling), "watch" (filesystem event watching), or "auto" (auto-select based on system resources).
[service].poll_secs integer 2 Polling Interval: Sleep duration in seconds between directory scans when mode = "poll".
[service].max_rss_mb integer 10 Soft Memory Ceiling: Maximum Resident Set Size in megabytes target for ods serve / ods start background processes (<= 10 MB).

Complete ods.toml Example

Below is a complete reference ods.toml showcasing all supported configuration blocks:

# ODS workspace configuration
spec = "0.1"

ignore = [
  "target",
  "dist",
  "node_modules"
]

custom_profiles = [
  ".ods/profiles/rfc.md",
  ".ods/profiles/sop.md"
]

packs = [
  "vendor/engineering-pack"
]

[aliases]
Goal = ["Objective", "Purpose"]
Architecture = ["Design", "System Design"]

[specs.okf]
enabled = true
check_keys = true
ignore_keys = ["custom_okf_meta"]

[specs.skills]
enabled = true
check_keys = true
ignore_keys = []

[service]
mode = "poll"
poll_secs = 2
max_rss_mb = 10