/gaia-meeting

user-facing
Category:
Creative & Collaboration
Lifecycle phase:
Any
Arguments:
--charter "<charter text>" [--mode <mode>] [--invitees <P1,P2,...>] [--skip-research] [--no-web] or --resume <session-id> [--continue | --interject "<msg>" | --wrap-up] [--invitees-override <P1,P2,...>]

What it does

/gaia-meeting runs a structured peer-to-peer multi-agent meeting with a seven-phase lifecycle: Invite, Charter, Research, Discuss, Close, Review, and Save. Unlike Party Mode, meetings require a charter that defines the decision to be made. The default mode is "decide" -- the meeting drives toward a concrete decision.

Interactivity model

A meeting is interactive across top-level user turns, not within a single turn. The skill pauses at five fixed yield boundaries and waits for your next message before continuing. At each boundary you see this prompt:

[c]ontinue / [p]ause / [i]nterject "..." / [w]rap-up / [a]bort

The five yield boundaries are:

  1. Post-CHARTER -- after the charter is validated and invitees are resolved.
  2. Post-RESEARCH -- after participants share their cited findings.
  3. Every N DISCUSS turns -- default every 4 rounds; configurable via meeting.checkpoint_every_n_turns (clamped to 1--10).
  4. Pre-CLOSE -- before the decision is recorded.
  5. Pre-SAVE -- before decisions and action items are persisted to memory.

If you supply --charter with no other input and never respond to yields, the meeting runs end-to-end in a single turn with no user participation. This is almost never what you want -- see Troubleshooting.

When to use it

  • You need a structured discussion that drives to a decision, not just exploration.
  • You want meeting notes with action items and decision records automatically captured.

Prerequisites

  • No strict prerequisites. Works best when planning artifacts exist for context.

Orchestration mode

When /gaia-meeting starts in subagent mode (Mode A -- the default), the framework emits a one-shot warning to stdout:

────────────────────────────────────────────────────────────────────────────
GAIA orchestration: running in subagent mode (Mode A)

The skill you're invoking belongs to a class (heavy-procedural or
conversational) whose output benefits from cross-step context. Mode A
dispatches each sub-agent in its own forked context, so context may
be lossy between steps — sub-agents return summaries, not full reasoning.

For the full-fidelity experience, enable Mode B (Agent Teams):
  1. Set CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1 in your environment.
  2. Add orchestration.mode: team to .gaia/config/project-config.yaml.

Mode B uses persistent teammates that preserve in-conversation state
across dispatches.

This warning is shown once per session.
────────────────────────────────────────────────────────────────────────────

Why Mode B matters for meetings

The /gaia-meeting skill declares orchestration_class: conversational in its SKILL.md frontmatter. Conversational skills produce output that benefits from cross-step context -- every per-turn agent dispatch in the DISCUSS and RESEARCH phases would lose the live reasoning trace of every prior turn when forked in Mode A. Mode B uses persistent teammates that retain in-conversation state across dispatches, so each agent's turn can build on what was said before instead of receiving only a summary.

How to enable Mode B

Both steps are required. If either is missing, the framework falls back silently to Mode A and the warning fires again on the next session.

Step 1 -- set the environment variable:

export CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1

Add this to your shell rc file to persist across sessions, or set it in Claude Code's settings.json.

Step 2 -- add the YAML block to .gaia/config/project-config.yaml:

orchestration:
  mode: team

One-shot semantics

The warning is emitted once per Claude Code session. A marker file at _memory/checkpoints/orchestration-warning-shown.<session-id> suppresses the warning for the rest of the session. Starting a new session re-emits the warning once.

How to invoke

/gaia-meeting --charter "Decide the database technology for the user service" --invitees Theo,Soren

Resuming a paused session

If you chose [p]ause at a yield boundary, the session is persisted to _memory/meeting-sessions/{date}-{slug}.yaml. Resume it with one of the following:

/gaia-meeting --resume <session-id> --continue
/gaia-meeting --resume <session-id> --interject "I want to revisit the caching concern"
/gaia-meeting --resume <session-id> --wrap-up

How you participate

You are NOT auto-added as an attendee. By default, the user is an interjector -- you observe the meeting and can speak at yield boundaries, but agents do not address you as a participant.

There are two ways to participate:

SurfaceHowEffect
AttendeeInclude yourself in --invitees (e.g., --invitees Theo,Julien). Requires a stakeholder file -- create one first via /gaia-create-stakeholder, since --invitees takes agent or stakeholder identifiers, not free-form names.Agents address you by name, wait for your contributions during discussion rounds, and treat your input as first-class.
InterjectorType i "your message" at any yield boundary.Your message is injected into the transcript. Agents respond to it in the next phase, but you are not a named participant.

