Skip to Content
Quickstart

Quickstart

A POF bundle is a zip of Markdown files, so nothing here needs more than a shell. The examples come from casa-norte.pof.zip, the bundle of a demo retailer with the core and six extensions.

Open it

unzip casa-norte.pof.zip -d casa-norte cd casa-norte ls # COMMITS.md POF.md channels connections extensions objectives # policies roles routines skills

Read the manifest

POF.md says what the bundle is: the format, the revision of the spec it follows, the moment it describes, how much it holds and which extensions it carries.

POF.md
--- type: Bundle format: pof revision: 2026-10-16 as_of: 2026-10-16T12:43:25.205Z counts: pieces: 21 subentities: 10 links: 37 commits: 49 changes: 92 extensions: - hub - data - growth - loops - whatsapp - agents ---

A reader checks type, format and revision before anything else. See The manifest.

List the pieces

Every core piece is one file named after its type, in its own folder:

find . -path ./extensions -prune -o -name '[A-Z]*.md' -print \ | grep -v -e HISTORY -e COMMITS -e POF.md | sort # ./channels/whatsapp-mayorista/CHANNEL.md # ./connections/greatmove-actividades/CONNECTION.md # ./objectives/crecer-canal-mayorista-q4/OBJECTIVE.md # ./policies/aprobacion-de-compras/POLICY.md # ./roles/administracion/gerenta/ROLE.md # ./routines/calificar-consulta-mayorista/ROUTINE.md # ./skills/calificar-consulta-mayorista/SKILL.md # ...

Links are paths. The objective says who owns it and which routines move it:

objectives/crecer-canal-mayorista-q4/OBJECTIVE.md
--- type: Objective kind: tactical title: Crecer el canal mayorista en el último trimestre name: crecer-canal-mayorista-q4 goal: Crecer en el interior links: - role: impacted_by to: routines/calificar-consulta-mayorista - role: owned_by to: roles/mayorista/atencion ---

routines/calificar-consulta-mayorista is a folder in the same bundle; open its ROUTINE.md and you are there. See Documents and links.

Read the history, if it is there

COMMITS.md lists every commit; each piece’s HISTORY.md lists the changes that touched it, field by field. Both are optional: a bundle without them is a snapshot. See History.

Leave the extensions alone

extensions/ holds what other systems exported: a CRM’s pipelines, a data platform’s notebooks, a WhatsApp inbox. Each has an EXTENSION.md that says which system wrote it and in what format. A reader that does not know one keeps it as it is. See Extensions.

Writing a bundle is the same walk in reverse: one folder per piece, its attributes as frontmatter fields, its relations as paths, and the manifest at the root. Reading and importing lists what a reader must check.