A complete workshop
A full workshop pattern that uses every feature of the format — read it as a tour, or copy it as a starting point.
The pattern
---
weave-script-version: 1
title: A complete workshop
description: One pattern that uses every feature of the format — read it as a tour, or copy it as a starting point.
owner: andrew
team: weave-core
---
# Welcome <!-- duration: 90 -->
Welcome. Settle in.
# Hellos <!-- duration: 30s, per-participant: true -->
One sentence each — your name and what brought you here today.
# Frame the workshop <!-- duration: 2m -->
Today is shaped around small-group work and a longer synthesis.
We'll come back together between each round so you can hear what everyone is finding.
# Small groups <!-- duration: 15m, breakouts: 3 rooms, audio-cue: bell.mp3 -->
In your room, take turns sharing what brought you here today.
Everyone gets a chance to speak. Listen for what surprises you.
# Pair reflection <!-- duration: 2:30, breakouts: 2 per room -->
Pair up. Half the time each. No interruptions.
# Synthesis <!-- duration: 1h30m, mood: focused -->
Back together. We'll weave the threads from your small groups and your pairs.
# Quiet hour <!-- duration: 1:00:00 -->
Stay with the room. Write, think, or talk quietly.
# Open close
No timer — wrap up when it feels right.
What Weave sees
When Weave reads this file, it pulls out the information below. You don't need to write any of this yourself.
{
"schemaVersion": 1,
"meta": {
"sourceSpecVersion": 1,
"title": "A complete workshop",
"description": "One pattern that uses every feature of the format — read it as a tour, or copy it as a starting point.",
"attributes": {
"owner": "andrew",
"team": "weave-core"
}
},
"phases": [
{
"id": "1-welcome",
"index": 0,
"name": "Welcome",
"durationSeconds": 90,
"perParticipant": false,
"body": "Welcome. Settle in.",
"breakouts": null,
"attributes": {}
},
{
"id": "2-hellos",
"index": 1,
"name": "Hellos",
"durationSeconds": 30,
"perParticipant": true,
"body": "One sentence each — your name and what brought you here today.",
"breakouts": null,
"attributes": {}
},
{
"id": "3-frame-the-workshop",
"index": 2,
"name": "Frame the workshop",
"durationSeconds": 120,
"perParticipant": false,
"body": "Today is shaped around small-group work and a longer synthesis.\n\nWe'll come back together between each round so you can hear what everyone is finding.",
"breakouts": null,
"attributes": {}
},
{
"id": "4-small-groups",
"index": 3,
"name": "Small groups",
"durationSeconds": 900,
"perParticipant": false,
"body": "In your room, take turns sharing what brought you here today.\n\nEveryone gets a chance to speak. Listen for what surprises you.",
"breakouts": {
"kind": "rooms",
"count": 3
},
"attributes": {
"audio-cue": "bell.mp3"
}
},
{
"id": "5-pair-reflection",
"index": 4,
"name": "Pair reflection",
"durationSeconds": 150,
"perParticipant": false,
"body": "Pair up. Half the time each. No interruptions.",
"breakouts": {
"kind": "perRoom",
"size": 2
},
"attributes": {}
},
{
"id": "6-synthesis",
"index": 5,
"name": "Synthesis",
"durationSeconds": 5400,
"perParticipant": false,
"body": "Back together. We'll weave the threads from your small groups and your pairs.",
"breakouts": null,
"attributes": {
"mood": "focused"
}
},
{
"id": "7-quiet-hour",
"index": 6,
"name": "Quiet hour",
"durationSeconds": 3600,
"perParticipant": false,
"body": "Stay with the room. Write, think, or talk quietly.",
"breakouts": null,
"attributes": {}
},
{
"id": "8-open-close",
"index": 7,
"name": "Open close",
"durationSeconds": 0,
"perParticipant": false,
"body": "No timer — wrap up when it feels right.",
"breakouts": null,
"attributes": {}
}
]
}