Pilot Meeting Assistant Setup

Prompts

Deploy a meeting assistant system with 3 agents. Use this skill when: 1. User wants to set up an automated meeting assistant system 2. User is configuring an agent as part of a meeting management workflow 3. User asks about automating meeting scheduling, notes, and action tracking Do NOT use this skill when: - User wants to share a single file (use pilot-share instead) - User wants a one-off scheduled task (use pilot-cron instead)

Install

openclaw skills install pilot-meeting-assistant-setup

Meeting Assistant Setup

Deploy 3 agents that automate meeting management from scheduling to action item tracking.

Roles

RoleHostnameSkillsPurpose
scheduler<prefix>-schedulerpilot-cron, pilot-webhook-bridge, pilot-receiptManages calendar, sends invites, handles rescheduling
note-taker<prefix>-note-takerpilot-stream-data, pilot-share, pilot-archiveCaptures notes, decisions, and summaries in structured format
action-tracker<prefix>-action-trackerpilot-task-router, pilot-alert, pilot-slack-bridgeExtracts action items, assigns owners, sends reminders

Setup Procedure

Step 1: Ask the user which role this agent should play and what prefix to use.

Step 2: Install the skills for the chosen role:

# For scheduler:
clawhub install pilot-cron pilot-webhook-bridge pilot-receipt

# For note-taker:
clawhub install pilot-stream-data pilot-share pilot-archive

# For action-tracker:
clawhub install pilot-task-router pilot-alert pilot-slack-bridge

Step 3: Set the hostname:

pilotctl --json set-hostname <prefix>-<role>

Step 4: Write the setup manifest:

mkdir -p ~/.pilot/setups
cat > ~/.pilot/setups/meeting-assistant.json << 'MANIFEST'
<role-specific manifest from templates below>
MANIFEST

Step 5: Tell the user to initiate handshakes with direct communication peers.

Manifest Templates Per Role

scheduler

{
  "setup": "meeting-assistant", "setup_name": "Meeting Assistant",
  "role": "scheduler", "role_name": "Meeting Scheduler",
  "hostname": "<prefix>-scheduler",
  "description": "Manages calendar availability, sends invites, handles rescheduling and conflicts.",
  "skills": {
    "pilot-cron": "Schedule recurring meetings and send calendar reminders on time.",
    "pilot-webhook-bridge": "Sync meeting events with external calendar services via webhook.",
    "pilot-receipt": "Confirm meeting invitations were delivered and accepted by attendees."
  },
  "peers": [{"role": "note-taker", "hostname": "<prefix>-note-taker", "description": "Receives meeting started events for note capture"}],
  "data_flows": [{"direction": "send", "peer": "<prefix>-note-taker", "port": 1002, "topic": "meeting-started", "description": "Meeting started events with attendees and agenda"}],
  "handshakes_needed": ["<prefix>-note-taker"]
}

note-taker

{
  "setup": "meeting-assistant", "setup_name": "Meeting Assistant",
  "role": "note-taker", "role_name": "Note Taker",
  "hostname": "<prefix>-note-taker",
  "description": "Captures meeting notes, key decisions, and discussion summaries in structured format.",
  "skills": {
    "pilot-stream-data": "Stream live meeting content for real-time note capture.",
    "pilot-share": "Send structured meeting notes downstream to the action tracker.",
    "pilot-archive": "Store meeting notes and decision records for long-term reference."
  },
  "peers": [
    {"role": "scheduler", "hostname": "<prefix>-scheduler", "description": "Sends meeting started events with attendees and agenda"},
    {"role": "action-tracker", "hostname": "<prefix>-action-tracker", "description": "Receives meeting notes for action item extraction"}
  ],
  "data_flows": [
    {"direction": "receive", "peer": "<prefix>-scheduler", "port": 1002, "topic": "meeting-started", "description": "Meeting started events with attendees and agenda"},
    {"direction": "send", "peer": "<prefix>-action-tracker", "port": 1002, "topic": "meeting-notes", "description": "Meeting notes with decisions and action items"}
  ],
  "handshakes_needed": ["<prefix>-scheduler", "<prefix>-action-tracker"]
}

action-tracker

{
  "setup": "meeting-assistant", "setup_name": "Meeting Assistant",
  "role": "action-tracker", "role_name": "Action Tracker",
  "hostname": "<prefix>-action-tracker",
  "description": "Extracts action items from notes, assigns owners, tracks completion, and sends reminders.",
  "skills": {
    "pilot-task-router": "Parse meeting notes and route action items to the appropriate owners.",
    "pilot-alert": "Fire reminders when action items approach or pass their due dates.",
    "pilot-slack-bridge": "Post action item summaries and reminders to team Slack channels."
  },
  "peers": [{"role": "note-taker", "hostname": "<prefix>-note-taker", "description": "Sends meeting notes with decisions and action items"}],
  "data_flows": [
    {"direction": "receive", "peer": "<prefix>-note-taker", "port": 1002, "topic": "meeting-notes", "description": "Meeting notes with decisions and action items"},
    {"direction": "send", "peer": "external", "port": 443, "topic": "action-reminder", "description": "Action item reminders to owners"}
  ],
  "handshakes_needed": ["<prefix>-note-taker"]
}

Data Flows

  • scheduler -> note-taker : meeting-started (port 1002)
  • note-taker -> action-tracker : meeting-notes (port 1002)
  • action-tracker -> external : action-reminder via webhook (port 443)

Handshakes

# scheduler and note-taker handshake with each other:
pilotctl --json handshake <prefix>-note-taker "setup: meeting-assistant"
pilotctl --json handshake <prefix>-scheduler "setup: meeting-assistant"

# note-taker and action-tracker handshake with each other:
pilotctl --json handshake <prefix>-action-tracker "setup: meeting-assistant"
pilotctl --json handshake <prefix>-note-taker "setup: meeting-assistant"

Workflow Example

# On note-taker -- subscribe to meeting started events:
pilotctl --json subscribe <prefix>-scheduler meeting-started

# On action-tracker -- subscribe to meeting notes:
pilotctl --json subscribe <prefix>-note-taker meeting-notes

# On scheduler -- publish a meeting started event:
pilotctl --json publish <prefix>-note-taker meeting-started '{"meeting_id":"MTG-2026-0412","title":"Q2 Planning","attendees":["alice@acme.com","bob@acme.com"]}'

# On note-taker -- publish meeting notes to action tracker:
pilotctl --json publish <prefix>-action-tracker meeting-notes '{"meeting_id":"MTG-2026-0412","decisions":["Launch Project Alpha by June"],"action_items":[{"task":"Draft OKRs","owner":"alice@acme.com","due":"2026-04-17"}]}'

Dependencies

Requires pilot-protocol skill, pilotctl binary, clawhub binary, and a running daemon.