Skip to main content

Note types and frontmatter

Every note is a .md file with a YAML frontmatter block at the top. The type field says what the note is and, therefore, which folder it lives in.

The 12 types​

typeFolderWhat for
sourcewiki/sources/Summary of a source (a meeting, an article), pointing to the original in raw/
conceptwiki/concepts/An idea or technique: idempotency, message queue
entitywiki/entities/A concrete thing: person, project, company, tool
decisionwiki/decisions/A decision and the why, with the date it took effect
synthesiswiki/syntheses/A text that combines several notes into an overview
rulememory/rules/A rule every agent follows. An agent only creates it with your explicit request.
preferencememory/preferences/How you like things to be done
gotchamemory/gotchas/A gotcha: what went wrong and how to avoid it
procedurememory/procedures/A repeated step-by-step
factmemory/facts/An atomic fact (subject, predicate, object) with a validity period
episodememory/episodes/AAAA/MM/The record of something that happened on a date
handoffmemory/handoffs/The end of a session: what was done, what is left, where it stopped

A wiki note​

A decision from the example brain, with typed relations and an earlier version that it supersedes:

---
id: 01KNWQPCCGW9YN4PHGN519T4H6
type: decision
title: Usar SQS para filas
scope: project:atlas
tags: [infra, filas]
sources: ["[[raw/meetings/2026-05-03-arquitetura]]"]
trust: high
origin: agent:claude-code
created: 2026-05-03
updated: 2026-11-10
confirmed: 2026-11-10
valid_from: 2026-05-03
valid_until:
supersedes: ["[[usar-rabbitmq-para-filas]]"]
superseded_by: []
expires_at:
uses: ["[[SQS]]"]
decided_by: ["[[Ana Prado]]", "[[Bruno Tavares]]"]
part_of: ["[[Projeto Atlas]]"]
depends_on: ["[[Idempotência]]"]
---
# Usar SQS para filas

O [[Projeto Atlas]] migrou do [[RabbitMQ]] para o [[SQS]] por custo de operação.

A fact​

Facts do not need a title: Cabeção shows sujeito predicado objeto (subject, predicate, object).

---
id: 01KWE9TKFRS0SE22ZDN9SJEEPP
type: fact
subject: "[[Projeto Atlas]]"
predicate: led_by
object: "[[Bruno Tavares]]"
valid_from: 2026-09-01
valid_until:
supersedes: ["[[fato-ana-lidera-atlas]]"]
superseded_by: []
trust: high
origin: human
created: 2026-09-01
updated: 2026-09-01
---
Bruno Tavares lidera o Projeto Atlas desde setembro de 2026.

Fields Cabeção takes care of​

When the write goes through Cabeção (an agent over MCP or through the CLI), id, created, updated, origin, edited_by, approved_by and approved_at are filled in by it; the agent does not choose these values. The id is a ULID: 26 uppercase characters that do not change if the note is renamed.

In a note you write by hand (in Obsidian, for example), the most important field is type: it tells Cabeção what the note is. Without an id, the note is still indexed and searchable, identified by its path; status counts it among the notes "without an id". A note with neither id nor type is treated as a loose note, outside the schema, and also shows up in search.

Fields that Cabeção does not know are preserved. You can have your own Obsidian properties.

Scope​

scope separates what applies everywhere from what applies to one project:

  • global: always applies (the default for notes saved by agents);
  • project:<nome>: applies to one project, like project:atlas.

A search or a recall with project:atlas brings the project's notes and the global ones.

The list of all fields, with the format of each one, is in the frontmatter reference.