Writing a Weave meeting pattern (v1)

Write a meeting plan as a plain text file. Each phase of the meeting is a heading. After the heading you can add a short note in HTML comment style to set a timer or mark a phase as round-robin. That is the whole format.

Version 1 of the format is locked in — any file you write today will keep working as Weave grows. New features will arrive as new versions, side-by-side.

What goes in a pattern

The header at the top

Every pattern starts with a small header that tells Weave a few things about the file — the format version, an optional title, and an optional one-line description. The header sits between two lines of three dashes (---). Inside, each line is a label followed by a colon and a value, one per line.

What it looks like

---
weave-script-version: 1
title: Sample meeting
description: A short one-liner about the meeting
---

Examples

The bare minimum
---
weave-script-version: 1
---

# Welcome

A valid pattern with no title or description.

With a title and a custom label
---
weave-script-version: 1
title: Stand-up
owner: andrew
---

# Hi

The meeting is titled "Stand-up" and an extra "owner" label is remembered for later.

Good to know

  • The weave-script-version line is required, and it must be the number 1.
  • title and description are optional but recommended.
  • You can add any other labels you like — Weave keeps them with the pattern so other tools can use them later.
  • Keep each value on a single line. The header is not full YAML; lists and nested values are not supported.

A heading for each phase

Each phase of the meeting starts with a heading: a #, a space, and then the name of the phase. You can also add a short note on the same line, wrapped in <!-- and -->, to set things like the timer length. Anything before or after that note is treated as part of the phase name.

What it looks like

# Phase name
# Phase name <!-- duration: 2m -->
# Phase name <!-- duration: 2m, per-participant: true -->

Examples

# Welcome <!-- duration: 2m -->

A two-minute phase called "Welcome".

# Quiet reflection

A phase called "Quiet reflection" with no timer — the host moves the meeting forward when it feels right.

Good to know

  • Only top-level # headings start a new phase. You can still use ## or ### inside the body for sub-sections.
  • Anything written before the first # heading is ignored, so authors usually go straight from the header into the first phase.
  • If you add more than one note on a heading line, only the first one is read — anything after it becomes part of the phase name.

What you write under each heading

Anything you write after a phase heading, up until the next heading, is the body of that phase. This is where you put the instructions, prompts, or talking points for the phase. You can use as many paragraphs as you like.

What it looks like

# Heading

What happens during this phase.
More than one paragraph is fine.

Good to know

  • Extra blank lines at the very start or very end of a phase are tidied away; blank lines between paragraphs are kept.
  • You can leave the body empty if the heading itself says everything you need.

Setting the timer

Add duration: inside the heading note to give a phase a timer. You can write it in whichever style feels most natural — seconds, minutes, hours, or even clock-style. If you write something Weave cannot understand it will tell you, rather than silently using the wrong time in the meeting.

What it looks like

duration: 90        # ninety seconds
duration: 30s       # also seconds
duration: 2m        # two minutes
duration: 1h30m     # one hour and thirty minutes
duration: 2:30      # two minutes and thirty seconds
duration: 1:00:00   # one hour

Examples

duration: 90

A 90-second phase.

duration: 1h30m

A 90-minute phase.

duration: 2:30

A two-and-a-half minute phase.

Good to know

  • If you leave the timer off, Weave treats the phase as open-ended — the host moves the meeting forward when ready.
  • Negative times are not allowed.
  • Whole seconds only — half-seconds like 1.5s are not supported.

Going round the room (`per-participant`)

Add per-participant: true to a heading when each person should take a turn during the phase, rather than the whole group doing the activity together. This is great for check-ins, ice-breakers, and round-robin updates.

What it looks like

per-participant: true
per-participant: false

Examples

per-participant: true

Each person takes a turn.

per-participant: maybe

Anything other than the exact word "true" means "no, do it as a group". Typos are safe — they will not accidentally turn a phase into a round-robin.

Good to know

  • Only the exact word true (in lowercase) turns this on. Leaving it off is the same as writing false.

Your own labels

You can add any extra labels you like to a heading note, even ones Weave does not know about yet. Weave keeps them with the phase so other tools — or future Weave features — can use them. A common example: audio-cue: bell.mp3 to ring a bell at the start of a phase.

What it looks like

# Phase <!-- duration: 2m, audio-cue: bell.mp3 -->

Examples

# Phase <!-- duration: 2m, audio-cue: bell.mp3 -->

A two-minute phase that also remembers an "audio-cue" of "bell.mp3" for any tool that knows how to play it.

Good to know

  • Custom labels are remembered exactly as you write them.
  • Weave does not limit which labels you can use, so you can experiment freely.

What Weave remembers from your pattern

When Weave reads your pattern it pulls out the information below. You never need to write any of this yourself — Weave figures it out from the file you wrote.

About the meeting

  • sourceSpecVersionWhich version of the Weave pattern format your file uses.
  • titleThe title of the meeting, if you gave it one.
  • descriptionA short description of the meeting, if you wrote one.
  • attributesAny extra labels you added to the header at the top of the file.

About each phase

  • idA short, automatic nickname for the phase, useful for linking to it.
  • indexWhere the phase sits in the meeting (the first phase is 0).
  • nameThe name of the phase, shown to everyone in the meeting.
  • durationSecondsHow long the phase runs, in seconds. If it is 0, the host moves things along when they are ready.
  • perParticipantTrue if each person takes a turn during the phase; false if the whole group does it together.
  • bodyWhatever you wrote under the heading — the prompts, instructions, or talking points.
  • attributesAny extra labels you added to the heading.

Example patterns

Real meeting patterns you can read, copy, and use as a starting point. Each one shows a different part of the format — including a few examples of common mistakes so you know what they look like.