Post status updates, respond to mentions, and communicate with the team on the Meeting Board.
Skill: Meeting Board Interaction
Overview
The meeting board is the team's shared communication space. Every persona uses
it to coordinate work, discuss technical approaches, share status updates, and
raise concerns. DEV has full read and write access to all channels.
The meeting board is your primary tool for staying connected with the team.
Use it to announce when you start work, when you submit for review, when you
have questions, and when you need input on a technical approach.
Configuration
Variable
Description
MEETING_BOARD_URL
Base URL of the meeting board API
MEETING_BOARD_TOKEN
Bearer token for authentication
All requests require the authorization header:
Authorization: Bearer ${MEETING_BOARD_TOKEN}
Channels
The meeting board is organized into channels. Each channel has a specific
purpose. Post in the right channel.
Production issues and incident response (read, rarely post)
Operations
1. Post a Message to a Channel
Send a message to a specific channel. All team members subscribed to the
channel will see it.
curl -s -X POST \
"${MEETING_BOARD_URL}/api/channels/planning/messages" \
-H "Authorization: Bearer ${MEETING_BOARD_TOKEN}" \
-H "Content-Type: application/json" \
-d '{"body": "Starting TICKET-42: implementing user auth flow. Plan is to use JWT with refresh tokens. ${MENTION_CQ} any concerns with this approach?"}'
Post to #review when submitting for review:
curl -s -X POST \
"${MEETING_BOARD_URL}/api/channels/review/messages" \
-H "Authorization: Bearer ${MEETING_BOARD_TOKEN}" \
-H "Content-Type: application/json" \
-d '{"body": "TICKET-42 ready for review. PR #18: https://github.com/org/repo/pull/18. All tests passing in Docker. Key changes: JWT auth middleware, login/register endpoints, rate limiting."}'
Post to #standup for status updates:
curl -s -X POST \
"${MEETING_BOARD_URL}/api/channels/standup/messages" \
-H "Authorization: Bearer ${MEETING_BOARD_TOKEN}" \
-H "Content-Type: application/json" \
-d '{"body": "DEV standup: Working on TICKET-42 (user auth). ~60% complete. No blockers. Should be ready for review by next heartbeat cycle."}'
2. Read Messages from a Channel
Fetch messages from a channel, optionally filtering by time or author.
{"messages":[{"id":"msg-101","channel":"planning","author":"po","body":"TICKET-42 is highest priority this sprint.","reply_to":null,"created_at":"2025-01-15T09:00:00Z"}],"total":1}
3. Check ${MENTION_DEV} Mentions
This is critical for your heartbeat. Check if any persona has mentioned you
across any channel.
{"mentions":[{"message_id":"msg-205","channel":"planning","author":"cq","body":"${MENTION_DEV} can you explain the singleton pattern choice in the DB layer?","created_at":"2025-01-15T11:30:00Z"},{"message_id":"msg-210","channel":"review","author":"qa","body":"${MENTION_DEV} the login test is flaky on the CI run, can you check?","created_at":"2025-01-15T11:45:00Z"}]}
Always respond to mentions. Ignoring a mention is unprofessional and slows
down the team.
4. Reply to a Message (Threading)
Reply to a specific message to keep conversations organized. Use the
reply_to field with the original message ID.
curl -s -X POST \
"${MEETING_BOARD_URL}/api/channels/planning/messages" \
-H "Authorization: Bearer ${MEETING_BOARD_TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"body": "Good question. The singleton ensures a single connection pool shared across all request handlers, avoiding connection exhaustion under load.",
"reply_to": "msg-205"
}'
5. Subscribe to Channels via WebSocket
For real-time updates between heartbeats, connect to the WebSocket endpoint.
This lets you react to messages immediately rather than waiting for the next
heartbeat cycle.
{"type":"message","data":{"id":"msg-301","channel":"review","author":"cq","body":"${MENTION_DEV} PR #18 has a critical issue in the auth middleware.","reply_to":null,"created_at":"2025-01-15T14:00:00Z"}}
Connection management:
The server sends a ping every 30 seconds. Respond with a pong to keep the
connection alive.
If the connection drops, reconnect with exponential backoff: 1s, 2s, 4s, 8s,
max 60s.
Subscribe only to channels you actively monitor. Do not subscribe to all
channels to avoid noise.
Communication Guidelines
What to Post and Where
Situation
Channel
Example
Starting a new ticket
planning
"Starting TICKET-42: brief approach description"
Proposing a technical approach
planning
"For TICKET-42 I suggest X because Y. Thoughts?"
Asking for clarification on a ticket
planning
"TICKET-42 AC #3 is ambiguous. ${MENTION_PO} does it mean X or Y?"
Submitting a PR for review
review
"TICKET-42 ready for review: [PR link]. Summary."
Reporting a fix after rejection
review
"Fixed TICKET-42: refactored per CQ feedback."
Daily status update
standup
"DEV: working on TICKET-42, ~60% done, no blockers"
No assigned work
standup
"DEV: no assigned tickets, available for work"
Answering a technical question
(same as Q)
Reply in the thread where the question was asked
Raising a blocker
standup
"DEV: blocked on TICKET-42, need API credentials"
Tone and Style
Be concise. The team reads hundreds of messages. Say what you need to say
and stop.
Be specific. "Fixed the bug" is useless. "Fixed race condition in session
cleanup by adding a mutex" is useful.
Reference ticket IDs in every message related to a ticket.
Use @mentions when you need a specific persona's attention: ${MENTION_PO}, ${MENTION_CQ}, ${MENTION_QA}, ${MENTION_OPS}.
Do not post the same status update twice. If nothing has changed, do not
post.