Skip to Content
The formatDocuments and links

Documents and links

Every document of the core is a Markdown file with a YAML frontmatter block. The frontmatter holds the structured fields; the body holds the piece’s main text. These conventions apply to all seven core types.

Frontmatter of a piece

Fields are written in this order:

FieldRequiredNotes
typeYesThe POF type, capitalized: Role, Skill, Policy, Objective, Routine, Channel, Connection. It must match the folder.
kindIn some familiesThe piece’s type within its family’s catalog, written only where the family has more than one: Objective (strategic, tactical, operational), Channel (the platform) and Connection (mcp, openapi).
titleYesThe human name.
nameYesThe slug, the same as the piece’s folder.
attributesDepends on the typeThe piece’s attributes, each as a field of its own (team, goal, require_catch_all…). Each type’s page lists them.
tagsNoA list of labels.
linksNoThe piece’s relations to other pieces. See Links.
archived_atNoWhen the piece was archived. An archived piece still travels in the bundle.
created_at, updated_atNoISO 8601 timestamps.
created_by, updated_byNoWho created and last changed it, as the writing system names its actors.
skills/conciliar-cheques/SKILL.md
--- type: Skill title: Conciliar cheques con proveedores name: conciliar-cheques description: Cuando hay que cruzar los cheques diferidos emitidos contra las facturas y órdenes de compra de un proveedor. domain: administracion links: - role: used_by to: roles/administracion/gerenta created_at: 2026-10-15T15:47:26.894Z created_at: 2026-10-15T15:47:26.894Z updated_at: 2026-10-15T16:24:21.758Z --- 1. Tomá las órdenes de compra del proveedor en estado Ordenado o Recibido. 2. Para cada una, verificá en el checklist si la factura está recibida y el cheque emitido. 3. Una OC recibida sin factura es un reclamo al proveedor.

An attribute can never be named like one of the fields above: a writer that has one would lose it.

Body

The body is the piece’s main long text, which depends on the family: the instructions of a Role or a Skill, the description of a Policy, Objective, Channel or Connection, and the goal of a Routine. Any other long text (a routine’s steps, for example) is an attribute in the frontmatter.

Empty fields are left out

A field with no value is not written: no tags: [], no description: "", no archived_at: null. A reader treats a missing field as empty.

A link is a relation from the piece that writes it to another piece of the bundle. It is written as a path, never an id:

links: - role: owned_by to: roles/direccion/socio-comercial created_at: 2026-10-16T10:48:05.651Z
FieldNotes
roleWhat the relation means, read from the piece that writes it.
toThe folder of the other piece, from the root of the bundle.
archived_atWhen the link was archived, if it was.
created_atWhen the link was made.

The five roles:

roleReads asWritten by
used_bythis piece is used by toa Skill, Channel or Routine toward the roles that use it; a Connection toward the roles and routines that use it
usesthis piece uses toa Routine toward the channels it works through
handbookthis piece is explained in toa Connection toward the skills that explain it
owned_bythis piece is in the charge of toan Objective toward the roles that own it
impacted_bythis piece is moved by toan Objective toward the routines that move it

Each link is written once, on one side. A reader that wants the other direction (the skills a role uses, the objectives a routine moves) looks for links whose to is the piece.

Paths across the bundle

Every relation in a bundle is a path, in the core and in the extensions:

  • The core lives at the root, so its paths already start there: roles/mayorista/atencion. To point into an extension, a core path goes through its folder: extensions/<system>/….
  • Inside an extension, paths are relative to the extension’s folder.
  • An extension that points outside its folder writes a path from the root with a leading /: /roles/mayorista/atencion, /extensions/data/artifacts/stock.

A reader resolves a path that starts with / against the root of the bundle.

Subentities

Some pieces carry items of their own: a policy’s rules, an objective’s key results, a skill’s files. Each item is a file in a folder of the piece, named by a zero-padded position and a slug of its title (rules/001-proveedor-nuevo-direccion.md). Its frontmatter has:

FieldNotes
typeRule, KeyResult or File, matching the folder.
positionIts order inside the piece, from 0.
attributesThe item’s own fields.
archived_at, created_at, updated_atAs on a piece.

Annotations

An annotation is a note left on a piece: annotations/1.md, annotations/2.md… in order. Its frontmatter is type: Annotation and an id that a writer keeps across exports; its body is the note.

The folder is the identity. Two bundles that hold policies/aprobacion-de-compras are talking about the same policy, whatever ids each system gives it inside.