If you use --mode decide (the default) with no --invitees, the resolved attendee set is empty. The meeting will narrate around your absence. Always specify --invitees in decide mode.

What it does step by step

  1. Charter gate Validates that a charter was provided. The meeting cannot start without one.
  2. Invite participants Selects relevant agents based on the charter topic.
  3. Research phase Participants load relevant context from project artifacts and share cited findings.
  4. Discussion rounds Sequential turns with cite-or-flag enforcement -- every claim must cite a source or be flagged as unverified.
  5. Close phase Records the decision, captures action items, and writes meeting notes to .gaia/artifacts/creative-artifacts/meeting-notes/meeting-{date}.md.
  6. Save to memory Persists decisions and action items to agent memory sidecars.

Inputs

Input Source Required Description Example
--charter Command argument Yes (new session) A one-to-three-sentence framing for the meeting that defines the decision to be made. --charter "Decide the database technology for the user service."
--mode Command argument No (defaults to decide) Meeting mode. Each mode biases the closing artifact differently. See the mode reference below this table. --mode decide, --mode explore, --mode red-team, --mode clarify
--invitees Command argument No Comma-separated list of agent or stakeholder identifiers to invite. In decide mode with no invitees, the attendee set is empty. To participate as an attendee, include your own stakeholder identifier here. --invitees Theo,Soren
--invitees-override Command argument No (use with --invitees) When set alongside --invitees, the user-specified CSV is authoritative -- mode-default invitees are NOT auto-added. The saved frontmatter records invitees_override: true. --invitees "Derek,Nate" --invitees-override
--skip-research Command argument No Omit the RESEARCH phase entirely. The SAVE phase writes research_phase: skipped into the meeting-notes frontmatter. --skip-research
--no-web Command argument No Exclude WebSearch and WebFetch from the RESEARCH phase tool allowlist. The SAVE phase writes web_search: disabled into the meeting-notes frontmatter. Recommended for sensitive charters. --no-web
--resume Command argument Yes (resuming) Session ID of a paused meeting to resume. Sessions are stored under _memory/meeting-sessions/{date}-{slug}.yaml. --resume 2026-05-18-database-decision
--continue Command argument No (resume only) Used with --resume. Continue the meeting from where it was paused. Mutually exclusive with --interject and --wrap-up. --resume <id> --continue
--interject Command argument No (resume only) Used with --resume. Inject a message into the transcript before continuing. Mutually exclusive with --continue and --wrap-up. --resume <id> --interject "Revisit the caching concern"
--wrap-up Command argument No (resume only) Used with --resume. Skip remaining discussion and move directly to the Close phase. Mutually exclusive with --continue and --interject. --resume <id> --wrap-up

Mode reference

Ten canonical modes are available. The mode you pick sets the goal of the meeting and the shape of its closing artifact, and (unless --invitees-override is set) auto-injects a default set of expert invitees suited to that goal. Pick the mode whose purpose matches what you actually need out of the session.

What each mode is for

decide (default)
Make a decision. Use when you have a question with options and need to land on one, with the trade-offs and rationale recorded. Produces a decision-record. No default invitees — you choose who weighs in.
explore
Open up a problem space. Use when you are not ready to decide and want to surface options, angles, and unknowns before narrowing. Produces an opportunity-map. No default invitees.
align
Get people on the same page. Use to reconcile differing understandings, confirm scope, or settle who-owns-what before work starts. Produces an alignment-summary. Default invitees: Derek (PM), Nate (Scrum Master).
red-team
Attack the plan to find weaknesses. Use to stress-test a design, decision, or rollout by deliberately hunting for risks, failure modes, and security gaps. Produces a risk-register. Default invitees: Zara (Security), Sable (Test Architect), Nova (Problem-Solver).
ac
Write acceptance criteria. Use to turn a feature or story into concrete, testable acceptance criteria. Produces a machine-readable acceptance-criteria list. Default invitees: Vera (QA), Sable (Test Architect).
brainstorm
Generate new ideas. Use for divergent, quantity-first idea generation before any filtering. Produces a brainstorming-document. Default invitees: Rex, Orion, Lyra, Elara, Vermeer (creative / innovation personas).
design (alias ux)
Work through a UX / product design. Use to design flows, screens, and interaction patterns, balancing usability and the design system. Produces ux-design-notes. Default invitees: Christy, Suki, Layla, Talia, Tariq, Lena, Cleo, Freya (design / front-end personas).
architecture
Make a technical / architectural call. Use to choose technologies, define component boundaries, or record an architecture decision and its consequences. Produces architecture-decisions. Default invitees: Theo, Soren, Milo, Juno, Omar, Priya (architecture / platform personas).
sprint
Adjust the current sprint. Use to re-plan scope, re-prioritize, or resolve blockers mid-sprint. Produces sprint-adjustments. Default invitees: Nate (Scrum Master), Derek (PM), Rafael.
clarify (aliases clarification, questions)
Get a question answered / explained. Use purely to understand something — experts answer your question from different angles and explain it. This mode is not for deciding and not for brainstorming; it produces clarification-notes (questions, expert answers, agreements/disagreements on the explanation, and open follow-ups), never a decision record. No default invitees — invite the experts relevant to your topic with --invitees.

