Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 1 addition & 5 deletions locals/mailing-list.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,7 @@ sidebar_position: 2

# Mailing List

:::info Target audience: approved GraphQL Local organizers

:::

Please join the GraphQL Locals mailing list:
Approved GraphQL Local organizers should join the GraphQL Locals mailing list:

https://lists.foundation.graphql.org/g/locals

Expand Down
11 changes: 4 additions & 7 deletions locals/resources.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,6 @@ title: Resources & Templates
sidebar_position: 3
---

:::info Looking for funding?

If your immediate need is event financial, head to
[Sponsorship](./sponsorship.md).

:::

## Template slide deck

A template slide deck, suitable for the organizer or for use by speakers:
Expand All @@ -26,3 +19,7 @@ https://youtu.be/lKeEhbQqjNw?list=PLu_TLSnl46RqT7utOS2iqNn9beOX4bshO&t=789

The GraphQL logo files can be downloaded from the brand guidelines page:
https://graphql.org/brand/

## Sponsorship

See: [Sponsorship](./sponsorship.md).
3 changes: 2 additions & 1 deletion tsc/members.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@
For an up to date list of members, see:
https://github.com/graphql/graphql-wg/blob/main/GraphQL-TSC.md#tsc-members

The current members of the GraphQL TSC are (in chair, name order):
The members of the GraphQL TSC up until 31st Jan 2026 are (in chair, name
order):

| Name | Affiliation | Term begins | Term ends |
| -------------------------------------------------- | --------------------- | ----------- | ------------ |
Expand Down
26 changes: 4 additions & 22 deletions wg/async-contributions.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,6 @@ title: Asynchronous Contributions
sidebar_position: 4
---

TODO

<!-- This was AI generated

:::info Prefer specs work?

If you are contributing to the GraphQL specification directly, check the
[TSC workflow guidelines](../tsc/spec-proposals.md) for deeper process details.

:::

You do not need to attend every meeting to contribute in a useful way. Use
asynchronous channels to stay involved between sessions.

Expand All @@ -29,26 +18,19 @@ asynchronous channels to stay involved between sessions.

- Improve meeting notes by clarifying summaries, adding links, or correcting
typos.
- Publish recap posts in the relevant repository or community forums.
- Translate notes or key decisions for non-English-speaking communities when
possible.

## Community Channels

