Getting Started
Audience: first-time collection authors.
See also:
- Foundations: core concepts and parsing baselines
- Collection Model: the authoritative
typedmark.mdcontract - Note Type Schemas: the authoritative schema contract
This page is a non-normative tutorial. It shows how little is needed to turn a folder of Markdown notes into a Core Profile typed collection: one configuration file, one note type, one template, one note. Every step links to the section that governs it.
1. Create typedmark.md#
At the root of your notes folder, create typedmark.md. The frontmatter is the configuration; the body is yours to use for explanations (governed artifact format).
---
specification_version: 0.0.1
name: my-notes
description: My personal notes.
---
# My Notes
Meeting notes live in Meetings/ and are typed as `meeting`.
Those three frontmatter keys are enough for the Core Profile (Collection Model). The omitted collection defaults expand to metadata_directory: .typedmark, exclude_paths: [.git/**], and validation_defaults: {}.
2. Define a note type#
Create .typedmark/schemas/meeting.md. The file name (without .md) must equal the note_type (Note Type Schemas).
---
specification_version: 0.0.1
note_type: meeting
label: Meeting
icon: calendar
kind: dated_record
description: Notes for one meeting.
storage:
folder_pattern: "Meetings"
note_name_pattern: "{meeting_date} - {title}"
frontmatter:
note_type:
type: text
const_value: meeting
title:
type: text
not_blank: true
nullable: false
meeting_date:
type: date
generated: now
immutable: true
nullable: false
---
A meeting note records one meeting: who, what, decisions.
This declares where meeting notes live and how they are named (storage rules), and which frontmatter fields they carry (Field Definition Reference). relationships, headings, and guidance are optional and default to "no constraints".
The omitted schema defaults expand to abstract: false, template.file: "meeting.md", and storage.archive.policy: in_place_historical.
3. Create the template#
Create .typedmark/templates/meeting.md with valid starter frontmatter (Templates):
---
note_type: meeting
title: ""
meeting_date: null
---
## Agenda
## Decisions
The empty title and null meeting_date are template placeholders. A tool instantiating the template replaces them with user-provided and generated values before writing a conforming managed note (template placeholder rules).
4. Write a note#
Create Meetings/2026-06-10 - Kickoff.md:
---
note_type: meeting
title: Kickoff
meeting_date: 2026-06-10
---
## Agenda
Project kickoff.
## Decisions
We ship.
That note is a conforming managed note: its note_type maps it to the meeting schema (note-type mapping), its path matches the storage pattern, and every declared field is present with a valid value (managed note contract).
Where to go next#
- Link notes together and document relationships between types: Note Links and Relationships, Headings, and Templates
- Reuse shared fields across note types: property sets
- Share your setup as a versioned system: Systems, Composition, and Evolution
- Shape-valid examples of every artifact live in
schema/fixtures/valid/. Complete collection trees with expected portable validation reports live inschema/fixtures/golden/. Both are checked in CI on every change.