At a glance

Mode Goal Alias Default invitees Closing-artifact bias
decide (default)Make a decision(none)decision-record
exploreOpen up a problem space(none)opportunity-map
alignGet on the same pageDerek, Natealignment-summary
red-teamFind risks / weaknessesZara, Sable, Novarisk-register
acWrite acceptance criteriaVera, Sablemachine-readable-ac-list
brainstormGenerate ideasRex, Orion, Lyra, Elara, Vermeerbrainstorming-document
designDesign UX / productuxChristy, Suki, Layla, Talia, Tariq, Lena, Cleo, Freyaux-design-notes
architectureMake a technical callTheo, Soren, Milo, Juno, Omar, Priyaarchitecture-decisions
sprintAdjust the sprintNate, Derek, Rafaelsprint-adjustments
clarifyGet a question answeredclarification, questions(none)clarification-notes

Outputs

OutputLocationDescription
Meeting notes.gaia/artifacts/creative-artifacts/meeting-notes/The saved meeting-notes document (meeting-{date}-{slug}.md).

Example session

> /gaia-meeting --charter "Decide the database for user service" --invitees Theo,Soren

Charter accepted.
Inviting: Theo (Architect), Soren (DevOps)

[c]ontinue / [p]ause / [i]nterject "..." / [w]rap-up / [a]bort

> c

Research phase...
  [Theo] PostgreSQL aligns with our stack (source: architecture.md S5)
  [Soren] Redis caching layer needed regardless (source: infra-design.md S3)

[c]ontinue / [p]ause / [i]nterject "..." / [w]rap-up / [a]bort

> i "What about DynamoDB? We have AWS credits expiring Q3."

Discussion:
  Round 1: [Theo] DynamoDB would require a new data access layer...
  [Soren] Operational cost is lower but lock-in risk is high...
  Round 2-4: ...

[c]ontinue / [p]ause / [i]nterject "..." / [w]rap-up / [a]bort

> p

Session paused. ID: 2026-05-07-database-decision
Resume with: /gaia-meeting --resume 2026-05-07-database-decision --continue

Resuming

> /gaia-meeting --resume 2026-05-07-database-decision --continue

Resuming session 2026-05-07-database-decision at pre-CLOSE...

Decision: PostgreSQL with Redis caching layer.
Action items: Theo to update architecture.md.

Written to .gaia/artifacts/creative-artifacts/meeting-notes/meeting-2026-05-07.md

What to run next

Troubleshooting

My meeting ran end-to-end without me -- I never got to participate

Two root causes:

  1. No invitees in decide mode. With --mode decide (the default) and no --invitees, the resolved attendee set is empty. The skill has no participants to yield to, so it narrates the entire meeting in one pass. Fix: always pass --invitees in decide mode.
  2. You are not on the invitee list. The user is not auto-added as an attendee. Without your name in --invitees, agents treat you as absent. Fix: create a stakeholder for yourself via /gaia-create-stakeholder, then include your identifier in --invitees. Alternatively, use [i]nterject "..." at each yield boundary to participate without being a named attendee.

I keep seeing the GAIA orchestration warning every time I start this command

The warning is shown once per session, so if it fires again that's a new session -- not a per-skill repeat. If you want to silence it entirely, enable Mode B (full-fidelity orchestration via Agent Teams). Both of these conditions must be true:

  • echo $CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS returns 1 (not empty)
  • .gaia/config/project-config.yaml contains:
    orchestration:
      mode: team

If either is missing the framework silently uses Mode A and re-emits the warning each session.

Charter not provided

The meeting will HALT with status BLOCKED before invitees are notified. Supply --charter "..." to define the decision to be made.