- Join the GraphQL Foundation Discord and relevant channels (e.g.,
`#wg-general`, `#wg-graphql-js`).
- Join the [GraphQL Foundation Discord](https://discord.graphql.org) and
relevant channels (e.g. `#wg`).
- Keep discussions focused, reference agenda items, and capture decisions back
in GitHub.
- Utilize the working group mailing lists for formal announcements or consensus
calls.

## Staying Informed

- Subscribe to repository notifications with custom filters for issues and
discussions.
- Follow the monthly community update or newsletter for cross-program
highlights.
- Subscribe to repository notifications - all changes are implemented through
pull requests.
- Track open action items assigned to you and update status ahead of the next
meeting.

-->
119 changes: 79 additions & 40 deletions wg/facilitation-guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,61 +3,100 @@ title: Facilitation Guide
sidebar_position: 3
---

TODO

<!-- This was AI generated

:::tip Only need agenda templates?

Jump down to [Templates](#templates) if you already have facilitation experience
and just require docs.

:::
Hosting a GraphQL Working Group is fairly straightforward; we recommend that you
attend a few working groups before hosting your own, and you can always see how
others do it via our
[YouTube recordings](https://youtube.com/@GraphQLFoundation).

Effective facilitation keeps working group meetings inclusive, efficient, and
outcome-driven.

We often use the terms facilitator, chair and host interchangeably.

## Before the Meeting

- Publish the agenda at least five business days in advance and pin it to the
relevant Discord/git channels.
- Invite subject-matter experts whose input will be required for decisions.
- Assign a note-taker and a timekeeper. Confirm backups in case someone is
absent.
- Review outstanding action items and highlight any blockers in the agenda.
- Agenda templates should be auto-generated ahead of time, if your WG is new
then check out [wg-template](https://github.com/graphql/wg-template) and
[wgutils](https://github.com/graphql/wgutils). A TSC member (currently Benjie)
takes care of generating the agendas.
- Check over the agenda and ensure it is formatted correctly, and the item
durations seem reasonable. Often people vastly underestimate discussion time.
- Consider reordering the agenda so shorter items come first, allowing space for
more champion.
- If the same champion has many topics, consider interspercing other agenda
items to break up the agenda.
- If appropriate, review notes from previous meeting to ensure you have context.

## During the Meeting

- Begin with a code of conduct reminder and quick attendance roll call.
- Set expectations for chat usage, raising hands, or speaking cues.
- Timebox each agenda item. Offer to park topics that run over and move them to
async follow-up.
- Encourage balanced participation by inviting quieter voices and summarizing
points before decisions.
- Capture clear actions: owner, deliverable, and due date.
The agenda guides you through the process of starting a meeting, but as a rough
summary:

1. Wait for all people listed in the attendees to show up, or until 5 minutes
past the start time, whichever occurs first.
1. Start by welcoming and introducing the working group, to ensure people are
"in the right room" ;)
1. Note that all participants must have agreed to the specification membership
agreement, participation guidelines, contribution guide and code of conduct,
and that meetings are recorded automatically, published to YouTube, and that
we use LLMs/AIs to generate summaries.
1. Invite attendees to give a very brief introduction (typically name and
company); this is intended to ensure attendees know the preferred
pronunciation of each others' names.
1. If anyone is in attendance who is not on the agenda, nudge them to add their
attendance. The CLAbot ensures that all attendees on the agenda have agreed
to the CLA, unlisted attendees who have not agreed to the CLA must not
participate until such time as they have signed the CLA.
1. If someone appears late, invite them to introduce themself when the
opportunity arises, without breaking the flow of the meeting.
1. Remind attendees that there is a "live notes" document that all can
contribute to, and ask for volunteers to keep it updated. Though the AI
summary tools make a summary of the meeting, often human attendees have more
context and their notes can be much higher value.
1. Review the agenda for the attendees, and give them a chance to add any other
items.
1. Invite the first topic's champion to introduce their topic.

There are many different speaking cultures around the world, some are more
forward and happy to interject, whilst others are more reserved and prefer to
wait their turn. Keep an eye on the "raise hand" functionality in Zoom, and if
someone raised their hand but didn't get a chance to speak, feel free to
interrupt and invite them to do so. Do not put people on the spot asking for
input when they haven't offered, but if someone has something to say (you might
notice them writing in the text chat, for example), invite them to do so (e.g.
ask them to expand upon or echo their chat comment).

Should you have a packed agenda and an item is running significantly over time,
especially if the conversation is becoming cyclic or progress is slowing, you
should interrupt and invite the return of the topic at the next meeting, moving
onto the next item. You can return to that topic at the end of the meeting if
there is time.

Where possible, explicitly call out action items, and **note them in the live
notes**. Do not trust the AI to capture these accurately!

## After the Meeting

- Publish notes and recordings within 48 hours.
- Zoom recordings will be sync'd to YouTube roughly once a week (typically
Thursdays).
- Meeting notes should be added to the repository following the pattern already
in use (see instructions in the repo). If the host doesn't take care of this,
typically the community gardener will do so after a week or two.
- Update GitHub issues with decisions made or next steps assigned.
- Thank guest presenters and confirm when their items will resurface.
- Review the parking lot items and schedule async resolutions or future agenda
slots.

## Templates
## Agendas

- **Agenda:** Title, date, Zoom link, code of conduct reminder, roll call,
agenda items with owners, parking lot, action item log.
- **Run Sheet:** Timeline, facilitator cues, and technical checks (recording,
streaming, captioning).
- **Decision Log:** Table capturing proposal, decision type (consensus, rough
consensus, deferred), and follow-up links.
Agenda's are generated via the `wgutils agenda gen` command; most repos let you
call it as `yarn gen-agenda YYYY MM` (replacing YYYY and MM with the year and
month to generate agendas for). Running this command will overwrite existing
agendas for the same date, so be careful not to lose attendance or agenda items!

## Continuous Improvement
Each item must have a duration and a champion. The champion introduces the
subject and typically invites discussion around it.

- Collect feedback quarterly from people who attend on pacing, clarity, and
inclusion.
- Rotate facilitation or co-chairing to build capacity in the community.
- Share learnings with other working groups via the WGs shared channel.
## Feeding back to the main WG

-->
If you're facillitating a subcommittee, when major advancements happen you
should add notification to [the main WG](https://github.com/graphql/graphql-wg)
to keep members informed and invite further input to the subcommittee. This is
also useful for cross-polination of ideas between subcommittees.
21 changes: 8 additions & 13 deletions wg/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,6 @@ title: Working Groups Overview
sidebar_position: 1
---

:::tip Only need joining instructions?

Jump to [Join a Meeting](./join-a-meeting.md) if you are ready to participate
right away.

:::

GraphQL Working Groups (WGs) bring maintainers, implementers, and community
experts together to shape the future of the GraphQL specification and ecosystem.
Meetings are typically held monthly and are open to observers.
Expand Down Expand Up @@ -44,9 +37,11 @@ Meetings are typically held monthly and are open to observers.

## Participant Roles

- **Chair:** Maintain agenda, facilitate discussions, and ensure follow-up items
are tracked.
- **Editor:** Maintain the official specs and track normative changes.
- **Implementer:** Share insights from runtimes, tooling, and large deployments.
- **Observer:** Listen in, learn the process, and may comment through GitHub
issues or Discord chat.
- **Host** (aka chair, facilitator): Maintain agenda, facilitate discussions,
and ensure follow-up items are tracked.
- **Editor**: Maintain the official specs and track normative changes.
- **Champion**: Introduce changes, seek feedback, push for advancement.
- **Attendee**: Offer relevant feedback, spot issues, consider edge cases, share
insights from runtimes, tooling, and large deployments.
- **Observer**: Watch via YouTube, learn the process, comment through GitHub
issues or Discord chat, become an Attendee!